June 28, 2026 · 9 min read
API de enquetes ao vivo no seu produto
Crie enquetes, conduza sessões ao vivo, leia resultados e receba webhooks pelo seu código: o guia da API do PollsLive para apps SaaS e comunidades.
Se o seu produto tem público (uma ferramenta de webinars, um LMS, uma plataforma de comunidade, um app de eventos), mais cedo ou mais tarde você vai querer enquetes dentro dele. Construir votação em tempo real, antifraude e uma interface de resultados do zero são meses de trabalho. Integrar o PollsLive é uma tarde. Este é o caminho para desenvolvedores: crie uma enquete, insira o embed, leia resultados e receba webhooks, com chamadas reais à a documentação para desenvolvedores.
Autenticação: um único token Bearer
Gere uma chave de API de workspace em Studio → API para desenvolvedores (elas se parecem com `plv_live_…`) e envie-a como token Bearer. Sem dança de OAuth para uso servidor-a-servidor; OAuth client-credentials está disponível quando você precisa de escopo por tenant.
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-limitsPasso 1: Crie uma enquete a partir do seu código
Uma enquete é um deck tipado: content.questions é um array de slides, cada um com um discriminador kind. POST /polls retorna a nova enquete, incluindo seu slug, que é tudo o que você precisa para inseri-la.
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", ... } }Passo 2: Insira-a na sua interface
Coloque a enquete em qualquer página com um iframe de uma linha: sem SDK, sem biblioteca cliente e sem rastreadores de terceiros viajando junto. Ela se adapta ao seu contêiner e funciona dentro de React, WordPress, Webflow ou HTML puro.
<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>Passo 3: Leia os resultados quando precisar
Obtenha as contagens sob demanda para os seus próprios painéis, ou exporte um CSV para relatórios. Os resultados voltam por slide com contagens e (para escalas) médias.
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 } ] } ] }Passo 4: Receba atualizações com webhooks
Fazer polling na API funciona, mas os webhooks são melhores. Registre um endpoint e o PollsLive envia eventos assinados com HMAC (vote.created, poll.published, session.started/ended) para que o seu app reaja em tempo real. Verifique a assinatura e depois atualize a sua interface ou repasse o evento.
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);
}Esse é o ciclo todo: criar, inserir, ler, reagir. Para a referência completa (cada endpoint, escopo e tipo de evento), consulte a documentação para desenvolvedores, e para um exemplo prático, levar resultados ao vivo a um painel interno com webhooks.
Tip
Comece com a REST API para criar e publicar, depois adicione webhooks quando precisar de pushes de resultados ao vivo.
Para compartilhamento sem código, veja compartilhe e incorpore sua enquete.
Desenvolva no PollsLive: crie enquetes, conduza sessões ao vivo, obtenha resultados e receba webhooks pelo seu próprio código.
Leia a documentação para desenvolvedores