This page is generated from the API’s own reference at
/llms-full.txt by scripts/developers-sync.mjs. Edit the spec, not this page.The deck document
A deck is a JSON array of steps, at most 200. Steps count from 0, and a person reading the editor’s filmstrip counts from 1, so their “slide 6” is step 5. There is no mandatory opener: a deck made before 1 Oct 2026 may carry a join step, and the editor turns one into an ordinary slide with the join WIDGET on it the moment the deck is opened or presented. A slide step is a page (or a blank) with things floating on it: up to 4 polls, 8 text boxes, 8 shapes and 4 images. A poll step is one poll filling the screen. Positions are fractions of the slide, 0 to 1. A bare array is document version 1.Step: join
Step: slide
Step: poll
Overlay (a poll floating on a slide)
Any widget can float on a slide. Put the card over a screenshot, a picture or empty space, never over the slide’s own text; when the corner you had in mind holds text, take the one with the picture, and when the whole slide is text, use a full-screen poll step instead. A card lower than 45% of the slide has no room for its answers, and some looks need more (a map 35% wide and 55% high, a bullet or an NPS score 55% high, a sunburst 45% wide, a swarm 50% wide); the warning names the look’s own minimum. The card must stay on the slide,
x + w and y + h at most 1, and the API refuses one that does not. Leave rect and style out for the house card in the bottom-right quarter. The card’s variant is read by multiple choice; the other widgets draw their own look. Check a placement three ways. get_screenshot shows the card on the real page; with annotate it draws every element’s box and name on the picture, the clashing ones in red, and it names the PDF page’s own words a card or text box hides (coversPageText). get_step and get_screenshot return every element’s rect and the pairs that overlap. And every read and write answers with warnings: a card under its look’s minimum size (30% of the slide’s width and 45% of its height for most, more for a few), or a card or text box over another card or text box. Warnings do not stop a room; fix them anyway. The picture has the last word on size, because how small a card can go depends on its look: get_screenshot also returns measured and warns when a card’s or text box’s content is cut off by its box, or a card’s biggest answer text is drawn under 13 pixels high on the 1600-pixel slide.
Overlay card style
Text box
The box clips what does not fit its rect, on the slide and in a screenshot alike: size the box for the text at that
size (a fraction of the slide’s width per line of text), or shorten the text. font is a key from the library: sans (Inter), display (Archivo), mono (JetBrains Mono), Poppins, Montserrat, DM Sans, Work Sans, Playfair Display, Lora, Merriweather, Bebas Neue, Oswald, Anton, JetBrains Mono, IBM Plex Mono, Caveat, Pacifico; or the family name of a font the deck uploaded. A card’s textFont takes the same keys.
Shape
Image
Rect
Widgets
Every poll has atype, a prompt and, where it takes answers, options. The tables list only the properties that type reads; anything else is dropped on save. A look is chosen per widget; the first is the default. To present lists what the readiness check asks for before a room can start; a deck can be saved without it. The API runs the check for you: reading a deck answers with ready and problems, and so does every write, each problem naming the step, the card and the property.
Multiple choice (multiple-choice)
One question, up to ten answers; one pick each, or several with multiSelect. A quiz is this with a correctIndex.
Looks (
mcStyle): bars (default), slim, columns, donut, pie, stacked, dots, lollipops, bubbles, spokes, butterfly, heat, arc, chord, tiles. arc needs multiSelect true. chord needs multiSelect true.
Can: takes up to 10 options; its full-screen result has its own colour model (accent, colorMode, optionColors); options are coloured by identity, so a palette and a colour per option mean something; its full-screen result can print percentages (showPercent) and counts (showCount); as an overlay, the card can print percentages and counts (the card style’s showPercent, showCount).
To present: Ask a question; At least two options.
Image choice (image-choice)
Retired 28 Sept 2026: a choice poll with pictures on its options and the tiles look. Still read, no longer offered.
Looks (
imgStyle): tiles (default).
Can: takes up to 10 options; its full-screen result has its own colour model (accent, colorMode, optionColors); its full-screen result can print percentages (showPercent) and counts (showCount); as an overlay, the card can print percentages and counts (the card style’s showPercent, showCount).
To present: Ask a question; At least two options.
This or that (this-or-that)
Two sides, one tap. A quiz is this with a correctIndex of 0 or 1.
Looks (
totStyle): split (default), tug, camps.
Can: takes up to 2 options; its full-screen result has its own colour model (accent, colorMode, optionColors); options are coloured by identity, so a palette and a colour per option mean something; its full-screen result can print percentages (showPercent) and counts (showCount).
To present: Ask a question; At least two options.
Ranking (ranking)
People put the options in order; the result is the room’s order. A quiz is this with orderIsAnswer, where the options as listed are the right order.
Looks (
rankStyle): list (default), podium, avg.
Can: takes up to 10 options; its full-screen result has its own colour model (accent, colorMode, optionColors); options are coloured by identity, so a palette and a colour per option mean something; its full-screen result can print percentages (showPercent) and counts (showCount).
To present: Ask a question; At least two options.
100 points (hundred-points)
Everyone spends 100 points across the options.
Looks (
hpStyle): bars (default), treemap, waffle, columns, sunburst, icicle, bullet. sunburst, icicle use groups, one entry per option. bullet use targets, one entry per option.
Can: takes up to 10 options; its full-screen result has its own colour model (accent, colorMode, optionColors); options are coloured by identity, so a palette and a colour per option mean something; its full-screen result can print percentages (showPercent) and counts (showCount).
To present: Ask a question; At least two options.
Star rating (rating)
One to five stars.
Looks (
scaleStyle): stars (default), faces, breakdown, gauge, curve, bloom.
Can: its full-screen result has its own colour model (accent, colorMode, optionColors); its full-screen result can print counts (showCount); as an overlay, the card can print counts (the card style’s showPercent, showCount).
To present: Ask a question.
NPS 0–10 (nps)
How likely to recommend, 0 to 10, scored the NPS way.
Looks (
npsStyle): score (default), needle, diverging, swarm.
Can: its full-screen result has its own colour model (accent, colorMode, optionColors).
To present: Ask a question.
Estimate (estimate)
Everyone guesses a number inside a range; the real answer is revealed when the poll closes.
Looks (
estStyle): hist (default), curve, dots, range.
Can: its full-screen result has its own colour model (accent, colorMode, optionColors).
To present: Ask a question; Set the guess range.
Radar (radar)
Three to eight axes rated on one scale of 1 to 5 up to 1 to 10, with optional words at the ends, drawn as a radar.
Can: its full-screen result has its own colour model (
accent, colorMode, optionColors).
To present: Ask a question; At least three axes.
Word cloud (word-cloud)
A word or a few per person, sized by how often they come up.
Looks (
wcStyle): cloud (default), bubbles.
Can: its full-screen result has its own colour model (accent, colorMode, optionColors); its full-screen result can print counts (showCount); as an overlay, the card can print counts (the card style’s showPercent, showCount).
To present: Ask a question.
Open feed (open-feed)
Free text from the room, shown as it arrives.
Can: its full-screen result has its own colour model (
accent, colorMode, optionColors).
To present: Ask a question.
Q&A (qa-upvotes)
Questions from the room, upvoted to the top.
To present: Ask a question.
Timer (timer)
A shared countdown on the big screen. Takes no answers.
To present: Ask a question.
Spin the wheel (wheel)
Spins between everyone in the room, or a custom list, and picks one.
Can: options are coloured by identity, so a palette and a colour per option mean something.
To present: Ask a question; Add at least two names for the wheel.
Live map (map)
Where people are joining from, on a fixed list of countries.
Looks (
mapStyle): pins (default), heat.
Can: its full-screen result has its own colour model (accent, colorMode, optionColors).
To present: Ask a question.
Place map (place-map)
A real map of one place; everyone drops a pin on it.
To present: Ask a question; Pick a place.
Join (join)
The room’s code, its QR and the link, so people can join from any slide. Takes no answers.
Can: its full-screen result has its own colour model (
accent, colorMode, optionColors).
To present: Ask a question.
Limits
- 200 steps per deck; one PDF behind them, up to 60 pages.
- Per slide: 4 polls, 8 text boxes, 8 shapes, 4 images.
- Images travel as data URLs: up to 12 MB for an image on a slide, 500 KB per option image.