RegisterInterest
RegisterInterest adds an email to the Pro waitlist and sends a confirmation email. Turnstile-gated (desktop sources authenticate a bypass with a shared-secret HMAC instead). A failed Cloudflare Turnstile check returns 403 Bot verification failed; a desktop-source request with a missing or invalid HMAC signature returns 403 Desktop authentication failed.
Headers
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.
1 - 255^[\x21-\x7E]{1,255}$Body
RegisterInterestRequest carries a Pro-waitlist signup.
Response
Successful response
RegisterInterestResponse mirrors the Convex registerInterest:register return shape.
"registered" for a new signup; "already_registered" for a returning email.
Stable referral code for this email.
Number of signups credited to this email.
Waitlist position at registration time. Present only when status == "registered".
True when the email is on the suppression list (prior bounce) and no confirmation was sent.
