Saltar al contenido

June 28, 2026 · 9 min read

API de encuestas en vivo para tu producto

Crea encuestas, lleva sesiones en vivo, lee resultados y recibe webhooks desde tu código: guía de la API de PollsLive para apps SaaS y comunidades.

By the PollsLive team·DevelopersHow-to

Si tu producto tiene audiencia -una herramienta de webinars, un LMS, una plataforma de comunidad, una app de eventos- tarde o temprano querrás encuestas dentro de él. Construir votación en tiempo real, antifraude y una interfaz de resultados desde cero son meses de trabajo. Integrar PollsLive es una tarde. Este es el camino para desarrolladores: crea una encuesta, inserta el embed, lee resultados y recibe webhooks, con llamadas reales a la documentación para desarrolladores.

Autenticación: un único token Bearer

Genera una clave de API de workspace en Studio → API para desarrolladores (se ven como `plv_live_…`) y envíala como token Bearer. Sin baile de OAuth para uso servidor-a-servidor; OAuth client-credentials está disponible cuando necesitas alcance por inquilino.

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

Paso 1: Crea una encuesta desde tu código

Una encuesta es un deck tipado: content.questions es un array de diapositivas, cada una con un discriminador kind. POST /polls devuelve la nueva encuesta, incluido su slug, que es todo lo que necesitas para insertarla.

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", ... } }

Paso 2: Insértala en tu interfaz

Coloca la encuesta en cualquier página con un iframe de una línea: sin SDK, sin librería cliente y sin rastreadores de terceros viajando con ella. Se adapta a su contenedor y funciona dentro de React, WordPress, Webflow o HTML plano.

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>

Paso 3: Lee los resultados cuando los necesites

Obtén los conteos bajo demanda para tus propios paneles, o exporta un CSV para informes. Los resultados vuelven por diapositiva con conteos y (para escalas) promedios.

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 } ] } ] }

Paso 4: Recibe actualizaciones con webhooks

Sondear la API funciona, pero los webhooks son mejores. Registra un endpoint y PollsLive envía eventos firmados con HMAC -vote.created, poll.published, session.started/ended- para que tu app reaccione en tiempo real. Verifica la firma y luego actualiza tu interfaz o reenvía el evento.

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);
}

Ese es todo el ciclo: crear, insertar, leer, reaccionar. Para la referencia completa -cada endpoint, scope y tipo de evento- consulta la documentación para desarrolladores, y para un ejemplo práctico, llevar resultados en vivo a un panel interno con webhooks.

Tip

Empieza con la API REST para crear y publicar, y añade webhooks cuando necesites recibir resultados en vivo.

Para compartir sin código, consulta compartir e insertar tu encuesta.

Construye sobre PollsLive: crea encuestas, dirige sesiones en vivo, obtén resultados y recibe webhooks desde tu propio código.

Lee la documentación para desarrolladores

Usamos cookies esenciales para mantener tu sesión iniciada y evitar votos duplicados. Con tu permiso, también usamos Cloudflare Web Analytics para contar las visitas a las páginas y el Whop Pixel para ver qué visitas terminan en una compra. Política de cookies