# Poll the Room > Live polls on a presenter's own slides. Build decks, put polls on slides, run rooms and read results, from code or from an AI agent. - [Poll the Room for developers](https://dev.polltheroom.com/index.md): Live polls on a presenter's own slides. Build decks, put polls on slides, run rooms and read results, from code or from an AI agent. - [Quickstart](https://dev.polltheroom.com/quickstart.md): A key, one request, and a deck you can open in the editor. - [Authentication and limits](https://dev.polltheroom.com/authentication.md): API keys, scopes, plans, rate limits, idempotency, revisions and errors. - [Decks and steps](https://dev.polltheroom.com/concepts/decks-and-steps.md): The document a deck is made of, and how the API changes it. - [Readiness](https://dev.polltheroom.com/concepts/readiness.md): A deck can be saved half-finished. This is what stops it going on stage, and how the API tells you. - [Rooms and results](https://dev.polltheroom.com/concepts/rooms-and-results.md): Start a room, drive it the way the presenter's buttons do, and read every answer. - [Build a deck from a PDF](https://dev.polltheroom.com/guides/build-a-deck-from-a-pdf.md): Attach the presenter's slides, put a poll on the right pages, and look at what you made. - [Put polls on slides](https://dev.polltheroom.com/guides/put-polls-on-slides.md): Where a card goes, how it looks, and when a poll should fill the screen instead. - [Read results](https://dev.polltheroom.com/guides/read-results.md): What a room's results contain per widget, and how to turn them into a report. - [Document and widgets](https://dev.polltheroom.com/reference/document-and-widgets.md): Every step, every widget, every property, every look and what stops a poll going on stage. Generated from the code that enforces it. - [Changelog](https://dev.polltheroom.com/changelog.md): What changed in the API, newest first. - [MCP server](https://dev.polltheroom.com/mcp/index.md): Give an AI agent the same verbs as the API, as tools, with one command. - [Tools](https://dev.polltheroom.com/mcp/tools.md): Every tool the MCP server offers, with its arguments. Generated from the server's own tools/list. - [Introduction](https://dev.polltheroom.com/api-reference/introduction.md): The v1 API in one page: base URL, keys, the verbs, headers and errors. - [List decks](https://dev.polltheroom.com/api-reference/decks/list-decks.md): The decks this key may see: its maker's own plus the team's shared ones. The bin is left out. - [Create a deck](https://dev.polltheroom.com/api-reference/decks/create-a-deck.md): This is the verb an agent starts from. Send a whole document, or nothing for a blank deck that opens with the join screen and one empty slide. A deck can be saved half-finished; presenting needs every poll to pass the readiness check. - [Get a deck](https://dev.polltheroom.com/api-reference/decks/get-a-deck.md): The whole document, the same shape the editor holds. - [Bin a deck](https://dev.polltheroom.com/api-reference/decks/bin-a-deck.md): Into the bin, the same as the app. Thirty days later it is gone for good. - [Change a deck](https://dev.polltheroom.com/api-reference/decks/change-a-deck.md): Rename, star, or replace the whole document. A replace, never a merge: send the document as you want it to be. To change one step, use the step verbs instead. - [Add a step](https://dev.polltheroom.com/api-reference/decks/add-a-step.md): Append a slide or a poll step, or insert it before a given index, without resending the document. The join screen is step 0 and there is only one. - [Read one step](https://dev.polltheroom.com/api-reference/decks/read-one-step.md): One step exactly as it is in the document, with its layout: every element's rect and which elements cover each other. Cheaper than get_deck when you work on one slide, and where you read a card's index before update_overlay or remove_overlay. - [Replace a step](https://dev.polltheroom.com/api-reference/decks/replace-a-step.md): Put a new slide or poll step where one is now. - [Remove a step](https://dev.polltheroom.com/api-reference/decks/remove-a-step.md): Take a slide or poll step out. The join screen stays. - [Put a poll on a slide](https://dev.polltheroom.com/api-reference/decks/put-a-poll-on-a-slide.md): Drop a poll onto a slide as a floating card, the way the editor does: send the poll, and optionally where (rect) and how it is drawn (style); what you leave out gets the house default. The slide's other content is untouched. For a poll that fills the screen, use add_step instead. - [Outline a deck](https://dev.polltheroom.com/api-reference/decks/outline-a-deck.md): Every step in a line: kind, page, notes, and for a slide every element's rect and label, which elements cover each other, and its warnings, without the pictures' bytes. Read this first to find your way around a deck, the way Paper's get_tree_summary reads a file; get_deck returns the whole document,… - [Take a card off a slide](https://dev.polltheroom.com/api-reference/decks/take-a-card-off-a-slide.md): Remove one card from a slide; everything else on the slide stays. Read the card's index with get_step. - [Change a card](https://dev.polltheroom.com/api-reference/decks/change-a-card.md): Change one card on a slide without resending the slide: the poll, where it sits (rect) or how it is drawn (style), each merged over what is there; what you leave out stays. Read the card's index with get_step. The way Paper's update_styles and move_nodes act on one node. - [Put text, a shape or a picture on a slide](https://dev.polltheroom.com/api-reference/decks/put-text-a-shape-or-a-picture-on-a-slide.md): Add one text box, shape or image to a slide without resending it: send exactly one of text, shape or image, as in the document. A card is added with add_overlay. Like a text box, a picture is placed by its rect; the slide clips what runs past it. - [Take text, a shape or a picture off a slide](https://dev.polltheroom.com/api-reference/decks/take-text-a-shape-or-a-picture-off-a-slide.md): Remove one text box, shape or image from a slide; everything else stays. Read the element's index with get_step. - [Change text, a shape or a picture](https://dev.polltheroom.com/api-reference/decks/change-text-a-shape-or-a-picture.md): Change one text box, shape or image on a slide: send the properties to change under text, shape or image (matching the kind in the path); they are merged over what is there, style included, and what you leave out stays. Read the element's index with get_step. - [Copy a step](https://dev.polltheroom.com/api-reference/decks/copy-a-step.md): Insert a copy of a step right after it, with fresh ids for the step and everything on it, the way Paper's duplicate_nodes clones a node. The join screen cannot be copied. - [Move a step](https://dev.polltheroom.com/api-reference/decks/move-a-step.md): Move a step to another position; the steps in between shift by one. The join screen stays at 0 and nothing lands before it. Ids do not change. - [Screenshot a step](https://dev.polltheroom.com/api-reference/decks/screenshot-a-step.md): A PNG of one step as the room will see it: the slide's page with its cards, text, shapes and images on it, or the full-screen poll the way the audience screen draws it. Beside the picture come the numbers: every element's rect, the pairs that overlap, `warnings` for a card too small to read or over… - [List the fonts](https://dev.polltheroom.com/api-reference/decks/list-the-fonts.md): The font keys a text box's `font` and a card's `textFont` take, with the family each one draws. Send `deck` to add the fonts that deck uploaded, which are named by their family. What Paper's get_font_family_info answers for a design file. - [Attach the slides as a PDF](https://dev.polltheroom.com/api-reference/decks/attach-the-slides-as-a-pdf.md): Put the presenter's own slides behind the deck. The editor renders the pages when the deck is opened, so polls can float on the real slides. With `pages`, and while no slide has a page yet, the blank slides are replaced by one slide per page, in order, after the join screen; polls and paged slides a… - [List rooms](https://dev.polltheroom.com/api-reference/rooms/list-rooms.md): The team's rooms, newest first, fifty at most. - [Start a room](https://dev.polltheroom.com/api-reference/rooms/start-a-room.md): Open a room for a deck: a six-digit code the audience joins with, and a presenter link that carries the host's key. The room waits in the lobby until the presenter (or `room_action` with `start`) begins. Decks with uploaded slide pages start from the editor for now, because pages are rendered in the… - [Drive a room](https://dev.polltheroom.com/api-reference/rooms/drive-a-room.md): What the presenter's buttons do: start the session, walk to the next or previous step, close the live poll and reveal, or stop the session. - [Read the results](https://dev.polltheroom.com/api-reference/rooms/read-the-results.md): Every poll's results so far, as JSON and as a markdown summary. Works while the room is live and after it ended, for as long as the room is held in memory. ## OpenAPI Specs - [openapi](https://test.polltheroom.com/openapi.json)