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.

EventWhen
queue.startedA line forms in a room.
queue.drainedThe line clears.
event.startedA scheduled event's doors open.
event.endedA scheduled event ends.
user.admittedA 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.