Get a deck
curl --request GET \
--url https://test.polltheroom.com/api/v1/decks/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://test.polltheroom.com/api/v1/decks/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://test.polltheroom.com/api/v1/decks/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://test.polltheroom.com/api/v1/decks/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://test.polltheroom.com/api/v1/decks/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://test.polltheroom.com/api/v1/decks/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.polltheroom.com/api/v1/decks/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"deck": {
"id": "cmtwzaz21009juqmfmvygdi2b",
"title": "Town hall",
"document": [
{
"id": "ea8bc5f6-5631-4447-8d56-6410d91e51a3",
"kind": "slide",
"texts": [
{
"id": "a548db96-7a25-40c7-8fbd-045e09371943",
"rect": {
"h": 0.14,
"w": 0.5,
"x": 0.06,
"y": 0.1
},
"text": "Q3 kick-off",
"style": {
"bold": true,
"font": "display",
"size": 5.5,
"align": "left",
"color": "#101014"
}
}
],
"images": [],
"shapes": [],
"overlays": [],
"pageIndex": null
},
{
"id": "bd01f381-d00b-4204-913f-b9922fa043cc",
"kind": "poll",
"poll": {
"type": "multiple-choice",
"prompt": "Which bet do we start with?",
"options": [
"New pricing",
"Mobile app",
"Partner program"
],
"timeLimitSec": null
}
}
],
"extras": null,
"updatedAt": "2026-09-11T13:15:14.041Z",
"starred": false,
"sourceKind": null,
"ownerId": "cmtq7w2ab0001uqsh4k8x2m9p",
"sharedAt": null,
"deletedAt": null,
"mine": true,
"source": false,
"thumbs": 0,
"ready": true,
"problems": [],
"warnings": [],
"revision": "2026-09-11T13:15:14.041Z"
}
}{
"error": "<string>",
"fix": "<string>"
}{
"error": "<string>",
"fix": "<string>"
}{
"error": "<string>",
"fix": "<string>"
}{
"error": "<string>",
"fix": "<string>"
}decks
Get a deck
The whole document, the same shape the editor holds.
Needs the decks:read scope.
GET
/
api
/
v1
/
decks
/
{id}
Get a deck
curl --request GET \
--url https://test.polltheroom.com/api/v1/decks/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://test.polltheroom.com/api/v1/decks/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://test.polltheroom.com/api/v1/decks/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://test.polltheroom.com/api/v1/decks/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://test.polltheroom.com/api/v1/decks/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://test.polltheroom.com/api/v1/decks/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.polltheroom.com/api/v1/decks/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"deck": {
"id": "cmtwzaz21009juqmfmvygdi2b",
"title": "Town hall",
"document": [
{
"id": "ea8bc5f6-5631-4447-8d56-6410d91e51a3",
"kind": "slide",
"texts": [
{
"id": "a548db96-7a25-40c7-8fbd-045e09371943",
"rect": {
"h": 0.14,
"w": 0.5,
"x": 0.06,
"y": 0.1
},
"text": "Q3 kick-off",
"style": {
"bold": true,
"font": "display",
"size": 5.5,
"align": "left",
"color": "#101014"
}
}
],
"images": [],
"shapes": [],
"overlays": [],
"pageIndex": null
},
{
"id": "bd01f381-d00b-4204-913f-b9922fa043cc",
"kind": "poll",
"poll": {
"type": "multiple-choice",
"prompt": "Which bet do we start with?",
"options": [
"New pricing",
"Mobile app",
"Partner program"
],
"timeLimitSec": null
}
}
],
"extras": null,
"updatedAt": "2026-09-11T13:15:14.041Z",
"starred": false,
"sourceKind": null,
"ownerId": "cmtq7w2ab0001uqsh4k8x2m9p",
"sharedAt": null,
"deletedAt": null,
"mine": true,
"source": false,
"thumbs": 0,
"ready": true,
"problems": [],
"warnings": [],
"revision": "2026-09-11T13:15:14.041Z"
}
}{
"error": "<string>",
"fix": "<string>"
}{
"error": "<string>",
"fix": "<string>"
}{
"error": "<string>",
"fix": "<string>"
}{
"error": "<string>",
"fix": "<string>"
}