Für Entwickler
Bauen Sie auf der Voxpla API auf
Legen Sie Events an, starten Sie Umfragen, moderieren Sie Fragen und übernehmen Sie Ergebnisse in Ihre eigenen Systeme. Eine JSON REST API mit Schlüsseln und einer Beschreibung in OpenAPI 3.1.
Die API ist Teil des Enterprise-Plans. Schlüssel funktionieren nicht mehr, sobald der Plan sie nicht mehr enthält.
Schnellstart
- Öffnen Sie in Voxpla die Einstellungen und dann API-Schlüssel (Inhaber und Administratoren).
- Erstellen Sie einen Schlüssel, wählen Sie seine Berechtigungen und kopieren Sie ihn. Er wird nur einmal angezeigt.
- Senden Sie ihn bei jeder Anfrage im Header Authorization.
- Laden Sie die OpenAPI-Beschreibung in Postman, Insomnia oder Ihren Codegenerator.
curl https://voxpla.eu/api/v1/key \
-H "Authorization: Bearer vx_live_..."
Authentifizierung
Jede Anfrage braucht den Header Authorization: Bearer, gefolgt vom Schlüssel. Schlüssel beginnen mit vx_live_ (außerhalb der Produktion vx_test_). Voxpla speichert nur einen Fingerabdruck des Schlüssels und seine ersten Zeichen zur Anzeige. Ein verlorener Schlüssel lässt sich nicht wiederherstellen: Erstellen Sie einen neuen und widerrufen Sie den alten.
Authorization: Bearer vx_live_3kQ9...- Ein fehlender, unbekannter, abgelaufener oder widerrufener Schlüssel liefert 401.
- Enthält der Plan der Organisation die API nicht mehr, liefern Schlüssel 402 plan_required.
- Die API akzeptiert keine Browser-Sitzungen, und Schlüssel funktionieren nicht in der Web-App.
- Jeder schreibende Aufruf wird zusammen mit dem verwendeten Schlüssel im Audit-Log festgehalten.
Berechtigungen
Jeder Schlüssel darf lesen. Geben Sie einem Schlüssel weitere Berechtigungen nur, wenn eine Integration sie braucht.
read- Events, Sessions, Fragen, Umfragen, Ergebnisse und Analysen auflisten und lesen, CSV-Exporte abrufen.
write- Events anlegen und bearbeiten, ihren Status ändern, Umfragen anlegen, starten und schließen.
moderate- Fragen moderieren: freigeben, ausblenden, hervorheben, als beantwortet markieren, anheften, archivieren und löschen.
Ein Aufruf außerhalb der Berechtigungen des Schlüssels liefert 403 insufficient_scope.
Ratenlimits
Jeder Schlüssel darf 600 Anfragen pro Minute senden. Darüber antwortet die API mit 429 rate_limited und einem Header Retry-After in Sekunden. Warten Sie so lange und versuchen Sie es dann erneut.
HTTP/1.1 429 Too Many Requests
Retry-After: 12
{"error":"rate_limited","retryAfter":12}
Paginierung
Listen liefern items und next_cursor. Fordern Sie mit limit bis zu 100 Einträge an (Standard 25) und übergeben Sie next_cursor als cursor, um die nächste Seite zu erhalten. Auf der letzten Seite ist next_cursor null. Cursor sind undurchsichtig, bauen Sie sie nicht selbst zusammen.
curl "https://voxpla.eu/api/v1/events?limit=100&cursor=djE6Y2x4..." \
-H "Authorization: Bearer $VOXPLA_API_KEY"
{ "items": [ ... ], "next_cursor": null }
Fehler
Fehler sind JSON-Objekte mit einem stabilen Code im Feld error. Bauen Sie Ihre Logik auf dem Code auf, nicht auf dem HTTP-Statustext.
400 invalid- Der Anfragetext oder ein Parameter ist ungültig; issues nennt die betroffenen Felder.
401 invalid_api_key- Der Schlüssel fehlt, ist unbekannt oder widerrufen (bei einem abgelaufenen Schlüssel api_key_expired).
402 plan_required- Der Plan der Organisation enthält die API nicht.
403 insufficient_scope- Dem Schlüssel fehlt die Berechtigung, die dieser Aufruf braucht.
404 not_found- Das Objekt existiert in Ihrer Organisation nicht.
429 rate_limited- Zu viele Anfragen; warten Sie die Sekunden aus Retry-After ab.
Endpunkte
Alle Pfade sind relativ zu https://voxpla.eu/api/v1
-
GET/keyread
Der aufrufende Schlüssel, seine Berechtigungen und die Organisation.
-
GET/eventsread
Events Ihrer Organisation, neueste zuerst, optional nach Status gefiltert.
-
POST/eventswrite
Legt ein Event mit einer Session an. Der Teilnahmecode wird erzeugt.
-
GET/events/{id}read
Ein Event mit Teilnahmecode, Link für Teilnehmende und Einstellungen.
-
PATCH/events/{id}write
Ändert Name, Zeit, Zeitzone, Sprache oder Einstellungen.
-
POST/events/{id}/statuswrite
Schaltet das Event auf Entwurf, live, beendet oder archiviert.
-
GET/events/{id}/sessionsread
Sessions eines Events (Räume, Programmblöcke).
-
GET/sessions/{id}/questionsread
Fragen einer Session mit Stimmen und Antworten, optional nach Status gefiltert.
-
POST/questions/{id}/actionsmoderate
Gibt eine Frage frei, blendet sie aus, hebt sie hervor, beantwortet, heftet an, archiviert oder löscht sie.
-
GET/sessions/{id}/pollsread
Umfragen einer Session in ihrer Reihenfolge.
-
POST/sessions/{id}/pollswrite
Legt eine Umfrage, Wortwolke, Bewertung, Quizfrage oder einen anderen Umfragetyp an.
-
POST/polls/{id}/activatewrite
Startet eine Umfrage. Die laufende Umfrage der Session wird geschlossen.
-
POST/polls/{id}/closewrite
Schließt eine Umfrage.
-
GET/polls/{id}/resultsread
Aggregierte Ergebnisse einer Umfrage.
-
GET/events/{id}/analyticsread
Teilnehmende, Beteiligung, Zeitverlauf, Top-Fragen und Umfrageergebnisse.
-
GET/events/{id}/export.csvread
CSV-Export von Fragen, Umfragen, Teilnehmenden oder Antworten aus der Nachbefragung.
Antworten enthalten, was ein Moderator sieht. Anonyme Teilnehmende bleiben anonym: Keine Antwort enthält Identitäten von Teilnehmenden, Tokens oder Links zur Projektion.
Webhooks
Statt die API immer wieder abzufragen, lassen Sie sich von Voxpla benachrichtigen. Einen Webhook richten Sie unter Einstellungen und dann Integrationen für event.started, question.approved, poll.closed und event.ended ein.
- Jede Zustellung ist ein HTTPS POST, signiert im Header X-Voxpla-Signature (HMAC-SHA256 aus Zeitstempel und unverändertem Body).
- Lehnen Sie Zustellungen ab, die älter als 5 Minuten sind, und ignorieren Sie Duplikate anhand von X-Voxpla-Delivery.
- Fehlgeschlagene Zustellungen werden zweimal wiederholt. Nach 10 Fehlern in Folge pausiert der Webhook, bis Sie ihn wieder einschalten.
X-Voxpla-Event: poll.closed
X-Voxpla-Delivery: dlv_6b0c3f...
X-Voxpla-Signature: t=1793390000,v1=5f0c1a...
Beispiele
Live-Events auflisten
curl https://voxpla.eu/api/v1/events?status=live&limit=50 \
-H "Authorization: Bearer $VOXPLA_API_KEY"Ein Event anlegen
curl -X POST https://voxpla.eu/api/v1/events \
-H "Authorization: Bearer $VOXPLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"All hands","startsAt":"2026-11-20T09:00:00Z","locale":"en"}'Eine Umfrage anlegen und starten
curl -X POST https://voxpla.eu/api/v1/sessions/$SESSION_ID/polls \
-H "Authorization: Bearer $VOXPLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"multiple_choice","title":"Lunch?","options":[{"label":"Pizza"},{"label":"Salad"}]}'
curl -X POST https://voxpla.eu/api/v1/polls/$POLL_ID/activate -H "Authorization: Bearer $VOXPLA_API_KEY"Ergebnisse abrufen
curl https://voxpla.eu/api/v1/polls/$POLL_ID/results -H "Authorization: Bearer $VOXPLA_API_KEY"Eine Frage freigeben
curl -X POST https://voxpla.eu/api/v1/questions/$QUESTION_ID/actions \
-H "Authorization: Bearer $VOXPLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"action":"approve"}'
Geben Sie Ihrem Publikum beim nächsten Event eine Stimme
Richten Sie ein Event in weniger als einer Minute ein. Teilnehmende treten in jedem Browser per QR-Code oder sechsstelligem Code bei.
Dauerhaft kostenloser Plan, keine Kreditkarte, Datenspeicherung in der EU.