API Reference
OIDC
Platform

Client Signin

AdminUpdated Sep 11, 2026

Client Signin

Frontend API — publishable key (x-publishable-key) plus the user session.

29 routes. Each row is one endpoint with its explanation and whether it honours the Idempotency-Key header.

Method & path

Idem

Explanation

POST /v1/client/sign_ups

Start an email + password sign-up. Returns an attempt whose status drives the next step.

POST /v1/client/sign_ups/:id/prepare_verification

Reissue a verification code. Rate limited to 1/30s and 5/hour per address.

POST /v1/client/sign_ups/:id/attempt_verification

Submit an email verification code. Three attempts, then the code is invalidated.

POST /v1/client/password_resets

Request a reset. Identical response for an address that does not exist.

POST /v1/client/password_resets/:id/attempt_verification

Submit the emailed code. Advances to MFA when the account has it.

POST /v1/client/password_resets/:id/attempt_second_factor

Second factor during a reset. Reset never bypasses MFA.

POST /v1/client/password_resets/:id/set_new_password

Set the new password, revoke every session, and bump sessions_version.

POST /v1/client/sign_ins

Start a sign-in. Returns the instance factor list, identical for unknown identifiers.

POST /v1/client/qr_sign_ins

Start a QR cross-device sign-in: returns the QR token/verification URL, a number-match code, and this tab’s poll secret. Opt-in; unauthenticated (publishable key).

GET /v1/client/qr_sign_ins/:qr_token

Phone lookup for a pending QR sign-in: the requesting browser’s device + coarse location and the match code to confirm. Requires the phone’s session.

POST /v1/client/qr_sign_ins/:qr_token/approve

Phone approves a pending QR sign-in after confirming the number-match code; completes the attempt so the browser’s poll mints a session. Requires the phone’s session.

POST /v1/client/qr_sign_ins/:qr_token/deny

Phone denies a pending QR sign-in, abandoning the attempt so the browser’s poll never completes. Requires the phone’s session.

POST /v1/client/sign_ins/:id/prepare_first_factor

Send an email code or magic link. Returns the polling secret to this tab.

GET /v1/client/sign_ins/verify

Magic-link target. Completes the attempt; signs in no one here.

GET /v1/client/sign_ins/:id

Poll an attempt with its poll_secret; returns a ticket once complete.

POST /v1/client/sign_ins/:id/attempt_first_factor

Submit a first factor. Advances to MFA or completes, as the server decides.

POST /v1/client/sign_ins/:id/prepare_second_factor

Offer a passkey as the second factor. Credentials are named safely here.

POST /v1/client/sign_ins/:id/prepare_mfa_enrollment

Start TOTP enrollment for an attempt parked by a required MFA policy.

POST /v1/client/sign_ins/:id/attempt_mfa_enrollment

Confirm enrollment with two consecutive codes and complete the sign-in.

POST /v1/client/sign_ins/:id/attempt_second_factor

Submit a TOTP or recovery code. The only route out of needs_second_factor.

POST /v1/client/sign_ins/passkey/begin

Begin passwordless sign-in. Names no user and lists no credentials.

POST /v1/client/sign_ins/passkey/finish

Verify an assertion and issue a session. The credential names the user.

POST /v1/client/sign_ins/oauth

Begin an OAuth sign-in and receive the provider authorization URL.

POST /v1/client/sign_ins/id_token

Native / One-Tap sign-in: verify a provider id_token (Google GSI, Apple, Facebook Limited Login) and complete the sign-in, honouring the MFA gate.

POST /v1/client/sign_ins/ldap

LDAP/AD inbound sign-in: authenticate against a configured directory (connection_id + username + password) and JIT create/link the Atlas account, honouring the MFA gate.

POST /v1/client/sign_ins/kerberos

Kerberos / Integrated Windows Auth (IWA / SPNEGO) sign-in: a reverse proxy authenticates the principal and forwards it in a header; Atlas trusts it only behind a matching x-atlas-kerberos-secret, then resolves/JIT-links the account honouring the MFA gate. Opt-in, fail-closed.

POST /v1/client/sign_ins/external_jwt

Migration interop: verify a foreign provider JWT (a configured externalJwt issuer) against its JWKS and complete the sign-in (JIT + MFA gate), to run Atlas alongside an old provider.

POST /v1/client/sign_ins/sso

Begin an enterprise SSO sign-in. Resolves an OIDC connection by id or email domain and returns the IdP authorization URL.

POST /v1/client/sign_ins/saml

Begin an enterprise SAML sign-in. Resolves a SAML connection by id or email domain and returns the IdP AuthnRequest URL.

Was this page helpful?