Skip to main content
POST

Authorizations

Authorization
string
header
required

Firebase ID token from /auth or any paid route, sent as a Bearer token: Authorization: Bearer <id_token> (the Bearer prefix is required).

Headers

Idempotency-Key
string

Optional client-generated unique key (a UUID works) that makes this write safe to retry. A retry with the same key within 24 hours returns the recorded response of the original request, marked with an Idempotency-Replayed: true header, instead of performing the write again. Reusing a key with a different body or route is rejected with 422 (code: idempotency_key_reused); a retry that arrives while the original is still running gets 409 (code: idempotency_key_in_progress), so wait a moment and retry with the same key. Keys are scoped to the authenticated account.

Maximum string length: 255

Body

application/json
email
string<email>

Only for an account with no email on file. The account holder's email.

phone
string

Only for an account with no email on file, instead of email. E.164, e.g. +15551234567.

Response

The code was sent, or the account is already linked.

status
enum<string>
required
Available options:
code_sent,
linked
note
string
required
channel
enum<string>
Available options:
email,
phone
sent_to
string

The destination, masked.

expires_at
integer

When the code stops working, in milliseconds since the epoch.