Complete a passwordless flow (OTP or magic link): consume the code and open a session.
POST
End-user session operationId: complete_passwordless/v1/auth/passwordless/verify Authorization
Called from the browser with the publishable application id (x-application-id); the access token lives in memory.
Request body · required
codestring requiredverification_idstring<uuid> required uuid
Responses
200 Signed in or MFA required
{
"data": {
"consent_documents": [
{
"doc_type": null,
"url": null,
"version": null
}
],
"mfa": {
"methods": [
null
],
"pending_token": "string"
},
"pending_token": "string",
"status": "string",
"tokens": {
"aal": 0,
"access_token": "string",
"expires_in": 0,
"refresh_token": "string",
"session_id": "018f3c4a-7b2e-7c1d-9e0a-1f2b3c4d5e6f",
"token_type": "string"
},
"user": {
"created_at": "2026-01-15T09:30:00Z",
"email_verified": false,
"id": "018f3c4a-7b2e-7c1d-9e0a-1f2b3c4d5e6f",
"primary_email": "string",
"profile": {},
"status": "string"
}
},
"error": {
"code": "string",
"message": "string"
},
"meta": {
"timestamp": "string"
},
"success": false
} 422 Invalid or expired verification
Request
curl -X POST "http://localhost:8080/v1/auth/passwordless/verify" \
-H "Content-Type: application/json" \
-d '{
"code": "string",
"verification_id": "018f3c4a-7b2e-7c1d-9e0a-1f2b3c4d5e6f"
}'Try it
live requestPOST
http://localhost:8080/v1/auth/passwordless/verify