WaitlarkHelpwaitlark.com →

Sign people up with the JSON API

Send signups from your own code and get the token for follow-up questions back.

Your own form, app or flow can sign people up with a POST and Accept: application/json:

const res = await fetch('https://api.waitlark.com/v1/p/pk_yourproject/join', {
  method: 'POST',
  body: new FormData(form),            // email, lang, your questions, cf-turnstile-response
  headers: { Accept: 'application/json' },
});
const out = await res.json();           // { ok: true, token: "…", position: 142 }

Requests are only accepted from the sites on your project's list, and need the bot check token.

The reply

  • ok: true with a token and a position. A second signup with the same address gets a reply that looks exactly the same.
  • ok: false with an error code. See Error codes.

Follow-up questions

Use the token to save answers to the questions you ask after signup:

await fetch('https://api.waitlark.com/v1/p/pk_yourproject/profile', {
  method: 'POST',
  body: new URLSearchParams({ token, monthly_orders: '100_1k' }),
  headers: { Accept: 'application/json' },
});
  • Send only the questions that were answered; others stay as they were.
  • Send a question with an empty value to clear an earlier answer.
  • Answers can be changed for seven days after signup.
  • The reply is always { "ok": true }, so a wrong token can't be used to find out anything.

Limits

  • 20 requests a minute per visitor and project.
  • A request body of at most 32 KB, with a Content-Length header (browsers always send one).

Updated 19 October 2026