Your first call in five minutes
From zero to a live session created by API, without leaving this page.
Before you start
- An account on a paid plan: the API is not part of FREE (you can still browse the entire reference without paying).
- A presentation in your workspace: the session you are about to create runs an existing presentation.
Create your credential
In your workspace, open Company → API and create a credential with the content:write scope. The secret is shown once: save it.
Get your API keyThe credential belongs to the organization, not to your user: any admin can revoke it and every use lands in the audit log. Request only the scopes you need — results:read to read, content:write to create and drive.
Create and open a session
With your key in the X-API-Key header, create a session on an existing presentation and open it.
curl -X POST https://api.votinova.prd.atbionapps.com/public/v1/sessions \ -H "X-API-Key: vz_live_…" \ -d '{ "presentation_id": "prs_8f3k2" }' curl -X POST https://api.votinova.prd.atbionapps.com/public/v1/sessions/ses_71xw9/open \ -H "X-API-Key: vz_live_…"The session is born in DRAFT; opening it mints its join_code and the room is ready. Watch the X-RateLimit-* headers on the response: they travel on every reply and tell you how much request budget is left in the 60-second window.
Receive the results
Register a webhook for question.results.finalized and receive signed aggregates in your backend.
curl -X POST https://api.votinova.prd.atbionapps.com/public/v1/webhooks \ -H "X-API-Key: vz_live_…" \ -d '{ "url": "https://example.com/hooks/votinova", "event_types": ["question.results.finalized"] }'Save the signing_secret the registration returns: it is shown once, and it is what lets you verify every delivery. The webhooks guide ships the verification ready to paste in three languages.
If something looks off
- 401 — the X-API-Key header or the scope is missing: the body names the exact one in required_scope.
- 402 — your plan does not include the API: the body carries upgrade_to with the plan that unlocks it.
- 429 — budget spent for this window: wait retry_after_seconds and retry with backoff.
What next?
Browse the full reference, try every endpoint online, and connect Zapier or your agent over MCP.
API reference →