Til udviklere
Byg med Votinova
REST API, webhooks, connectorer og en MCP-server. Alt det, webappen kan, findes også i API'et: opret en session, åbn den, og få resultaterne ind i din egen stak på under fem minutter.
- Opret en adgangsnøgle i dit arbejdsområde – to tilladelser, der gælder hele organisationen.
- Lav dit første kald: opret og åbn en session fra curl.
- Abonner på et webhook, og få resultaterne, efterhånden som hvert spørgsmål lukkes.
curl -X POST https://api.votinova.prd.atbionapps.com/public/v1/sessions \ -H "X-API-Key: vz_live_…" \ -d '{ "presentation_id": "prs_8f3k2" }' 200 OK · X-RateLimit-Remaining: 119{ "id": "ses_71xw9", "join_code": "482913", "state": "LIVE"}Alle flader, én kontrakt
Alle integrationer stammer fra det samme OpenAPI-dokument. Et nyt endpoint dukker op alle steder på én gang.
REST API
Offentlige endpoints med tilladelser, kvoter pr. abonnement og cursor-paginering.
API-reference →Webhooks
HMAC-signerede hændelser med gentagne forsøg og manuel genudsendelse.
Guide til webhooks →Zapier
Triggere og handlinger, så du kan automatisere uden kode.
Se integrationen →Power Automate
Connector med webhook-trigger til Microsoft-økosystemet.
Se integrationen →MCP-server
Værktøjer til dine agenter, afledt af OpenAPI-dokumentet. Kører eksternt, der er intet at installere.
Sæt MCP op →Tilføjelsesprogrammer
PowerPoint, Google Slides, Teams, Zoom og Webex.
Se tilføjelsesprogrammerne →Det, folk bygger med det her
Resultater i dit CRM
Synkroniser svar og fremmøde til dit CRM eller dit datavarehus i samme øjeblik, hvert spørgsmål lukkes – et webhook siger til, uden at du skal spørge.
Din egen rapportering
KPI'er, deltagere og resultater via API'et med cursor-paginering: byg rapporten præcis, som din organisation vil have den.
Sessioner fra din egen software
Opret, åbn og styr sessioner fra din backend, dine interne værktøjer eller din agent – det samme API, som denne webapp bruger.
Dit første kald, i dit sprog
Hele hurtigstarten →Bygget til agenter
Din agent kender allerede Votinova
En ekstern MCP-server med værktøjer afledt af OpenAPI-dokumentet, filtreret efter din adgangsnøgles tilladelser. Dertil en llms.txt, så enhver model kan finde dokumentationen.
Sæt MCP-serveren op →{ "mcpServers": { "votinova": { "url": "https://mcp.votinova.com/mcp", "headers": { "Authorization": "Bearer vz_live_…" } } }}Seneste ændringer i API'et
Ændringslog →- ADDITIVE
An event stranded by an auto-disable is now dead-lettered, so it can be replayed once the endpoint is back. Recovering from a bad afternoon is supposed to be: the platform pauses the endpoint, you fix it, you re-enable it, you redeliver what never arrived. Redelivery only accepts a dead-lettered delivery, and the queue of an auto-disabled endpoint was being terminated as merely failed — so there was nothing to replay and nothing said so. The arithmetic hid it: a delivery gets 8 attempts and an endpoint is paused after 10 consecutive failures, so a single event in flight always dead-letters first. The counter is per endpoint, and one ordinary session emits three events. Deliveries for an endpoint its owner REMOVED are still terminated without a dead letter: nobody is coming back for those.
- ADDITIVE
Three corrections found by driving this API the way an integration does. A bad request body now answers the envelope this surface documents ({ error, code: INVALID_REQUEST_BODY, invalid_fields }) naming the PUBLISHED field: it used to fall through to a shape the API emits nowhere else, which named the internal property (TargetUrl for target_url) and carried no error member for a generated client to read. session.ended is delivered ONCE per close; closing a live session through this API delivered it twice, so anything that posts a summary or books a room did it twice, and the event now always names presentation_id whichever surface closed the session. And enabling an endpoint only revives one the platform paused after failures: it used to undo a DELETE too, so a connector's unsubscribe could be reversed by one call while the connector itself could no longer remove it. Enabling an endpoint that was removed now answers 400 WEBHOOK_NOT_AUTO_DISABLED; register it again instead.
- ADDITIVE
question_id is now published as REQUIRED on per-question results, which is what the endpoint has always enforced: it answers 400 without one. The document said optional, so an integrator who believed it did not send the value and found out from a failed call — and the failed call counted against the organization's quota. Nothing about the endpoint's behaviour changed, and no request that worked before stops working; what changed is that the reference now describes it. Generated clients and MCP tools derived from this document will ask for the question up front instead of discovering the rule at runtime.
Kvote pr. abonnement
- STARTER120 anmodninger pr. 60 s
- PRO120 anmodninger pr. 60 s
- TEAM600 anmodninger pr. 60 s
- ENTERPRISE3.000 anmodninger pr. 60 s
Din kvote følger med i hvert svar (X-RateLimit-*-headere).