Zum Inhalt springen

June 28, 2026 · 9 min read

Umfrage-API: Live-Umfragen im eigenen Produkt

Erstelle Umfragen, steuere Live-Sessions, lies Ergebnisse und empfange Webhooks aus deinem Code: der Leitfaden zur PollsLive-API für SaaS- und Community-Apps.

By the PollsLive team·DevelopersHow-to

Wenn dein Produkt ein Publikum hat (ein Webinar-Tool, ein LMS, eine Community-Plattform, eine Event-App), willst du früher oder später Umfragen darin. Echtzeit-Abstimmung, Betrugsschutz und eine Ergebnisoberfläche von Grund auf zu bauen, sind Monate an Arbeit. PollsLive zu integrieren, ist ein Nachmittag. Hier ist der Entwicklerweg: Umfrage erstellen, Embed einfügen, Ergebnisse lesen und Webhooks empfangen, mit echten Aufrufen an die Entwicklerdokumentation.

Auth: ein einziger Bearer-Token

Erzeuge einen Workspace-API-Schlüssel unter Studio → Entwickler-API (sie sehen aus wie `plv_live_…`) und sende ihn als Bearer-Token. Kein OAuth-Tanz für die Server-zu-Server-Nutzung; OAuth-Client-Credentials sind verfügbar, wenn du mandantenbezogenen Scope brauchst.

auth
export POLLSLIVE_API=https://pollslive.com/api/v1
export POLLSLIVE_KEY=plv_live_xxxxxxxxxxxxxxxxxxxx

# Every request carries the key as a Bearer token:
#   Authorization: Bearer $POLLSLIVE_KEY
# Limits and HTTP 429 handling: https://pollslive.com/docs/developers/rate-limits

Schritt 1: Erstelle eine Umfrage aus deinem Code

Eine Umfrage ist ein typisiertes Deck: content.questions ist ein Array von Folien, jede mit einem kind-Diskriminator. POST /polls gibt die neue Umfrage zurück, samt ihres Slugs, der alles ist, was du zum Einbetten brauchst.

POST /polls
curl -sS -X POST "$POLLSLIVE_API/polls" \
  -H "Authorization: Bearer $POLLSLIVE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Which feature should we build next?",
    "renderingMode": "ASYNC",
    "content": {
      "questions": [{
        "id": "next",
        "kind": "multiple_choice",
        "text": "Which feature should we build next?",
        "options": [
          { "id": "a", "label": "Dark mode" },
          { "id": "b", "label": "Mobile app" },
          { "id": "c", "label": "Public API" }
        ]
      }]
    }
  }'
# → { "poll": { "slug": "which-feature-x7f2", ... } }

Schritt 2: Bette sie in deine Oberfläche ein

Platziere die Umfrage auf jeder beliebigen Seite mit einem einzeiligen iframe: kein SDK, keine Client-Bibliothek und keine Drittanbieter-Tracker, die mitreisen. Sie passt sich ihrem Container an und funktioniert in React, WordPress, Webflow oder reinem HTML.

embed
<iframe
  src="https://pollslive.com/embed/which-feature-x7f2"
  width="100%" height="520"
  style="border:0;border-radius:12px"
  loading="lazy" title="PollsLive poll"></iframe>

Schritt 3: Lies die Ergebnisse aus, wann immer du sie brauchst

Hole die Zählungen bei Bedarf für deine eigenen Dashboards ab oder exportiere eine CSV für Berichte. Die Ergebnisse kommen pro Folie zurück, mit Zählungen und (bei Skalen) Durchschnittswerten.

GET results
curl -sS "$POLLSLIVE_API/polls/POLL_ID/results" \
  -H "Authorization: Bearer $POLLSLIVE_KEY"
# → { "questions": [ { "id": "next", "options": [
#       { "id": "a", "label": "Dark mode",  "count": 64 },
#       { "id": "b", "label": "Mobile app", "count": 41 },
#       { "id": "c", "label": "Public API", "count": 95 } ] } ] }

Schritt 4: Empfange Updates per Webhook

Die API abzufragen funktioniert, aber Webhooks sind besser. Registriere einen Endpoint, und PollsLive sendet HMAC-signierte Events (vote.created, poll.published, session.started/ended), damit deine App in Echtzeit reagiert. Prüfe die Signatur und aktualisiere dann deine Oberfläche oder leite das Event weiter.

verify a webhook (Node)
import crypto from "node:crypto";

// header: the X-PollsLive-Signature value, "t=<unix>,v1=<hex>"
export function verify(rawBody, header, secret, toleranceSec = 300) {
  const parts = Object.fromEntries(
    header.split(",").map((kv) => kv.split("=")),
  );
  const t = Number(parts.t);
  if (!t || Math.abs(Date.now() / 1000 - t) > toleranceSec) return false;

  const expected = crypto
    .createHmac("sha256", secret)
    .update(`${t}.${rawBody}`)
    .digest("hex");

  const a = Buffer.from(expected);
  const b = Buffer.from(parts.v1 ?? "");
  return a.length === b.length && crypto.timingSafeEqual(a, b);
}

Das ist der gesamte Zyklus: erstellen, einbetten, lesen, reagieren. Für die vollständige Referenz (jeden Endpoint, Scope und Event-Typ) sieh dir die Entwicklerdokumentation an, und für ein praktisches Beispiel Live-Ergebnisse mit Webhooks auf ein internes Dashboard bringen.

Tip

Starte mit der REST-API zum Erstellen und Veröffentlichen, füge Webhooks hinzu, wenn du Live-Ergebnis-Pushes brauchst.

Für das Teilen ohne Code siehe deine Umfrage teilen und einbetten.

Entwickle auf PollsLive: Erstelle Umfragen, führe Live-Sessions durch, rufe Ergebnisse ab und empfange Webhooks aus deinem eigenen Code.

Lies die Entwicklerdokumentation

Notwendige Cookies halten Sie angemeldet und verhindern doppelte Stimmen. Mit Ihrer Erlaubnis nutzen wir außerdem Cloudflare Web Analytics, um Seitenaufrufe zu zählen, und das Whop Pixel, um zu sehen, welche Besuche zu einem Kauf führen. Cookie-Richtlinie