Webhooks
Get signed HTTP callbacks when queues start or drain, events begin or end, and visitors are admitted.
Add an HTTPS endpoint under Developers and choose events. Webhooks are on the Growth plan and above.
| Event | When |
|---|---|
queue.started | A line forms in a room. |
queue.drained | The line clears. |
event.started | A scheduled event's doors open. |
event.ended | A scheduled event ends. |
user.admitted | A visitor is let in (high volume). |
JSON
{
"type": "queue.started",
"created_at": "2026-11-27T05:00:12.044Z",
"data": { "room": "summer-drop", "in_queue": 4120 }
}Verifying signatures
Each request carries Waitrooms-Signature: t=<unix time>,v1=<hex>, where v1 is HMAC-SHA256 of t + "." + body with your endpoint's secret.
TypeScript
import { createHmac, timingSafeEqual } from "node:crypto";
export function verify(secret: string, header: string, body: string) {
const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
if (Math.abs(Date.now() / 1000 - Number(parts.t)) > 300) return false; // replay
const expected = createHmac("sha256", secret).update(`${parts.t}.${body}`).digest("hex");
return timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1 ?? ""));
}Respond with any 2xx status. Failures retry with exponential backoff for about a day, and every attempt is listed in the dashboard.
Something unclear? Email hello@waitrooms.dev.