FAPI
- Written for
- + Written for
- Deprecated
- + Deprecated
- Applies to
- + Applies to
AdminUpdated Sep 12, 2026
GET
https://{apiHost}/v1/appearanceThe embeddable widget's public theme + enabled providers/strategies, resolved by publishable key or host. Public only — no secrets, no customCss/customHtml.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/appearance"POST
https://{apiHost}/v1/client/sign_upsStart an email + password sign-up. Returns an attempt whose status drives the next step.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ups"POST
https://{apiHost}/v1/client/sign_ups/{id}/prepare_verificationReissue a verification code. Rate limited to 1/30s and 5/hour per address.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ups/{id}/prepare_verification"POST
https://{apiHost}/v1/client/sign_ups/{id}/attempt_verificationSubmit an email verification code. Three attempts, then the code is invalidated.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ups/{id}/attempt_verification"POST
https://{apiHost}/v1/client/password_resetsRequest a reset. Identical response for an address that does not exist.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/password_resets"POST
https://{apiHost}/v1/client/password_resets/{id}/attempt_verificationSubmit the emailed code. Advances to MFA when the account has it.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/password_resets/{id}/attempt_verification"POST
https://{apiHost}/v1/client/password_resets/{id}/attempt_second_factorSecond factor during a reset. Reset never bypasses MFA.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/password_resets/{id}/attempt_second_factor"POST
https://{apiHost}/v1/client/password_resets/{id}/set_new_passwordSet the new password, revoke every session, and bump sessions_version.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/password_resets/{id}/set_new_password"POST
https://{apiHost}/v1/client/sign_insStart a sign-in. Returns the instance factor list, identical for unknown identifiers.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins"POST
https://{apiHost}/v1/client/qr_sign_insStart 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).
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/qr_sign_ins"GET
https://{apiHost}/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.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
qr_token | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/qr_sign_ins/{qr_token}"POST
https://{apiHost}/v1/client/qr_sign_ins/{qr_token}/approvePhone 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.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
qr_token | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/qr_sign_ins/{qr_token}/approve"POST
https://{apiHost}/v1/client/qr_sign_ins/{qr_token}/denyPhone denies a pending QR sign-in, abandoning the attempt so the browser’s poll never completes. Requires the phone’s session.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
qr_token | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/qr_sign_ins/{qr_token}/deny"POST
https://{apiHost}/v1/client/telemetryAnti-bot signal beacon: the SDK posts anonymised device + behavioural signals for the sign-in/sign-up form; the server enriches (salt-hashed IP, coarse geo, heuristic score) and appends to the bot_signals lake. Fire-and-forget (202), never blocks a sign-in.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/telemetry"GET
https://{apiHost}/v1/assets/*Public read for an uploaded image (avatar/logo) — streamed from object storage with an immutable long cache-control. Unauthenticated by design; only validated images are ever stored here.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/assets/*"POST
https://{apiHost}/v1/client/me/avatarUpload the signed-in user's avatar. The RAW image bytes are the body (Content-Type image/png|jpeg|gif|webp), validated by magic number; sets the user's image_url. Returns 503 when image storage is not configured.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/avatar"POST
https://{apiHost}/v1/client/sign_ins/{id}/prepare_first_factorSend an email code or magic link. Returns the polling secret to this tab.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/{id}/prepare_first_factor"GET
https://{apiHost}/v1/client/sign_ins/verifyMagic-link target. Completes the attempt; signs in no one here.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/sign_ins/verify"GET
https://{apiHost}/v1/client/sign_ins/{id}Poll an attempt with its poll_secret; returns a ticket once complete.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/sign_ins/{id}"POST
https://{apiHost}/v1/client/sign_ins/{id}/attempt_first_factorSubmit a first factor. Advances to MFA or completes, as the server decides.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/{id}/attempt_first_factor"POST
https://{apiHost}/v1/client/sign_ins/{id}/prepare_second_factorOffer a passkey as the second factor. Credentials are named safely here.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/{id}/prepare_second_factor"POST
https://{apiHost}/v1/client/sign_ins/{id}/prepare_mfa_enrollmentStart TOTP enrollment for an attempt parked by a required MFA policy.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/{id}/prepare_mfa_enrollment"POST
https://{apiHost}/v1/client/sign_ins/{id}/attempt_mfa_enrollmentConfirm enrollment with two consecutive codes and complete the sign-in.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/{id}/attempt_mfa_enrollment"POST
https://{apiHost}/v1/client/sign_ins/{id}/attempt_second_factorSubmit a TOTP or recovery code. The only route out of needs_second_factor.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/{id}/attempt_second_factor"GET
https://{apiHost}/v1/client/me/passkeysList the signed-in user passkeys. Never returns credential material.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/passkeys"POST
https://{apiHost}/v1/client/me/passkeys/beginOptions for navigator.credentials.create, with a single-use challenge.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/passkeys/begin"POST
https://{apiHost}/v1/client/me/passkeys/finishVerify and store a new passkey. Requires a session.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/passkeys/finish"DELETE
https://{apiHost}/v1/client/me/passkeys/{id}Remove a passkey. Another user passkey id is 404, never 403.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X DELETE "https://{apiHost}/v1/client/me/passkeys/{id}"PATCH
https://{apiHost}/v1/client/me/passkeys/{id}Rename a passkey so the user can tell their devices apart.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X PATCH "https://{apiHost}/v1/client/me/passkeys/{id}"GET
https://{apiHost}/v1/client/me/trusted_devicesList browsers trusted to skip 2FA (§5.3). Never returns the token hash.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/trusted_devices"DELETE
https://{apiHost}/v1/client/me/trusted_devicesRevoke every trusted device for the signed-in user.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X DELETE "https://{apiHost}/v1/client/me/trusted_devices"DELETE
https://{apiHost}/v1/client/me/trusted_devices/{id}Revoke one trusted device; its next sign-in must pass 2FA again.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X DELETE "https://{apiHost}/v1/client/me/trusted_devices/{id}"GET
https://{apiHost}/v1/client/me/oauth_grantsList the third-party apps this user authorized (Sign in with <Tenant>).
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/oauth_grants"DELETE
https://{apiHost}/v1/client/me/oauth_grants/{id}Disconnect an authorized app: forget consent and revoke its live tokens.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X DELETE "https://{apiHost}/v1/client/me/oauth_grants/{id}"POST
https://{apiHost}/v1/client/sign_ins/passkey/beginBegin passwordless sign-in. Names no user and lists no credentials.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/passkey/begin"POST
https://{apiHost}/v1/client/sign_ins/passkey/finishVerify an assertion and issue a session. The credential names the user.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/passkey/finish"POST
https://{apiHost}/v1/client/organizationsCreate an organization, if the instance allows user-created ones.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/organizations"GET
https://{apiHost}/v1/client/organizations/{id}Read the active organization. Gated by the ACTIVE org role.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/organizations/{id}"PATCH
https://{apiHost}/v1/client/organizations/{id}Update the active organization. Requires org:sys_profile:manage.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X PATCH "https://{apiHost}/v1/client/organizations/{id}"GET
https://{apiHost}/v1/client/organizations/{id}/membershipsList members of the active organization as a display directory.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/organizations/{id}/memberships"POST
https://{apiHost}/v1/client/organizations/{id}/invitationsInvite someone. Requires org:sys_memberships:manage.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/organizations/{id}/invitations"DELETE
https://{apiHost}/v1/client/organizations/{id}/memberships/{userId}Remove a member. Removing the last admin returns LAST_ADMIN.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | |
userId | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X DELETE "https://{apiHost}/v1/client/organizations/{id}/memberships/{userId}"POST
https://{apiHost}/v1/client/organization_invitations/{invitationId}/acceptAccept an invitation addressed to one of your verified emails. Seats you as a member.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
invitationId | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/organization_invitations/{invitationId}/accept"GET
https://{apiHost}/v1/client/organizations/{id}/membership_requestsList pending requests to join the active org. Requires org:sys_memberships:manage.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/organizations/{id}/membership_requests"POST
https://{apiHost}/v1/client/organizations/{id}/membership_requests/{reqId}/acceptAccept a join request, seating the user at the default member role (never admin).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | |
reqId | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/organizations/{id}/membership_requests/{reqId}/accept"POST
https://{apiHost}/v1/client/organizations/{id}/membership_requests/{reqId}/rejectReject a pending join request. No membership is created.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | |
reqId | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/organizations/{id}/membership_requests/{reqId}/reject"GET
https://{apiHost}/v1/client/meThe signed-in user with emails, linked accounts and passkeys.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me"PATCH
https://{apiHost}/v1/client/meUpdate profile and unsafe_metadata. public_metadata is refused.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X PATCH "https://{apiHost}/v1/client/me"GET
https://{apiHost}/v1/client/me/api_tokensList your own personal access tokens with their scopes, expiry and last-used time. Never returns a secret or its hash.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/api_tokens"POST
https://{apiHost}/v1/client/me/api_tokensMint a scoped personal access token (uat_) so an agent or script can drive your own account over the me-surface with a bearer header. Session-only; the one-time secret is shown exactly once.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/api_tokens"DELETE
https://{apiHost}/v1/client/me/api_tokens/{id}Revoke one of your own personal access tokens. Revocation is immediate and a revoked token fails closed on every later use.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X DELETE "https://{apiHost}/v1/client/me/api_tokens/{id}"GET
https://{apiHost}/v1/client/me/mcpDiscover the user-scoped MCP tools your personal access token can use, plus the recommended scope set for an account-management agent.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/mcp"POST
https://{apiHost}/v1/client/me/mcpJSON-RPC MCP endpoint: manage your own account as MCP tools (read/update profile, list sessions, revoke-all, list factors and more), authenticated by a personal access token.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/mcp"GET
https://{apiHost}/v1/client/me/data_exportList your own data-export requests and their status.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/data_export"POST
https://{apiHost}/v1/client/me/data_exportRequest an export of your own data (Article 15/20). Creates an async job; poll for the produced package. Rate-limited: one in flight, and a cooldown between requests.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/data_export"GET
https://{apiHost}/v1/client/me/data_export/{id}A data-export request with, once ready, the produced package — your profile, emails, linked accounts, memberships and more, with no password hash, token or secret.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/data_export/{id}"GET
https://{apiHost}/v1/client/me/deletion_requestList your own erasure requests and their status.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/deletion_request"POST
https://{apiHost}/v1/client/me/deletion_requestRequest erasure of your own account (Article 17). Scheduled after a grace/cancellation window, then fulfilled through the same soft-delete + PII-purge path a backend user-delete uses.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/deletion_request"POST
https://{apiHost}/v1/client/me/deletion_request/{id}/cancelCancel a pending erasure within the grace window. A fulfilled one is a 409.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/deletion_request/{id}/cancel"DELETE
https://{apiHost}/v1/client/me/deletion_request/{id}Cancel a pending erasure within the grace window (alias of /cancel).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X DELETE "https://{apiHost}/v1/client/me/deletion_request/{id}"POST
https://{apiHost}/v1/client/me/change_passwordChange your password. Verifies the current one, applies the sign-up policy, and revokes other sessions.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/change_password"POST
https://{apiHost}/v1/client/me/set_passwordSet a first password on an account that has none (anonymous guest or OAuth-only). Applies the sign-up policy; may graduate a guest to a permanent account.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/set_password"POST
https://{apiHost}/v1/client/me/email_addressesAdd an address. Starts unverified and sends a code.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/email_addresses"POST
https://{apiHost}/v1/client/me/email_addresses/{id}/attempt_verificationVerify an added address with its emailed code.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/email_addresses/{id}/attempt_verification"POST
https://{apiHost}/v1/client/me/email_addresses/{id}/primaryMake a verified address primary. Unverified addresses are refused.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/email_addresses/{id}/primary"DELETE
https://{apiHost}/v1/client/me/email_addresses/{id}Remove an address. Removing the last verified one is refused.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X DELETE "https://{apiHost}/v1/client/me/email_addresses/{id}"DELETE
https://{apiHost}/v1/client/me/external_accounts/{id}Unlink a provider. Removing the only sign-in method is refused.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X DELETE "https://{apiHost}/v1/client/me/external_accounts/{id}"GET
https://{apiHost}/v1/client/me/external_accounts/{provider}/tokenThe signed-in user's own provider access token, refreshed single-flight if stale. Never returns the refresh token.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
provider | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/external_accounts/{provider}/token"POST
https://{apiHost}/v1/client/me/external_accounts/connectStart an OAuth flow to link a NEW provider to the signed-in user (for a custom "Connect GitHub" button); returns the authorize URL. Binds to the current user, so no new session and no email resolution.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/external_accounts/connect"POST
https://{apiHost}/v1/client/me/external_accounts/{id}/reauthorizeRe-initiate the provider OAuth flow to request additional scopes for a linked account; returns the authorize URL. On callback the account scopes/token update.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/external_accounts/{id}/reauthorize"POST
https://{apiHost}/v1/client/me/external_accounts/{id}/revokeRevoke the stored provider token (best-effort at the provider) and clear it locally WITHOUT unlinking the account.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/external_accounts/{id}/revoke"GET
https://{apiHost}/v1/client/me/organizationsOrganization memberships for the signed-in user.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/organizations"POST
https://{apiHost}/v1/client/me/organization_membership_requestsRequest to join an organization whose verified domain matches your verified email.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/organization_membership_requests"GET
https://{apiHost}/v1/client/me/organization_suggestionsOrganizations you could join, discovered via your verified email domain.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/organization_suggestions"POST
https://{apiHost}/v1/client/me/organization_suggestions/{organizationId}/acceptAccept a suggestion, creating a pending join request an admin then decides.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
organizationId | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/organization_suggestions/{organizationId}/accept"GET
https://{apiHost}/v1/client/me/mfaList the signed-in user second factors. Never returns secrets or codes.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/mfa"POST
https://{apiHost}/v1/client/me/reauthenticateStep-up re-authentication: re-prove a credential (strategy "password" or "id_token") to refresh the session step-up window in place — no sign-out — so the next 2FA change is permitted. An id_token must already be linked to this user; it never attaches a new identity.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/reauthenticate"POST
https://{apiHost}/v1/client/me/mfa/totpBegin authenticator enrollment. Returns the secret exactly once.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/mfa/totp"POST
https://{apiHost}/v1/client/me/mfa/totp/{id}/verifyConfirm enrollment with a code, and receive recovery codes once.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/mfa/totp/{id}/verify"POST
https://{apiHost}/v1/client/me/mfa/smsEnroll a phone as an SMS second factor. Texts a code; returns the number masked.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/mfa/sms"POST
https://{apiHost}/v1/client/me/mfa/sms/{id}/verifyConfirm SMS enrollment with the texted code, and receive recovery codes once.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/mfa/sms/{id}/verify"GET
https://{apiHost}/v1/client/me/mfa/pushList registered push devices. Never returns the raw device token.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/mfa/push"POST
https://{apiHost}/v1/client/me/mfa/pushRegister a device for in-house push MFA. Pushes a number-matching challenge; never returns the device token.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/mfa/push"POST
https://{apiHost}/v1/client/me/mfa/push/challenges/{id}/respondDevice approve/deny + selected number for a push challenge (enrollment or sign-in).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/mfa/push/challenges/{id}/respond"DELETE
https://{apiHost}/v1/client/me/mfa/push/{deviceId}Remove a push device. Removing the last verified one removes the push factor.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
deviceId | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X DELETE "https://{apiHost}/v1/client/me/mfa/push/{deviceId}"POST
https://{apiHost}/v1/client/me/mfa/backup_codesIssue a fresh set of recovery codes, invalidating the previous set.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/mfa/backup_codes"DELETE
https://{apiHost}/v1/client/me/mfa/{id}Remove a factor. Removing the last one also drops recovery codes.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X DELETE "https://{apiHost}/v1/client/me/mfa/{id}"POST
https://{apiHost}/v1/client/sign_ins/oauthBegin an OAuth sign-in and receive the provider authorization URL.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/oauth"POST
https://{apiHost}/v1/client/sign_ins/id_tokenNative / One-Tap sign-in: verify a provider id_token (Google GSI, Apple, Facebook Limited Login) and complete the sign-in, honouring the MFA gate.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/id_token"POST
https://{apiHost}/v1/client/sign_ins/ldapLDAP/AD inbound sign-in: authenticate against a configured directory (connection_id + username + password) and JIT create/link the Atlas account, honouring the MFA gate.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/ldap"POST
https://{apiHost}/v1/client/sign_ins/kerberosKerberos / 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.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/kerberos"POST
https://{apiHost}/v1/client/sign_ins/external_jwtMigration 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.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/external_jwt"GET
https://{apiHost}/v1/client/me/backchannel_requestsList the current user’s pending CIBA backchannel approval requests.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/me/backchannel_requests"POST
https://{apiHost}/v1/client/me/backchannel_requests/{id}Approve or deny a pending CIBA backchannel request (session-only; a PAT cannot approve).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/me/backchannel_requests/{id}"GET
https://{apiHost}/v1/saml/idp/ssoAtlas-as-SAML-IdP SSO endpoint (session-gated). IdP-initiated (?sp=) or SP-initiated (SAMLRequest); returns a signed SAML Response auto-POST form.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/saml/idp/sso"PUT
https://{apiHost}/v1/saml/idp/ssoAtlas-as-SAML-IdP SSO endpoint (app.all method fan-out; behaves as GET/POST) — see GET /v1/saml/idp/sso.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X PUT "https://{apiHost}/v1/saml/idp/sso"POST
https://{apiHost}/v1/saml/idp/ssoAtlas-as-SAML-IdP SSO endpoint (session-gated), HTTP-POST binding — see GET /v1/saml/idp/sso.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/saml/idp/sso"DELETE
https://{apiHost}/v1/saml/idp/ssoAtlas-as-SAML-IdP SSO endpoint (app.all method fan-out; behaves as GET/POST) — see GET /v1/saml/idp/sso.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X DELETE "https://{apiHost}/v1/saml/idp/sso"PATCH
https://{apiHost}/v1/saml/idp/ssoAtlas-as-SAML-IdP SSO endpoint (app.all method fan-out; behaves as GET/POST) — see GET /v1/saml/idp/sso.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X PATCH "https://{apiHost}/v1/saml/idp/sso"TRACE
https://{apiHost}/v1/saml/idp/ssoAtlas-as-SAML-IdP SSO endpoint (app.all method fan-out; behaves as GET/POST) — see GET /v1/saml/idp/sso.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X TRACE "https://{apiHost}/v1/saml/idp/sso"GET
https://{apiHost}/v1/client/environmentThe instance's enabled social providers (and native client ids) for a publishable-key client. Never exposes secrets.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/environment"POST
https://{apiHost}/v1/oauth/telegramTelegram Login Widget sign-in: verify the widget payload HMAC against the bot token and complete the sign-in, honouring the MFA gate.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/oauth/telegram"POST
https://{apiHost}/v1/oauth/siwe/nonceSign-in with Ethereum (EIP-4361): mint a single-use nonce bound to a new attempt.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/oauth/siwe/nonce"POST
https://{apiHost}/v1/oauth/siwe/verifySign-in with Ethereum (EIP-4361): verify a signed message (domain, chain, nonce, validity, EIP-191/EIP-1271) and complete the sign-in, honouring the MFA gate.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/oauth/siwe/verify"POST
https://{apiHost}/v1/oauth/siws/nonceSign-in with Solana (SIWS): mint a single-use nonce bound to a new attempt.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/oauth/siws/nonce"POST
https://{apiHost}/v1/oauth/siws/verifySign-in with Solana (SIWS): verify a signed message (domain, network, nonce, validity, ed25519 signature) and complete the sign-in, honouring the MFA gate.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/oauth/siws/verify"POST
https://{apiHost}/v1/oauth/siwf/nonceSign-in with Farcaster (SIWF): mint a single-use nonce bound to a new attempt.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/oauth/siwf/nonce"POST
https://{apiHost}/v1/oauth/siwf/verifySign-in with Farcaster (SIWF): verify a signed SIWE message (domain, chain, nonce, validity, signature), prove on-chain that the custody address owns the claimed FID (Optimism ID Registry), and complete the sign-in, honouring the MFA gate.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/oauth/siwf/verify"POST
https://{apiHost}/v1/client/tickets/exchangeExchange a one-time ticket for session cookies.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/tickets/exchange"POST
https://{apiHost}/v1/client/sign_ins/ssoBegin an enterprise SSO sign-in. Resolves an OIDC connection by id or email domain and returns the IdP authorization URL.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/sso"POST
https://{apiHost}/v1/client/sign_ins/samlBegin an enterprise SAML sign-in. Resolves a SAML connection by id or email domain and returns the IdP AuthnRequest URL.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sign_ins/saml"GET
https://{apiHost}/discourse/ssoDiscourseConnect provider endpoint. Verifies the forum HMAC (constant-time), authenticates via the hosted session, and signs the identity payload back to the return_sso_url whose origin is pinned to the connection.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/discourse/sso"GET
https://{apiHost}/v1/clientBoot the client. Returns session: null for a signed-out visitor, never 401.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client"GET
https://{apiHost}/v1/client/sessionsList the signed-in user's own active sessions/devices, flagging the current one.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/sessions"POST
https://{apiHost}/v1/client/sessions/revoke_allSign out of every other device. Spares the current session; bumps sessions_version.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sessions/revoke_all"POST
https://{apiHost}/v1/client/sessions/{id}/touchSwitch the active organization. Membership is resolved server-side.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sessions/{id}/touch"POST
https://{apiHost}/v1/client/sessions/{id}/tokensRotate the refresh token and mint a session JWT. Reads the refresh cookie only.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sessions/{id}/tokens"POST
https://{apiHost}/v1/client/sessions/{id}/revokeRevoke one session and clear its cookies.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sessions/{id}/revoke"GET
https://{apiHost}/v1/client/billing/plansPublic list of the instance's active end-user billing plans for display (no Stripe price ids or secrets).
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/billing/plans"POST
https://{apiHost}/v1/client/billing/checkoutCreate a Stripe Checkout Session to subscribe the signed-in user (or an org they administer) to a plan. Returns {url}; never changes subscription state.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/billing/checkout"GET
https://{apiHost}/v1/client/billing/subscriptionRead the signed-in user's subscription, or an org's (org_id) when the caller is a member — status plus the active plan and its features.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X GET "https://{apiHost}/v1/client/billing/subscription"POST
https://{apiHost}/v1/client/billing/portalCreate a Stripe Billing Portal session for the subject's customer (self, or an org the caller administers) to manage or cancel. Returns {url}.
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/billing/portal"POST
https://{apiHost}/v1/client/sessions/{id}/tokens/{template}Mint a short-lived JWT for the active session using a named JWT template (getToken).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | |
template | path | string | yes |
Responses
200 Success
400 Validation failed
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}401 Unauthenticated
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}403 Forbidden or missing scope
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}404 Not found
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}409 Conflict
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}429 Rate limited
{
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "string",
"param": "string",
"meta": {}
}
]
}Example request
curl -X POST "https://{apiHost}/v1/client/sessions/{id}/tokens/{template}"Was this page helpful?