REST API
Create and control waiting rooms programmatically with the Waitrooms REST API.
Create a key under Developers. Live keys start wr_live_; test keys wr_test_ work on test rooms only.
Terminal
curl https://api.waitrooms.dev/v1/rooms \
-H "Authorization: Bearer wr_live_…"Rooms
| Request | Does |
|---|---|
GET /v1/rooms | List rooms with live status. |
POST /v1/rooms | Create: name, host, path, capacity, optional mode, sessionMinutes, template. |
GET /v1/rooms/:id | One room (ID or slug). |
PATCH /v1/rooms/:id | Change settings, including enabled (protection) and capacity. |
DELETE /v1/rooms/:id | Delete. |
GET /v1/rooms/:id/live | Line length, admit rate and the last 40 minutes. |
Controls
| Request | Body |
|---|---|
POST /v1/rooms/:id/pause | { "paused": true } |
POST /v1/rooms/:id/admit | { "n": 500 } |
POST /v1/rooms/:id/prequeue | Hold everyone until doors open. |
POST /v1/rooms/:id/start | { "shuffle": true } to open doors now. |
POST /v1/rooms/:id/emergency | Revoke every pass issued so far. |
Events, rules and analytics
| Request | Does |
|---|---|
GET/POST /v1/rooms/:id/events | List or schedule: name, preAt, startAt, endAt (ISO 8601), capacity, shuffle, endAction. |
GET/POST /v1/rooms/:id/rules | Bypass rules: kind, key, value. |
POST /v1/rooms/:id/vip-links | expiresInHours, maxUses. |
GET /v1/analytics?room=&days= | Visitors, waits, abandonment, conversion, countries. |
Errors are JSON: { "error": "code", "message": "…" }. API-key requests are rate limited to 300 a minute per key, and show up in the dashboard's request log.
Something unclear? Email hello@waitrooms.dev.