Complete MFA challenge to obtain JWT
const url = 'https://example.com/v1/auth/mfa/challenge';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"challenge_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","code":"example"}'};
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://example.com/v1/auth/mfa/challenge \ --header 'Content-Type: application/json' \ --data '{ "challenge_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "code": "example" }'Request Body required
Section titled “Request Body required ”object
6-digit TOTP code or backup code.
Example generated
{ "challenge_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "code": "example"}Responses
Section titled “ Responses ”MFA verified. Returns signed system JWT.
object
Signed system JWT. Null when enrollment_required is true.
If true, user must enroll MFA before accessing any other endpoint.
If true, user must enroll MFA. No token is issued — use challenge_id to complete enrollment.
Challenge ID for the enrollment flow. Only present when enrollment_required is true.
Example generated
{ "token": "example", "expires_at": "2026-04-15T12:00:00Z", "mfa_setup_required": true, "enrollment_required": true, "challenge_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}Malformed request.
object
Machine-readable error code (e.g. “not_found”, “tenant_mismatch”).
Human-readable description of the error.
Optional additional context about the error.
object
Policy notices from determining Cedar rules, if applicable.
Example generated
{ "code": "example", "message": "example", "details": {}, "notices": [ "example" ]}Invalid code, expired challenge, or too many attempts.
object
Machine-readable error code (e.g. “not_found”, “tenant_mismatch”).
Human-readable description of the error.
Optional additional context about the error.
object
Policy notices from determining Cedar rules, if applicable.
Example generated
{ "code": "example", "message": "example", "details": {}, "notices": [ "example" ]}