Send a sign-in code
Returns an opaque `requestId` — the half the client keeps — and emails the code. An address with no account still gets a requestId (a decoy that resolves to no row), so the response shape never differs. The code is stored only as a salted digest and is attempt-capped.
Path Parameters
Your app's unique id. Find it in the console under the app's Settings, or in the URL of any app page.
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/497f6eca-6276-4993-bfeb-53cbbbba6f08/auth/otp/request" \ -H "Content-Type: application/json" \ -d '{ "email": "user@example.com" }'{ "message": "string", "requestId": "string"}Sign in with a magic link
Spends the token from the emailed URL and issues a session. Single use: a second attempt with the same token fails like any other invalid link.
Sign in with a code
Pairs the requestId with the emailed code. A wrong code costs one attempt but does NOT consume the request, so a typo does not force a new code; exhausting the attempt budget revokes it.