Développeurs
Webhooks
PollsLive peut envoyer par POST des événements signés vers votre endpoint lorsque les sondages et les sessions en direct changent, pour que vos systèmes réagissent en temps réel au lieu d'interroger.
Configuration
Ajoutez un endpoint dans Studio → API développeur : saisissez votre URL HTTPS et sélectionnez les événements auxquels vous abonner. PollsLive affiche un secret de signature (whsec_…) une seule fois. Conservez-le pour vérifier les livraisons.
Événements
poll.published: A poll was published and is now live/shareable.poll.closed: Voting was closed on a poll.vote.created: A new vote was recorded on an async poll.session.started: A live presenter session was started.session.ended: A live presenter session ended.response.created: An async response was recorded. Live session answers do not emit this event.
Charge utile
Chaque livraison est un corps JSON contenant le nom de l'événement, un horodatage et les données de l'événement :
{
"event": "poll.published",
"createdAt": "2026-06-18T12:00:00.000Z",
"data": {
"poll": { "id": "...", "slug": "...", "title": "...", "shareUrl": "..." }
}
}Chaque requête porte également ces en-têtes :
X-PollsLive-Event: le nom de l'événement.X-PollsLive-Delivery: un id de livraison unique.X-PollsLive-Signature:t=<unix>,v1=<hex>.
Vérifier les signatures
Calculez un HMAC-SHA256 de <t>.<rawBody> à l'aide de votre secret de signature et comparez-le à la valeur v1 (en temps constant) :
import crypto from "crypto";
function verify(rawBody, header, secret) {
const parts = Object.fromEntries(
header.split(",").map((kv) => kv.split("="))
);
const expected = crypto
.createHmac("sha256", secret)
.update(`${parts.t}.${rawBody}`)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(parts.v1)
);
}Répondez avec un statut 2xx pour accuser réception. Rejetez tout ce qui échoue à la vérification.
Nouvelles tentatives
Si votre endpoint est injoignable ou renvoie un statut autre que 2xx, PollsLive réessaie avec un backoff exponentiel (environ 1m, 5m, 30m, 2h, 6h) jusqu'à six tentatives. Rendez votre gestionnaire idempotent à l'aide de l'id X-PollsLive-Delivery .
Vous avez encore des questions ?
Notre équipe se fera un plaisir de vous aider.