Webhooks and API

Waitlist API and signed webhooks: one POST, retries included

You want signups in Slack, a sheet, your CRM, or your own database without exporting every morning. And when you build your own form, the server should still keep the count honest.

Plans: The API and API keys are on all plans. Webhooks require Starter or Pro. Limits: 32 KB bodies, 10 submits per minute per IP per waitlist, 120 per minute per waitlist.

How it works

What the setting does

One POST to join

Send the field keys as JSON to /api/v1/waitlists/{slug}/entries. You get 201 joined with the position and a status link, 200 already_joined, 409 waitlist_full or slot_full with reopensAt, 423 waitlist_closed, or 422 with per-field errors.

API keys skip the captcha

Generate a key in the Share tab under For developers and send it as a Bearer token from your server. Browser calls use the Turnstile token the form endpoint tells you about.

Read the form as JSON

GET /api/v1/waitlists/{slug}/form returns the fields, theme, status, count, capacity, next opening time, and spots left per slot, so a custom UI can say what the hosted page says.

Signed webhooks with retries

Set a URL on the Webhooks tab. Every signup and every status change is POSTed as JSON with an HMAC-SHA256 signature. Failed deliveries retry six times with backoff, and the delivery log lets you redeliver by hand.

Zapier, Make, or your own script

Point the webhook at a catch hook and route the payload anywhere. The payload carries the position, email, every field, and the entry status.

Live demo

See it on the developers recipe

This is the real form the "API preview" recipe creates, in preview mode. No cap. The list stays open until you pause it.

See the developers recipe →

40 already joined

Ready-made waitlist

Create it with this feature already set

One click after sign-in. Every value stays editable in the Settings and Form tabs.

Developers

Recipe

API preview

Open no cap

No cap. The list stays open until you pause it.

  • Unlimited
  • Open any time
  • 3 fields

FAQ

Questions

Which events do webhooks send?

entry.created on every signup and entry.status_changed when an entry is marked served, cancelled by the joiner or owner, or put back to waiting.

How do I verify a webhook?

Compute HMAC-SHA256 over the timestamp and raw body with your webhook secret and compare it to the v1 value in the X-Waitlist-Signature header. The docs include a ten-line example.

Is there an SDK?

No. The API is one POST and one GET. A fetch call is shorter than an import, and curl, fetch, and plain HTML examples are in the Share tab.

Can I read entries over the API?

Not yet. Use the CSV export or receive entries as they arrive via webhooks.

Set it once. The form does the rest.

Free for 100 signups a month. Unlimited waitlists on every plan.

Create your waitlist