Sign in with a code
const url = 'https://your-tenant-host/v1/id/sign-in/email-otp';const options = { method: 'POST', headers: {'x-edgekit-site-id': 'site_example', 'Content-Type': 'application/json'}, body: '{"email":"user@example.com","otp":"482913","firstName":"Ada","lastName":"Lovelace","userTraits":{"favouriteSection":"business"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://your-tenant-host/v1/id/sign-in/email-otp \ --header 'Content-Type: application/json' \ --header 'x-edgekit-site-id: site_example' \ --data '{ "email": "user@example.com", "otp": "482913", "firstName": "Ada", "lastName": "Lovelace", "userTraits": { "favouriteSection": "business" } }'Creates the user when the address is new. Registration traits are honoured on that branch only; an existing user keeps the traits they have. A code is single-use, so a retry after success is refused.
Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”The site this request is for, within this tenant. Every official EdgeKit SDK sets it from the client you configured; set it yourself only when calling this API directly.
Example
site_exampleThe site this request is for, within this tenant. Every official EdgeKit SDK sets it from the client you configured; set it yourself only when calling this API directly.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Example
user@example.comExample
482913Example
AdaExample
Lovelaceobject
Example
{ "favouriteSection": "business"}Responses
Section titled “Responses”The user is signed in.
object
object
object
Example
{ "user": { "id": "01926f3a-8b4c-7d2e-9f10-2a3b4c5d6e7f", "email": "user@example.com", "emailVerified": true, "name": "Ada Lovelace", "firstName": "Ada", "lastName": "Lovelace", "image": null }, "session": { "id": "01926f3a-8b4d-7a11-8c22-3d4e5f6a7b8c", "kind": "edgekit", "expiresAt": "2026-08-30T09:00:00.000Z" }}Invalid request.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}Not allowed.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}Resource not found.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}Request validation failed.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}Too many requests. Retry-After says when to retry.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}Unexpected error.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}With Retry-After, briefly unavailable; without it, not configured.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}