Skip to main content
POST
RegisterInterest

Headers

Idempotency-Key
string

Optional client-generated idempotency key. Retrying a POST with the same key and an identical request body replays the original response (only the status, body, and Content-Type are reproduced) instead of re-executing; reusing the key with a different body is rejected with 422. For mutations this avoids duplicating the side effect, while for batch-read POSTs it replays a cached snapshot that can be up to 24 hours stale. Keys are scoped per authenticated caller (falling back to the source IP for unauthenticated endpoints) and retained for 24 hours.

Required string length: 1 - 255
Pattern: ^[\x21-\x7E]{1,255}$

Body

application/json

RegisterInterestRequest carries a Pro-waitlist signup.

email
string
required
turnstileToken
string
required

Cloudflare Turnstile token. Desktop sources bypass Turnstile; see handler.

source
string
appVersion
string
referredBy
string
website
string

Honeypot — bots auto-fill this hidden field; real submissions leave it empty.

Response

Successful response

RegisterInterestResponse mirrors the Convex registerInterest:register return shape.

status
string

"registered" for a new signup; "already_registered" for a returning email.

referralCode
string

Stable referral code for this email.

referralCount
integer<int32>

Number of signups credited to this email.

position
integer<int32>

Waitlist position at registration time. Present only when status == "registered".

emailSuppressed
boolean

True when the email is on the suppression list (prior bounce) and no confirmation was sent.