Herald
OpenapiAuth

Verify an email OTP login code and issue a session.

On a matching code: consumes it (one-time), then either logs the existing user in (login-as-consent gate) or auto-registers a new account (create-without-password → activate → register-as-consent) and issues a Bearer token family via `RedisBrowserTokenService`. Returns `BrowserTokenResponse`.

POST
/api/auth/{realmId}/login/email-otp/verify

On a matching code: consumes it (one-time), then either logs the existing user in (login-as-consent gate) or auto-registers a new account (create-without-password → activate → register-as-consent) and issues a Bearer token family via RedisBrowserTokenService. Returns BrowserTokenResponse.

Path Parameters

realmId*string

Realm ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

agreements?array<>|null
clientId*string
code*string
email*string
turnstileToken?string|null

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/auth/string/login/email-otp/verify" \  -H "Content-Type: application/json" \  -d '{    "clientId": "string",    "code": "string",    "email": "string"  }'
{  "accessToken": "string",  "expiresIn": 0,  "refreshExpiresIn": 0,  "refreshToken": "string",  "tokenType": "string"}
{  "code": "string",  "details": null,  "message": "string",  "requestId": "string",  "status": 0}
{  "code": "string",  "details": null,  "message": "string",  "requestId": "string",  "status": 0}
{  "agreements": [    {      "agreement_type": "string",      "effective_at": "2019-08-24T14:15:22Z",      "external_url": "string",      "mode": "full_text",      "summary": "string",      "title": "string",      "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c",      "version_no": 0    }  ],  "code": "string",  "consentRequired": true,  "message": "string"}
{  "code": "string",  "details": null,  "message": "string",  "requestId": "string",  "status": 0}
{  "code": "string",  "details": null,  "message": "string",  "requestId": "string",  "status": 0}