mfa_required: true (and a session_token in pending-mfa status), once the identity has satisfied one of their active login MFA methods.identity_mfa_id (the email-mobile or authenticator method being used) together with code (the OTP emailed to the identity, or the current code from their authenticator app).assertion_response, the JSON object returned by the browser's startAuthentication() (from @simplewebauthn/browser) after calling POST /session-otps with { "type": "passkey" } to obtain the WebAuthn challenge. The server resolves which registered passkey was used directly from the assertion, so identity_mfa_id is never required for this flow.active, a fresh 30-day session token is issued, and the identity's basic profile is returned. This endpoint is intentionally unauthenticated (no Authorization header is checked) — the session_token supplied in the request body is what proves the caller already completed the first login factor (password or otherwise).curl --location --request PATCH '/identity-sessions' \
--header 'Content-Type: application/json' \
--data '{
"session_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InNlc3Npb25faWQiOiIwMUpTRVNTMTIzNDU2Nzg5MEFCQ0RFRiJ9fQ.s1gnatur3",
"identity_mfa_id": "01JMFA1234567890ABCDEFGHIJ",
"code": "482913"
}'{
"message": "Request successful",
"status": "success",
"data": {
"mfa_required": false,
"session_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InNlc3Npb25faWQiOiIwMUpTRVNTMTIzNDU2Nzg5MEFCQ0RFRiJ9fQ.n3wt0k3n",
"session_id": "01JSESS1234567890ABCDEFGHI",
"identity_id": "01JIDENT234567890ABCDEFGHI",
"expires_at": 1793270400000,
"identity": {
"name": "Jane Doe",
"primary_email": "jane.doe@example.com",
"status": "active"
}
}
}