Create or resume a human guest browser session.
curl --request POST \ --url https://auth.example.com/api/auth/guest/login \ --header 'Content-Type: application/json' \ --data '{ "clientId": "example", "authorizationChallengeId": "example", "human_verification_response": "example" }'Requires tenant guest login permission and explicit client guest permission. For OAuth login, supply an unexpired, unconsumed login authorization challenge for this tenant; requested scopes must be within the client’s anonymous allow-list. Reauthentication challenges are rejected. For direct browser login, omit the challenge and supply clientId. The client must permit browser Direct Auth from the request origin and allow the openid guest scope. Direct login creates only a cookie session, not an OAuth grant. An invalid supplied challenge never falls back to direct login. Subject creation and resumption use a private HttpOnly Secure SameSite=Lax cookie, authrim_guest_resume; a device identifier alone is never accepted as proof. Resume credentials expire 180 days after creation without deleting the account. A live registered browser session must be logged out first (409). Success sets authrim_session and returns no tokens or redirect URL; continue the original authorization transaction through the standard login continuation when using a challenge. Requests are subject to browser CSRF protection, configured login human verification, and strict rate limiting. Human verification is bound to this login transaction and private resume credential for up to five minutes to permit asynchronous provisioning retries.
Request Body required
Section titled “Request Body required ”object
Client for direct browser login; ignored when an authorization challenge is supplied.
Token from the configured login human-verification provider.
object
Client for direct browser login; ignored when an authorization challenge is supplied.
Token from the configured login human-verification provider.
Example generated
{ "clientId": "example", "authorizationChallengeId": "example", "human_verification_response": "example"}Responses
Section titled “ Responses ”Guest browser session established.
object
Example
{ "success": true}Anonymous account routing is being created or an expired route is being released.
object
Present for passkey signup only. The Login UI sends this continuation value back with the provisioning token so a retried request reuses the same account candidate.
object
Example
{ "status": "provisioning", "status_endpoint": "/api/v1/auth/account-provisioning/status"}Invalid challenge, disabled guest login, or disallowed guest scopes.
Resume credential expired or revoked, or account no longer eligible.
A registered browser session already exists; log out before creating a guest.
Too many login attempts.
Guest account storage or settings are temporarily unavailable.