{
"openapi": "3.0.3",
"info": {
"title": "Clerk Frontend API",
"version": "v1",
"description": "The Clerk REST Frontend API, meant to be accessed from a browser or native environment.\n\nThis is a Form Based API and all the data must be sent and formatted according to the `application/x-www-form-urlencoded` content type.\n\n### Versions\n\nWhen the API changes in a way that isn't compatible with older versions, a new version is released.\nEach version is identified by its release date, e.g. `2021-02-05`. For more information, please see [Clerk API Versions](https://clerk.com/docs/backend-requests/versioning/overview).\n\n### Using the Try It Console\n\nThe `Try It` feature of the docs only works for **Development Instances** when using the `DevBrowser` security scheme.\nTo use it, first generate a dev instance token from the `/v1/dev_browser` endpoint.\n\nPlease see https://clerk.com/docs for more information.",
"x-logo": {
"url": "https://clerk.com/_next/image?url=%2Fimages%2Fclerk-logo.svg&w=96&q=75",
"altText": "Clerk docs",
"href": "https://clerk.com/docs"
},
"contact": {
"email": "support@clerk.com",
"name": "Clerk Team",
"url": "https://clerk.com/support"
},
"termsOfService": "https://clerk.com/terms",
"license": {
"name": "MIT",
"url": "https://github.com/clerk/javascript/blob/main/LICENSE"
}
},
"servers": [
{
"url": "https://{domain}.clerk.accounts.dev",
"variables": {
"domain": {
"default": "example-destined-camel-13",
"description": "Your Development Instance Frontend API Domain."
}
}
}
],
"security": [
{
"DevBrowser": [],
"Session": []
}
],
"tags": [
{
"name": "DevBrowser",
"description": "Used to handle dev browsers."
},
{
"name": "Well Known",
"description": "Well known endpoints like jwks, deep linking and openid-configuration."
},
{
"name": "Health",
"description": "Used to get the health status of the API."
},
{
"name": "OAuth2 Identify Provider",
"description": "Requests for the OAuth2 authorization flow."
},
{
"name": "OAuth2 Callbacks",
"description": "Used to receive callbacks from successful oauth attempts."
},
{
"name": "SAML",
"description": "Used in authentication flows using SAML."
},
{
"name": "Client",
"description": "Used to interact with the Client Object."
},
{
"name": "Sessions",
"description": "Used to interact with the sessions of a client."
},
{
"name": "Sign Ins",
"description": "Used to sign in a user in the current client."
},
{
"name": "Sign Ups",
"description": "Used to sign up a new user in the current client."
},
{
"name": "User",
"description": "Used to interact with the properties of the current user."
},
{
"name": "Active Sessions",
"description": "Used to interact with the sessions of the current user."
},
{
"name": "Email Addresses",
"description": "Used to interact with the email addresses of the logged in user."
},
{
"name": "Phone Numbers",
"description": "Used to interact with the phone numbers of the logged in user."
},
{
"name": "Web3 Wallets",
"description": "Used to interact with the web3 wallets of the logged in user."
},
{
"name": "Passkeys",
"description": "Used to interact with the passkeys of the logged in user."
},
{
"name": "External Accounts",
"description": "Used to interact with the external accounts of the current user."
},
{
"name": "TOTP",
"description": "Used to interact with One Time Password authenticators of the current user."
},
{
"name": "Backup Codes",
"description": "Used to interact with the two factor authentication backup codes of the current user."
},
{
"name": "Organizations Memberships",
"description": "Used to interact with the current user's organization memberships, invitations and suggestions."
},
{
"name": "Organization",
"description": "Used to interact with an organization and its properties. The current user must be an administrator to access them."
},
{
"name": "Invitations",
"description": "Used to interact with the invitations of an organization. The current user must be an administrator to access them."
},
{
"name": "Members",
"description": "Used to interact with the members of an organization. The current user must be an administrator to access them."
},
{
"name": "Membership Requests",
"description": "Used to interact with the members of an organization. The current user must be an administrator to access them."
},
{
"name": "Domains",
"description": "Used to interact with the members of an organization. The current user must be an administrator to access them."
},
{
"name": "Environment",
"description": "Used to get and update the current Environment"
},
{
"name": "Waitlist",
"description": "Used to interact with the waitlist."
}
],
"paths": {
"/.well-known/assetlinks.json": {
"get": {
"summary": "Get Android Asset Links",
"description": "Get Android asset links for universal/deep linking",
"operationId": "getAndroidAssetLinks",
"security": [],
"tags": ["Well Known"],
"responses": {
"200": {
"$ref": "#/components/responses/WellKnown.Assetlinks"
}
}
}
},
"/.well-known/jwks.json": {
"get": {
"summary": "JWKS",
"description": "Retrieve the JSON Web Key Set of the instance",
"operationId": "getJWKS",
"security": [],
"tags": ["Well Known"],
"responses": {
"200": {
"$ref": "#/components/responses/WellKnown.JWKS"
},
"500": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/.well-known/apple-app-site-association": {
"get": {
"summary": "Apple App Site Association",
"description": "Retrieve the Apple App Site Association file of the instance",
"operationId": "getAppleAppSiteAssociation",
"security": [],
"tags": ["Well Known"],
"responses": {
"200": {
"$ref": "#/components/responses/WellKnown.AppleAppSiteAssociation"
},
"500": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/.well-known/openid-configuration": {
"get": {
"summary": "Basic OpenID Configuration Payload",
"description": "Get a basic openid configuration payload",
"operationId": "getOpenIDConfiguration",
"security": [],
"tags": ["Well Known"],
"responses": {
"200": {
"$ref": "#/components/responses/WellKnown.OpenIDConfiguration"
}
}
}
},
"/.well-known/oauth-authorization-server": {
"get": {
"summary": "OAuth 2.0 Authorization Server Metadata",
"description": "Get the OAuth 2.0 Authorization Server Metadata according to RFC 8414",
"operationId": "getOAuth2AuthorizationServerMetadata",
"security": [],
"tags": ["Well Known"],
"responses": {
"200": {
"$ref": "#/components/responses/WellKnown.OAuth2AuthorizationServerMetadata"
}
}
}
},
"/oauth/authorize": {
"get": {
"summary": "Request OAuth2 authorization",
"description": "Request OAuth2 authorization. If successful, receive authorization grant via redirect.",
"operationId": "requestOAuthAuthorize",
"security": [],
"tags": ["OAuth2 Identify Provider"],
"responses": {
"200": {
"description": "Success for 'form_post' response mode"
},
"302": {
"description": "Redirect, no body."
},
"303": {
"description": "Redirect, no body."
},
"400": {
"description": "Bad request error, for example a request parameter is invalid."
},
"401": {
"description": "Unauthorized error, for example the provided client is invalid."
},
"403": {
"description": "Forbidden error, for example you are trying to use a satellite domain"
}
}
},
"post": {
"summary": "Request OAuth2 authorization",
"description": "Request OAuth2 authorization. If successful, receive authorization grant via redirect.",
"operationId": "requestOAuthAuthorizePOST",
"security": [],
"tags": ["OAuth2 Identify Provider"],
"responses": {
"200": {
"description": "Success for 'form_post' response mode"
},
"302": {
"description": "Redirect, no body."
},
"303": {
"description": "Redirect, no body."
},
"400": {
"description": "Bad request error, for example a request parameter is invalid."
},
"401": {
"description": "Unauthorized error, for example the provided client is invalid."
},
"403": {
"description": "Forbidden error, for example you are trying to use a satellite domain"
}
}
}
},
"/oauth/token": {
"post": {
"summary": "Get OAuth2 token",
"description": "Get OAuth2 token in exchange for a valid authorization grant.",
"operationId": "getOAuthToken",
"security": [],
"tags": ["OAuth2 Identify Provider"],
"responses": {
"200": {
"$ref": "#/components/responses/OAuth.Token"
},
"400": {
"description": "Bad request error, for example a request parameter is invalid."
},
"401": {
"description": "Unauthorized error, for example the provided client is invalid."
},
"403": {
"description": "Forbidden error, for example you are trying to use a satellite domain"
}
}
}
},
"/oauth/userinfo": {
"get": {
"summary": "Get user info after OAuth2 flow",
"description": "Get user info in exchange for a valid OAuth2 access token.",
"operationId": "getOAuthUserInfo",
"security": [],
"tags": ["OAuth2 Identify Provider"],
"responses": {
"200": {
"$ref": "#/components/responses/OAuth.UserInfo"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"post": {
"summary": "Get user info after OAuth2 flow",
"description": "Get user info in exchange for a valid OAuth2 access token.",
"operationId": "getOAuthUserInfoPOST",
"security": [],
"tags": ["OAuth2 Identify Provider"],
"responses": {
"200": {
"$ref": "#/components/responses/OAuth.UserInfo"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/oauth/token_info": {
"post": {
"summary": "Get information for an access or refresh token",
"description": "Get information for an access or refresh token",
"operationId": "getOAuthTokenInfo",
"security": [],
"tags": ["OAuth2 Identify Provider"],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "The value of the access or the refresh token"
},
"token_type_hint": {
"type": "string",
"description": "A hint about the type of the token submitted for introspection. Can be one of the following `access_token` and `refresh_token`",
"nullable": true
},
"scope": {
"type": "string",
"description": "The granted scopes for the token to check against",
"nullable": true
}
},
"required": ["token"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/OAuth.TokenInfo"
},
"401": {
"description": "Unauthorized error, for example the provided client is invalid."
},
"422": {
"description": "You are currently using the legacy OAuth 2.0 provider, please migrate to the new one via Clerk Dashboard."
}
}
}
},
"/oauth/token/revoke": {
"post": {
"summary": "Revoke OAuth2 token",
"description": "Revoke OAuth2 token by token.",
"operationId": "revokeOAuthToken",
"security": [],
"tags": ["OAuth2 Identify Provider"],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"token": {
"type": "string",
"description": "The token to revoke.",
"nullable": false
},
"token_type_hint": {
"type": "string",
"description": "A hint about the type of the token to be revoked.",
"nullable": true,
"enum": ["access_token", "refresh_token"]
}
}
}
}
}
},
"responses": {
"200": {
"description": "Success, no content."
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/oauth/consent/{client_id}": {
"get": {
"summary": "Get consent information",
"description": "Get required consent information for a given OAuth Application Client ID",
"operationId": "getOAuthConsent",
"security": [
{},
{
"DevBrowser": []
}
],
"tags": ["OAuth2 Identify Provider"],
"parameters": [
{
"in": "path",
"name": "client_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The OAuth Application Client ID to get consent information for."
},
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/OAuth.ConsentInfo"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/account_portal": {
"get": {
"summary": "Get account portal",
"description": "Get users account portal",
"operationId": "getAccountPortal",
"responses": {
"200": {
"$ref": "#/components/responses/Client.AccountPortal"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/environment": {
"get": {
"summary": "Get environment",
"description": "Get the current environment. The environment contains information about the settings and features enabled for the current instance.",
"operationId": "getEnvironment",
"security": [
{},
{
"DevBrowser": []
}
],
"tags": ["Environment"],
"responses": {
"200": {
"$ref": "#/components/responses/Client.Environment"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"patch": {
"summary": "Update environment",
"description": "Update environment using request origin",
"operationId": "updateEnvironment",
"security": [
{},
{
"DevBrowser": []
}
],
"tags": ["Environment"],
"parameters": [
{
"in": "header",
"name": "Origin",
"description": "The origin of the request",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.Environment"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/saml/metadata/{saml_connection_id}.xml": {
"get": {
"summary": "SAML Metadata",
"description": "The Service Provider's SAML metadata",
"operationId": "samlMetadata",
"security": [
{},
{
"DevBrowser": []
}
],
"tags": ["SAML"],
"parameters": [
{
"in": "path",
"name": "saml_connection_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of the SAML Connection"
}
],
"responses": {
"200": {
"description": "OK"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/saml/acs/{saml_connection_id}": {
"post": {
"summary": "SAML ACS",
"description": "The SAML Assertion Consumer Service (ACS) endpoint, which processes SAML Responses by the IdP.\n",
"operationId": "acs",
"security": [
{},
{
"DevBrowser": []
}
],
"tags": ["SAML"],
"parameters": [
{
"in": "path",
"name": "saml_connection_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of the SAML Connection"
}
],
"responses": {
"302": {
"description": "OK"
},
"303": {
"description": "OK"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/health": {
"get": {
"summary": "Get Health",
"description": "Get Health",
"security": [
{},
{
"DevBrowser": []
}
],
"tags": ["Health"],
"operationId": "getHealth",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["healthy"]
}
},
"required": ["status"]
}
}
}
},
"503": {
"description": "Service is unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["unhealthy"]
},
"message": {
"type": "string"
}
},
"required": ["status", "message"]
}
}
}
}
}
}
},
"/v1/proxy-health": {
"get": {
"summary": "Get Proxy Health",
"description": "Use this endpoint to check the validity of a proxy configuration for a domain.\nPass the instance ID and domain ID as query parameters.",
"operationId": "getProxyHealth",
"parameters": [
{
"in": "query",
"name": "domain_id",
"description": "The ID of the domain",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "Clerk-Proxy-Url",
"description": "The URL of the proxy",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "Clerk-Secret-Key",
"description": "The secret key of the proxy",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Forwarded-For",
"description": "The IP address of the client",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Configuration is valid",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["healthy"]
},
"x_forwarded_for": {
"type": "string"
}
},
"required": ["status", "x_forwarded_for"]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["unhealthy"]
},
"message": {
"type": "string"
}
},
"required": ["status", "message"]
}
]
}
}
}
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"503": {
"description": "Configuration is invalid or service is unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["unhealthy"]
},
"message": {
"type": "string"
}
},
"required": ["status", "message"]
}
}
}
}
}
}
},
"/v1/client": {
"get": {
"summary": "Get Current Client",
"description": "Returns the current client that is present either in the browser cookies or authorization header.",
"tags": ["Client"],
"operationId": "getClient",
"security": [
{},
{
"DevBrowser": []
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.Client"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"put": {
"summary": "Create New Client",
"description": "Creates a new Client and sets it either in the response cookies or the response authorization header.",
"security": [
{},
{
"DevBrowser": []
}
],
"tags": ["Client"],
"operationId": "putClient",
"responses": {
"200": {
"$ref": "#/components/responses/Client.Client"
},
"307": {
"description": "Redirect, no body."
}
}
},
"post": {
"summary": "Create New Client",
"description": "Creates a new Client and sets it either in the response cookies or the response authorization header.",
"security": [
{},
{
"DevBrowser": []
}
],
"operationId": "postClient",
"tags": ["Client"],
"responses": {
"200": {
"$ref": "#/components/responses/Client.Client"
},
"307": {
"description": "Redirect, no body."
}
}
},
"delete": {
"summary": "Delete Client's Sessions",
"description": "Ends all Sessions of the Current Client",
"tags": ["Client"],
"operationId": "deleteClientSessions",
"responses": {
"200": {
"$ref": "#/components/responses/Client.DeleteSession"
},
"307": {
"description": "Redirect, no body."
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sign_ins": {
"post": {
"security": [{}],
"summary": "Create a new Sign In or replace the current one.",
"description": "Creates or replaces the current Sign in object.\nIn order to authenticate a Sign in in as few requests as possible,\nyou can pass in parameters to this request that can identify and verify the Sign in.\n\nParameter rules:\n\nIf the strategy equals `phone_code`, `email_code`, `web3_[provider]_signature`, `reset_password_code` or `reset_password_phone_code` then an identifier is required.\n\nIf the strategy equals `email_link` then an identifier is required and optionally redirect_url can be supplied.\n\nIf the strategy equals `password` then both an identifier and a password is required.\n\nIf the strategy equals `oauth_[provider]` or `saml` then a redirect_url is required, and an action_complete_redirect_url is optional.\n\nIf the strategy equals `oauth_token_[provider]` then at least one of code (grant code) or token (openID token) is required. Passing only the token will probably retrieve minimal information about the user from the OAuth provider. You can pass both code and token for the best results.\n\nIf the strategy equals `ticket` then ticket is required.\n\nIf the strategy equals `passkey` then no identifier is provided.\n\nIf the strategy equals `google_one_tap` then token is required.",
"tags": ["Sign Ins"],
"operationId": "createSignIn",
"parameters": [
{
"in": "header",
"name": "Origin",
"description": "The origin of the request",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": false,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"description": "Strategy used to sign in.\nCan be one of `phone_code`, `email_code`, `ticket`, `web3_[provider]_signature` `reset_password_code`, `reset_password_phone_code`, `email_link`, `oauth_[provider]`, `oauth_token_[provider]`, `saml`, `password`, `passkey`, `google_one_tap`",
"nullable": true
},
"identifier": {
"type": "string",
"description": "The unique identifier of the user. This changes depending on the strategy.",
"nullable": true
},
"password": {
"type": "string",
"description": "The password of the user. Only used with password strategy.",
"nullable": true
},
"ticket": {
"type": "string",
"description": "Ticket to be used for signing in.",
"nullable": true
},
"redirect_url": {
"type": "string",
"nullable": true
},
"action_complete_redirect_url": {
"type": "string",
"nullable": true
},
"transfer": {
"type": "boolean",
"nullable": true
},
"code": {
"type": "string",
"description": "The authorization or grant code for an OAuth exchange. Only used with `oauth_token_[provider]` strategies.",
"nullable": true
},
"token": {
"type": "string",
"description": "The ID token from an OpenID Connect flow. Only used with `oauth_token_[provider]` and `google_one_tap` strategies.",
"nullable": true
},
"oidc_login_hint": {
"type": "string",
"description": "Used with `oauth_[provider]`. The given value will be forwarded to the OIDC `login_hint` parameter of the generated redirect url.",
"nullable": true
},
"oidc_prompt": {
"type": "string",
"description": "Used with `oauth_[provider]` or `enterprise_sso`. The given value will be forwarded to the OIDC `prompt` parameter of the generated redirect URL. When using shared credentials, this value might be adjusted for security reasons.",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SignIn"
},
"307": {
"description": "Redirect, no body."
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"409": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sign_ins/{sign_in_id}": {
"get": {
"summary": "Retrieve sign-in",
"description": "Returns the sign-in with the given id.\nThe sign in is returned only if it belongs to the requesting client and is not abandoned.",
"tags": ["Sign Ins"],
"operationId": "getSignIn",
"parameters": [
{
"in": "path",
"name": "sign_in_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the sign in to be retrieved."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.SignIn"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sign_ins/{sign_in_id}/reset_password": {
"post": {
"summary": "Reset password on sign-in",
"description": "Reset password on sign-in.",
"tags": ["Sign Ins"],
"operationId": "resetPassword",
"parameters": [
{
"in": "path",
"name": "sign_in_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the sign in to be retrieved."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"password": {
"type": "string"
},
"sign_out_of_other_sessions": {
"type": "boolean",
"nullable": true
}
},
"required": ["password"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/responses-Client.SignIn"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sign_ins/{sign_in_id}/prepare_first_factor": {
"post": {
"summary": "Prepare First Factor Verification",
"description": "Prepares the verification object for the identified Sign in.\nThis step authenticates that the user is who they say they are.\nDepending on the strategy, this request will do something different.\n\nParameter actions:\nIf the strategy equals email_code then this request will send an email with an OTP code.\nIf the strategy equals phone_code then this request will send an SMS with an OTP code.\nIf the strategy equals oauth_[provider] then this request generate a URL that the User needs to visit in order to authenticate.\nIf the strategy equals passkey then this request will begin the passkey registration flow.\n\nParameter rules:\nIf the strategy equals `oauth_[provider]` then a redirect_url is required, and an action_complete_redirect_url is optional.",
"tags": ["Sign Ins"],
"operationId": "prepareSignInFactorOne",
"parameters": [
{
"in": "path",
"name": "sign_in_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the sign in to be retrieved."
},
{
"in": "header",
"name": "Origin",
"description": "The origin of the request",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"description": "The strategy to be prepared for first factor authentication.\n\nCan be one of the following `email_code`, `email_link`,\n`phone_code`, `web3_metamask_signature`, `web3_base_signature`, `web3_coinbase_wallet_signature`,\n`web3_okx_wallet_signature`, `reset_password_phone_code`, `reset_password_email_code`,\n`oauth_[provider]`, `saml`, `passkey`"
},
"email_address_id": {
"type": "string",
"description": "Used with the `email_code`, `reset_password_email_code` and `email_link` strategies.",
"nullable": true
},
"phone_number_id": {
"type": "string",
"description": "Used with the `phone_code` and `reset_password_phone_code` strategies.",
"nullable": true
},
"web3_wallet_id": {
"type": "string",
"description": "Used with the `web3_metamask_signature`, `web3_base_signature`, `web3_coinbase_wallet_signature` and `web3_okx_wallet_signature` strategies.",
"nullable": true
},
"passkey_id": {
"type": "string",
"description": "Used with the `passkey` strategy.",
"nullable": true
},
"redirect_url": {
"type": "string",
"description": "Used with `email_link`, `oauth_[provider]`, and `saml` strategies.",
"nullable": true
},
"action_complete_redirect_url": {
"type": "string",
"description": "Used with `oauth_[provider]` and `saml` strategies.",
"nullable": true
},
"oidc_login_hint": {
"type": "string",
"description": "Used with `oauth_[provider]`. The given value will be forwarded to the OIDC `login_hint` parameter of the generated redirect url.",
"nullable": true
},
"oidc_prompt": {
"type": "string",
"description": "Used with `oauth_[provider]` or `enterprise_sso`. The given value will be forwarded to the OIDC `prompt` parameter of the generated redirect url. When using shared credentials this value might be adjusted for security reasons.",
"nullable": true
}
},
"required": ["strategy"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SignIn"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
},
"429": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sign_ins/{sign_in_id}/attempt_first_factor": {
"post": {
"summary": "Attempt First Factor Verification",
"description": "Attempt the first verification.\nRequires the sign in attempt to be identified, and the first factor verification to be prepared, unless you're using a password.\n\nParameter rules:\nIf the strategy equals `email_code` or `phone_code` then a code is required.\nIf the strategy equals `password` then a password is required.",
"tags": ["Sign Ins"],
"operationId": "attemptSignInFactorOne",
"parameters": [
{
"in": "path",
"name": "sign_in_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the sign in."
},
{
"in": "header",
"name": "Origin",
"description": "The origin of the request",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"description": "The strategy to be used for first factor authentication.\n\nCan be one of the following `email_code`, `email_link`, `password`, `phone_code`,\n`web3_metamask_signature`, `web3_base_signature`, `web3_coinbase_wallet_signature`, `web3_okx_wallet_signature`,\n`reset_password_phone_code`, `reset_password_email_code`, `passkey`, `google_one_tap`"
},
"code": {
"type": "string",
"description": "The code the was sent to the email. Used with the `email_code`, `phone_code` and `email_link` strategies.",
"nullable": true
},
"password": {
"type": "string",
"description": "Used with the `password` and `reset_password_phone_code` strategies.",
"nullable": true
},
"signature": {
"type": "string",
"description": "Used with the `web3_metamask_signature`, `web3_base_signature`, `web3_coinbase_wallet_signature` and `web3_okx_wallet_signature` strategies.",
"nullable": true
},
"token": {
"type": "string",
"description": "The ID token from an OpenID Connect flow. Only used with `oauth_token_[provider]` and `google_one_tap` strategies.",
"nullable": true
},
"ticket": {
"type": "string",
"deprecated": true,
"nullable": true
},
"public_key_credential": {
"type": "string",
"description": "Used with the `passkey` strategy.",
"nullable": true
}
},
"required": ["strategy"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SignIn"
},
"307": {
"description": "Redirect, no body."
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
},
"429": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sign_ins/{sign_in_id}/prepare_second_factor": {
"post": {
"summary": "Prepare Second Factor Verification",
"description": "Prepare the second verification.\nRequires the sign in attempt `status` to be equal to `needs_second_factor`.",
"tags": ["Sign Ins"],
"operationId": "prepareSignInFactorTwo",
"parameters": [
{
"in": "path",
"name": "sign_in_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the sign in."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"description": "The strategy to be prepared for second factor authentication.",
"nullable": true,
"enum": ["phone_code"]
},
"phone_number_id": {
"type": "string",
"description": "Used with the `phone_code` strategy.",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SignIn"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sign_ins/{sign_in_id}/attempt_second_factor": {
"post": {
"summary": "Attempt Second Factor Verification",
"description": "Attempt the second verification.\nRequires the sign in attempt `status` to be equal to `needs_second_factor`, and for the preparation step to have been called.",
"tags": ["Sign Ins"],
"operationId": "attemptSignInFactorTwo",
"parameters": [
{
"in": "path",
"name": "sign_in_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the sign in."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"description": "The strategy to be attempted for first factor authentication.",
"enum": ["phone_code", "totp", "backup_code"]
},
"code": {
"type": "string",
"description": "Used with the `phone_code`, `totp` and `backup_code` strategies."
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SignIn"
},
"307": {
"description": "Redirect, no body."
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sign_ups": {
"post": {
"summary": "Create Sign-up",
"description": "Creates or replaces the sign-up on the current Client object.",
"tags": ["Sign Ups"],
"operationId": "createSignUps",
"parameters": [
{
"in": "header",
"name": "Origin",
"description": "The origin of the request",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"transfer": {
"type": "boolean",
"nullable": true
},
"password": {
"type": "string",
"nullable": true
},
"first_name": {
"type": "string",
"nullable": true
},
"last_name": {
"type": "string",
"nullable": true
},
"username": {
"type": "string",
"nullable": true
},
"email_address": {
"type": "string",
"nullable": true
},
"phone_number": {
"type": "string",
"nullable": true
},
"email_address_or_phone_number": {
"type": "string",
"nullable": true
},
"unsafe_metadata": {
"type": "string",
"nullable": true
},
"strategy": {
"type": "string",
"description": "Strategy used to sign up.\nCan be one of `phone_code`, `email_code`, `ticket`, `web3_[provider]_signature` `reset_password_code`, `reset_password_phone_code`, `email_link`, `oauth_[provider]`, `oauth_token_[provider]`, `saml`, `password`, `passkey`, `google_one_tap`",
"nullable": true
},
"action_complete_redirect_url": {
"type": "string",
"nullable": true
},
"redirect_url": {
"type": "string",
"nullable": true
},
"ticket": {
"type": "string",
"nullable": true
},
"web3_wallet": {
"type": "string",
"nullable": true
},
"token": {
"type": "string",
"description": "The ID token from an OpenID Connect flow. Only used with `oauth_token_[provider]` and `google_one_tap` strategies.",
"nullable": true
},
"code": {
"type": "string",
"description": "The authorization or grant code for an OAuth exchange. Only used with `oauth_token_[provider]` strategies.",
"nullable": true
},
"captcha_token": {
"type": "string",
"nullable": true
},
"captcha_error": {
"type": "string",
"nullable": true
},
"captcha_widget_type": {
"type": "string",
"nullable": true
},
"legal_accepted": {
"type": "boolean",
"nullable": true,
"description": "Has the value `true` if the user has accepted the legal requirements."
},
"oidc_login_hint": {
"type": "string",
"description": "Used with `oauth_[provider]`. The given value will be forwarded to the OIDC `login_hint` parameter of the generated redirect url.",
"nullable": true
},
"oidc_prompt": {
"type": "string",
"description": "Used with `oauth_[provider]` or `enterprise_sso`. The given value will be forwarded to the OIDC `prompt` parameter of the generated redirect url. When using shared credentials this value might be adjusted for security reasons.",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SignUp"
},
"307": {
"description": "Redirect, no body."
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"409": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sign_ups/{sign_up_id}": {
"get": {
"summary": "Get Sign-up",
"description": "Returns the sign-up by ID. Must be associated with the current Client object.",
"tags": ["Sign Ups"],
"operationId": "getSignUps",
"parameters": [
{
"in": "path",
"name": "sign_up_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The sign up unique identifier."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.SignUp"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"patch": {
"summary": "Update Sign-up",
"description": "Updates the sign-up object specified by id, with the supplied parameters.",
"tags": ["Sign Ups"],
"operationId": "updateSignUps",
"parameters": [
{
"in": "path",
"name": "sign_up_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The sign up unique identifier."
},
{
"in": "header",
"name": "Origin",
"description": "The origin of the request",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"password": {
"type": "string",
"nullable": true
},
"first_name": {
"type": "string",
"nullable": true
},
"last_name": {
"type": "string",
"nullable": true
},
"username": {
"type": "string",
"nullable": true
},
"email_address": {
"type": "string",
"nullable": true
},
"phone_number": {
"type": "string",
"nullable": true
},
"email_address_or_phone_number": {
"type": "string",
"nullable": true
},
"unsafe_metadata": {
"type": "string",
"nullable": true
},
"strategy": {
"type": "string",
"description": "Strategy used to sign up.\nCan be one of `phone_code`, `email_code`, `ticket`, `web3_[provider]_signature` `reset_password_code`, `reset_password_phone_code`, `email_link`, `oauth_[provider]`, `oauth_token_[provider]`, `saml`, `password`, `passkey`, `google_one_tap`",
"nullable": true
},
"redirect_url": {
"type": "string",
"nullable": true
},
"action_complete_redirect_url": {
"type": "string",
"nullable": true
},
"ticket": {
"type": "string",
"nullable": true
},
"web3_wallet": {
"type": "string",
"nullable": true
},
"token": {
"type": "string",
"description": "The ID token from an OpenID Connect flow. Only used with `oauth_token_[provider]` and `google_one_tap` strategies.",
"nullable": true
},
"code": {
"type": "string",
"description": "The authorization or grant code for an OAuth exchange. Only used with `oauth_token_[provider]` strategies.",
"nullable": true
},
"legal_accepted": {
"type": "boolean",
"nullable": true,
"description": "Has the value `true` if the user has accepted the legal requirements.\n"
},
"oidc_login_hint": {
"type": "string",
"description": "Used with `oauth_[provider]`. The given value will be forwarded to the OIDC `login_hint` parameter of the generated redirect url.",
"nullable": true
},
"oidc_prompt": {
"type": "string",
"description": "Used with `oauth_[provider]` or `enterprise_sso`. The given value will be forwarded to the OIDC `prompt` parameter of the generated redirect url. When using shared credentials this value might be adjusted for security reasons.",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SignUp"
},
"307": {
"description": "Redirect, no body."
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sign_ups/{sign_up_id}/prepare_verification": {
"post": {
"summary": "Prepare Sign-up Identification Verification",
"description": "Prepares verification for the sign-up specified by `{id}`.\n\nDepending on the given strategy, the API will prepare the verification for the current sign-up.\nIn particular,\n* for `email_code`, the API will send a verification email to the email address currently load up in the sign-up\n* for `phone_code`, the API will send a verification SMS to the phone number currently load up in the sign-up\n",
"tags": ["Sign Ups"],
"operationId": "prepareSignUpsVerification",
"parameters": [
{
"in": "path",
"name": "sign_up_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The sign up unique identifier."
},
{
"in": "header",
"name": "Origin",
"description": "The origin of the request",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"strategy": {
"type": "string",
"description": "The verification strategy\n\n- email_code\n- email_link\n- phone_code\n- web3_metamask_signature\n- web3_base_signature\n- web3_coinbase_wallet_signature\n- web3_okx_wallet_signature\n- saml\n- oauth"
},
"redirect_url": {
"type": "string",
"nullable": true
},
"action_complete_redirect_url": {
"type": "string",
"nullable": true
},
"oidc_login_hint": {
"type": "string",
"description": "Used with `oauth_[provider]`. The given value will be forwarded to the OIDC `login_hint` parameter of the generated redirect url.",
"nullable": true
},
"oidc_prompt": {
"type": "string",
"description": "Used with `oauth_[provider]` or `enterprise_sso`. The given value will be forwarded to the OIDC `prompt` parameter of the generated redirect url. When using shared credentials this value might be adjusted for security reasons.",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SignUp"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
},
"429": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sign_ups/{sign_up_id}/attempt_verification": {
"post": {
"summary": "Attempt Sign-up Identification Verification",
"description": "Attempts to verify the identification that corresponds to the given strategy using the given verification code.",
"tags": ["Sign Ups"],
"operationId": "attemptSignUpsVerification",
"parameters": [
{
"in": "path",
"name": "sign_up_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The sign up unique identifier."
},
{
"in": "header",
"name": "Origin",
"description": "The origin of the request",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"strategy": {
"type": "string",
"description": "The verification strategy",
"enum": [
"email_code",
"email_link",
"phone_code",
"web3_metamask_signature",
"web3_base_signature",
"web3_coinbase_wallet_signature",
"web3_okx_wallet_signature",
"google_one_tap"
]
},
"code": {
"nullable": true,
"type": "string",
"description": "The verification code"
},
"signature": {
"nullable": true,
"type": "string",
"description": "The verification web3 signature"
},
"token": {
"type": "string",
"description": "The ID token from an OpenID Connect flow. Only used with `oauth_token_[provider]` and `google_one_tap` strategies.",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SignUp"
},
"307": {
"description": "Redirect, no body."
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"409": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
},
"429": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sync": {
"get": {
"summary": "Sync clients across multiple domains",
"description": "Start the syncing process between a satellite and primary domain.",
"operationId": "syncClient",
"parameters": [
{
"in": "query",
"name": "link_domain",
"schema": {
"type": "string"
},
"description": "The satellite domain which should be synced with its primary."
},
{
"in": "query",
"name": "redirect_url",
"schema": {
"type": "string"
},
"description": "The URL to redirect to after the syncing process has been completed."
}
],
"responses": {
"307": {
"description": "Redirect"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/link": {
"get": {
"summary": "Link clients across multiple domains",
"description": "Complete a syncing process between a satellite and primary domains by linking their clients.",
"operationId": "linkClient",
"parameters": [
{
"in": "query",
"name": "__clerk_token",
"schema": {
"type": "string"
},
"description": "The token generated from a sync request."
}
],
"responses": {
"307": {
"description": "Redirect"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/handshake": {
"get": {
"summary": "Generate and returns a new session token for a given client.",
"description": "When the authentication status cannot be determined from the current session token, we initiate a handshake to refresh the token and send it back to the application. Called in server environments.",
"tags": ["Client"],
"operationId": "handshakeClient",
"parameters": [
{
"in": "header",
"name": "Clerk-Proxy-Url",
"description": "The URL of the proxy",
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "Clerk-Secret-Key",
"description": "The secret key of the proxy",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "redirect_url",
"schema": {
"type": "string"
},
"description": "The URL to redirect back to after the handshake"
},
{
"in": "query",
"name": "format",
"allowEmptyValue": false,
"required": false,
"schema": {
"type": "string",
"enum": ["nonce", "token"],
"default": "token"
},
"description": "The supported format of the handshake payload."
},
{
"in": "query",
"name": "organization_id",
"schema": {
"type": "string"
},
"allowEmptyValue": true,
"description": "The organization ID or slug to attempt to set as active for the session. If this param is present but has no value,\nthe personal account will be set as active. If the organization cannot be set as active (because it does not\nexist, or the user is not a member), the active organization for the session will not change.\n"
},
{
"in": "query",
"name": "satellite_fapi",
"description": "The Frontend API of the satellite domain",
"schema": {
"type": "string"
}
}
],
"responses": {
"307": {
"description": "Redirect"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
},
"500": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/dev_browser": {
"post": {
"summary": "Create a Dev Browser token",
"description": "Generate an Dev Browser API token.\n\nThis is used to authenticate Development Instances with the `DevBrowser` scheme.\nIt must be set before making any request to a dev instance, even for endpoints that are public.",
"operationId": "createDevBrowser",
"security": [],
"tags": ["DevBrowser"],
"responses": {
"200": {
"description": "A DevBrowser was created."
},
"400": {
"description": "The hostname is invalid."
}
}
}
},
"/v1/dev_browser/set_first_party_cookie": {
"post": {
"summary": "Post Dev Browser init set cookie",
"description": "post dev_browser/set_first_party_cookie",
"operationId": "postDevBrowserInitSetCookie",
"responses": {
"200": {
"description": "A cookie for the dev browser was set."
}
}
}
},
"/v1/dev_browser/init": {
"get": {
"summary": "Initialize dev browser for development and staging instances",
"description": "get dev_browser/init",
"operationId": "getDevBrowserInit",
"parameters": [
{
"in": "query",
"name": "origin",
"description": "The origin of the request",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successfully initialized the dev browser."
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"500": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/oauth_callback": {
"get": {
"operationId": "getOauthCallback",
"summary": "OAuth Callback",
"description": "The endpoint where the oauth providers redirect to after a successful authentication attempt.",
"tags": ["OAuth2 Callbacks"],
"parameters": [
{
"in": "query",
"name": "scope",
"schema": {
"type": "string"
},
"description": "returned scopes from oauth provider."
},
{
"in": "query",
"name": "code",
"schema": {
"type": "string"
},
"description": "returned exchange code from oauth provider."
},
{
"in": "query",
"name": "state",
"schema": {
"type": "string"
},
"description": "returned state from oauth provider."
},
{
"in": "query",
"name": "error",
"schema": {
"type": "string"
},
"description": "returned error state from oauth provider, if applicable"
}
],
"responses": {
"200": {
"description": "[AuthV2] HTML-based redirection in dev instances"
},
"299": {
"description": "FAKE SUCCESS"
},
"301": {
"description": "Redirect"
},
"303": {
"description": "Redirect"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"post": {
"operationId": "postOauthCallback",
"summary": "OAuth Post Callback",
"description": "Converts a POST to a GET, because if it's a POST coming from an external account. This is necessary because some providers (e.g. Apple) issue a POST instead of a GET request.",
"tags": ["OAuth2 Callbacks"],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": true,
"properties": {
"code": {
"description": "returned exchange code from oauth provider.",
"type": "string"
},
"scope": {
"description": "returned scopes from oauth provider.",
"type": "string",
"nullable": true
},
"state": {
"description": "returned state from oauth provider.",
"type": "string"
},
"error": {
"description": "returned error state from oauth provider, if applicable",
"type": "string",
"nullable": true
}
}
}
}
}
},
"responses": {
"303": {
"description": "Redirect to GET /v1/oauth_callback with same parameters"
}
}
}
},
"/v1/clear-site-data": {
"get": {
"summary": "Set the Clear-Site-Data header",
"description": "Clear browsing data (cookies, storage, cache) associated with the requesting website",
"operationId": "clearSiteData",
"responses": {
"200": {
"description": "The Clear-Site-Data header was set with wildcard value."
}
}
}
},
"/v1/client/sessions": {
"delete": {
"summary": "Remove client's sessions",
"description": "Removes all the sessions of the current client without removing the __client cookie",
"tags": ["Sessions"],
"operationId": "removeClientSessionsAndRetainCookie",
"responses": {
"200": {
"$ref": "#/components/responses/Client.DeleteSession"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sessions/{session_id}": {
"get": {
"operationId": "getSession",
"summary": "Get Session",
"description": "Returns the session with the given id",
"tags": ["Sessions"],
"parameters": [
{
"in": "path",
"name": "session_id",
"required": true,
"schema": {
"type": "string"
},
"description": "the user session id."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.Session"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sessions/{session_id}/touch": {
"post": {
"operationId": "touchSession",
"summary": "Touch session",
"description": "Specify the active session for the client.\n\nWhen force organization selection is enabled and `active_organization_id` is sent as null or empty string,\nthe session will keep the previous active organization and will not attempt to switch to a personal account.",
"tags": ["Sessions"],
"parameters": [
{
"in": "path",
"name": "session_id",
"required": true,
"schema": {
"type": "string"
},
"description": "the user session id."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"active_organization_id": {
"type": "string",
"description": "The ID or slug of the organization to activate.\n\nWhen force organization selection is enabled and this value is sent as null or empty string,\nthe session will keep the previous active organization and will not attempt to switch to a personal account.",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.Session"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sessions/{session_id}/end": {
"post": {
"operationId": "endSession",
"summary": "End Session",
"description": "Marks the given session as ended.",
"tags": ["Sessions"],
"parameters": [
{
"in": "path",
"name": "session_id",
"required": true,
"schema": {
"type": "string"
},
"description": "the user session id."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.Session"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sessions/{session_id}/remove": {
"post": {
"operationId": "removeSession",
"summary": "Remove Session",
"description": "Delete the given session.",
"tags": ["Sessions"],
"parameters": [
{
"in": "path",
"name": "session_id",
"required": true,
"schema": {
"type": "string"
},
"description": "the user session id."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.Session"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/sessions/active": {
"get": {
"summary": "Get Active Sessions",
"description": "Returns all active session for user, including activity information.",
"tags": ["Active Sessions"],
"operationId": "getSessions",
"parameters": [
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ActiveSessions"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/sessions/{session_id}/revoke": {
"post": {
"summary": "Revoke given session",
"description": "Revokes given session.",
"tags": ["Active Sessions"],
"operationId": "revokeSession",
"parameters": [
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
},
{
"in": "path",
"name": "session_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The session id to be revoked."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.Session"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sessions/{session_id}/tokens": {
"post": {
"summary": "Create Session Token",
"description": "Create a session jwt for the authenticated requested user.\n\nWhen force organization selection is enabled and `organization_id` is sent as null or empty string,\nthe token will be created with the previous active organization and will not attempt to switch to a personal account.",
"operationId": "createSessionToken",
"tags": ["Sessions"],
"parameters": [
{
"in": "path",
"name": "session_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The user session id."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"organization_id": {
"type": "string",
"description": "The organization id to associate with the token. The user must be a member of the organization.\nIf present but empty, the personal account will be set as active.\nIf absent, the previous active organization for the session will be used.\n\nWhen force organization selection is enabled and this value is sent as null or empty string,\nthe token will be created with the previous active organization and will not attempt to switch to a personal account.",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"jwt": {
"type": "string"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sessions/{session_id}/tokens/{template_name}": {
"post": {
"summary": "Create Session Token With JWT Template",
"description": "Create a session jwt for the authenticated requested user.",
"operationId": "createSessionTokenWithTemplate",
"tags": ["Sessions"],
"parameters": [
{
"in": "path",
"name": "session_id",
"required": true,
"schema": {
"type": "string"
},
"description": "the user session id."
},
{
"in": "path",
"name": "template_name",
"required": true,
"schema": {
"type": "string"
},
"description": "the template name"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"jwt": {
"type": "string"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sessions/{session_id}/verify": {
"post": {
"summary": "Start a new session reverification",
"description": "Start a new session reverification flow by providing a verification level.\n\nIf the requested level equals 'secondFactor' or 'multiFactor' and the associated user\ndoesn't have any available second factor, then we fall back to 'firstFactor'",
"tags": ["Sessions"],
"operationId": "startSessionReverification",
"parameters": [
{
"in": "path",
"name": "session_id",
"required": true,
"schema": {
"type": "string"
},
"description": "the user session ID."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"level": {
"type": "string",
"description": "The level of authentication that the user needs to go through",
"enum": ["first_factor", "second_factor", "multi_factor"]
}
},
"required": ["level"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SessionReverification"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sessions/{session_id}/verify/prepare_first_factor": {
"post": {
"summary": "Prepare session reverification first factor",
"description": "Prepare the first factor verification.\nDepending on the strategy, this request will do something different.\n\nParameter actions:\nIf the strategy equals email_code then this request will send an email with an OTP code.\nIf the strategy equals phone_code then this request will send an SMS with an OTP code.",
"tags": ["Sessions"],
"operationId": "prepareSessionReverificationFirstFactor",
"parameters": [
{
"in": "header",
"name": "Origin",
"description": "The origin of the request",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "session_id",
"required": true,
"schema": {
"type": "string"
},
"description": "the user session ID."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"description": "The strategy to be prepared for first factor authentication.",
"enum": ["email_code", "phone_code", "passkey"]
},
"email_address_id": {
"type": "string",
"description": "Used with the `email_code` strategy.",
"nullable": true
},
"phone_number_id": {
"type": "string",
"description": "Used with the `phone_code` strategy.",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SessionReverification"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sessions/{session_id}/verify/attempt_first_factor": {
"post": {
"summary": "Attempt session reverification first factor",
"description": "Attempt the first factor verification.\nRequires the first factor verification to be prepared, unless you're using a password.\n\nParameter rules:\nIf the strategy equals `email_code` then a code is required.\nIf the strategy equals `password` then a password is required.",
"tags": ["Sessions"],
"operationId": "attemptSessionReverificationFirstFactor",
"parameters": [
{
"in": "header",
"name": "Origin",
"description": "The origin of the request",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "session_id",
"required": true,
"schema": {
"type": "string"
},
"description": "the user session ID."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"description": "The strategy to be used for first factor authentication.",
"enum": ["email_code", "password", "phone_code", "passkey"]
},
"code": {
"type": "string",
"description": "The code the was sent to the email. Used with the `email_code` and `phone_code` strategies.",
"nullable": true
},
"password": {
"type": "string",
"description": "Used with the `password` strategy.",
"nullable": true
},
"public_key_credential": {
"type": "string",
"description": "Used with the `passkey` strategy.",
"nullable": true
}
},
"required": ["strategy"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SessionReverification"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sessions/{session_id}/verify/prepare_second_factor": {
"post": {
"summary": "Prepare session reverification second factor",
"description": "Prepare the second factor verification.\nRequires the `status` to be equal to `needs_second_factor`.",
"tags": ["Sessions"],
"operationId": "prepareSessionReverificationSecondFactor",
"parameters": [
{
"in": "path",
"name": "session_id",
"required": true,
"schema": {
"type": "string"
},
"description": "the user session ID."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"description": "The strategy to be prepared for second factor authentication.",
"nullable": true,
"enum": ["phone_code"]
},
"phone_number_id": {
"type": "string",
"description": "Used with the `phone_code` strategy.",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SessionReverification"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/client/sessions/{session_id}/verify/attempt_second_factor": {
"post": {
"summary": "Attempt session reverification second factor",
"description": "Attempt the second factor verification.\nRequires the `status` to be equal to `needs_second_factor` and for the preparation step to have been called.",
"tags": ["Sessions"],
"operationId": "attemptSessionReverificationSecondFactor",
"parameters": [
{
"in": "path",
"name": "session_id",
"required": true,
"schema": {
"type": "string"
},
"description": "the user session ID."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"description": "The strategy to be attempted for second factor authentication.",
"enum": ["phone_code", "totp", "backup_code"]
},
"code": {
"type": "string",
"description": "Used with the `phone_code`, `totp` and `backup_code` strategies."
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.SessionReverification"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/sessions": {
"get": {
"summary": "Get Sessions",
"description": "Get all the sessions of the current user.",
"tags": ["Active Sessions"],
"operationId": "getUsersSessions",
"parameters": [
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Server.Sessions"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/email_addresses": {
"get": {
"operationId": "getEmailAddresses",
"summary": "Get Email Addresses",
"description": "Retrieve all the email addresses associated with the current user.",
"tags": ["Email Addresses"],
"parameters": [
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Server.UserEmailAddresses"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"post": {
"summary": "Create Email Address",
"description": "Add an email address to the current user. The address then needs to be verified using the `prepare_verification` and `attempt_verification` endpoints.",
"operationId": "createEmailAddresses",
"tags": ["Email Addresses"],
"parameters": [
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"email_address": {
"type": "string",
"description": "The email address to be added to the user."
}
},
"required": ["email_address"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedEmailAddress"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/email_addresses/{email_id}/attempt_verification": {
"post": {
"operationId": "verifyEmailAddress",
"description": "Attempt to verify an email address that was previously created.",
"summary": "Attempt Email Address Verification",
"tags": ["Email Addresses"],
"parameters": [
{
"in": "path",
"required": true,
"name": "email_id",
"schema": {
"type": "string"
},
"description": "The email_id."
},
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code that was previously sent to the email address."
}
},
"required": ["code"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedEmailAddress"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/email_addresses/{email_id}/prepare_verification": {
"post": {
"description": "Depending on the given strategy, the API will prepare the verification for the email address.\nIn particular, * for `email_code`, the API will send a verification email to the address containing a code. * for `email_link`, the API will send a verification email to the address containing a link to the verification attempt endpoint. * for `enterprise_sso`, the API will send an external redirect URL to the browser containing a link to the SSO verification endpoint.",
"summary": "Prepare Email Address Verification",
"tags": ["Email Addresses"],
"operationId": "sendVerificationEmail",
"parameters": [
{
"in": "path",
"name": "email_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The email_id."
},
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"description": "The strategy to be prepared for email verification.",
"enum": ["email_code", "email_link", "enterprise_sso"]
},
"redirect_url": {
"type": "string",
"description": "Used with the `email_link` strategy.",
"nullable": true
},
"action_complete_redirect_url": {
"type": "string",
"description": "Used with `oauth_[provider]` and `saml` strategies.",
"nullable": true
}
},
"required": ["strategy"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedEmailAddress"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/email_addresses/{email_id}": {
"get": {
"summary": "Get Email Address",
"description": "Retrieve an email address by id.",
"tags": ["Email Addresses"],
"operationId": "getEmailAddress",
"parameters": [
{
"in": "path",
"name": "email_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The email_id."
},
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedEmailAddress"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"delete": {
"summary": "Delete email address",
"description": "Delete an email address by id.",
"tags": ["Email Addresses"],
"operationId": "DeleteEmailAddress",
"parameters": [
{
"in": "path",
"name": "email_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The email_id."
},
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedDeletedObject"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/phone_numbers": {
"get": {
"summary": "Get Phone Numbers",
"description": "Retrieve all phone numbers associated with the current user.",
"operationId": "getPhoneNumbers",
"tags": ["Phone Numbers"],
"parameters": [
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Server.UserPhoneNumbers"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"post": {
"summary": "Create Phone Number",
"description": "Add a phone number to the current user. The phone number then needs to be verified using the sms `prepare_verification` and `attempt_verification` endpoints.",
"tags": ["Phone Numbers"],
"operationId": "postPhoneNumbers",
"parameters": [
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"description": "The phone number to be added to the user."
},
"reserved_for_second_factor": {
"type": "boolean",
"description": "Whether the phone number is reserved for multi-factor authentication.",
"nullable": true
}
},
"required": ["phone_number"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedPhoneNumber"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/phone_numbers/{phone_number_id}/attempt_verification": {
"post": {
"summary": "Attempt Phone Number Verification",
"description": "Attempt to verify the given phone number using the code sent during the `prepare_verification` step.",
"tags": ["Phone Numbers"],
"operationId": "verifyPhoneNumber",
"parameters": [
{
"in": "path",
"required": true,
"name": "phone_number_id",
"schema": {
"type": "string"
},
"description": "The phone_number_id."
},
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Strategy used to verify the phone number."
}
},
"required": ["code"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedPhoneNumber"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
},
"429": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/phone_numbers/{phone_number_id}/prepare_verification": {
"post": {
"summary": "Prepare Phone Number Verification",
"description": "Sends an SMS to the phone number with the code needed to verify it.",
"tags": ["Phone Numbers"],
"operationId": "sendVerificationSMS",
"parameters": [
{
"in": "path",
"required": true,
"name": "phone_number_id",
"schema": {
"type": "string"
},
"description": "The phone_number_id."
},
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"description": "Strategy used to verify the phone number.",
"enum": ["phone_code"]
}
},
"required": ["strategy"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedPhoneNumber"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"429": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/phone_numbers/{phone_number_id}": {
"get": {
"summary": "Retrieve Phone Number",
"description": "Retrieve all properties for the given phone number.",
"tags": ["Phone Numbers"],
"operationId": "ReadPhoneNumber",
"parameters": [
{
"in": "path",
"required": true,
"name": "phone_number_id",
"schema": {
"type": "string"
},
"description": "The phone_number_id."
},
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedPhoneNumber"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"patch": {
"summary": "Update Phone Number",
"description": "Update the properties of the given phone number.",
"tags": ["Phone Numbers"],
"operationId": "UpdatePhoneNumber",
"parameters": [
{
"in": "path",
"required": true,
"name": "phone_number_id",
"schema": {
"type": "string"
},
"description": "The phone_number_id."
},
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"reserved_for_second_factor": {
"type": "boolean",
"description": "Whether the phone number is reserved for multi-factor authentication.",
"nullable": true
},
"default_second_factor": {
"type": "boolean",
"description": "Marks the phone number as the default that will be used in multi-factor authentication.",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedPhoneNumber"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"delete": {
"summary": "Delete Phone Number",
"description": "Deletes the phone number with the given id.",
"operationId": "DeletePhoneNumber",
"tags": ["Phone Numbers"],
"parameters": [
{
"in": "path",
"required": true,
"name": "phone_number_id",
"schema": {
"type": "string"
},
"description": "The phone_number_id."
},
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.DeletedPhoneNumber"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/web3_wallets": {
"get": {
"summary": "Get All Web3 Wallets",
"description": "Retrieve all web3 wallets associated with the current user.",
"operationId": "getWeb3Wallets",
"tags": ["Web3 Wallets"],
"parameters": [
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Server.UserWeb3Wallets"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"post": {
"summary": "Create Web3 Wallet",
"description": "Create a new web3 wallet.",
"operationId": "postWeb3Wallets",
"tags": ["Web3 Wallets"],
"parameters": [
{
"in": "query",
"name": "_clerk_session_id",
"schema": {
"type": "string"
},
"description": "The session_id associated with the requesting user."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"web3_wallet": {
"type": "string",
"description": "The web3 wallet to be added to the user."
}
},
"required": ["web3_wallet"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedWeb3Wallet"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/web3_wallets/{web3_wallet_id}": {
"get": {
"summary": "Get Web3 Wallet",
"description": "Retrieve all properties associated a specific web3 wallet.",
"operationId": "readWeb3Wallet",
"tags": ["Web3 Wallets"],
"parameters": [
{
"in": "path",
"required": true,
"name": "web3_wallet_id",
"schema": {
"type": "string"
},
"description": "The web3 wallet ID."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedWeb3Wallet"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"delete": {
"summary": "Delete Web3 Wallet",
"description": "Delete a web3 wallet by id.",
"operationId": "deleteWeb3Wallet",
"tags": ["Web3 Wallets"],
"parameters": [
{
"in": "path",
"required": true,
"name": "web3_wallet_id",
"schema": {
"type": "string"
},
"description": "The web3 wallet ID."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.DeletedPhoneNumber"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/web3_wallets/{web3_wallet_id}/prepare_verification": {
"post": {
"summary": "Prepare Web3 Wallet Verification",
"description": "Prepares verification for the provided web3 wallet.",
"operationId": "prepareWeb3WalletVerification",
"tags": ["Web3 Wallets"],
"parameters": [
{
"in": "path",
"required": true,
"name": "web3_wallet_id",
"description": "The web3 wallet ID.",
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "Origin",
"description": "The origin of the request.",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"description": "The strategy used to verify the web3 wallet.",
"pattern": "^web3_\\w+_signature$"
},
"redirect_url": {
"type": "string",
"description": "The redirect URL to redirect the user to after verification.",
"nullable": true
}
},
"required": ["strategy"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedWeb3Wallet"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/web3_wallets/{web3_wallet_id}/attempt_verification": {
"post": {
"summary": "Attempt Web3 Wallet Verification",
"description": "Attempts to verify the provided web3 wallet.",
"operationId": "attemptWeb3WalletVerification",
"tags": ["Web3 Wallets"],
"parameters": [
{
"in": "path",
"required": true,
"name": "web3_wallet_id",
"schema": {
"type": "string"
},
"description": "The web3 wallet ID."
},
{
"in": "header",
"name": "Origin",
"description": "The origin of the request.",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"signature": {
"type": "string",
"description": "The signature that was generated from your Web3 Wallet to sign the message"
}
},
"required": ["signature"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedWeb3Wallet"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/passkeys": {
"post": {
"summary": "Create Passkey",
"description": "Create a new passkey.",
"operationId": "postPasskey",
"tags": ["Passkeys"],
"parameters": [
{
"in": "query",
"name": "_clerk_session_id",
"description": "The session_id associated with the requesting user.",
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "Origin",
"description": "The origin of the request.",
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Original-Host",
"description": "The original host of the request.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedPasskey"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/passkeys/{passkey_id}": {
"get": {
"summary": "Get Passkey",
"description": "Retrieve all properties associated a specific passkey.",
"operationId": "readPasskey",
"tags": ["Passkeys"],
"parameters": [
{
"in": "path",
"required": true,
"name": "passkey_id",
"schema": {
"type": "string"
},
"description": "The passkey identification ID."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedPasskey"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"patch": {
"summary": "Update Passkey",
"description": "Update properties of a specific passkey.",
"operationId": "patchPasskey",
"tags": ["Passkeys"],
"parameters": [
{
"in": "path",
"required": true,
"name": "passkey_id",
"schema": {
"type": "string"
},
"description": "The passkey identification ID."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"nullable": true,
"description": "The name of the passkey."
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedPasskey"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"delete": {
"summary": "Delete Passkey",
"description": "Delete a passkey by id.",
"operationId": "deletePasskey",
"tags": ["Passkeys"],
"parameters": [
{
"in": "path",
"required": true,
"name": "passkey_id",
"schema": {
"type": "string"
},
"description": "The passkey identification ID."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.DeletedPasskey"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/passkeys/{passkey_id}/attempt_verification": {
"post": {
"summary": "Attempt Passkey Verification",
"description": "Attempts to verify the provided passkey.",
"operationId": "attemptPasskeyVerification",
"tags": ["Passkeys"],
"parameters": [
{
"in": "path",
"required": true,
"name": "passkey_id",
"schema": {
"type": "string"
},
"description": "The passkey identification ID."
},
{
"in": "header",
"name": "Origin",
"description": "The origin of the request.",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"strategy": {
"type": "string",
"description": "The strategy used to connect the external account.",
"nullable": true,
"enum": ["passkey"]
},
"public_key_credential": {
"type": "string",
"description": "The public key credential of the passkey.",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedPasskey"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/external_accounts": {
"post": {
"summary": "Connect OAuth Accounts",
"description": "Connect a new External Account from the OAuth providers enabled.",
"tags": ["External Accounts"],
"operationId": "postOAuthAccounts",
"parameters": [
{
"in": "header",
"name": "Origin",
"description": "The origin of the request.",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"strategy": {
"type": "string",
"description": "The OAuth strategy that the external account provider supports.\nCan be one of `oauth_[provider]` or `oauth_token_[provider]`.\nThe `oauth_[provider]` strategy can be used for regular OAuth flows with redirects and a `redirect_url` parameter is also required.\nThe `oauth_token_[provider]` strategy can be used for native flows, along with a `token` or `code` parameter.",
"pattern": "^oauth_(?:(?:token_)|(?:custom_))?[a-z]+$"
},
"redirect_url": {
"type": "string",
"nullable": true
},
"action_complete_redirect_url": {
"type": "string",
"nullable": true
},
"additional_scope": {
"type": "string",
"nullable": true
},
"code": {
"type": "string",
"description": "The authorization or grant code that an OAuth provider returns during authentication. Can be used with `oauth_token_[provider]` strategies.",
"nullable": true
},
"token": {
"type": "string",
"description": "The ID token that an OpenID Connect provider returns during authentication. Can be used with `oauth_token_[provider]` strategies.",
"nullable": true
},
"oidc_login_hint": {
"type": "string",
"description": "Used with `oauth_[provider]`. The given value will be forwarded to the OIDC `login_hint` parameter of the generated redirect url.",
"nullable": true
},
"oidc_prompt": {
"type": "string",
"description": "Used with `oauth_[provider]` or `enterprise_sso`. The given value will be forwarded to the OIDC `prompt` parameter of the generated redirect url. When using shared credentials this value might be adjusted for security reasons.",
"nullable": true
}
},
"required": ["strategy"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedExternalAccount"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
},
"500": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/external_accounts/{external_account_id}/reauthorize": {
"patch": {
"summary": "Reauthorize External Account",
"operationId": "reauthorizeExternalAccount",
"description": "Reauthorize an external account by ID.",
"tags": ["External Accounts"],
"parameters": [
{
"name": "external_account_id",
"in": "path",
"description": "External account ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"additional_scope": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
},
"redirect_url": {
"type": "string"
},
"action_complete_redirect_url": {
"type": "string",
"nullable": true
},
"oidc_login_hint": {
"type": "string",
"description": "Used with `oauth_[provider]`. The given value will be forwarded to the OIDC `login_hint` parameter of the generated redirect url.",
"nullable": true
},
"oidc_prompt": {
"type": "string",
"description": "Used with `oauth_[provider]` or `enterprise_sso`. The given value will be forwarded to the OIDC `prompt` parameter of the generated redirect url. When using shared credentials this value might be adjusted for security reasons.",
"nullable": true
}
},
"required": ["redirect_url"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedExternalAccount"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/external_accounts/{external_account_id}": {
"delete": {
"summary": "Delete External Account",
"operationId": "deleteExternalAccount",
"description": "Delete an external account by ID.",
"tags": ["External Accounts"],
"parameters": [
{
"name": "external_account_id",
"in": "path",
"description": "External account ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.DeletedExternalAccount"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/external_accounts/{external_account_id}/tokens": {
"delete": {
"summary": "Revoke OAuth tokens",
"operationId": "revokeExternalAccountTokens",
"description": "Revoke the OAuth access and refresh token of an external account by ID, if supported by the provider.",
"tags": ["External Accounts"],
"parameters": [
{
"name": "external_account_id",
"in": "path",
"description": "External account ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedUser"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/totp": {
"post": {
"summary": "Create TOTP",
"description": "Initializes TOTP by generating a new secret. This then needs to be added to an authenticator app and verified. A user can have only one TOTP secret and this endpoint will return an error if it is already present.",
"tags": ["TOTP"],
"operationId": "postTOTP",
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedTOTP"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"500": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"delete": {
"summary": "Delete TOTP",
"description": "Deletes the current TOTP secret. This will invalidate all authenticators that where previously added.",
"tags": ["TOTP"],
"operationId": "deleteTOTP",
"responses": {
"200": {
"$ref": "#/components/responses/Client.DeletedTOTP"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"500": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/totp/attempt_verification": {
"post": {
"summary": "Attempt TOTP Verification",
"description": "Attempts to verify the TOTP secret previously created using a code from an authenticator.",
"tags": ["TOTP"],
"operationId": "verifyTOTP",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"code": {
"type": "string",
"nullable": false
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedTOTP"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
},
"500": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/backup_codes": {
"post": {
"summary": "Create Backup Codes",
"description": "Create two factor authentication backup codes for the current user.\nA two factor authentication method must be enabled for the environment. Otherwise the endpoint will return an error.",
"tags": ["Backup Codes"],
"operationId": "createBackupCodes",
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedBackupCodes"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"500": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me": {
"get": {
"summary": "Get User",
"description": "Returns all attributes of the current user.",
"tags": ["User"],
"operationId": "getUser",
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedUser"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"patch": {
"summary": "Update User",
"description": "Update the current user with the given attributes.",
"tags": ["User"],
"operationId": "patchUser",
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"username": {
"nullable": true,
"type": "string"
},
"first_name": {
"nullable": true,
"type": "string"
},
"last_name": {
"nullable": true,
"type": "string"
},
"primary_email_address_id": {
"type": "string",
"nullable": true
},
"primary_phone_number_id": {
"nullable": true,
"type": "string"
},
"primary_web3_wallet_id": {
"nullable": true,
"type": "string"
},
"unsafe_metadata": {
"nullable": true,
"type": "string",
"description": "A stringified JSON containing the unsafe metadata of the current user."
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedUser"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"delete": {
"summary": "Delete User",
"description": "Delete the current user.",
"tags": ["User"],
"operationId": "deleteUser",
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedDeletedObject"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"500": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/tokens": {
"post": {
"description": "create a jwt for the requested user.",
"operationId": "createServiceToken",
"tags": ["User"],
"parameters": [
{
"in": "query",
"name": "_clerk_session_id",
"description": "The session_id associated with the requesting user.",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"service": {
"type": "string"
}
},
"required": ["service"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Token"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/profile_image": {
"post": {
"summary": "Update Profile Image",
"description": "Update the current user's profile image.",
"tags": ["User"],
"operationId": "updateProfileImage",
"requestBody": {
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"file": {
"type": "string",
"format": "binary"
}
}
}
},
"application/octet-stream": {
"schema": {
"format": "base64"
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedImage"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"delete": {
"summary": "Delete Profile Image",
"description": "Remove the current user's profile image.",
"operationId": "deleteProfileImage",
"tags": ["User"],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedDeletedObject"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/change_password": {
"post": {
"summary": "Update Password",
"description": "Update the current user's password.",
"operationId": "changePassword",
"tags": ["User"],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"current_password": {
"type": "string",
"nullable": true
},
"new_password": {
"type": "string"
},
"sign_out_of_other_sessions": {
"type": "boolean",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/responses-Client.ClientWrappedUser"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/remove_password": {
"post": {
"summary": "Delete Password",
"description": "Removes the current user's password.",
"operationId": "removePassword",
"tags": ["User"],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"current_password": {
"type": "string"
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/responses-Client.ClientWrappedUser"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/organization_memberships": {
"get": {
"summary": "Get Organization Memberships",
"description": "Get a list of the organization memberships of the current user.",
"operationId": "getOrganizationMemberships",
"tags": ["Organizations Memberships"],
"parameters": [
{
"$ref": "#/components/parameters/LimitParameter"
},
{
"$ref": "#/components/parameters/OffsetParameter"
},
{
"$ref": "#/components/parameters/Paginated"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationMemberships"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/organization_memberships/{organization_id}": {
"delete": {
"summary": "Delete Organization Membership",
"description": "Delete the membership of the given organization.",
"operationId": "deleteOrganizationMemberships",
"tags": ["Organizations Memberships"],
"parameters": [
{
"in": "path",
"name": "organization_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the organization for which the membership will be deleted"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedDeletedObject"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/organization_invitations": {
"get": {
"summary": "Get Current User's Organization Invitations",
"description": "Get a list of the organization invitations of the current user.",
"operationId": "getUsersOrganizationInvitations",
"tags": ["Organizations Memberships"],
"parameters": [
{
"$ref": "#/components/parameters/LimitParameter"
},
{
"$ref": "#/components/parameters/OffsetParameter"
},
{
"in": "query",
"name": "status",
"schema": {
"type": "string"
},
"description": "The status of the organization invitations to filter by"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationInvitationsUserContext"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/organization_invitations/{invitation_id}/accept": {
"post": {
"summary": "Accept Organization invitation",
"description": "Accept an organization invitation for the current user.",
"operationId": "acceptOrganizationInvitation",
"tags": ["Organizations Memberships"],
"parameters": [
{
"in": "path",
"name": "invitation_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the organization invitation to accept"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationInvitationUserContext"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/organization_suggestions": {
"get": {
"summary": "Get Organization Suggestions",
"description": "Get a list of the organization suggestions of the current user.",
"operationId": "getOrganizationSuggestions",
"tags": ["Organizations Memberships"],
"parameters": [
{
"$ref": "#/components/parameters/LimitParameter"
},
{
"$ref": "#/components/parameters/OffsetParameter"
},
{
"in": "query",
"name": "status",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationSuggestions"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/me/organization_suggestions/{suggestion_id}/accept": {
"post": {
"summary": "Accept Organization Suggestion",
"description": "Accept an organization suggestion for the current user.",
"operationId": "acceptOrganizationSuggestion",
"tags": ["Organizations Memberships"],
"parameters": [
{
"in": "path",
"name": "suggestion_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the organization suggestion to accept"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationSuggestion"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations": {
"post": {
"summary": "Create Organization",
"description": "Create an organization and add the current user as admin.",
"operationId": "createOrganization",
"tags": ["Organization"],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The organization name.\nMay not contain URLs or HTML."
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganization"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}": {
"get": {
"summary": "Get Organization",
"description": "Retrieve all properties of an organization that the current user is member of.",
"tags": ["Organization"],
"operationId": "getOrganization",
"parameters": [
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganization"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"patch": {
"summary": "Update Organization",
"description": "Update the given properties of an organization.\n\nThe current user must be an admin in the organization.",
"operationId": "updateOrganization",
"tags": ["Organization"],
"parameters": [
{
"in": "path",
"name": "organization_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the organization to update"
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The organization name.\nMay not contain URLs or HTML.",
"nullable": true
},
"slug": {
"type": "string",
"description": "The organization slug",
"nullable": true
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganization"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"delete": {
"summary": "Delete Organization",
"description": "Delete the given organization.\n\nThe current user must be an admin in the organization.",
"operationId": "deleteOrganization",
"tags": ["Organization"],
"parameters": [
{
"in": "path",
"name": "organization_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the organization to delete"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedDeletedObject"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/logo": {
"put": {
"summary": "Update Organization Logo",
"description": "Update the organization logo.\n\nThe current user must be an admin in the organization.",
"operationId": "updateOrganizationLogo",
"tags": ["Organization"],
"parameters": [
{
"in": "path",
"name": "organization_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the organization."
}
],
"requestBody": {
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"file": {
"type": "string",
"format": "binary"
}
}
}
},
"application/octet-stream": {
"schema": {
"format": "base64"
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/responses-Client.ClientWrappedOrganization"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"413": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"delete": {
"summary": "Delete Organization Logo",
"description": "Delete the organization logo.\n\nThe current user must be an admin in the organization.",
"operationId": "deleteOrganizationLogo",
"tags": ["Organization"],
"parameters": [
{
"in": "path",
"name": "organization_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the organization."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedDeletedObject"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/invitations": {
"post": {
"summary": "Create Organization Invitation",
"description": "Create an invitation for a user to join an organization.\n\nThe current user must have permissions to manage the members of the organization.",
"operationId": "createOrganizationInvitations",
"tags": ["Invitations"],
"parameters": [
{
"in": "path",
"name": "organization_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the organization for which the invitation will be created."
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"email_address": {
"type": "string",
"description": "The email address the invitation will be sent to.",
"nullable": false
},
"role": {
"type": "string",
"description": "The role that will be assigned to the user after joining.\nThis can be one of the predefined roles (`org:admin`, `org:basic_member`) or a custom role.",
"nullable": false
}
},
"required": ["email_address", "role"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationInvitation"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"get": {
"summary": "Get All Organization Invitations",
"description": "Retrieve all invitations for an organization.\n\nThe current user must have permissions to manage the members of the organization.",
"operationId": "getOrganizationInvitations",
"tags": ["Invitations"],
"parameters": [
{
"$ref": "#/components/parameters/LimitParameter"
},
{
"$ref": "#/components/parameters/OffsetParameter"
},
{
"in": "path",
"name": "organization_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the organization for which the invitation will be retrieved."
},
{
"in": "query",
"name": "status",
"required": false,
"schema": {
"type": "string",
"enum": ["pending", "accepted", "revoked", "invalid", "completed"]
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationInvitations"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/invitations/bulk": {
"post": {
"summary": "Bulk Create Organization Invitations",
"description": "Create an invitation for a user to join an organization.\n\nThe current user must have permissions to manage the members of the organization.",
"operationId": "bulkCreateOrganizationInvitations",
"tags": ["Invitations"],
"parameters": [
{
"in": "path",
"name": "organization_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the organization for which the invitations will be created."
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"email_address": {
"type": "array",
"description": "An array of email addresses the invitations will be sent to.",
"nullable": false,
"items": {
"type": "string"
}
},
"role": {
"type": "string",
"description": "The role that will be assigned to each of the users after joining.\nThis can be one of the predefined roles (`org:admin`, `org:basic_member`) or a custom role.",
"nullable": false
}
},
"required": ["email_address", "role"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationInvitations"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/invitations/pending": {
"get": {
"summary": "Get All Pending Organization Invitations",
"deprecated": true,
"description": "Get a list of pending invitations for an organization.\n\nThis endpoint is deprecated. Instead use the `/v1/organizations/{organization_id}/invitations`\nwith a query parameter of `status=pending`.",
"operationId": "getAllPendingOrganizationInvitations",
"tags": ["Invitations"],
"parameters": [
{
"in": "path",
"name": "organization_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the organization for which the invitations will be retrieved."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationInvitations"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/invitations/{invitation_id}/revoke": {
"post": {
"summary": "Revoke Pending Organization Invitation",
"description": "Revoke a pending organization invitation.\n\nThe current user must have permissions to manage the members of the organization.",
"operationId": "revokePendingOrganizationInvitation",
"tags": ["Invitations"],
"parameters": [
{
"in": "path",
"name": "organization_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the organization for which the invitations will be retrieved."
},
{
"in": "path",
"name": "invitation_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The id of the invitation to revoke."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationInvitation"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/memberships": {
"post": {
"summary": "Create Organization Membership",
"description": "Create a new organization membership.\n\nThe current user must have permissions to manage the members of the organization.",
"tags": ["Members"],
"operationId": "CreateOrganizationMembership",
"parameters": [
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"user_id": {
"type": "string",
"description": "The id of the user to be added as a member.",
"nullable": true
},
"role": {
"type": "string",
"description": "The role that will be assigned to the user after joining.\nThis can be one of the predefined roles (`org:admin`, `org:basic_member`) or a custom role defined.",
"nullable": true
}
},
"required": ["user_id", "role"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationMembership"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"get": {
"summary": "Get All Organization Members",
"description": "Retrieve all members of an organization.\n\nThe current user must have permissions to manage the members of the organization.",
"operationId": "ListOrganizationMemberships",
"tags": ["Members"],
"parameters": [
{
"$ref": "#/components/parameters/LimitParameter"
},
{
"$ref": "#/components/parameters/OffsetParameter"
},
{
"$ref": "#/components/parameters/Paginated"
},
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
},
{
"in": "query",
"required": false,
"name": "query",
"schema": {
"type": "string"
},
"description": "Returns members that match the given query.\nFor possible matches, we check for any of the user's identifier, usernames, user ids, first and last names.\nThe query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well."
},
{
"in": "query",
"required": false,
"name": "role",
"description": "Filter by roles. This can be one of the predefined roles (`org:admin`, `org:basic_member`) or a custom role defined.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationMemberships"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/memberships/{user_id}": {
"patch": {
"summary": "Update Organization Membership",
"description": "Update the attributes of a organization membership for a specific user.\nThe current user must have permissions to manage the members of the organization.",
"tags": ["Members"],
"operationId": "UpdateOrganizationMembership",
"parameters": [
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
},
{
"in": "path",
"required": true,
"name": "user_id",
"schema": {
"type": "string"
},
"description": "The member ID."
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"role": {
"type": "string",
"description": "The role that new role that will be assigned to the member.\nThis can be one of the predefined roles (`org:admin`, `org:basic_member`) or a custom role defined.",
"nullable": false
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationMembership"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"delete": {
"summary": "Remove Organization Member",
"description": "Remove a member from an organization.\n\nThe current user must have permissions to manage the members of the organization.",
"operationId": "removeOrganizationMember",
"tags": ["Members"],
"parameters": [
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
},
{
"in": "path",
"required": true,
"name": "user_id",
"schema": {
"type": "string"
},
"description": "The member ID."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationMembership"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/domains": {
"post": {
"summary": "Create Organization Domain",
"description": "Create a new organization domain.\n\nThe current user must have permissions to manage the domains of the organization.",
"tags": ["Domains"],
"operationId": "CreateOrganizationDomain",
"parameters": [
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The name of the new domain",
"nullable": false
}
},
"required": ["name"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationDomain"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"get": {
"summary": "Get All Organization Domains",
"description": "Retrieves a list of all the domains in an organization\n\nThe current user must have permissions to manage the domains of the organization.",
"tags": ["Domains"],
"operationId": "ListOrganizationDomains",
"parameters": [
{
"$ref": "#/components/parameters/LimitParameter"
},
{
"$ref": "#/components/parameters/OffsetParameter"
},
{
"in": "path",
"name": "organization_id",
"description": "The organization ID.",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "verified",
"description": "Filter by whether a domain is verified",
"required": false,
"schema": {
"type": "boolean"
}
},
{
"in": "query",
"name": "enrollment_mode",
"description": "Filter by enrollment mode",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationDomains"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/domains/{domain_id}": {
"get": {
"summary": "Get Organization Domain",
"description": "Retrieve all properties for a domain of an organization.\n\nThe current user must have permissions to manage the domains of the organization.",
"tags": ["Domains"],
"operationId": "GetOrganizationDomain",
"parameters": [
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
},
{
"in": "path",
"required": true,
"name": "domain_id",
"schema": {
"type": "string"
},
"description": "The domains ID."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationDomain"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
},
"delete": {
"summary": "Delete Organization Domain",
"description": "Remove a domain from an organization.\n\nThe current user must have permissions to manage the domains of the organization.",
"tags": ["Domains"],
"operationId": "deleteOrganizationDomain",
"parameters": [
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
},
{
"in": "path",
"required": true,
"name": "domain_id",
"schema": {
"type": "string"
},
"description": "The domain ID."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.DeletedOrganizationDomain"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/domains/{domain_id}/update_enrollment_mode": {
"post": {
"summary": "Update Organization Enrollment Mode",
"description": "Update the enrollment mode for an organization domain.\n\nThis can be either `automatic_invitation` or `automatic_suggestion`.\n\nThe current user must have permissions to manage the domains of the organization.",
"tags": ["Domains"],
"operationId": "UpdateOrganizationDomainEnrollmentMode",
"parameters": [
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
},
{
"in": "path",
"required": true,
"name": "domain_id",
"schema": {
"type": "string"
},
"description": "The domain ID."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"enrollment_mode": {
"type": "string",
"nullable": false
},
"delete_pending": {
"type": "boolean",
"nullable": true
}
},
"required": ["enrollment_mode"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationDomain"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/domains/{domain_id}/prepare_affiliation_verification": {
"post": {
"summary": "Prepare Organization Domain Affiliation Verification",
"description": "Prepares affiliation verification for an organization domain.\n\nThe current user must have permissions to manage the domains of the organization.",
"tags": ["Domains"],
"operationId": "prepareOrganizationDomainVerification",
"parameters": [
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
},
{
"in": "path",
"required": true,
"name": "domain_id",
"schema": {
"type": "string"
},
"description": "The domain ID."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"affiliation_email_address": {
"type": "string",
"nullable": false
}
},
"required": ["affiliation_email_address"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationDomain"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/domains/{domain_id}/attempt_affiliation_verification": {
"post": {
"summary": "Attempt Organization Domain Affiliation Verification",
"description": "Attempts affiliation verification for organization domain\n\nThe current user must have permissions to manage the domains of the organization.",
"tags": ["Domains"],
"operationId": "attemptOrganizationDomainVerification",
"parameters": [
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
},
{
"in": "path",
"required": true,
"name": "domain_id",
"schema": {
"type": "string"
},
"description": "The domain ID."
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"code": {
"type": "string",
"description": "The code that was sent to the email address.",
"nullable": false
}
},
"required": ["code"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationDomain"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/membership_requests": {
"get": {
"summary": "Get Organization Membership Requests",
"description": "Retrieve a list of all membership requests of an organization.\n\nThe current user must have permissions to manage the members of the organization.",
"tags": ["Membership Requests"],
"operationId": "listOrganizationMembershipRequests",
"parameters": [
{
"$ref": "#/components/parameters/LimitParameter"
},
{
"$ref": "#/components/parameters/OffsetParameter"
},
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
},
{
"in": "query",
"required": false,
"name": "status",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationMembershipRequests"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/membership_requests/{request_id}/accept": {
"post": {
"summary": "Accept Organization Membership Request",
"description": "Accepts an organization membership request.\n\nThe current user must have permissions to manage the members of the organization.",
"tags": ["Membership Requests"],
"operationId": "acceptOrganizationMembershipRequest",
"parameters": [
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
},
{
"in": "path",
"required": true,
"name": "request_id",
"schema": {
"type": "string"
},
"description": "The request ID."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationMembershipRequest"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/membership_requests/{request_id}/reject": {
"post": {
"summary": "Reject Organization Membership Request",
"description": "Rejects an organization membership request\n\nThe current user must have permissions to manage the members of the organization.",
"tags": ["Membership Requests"],
"operationId": "rejectOrganizationMembershipRequest",
"parameters": [
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
},
{
"in": "path",
"required": true,
"name": "request_id",
"schema": {
"type": "string"
},
"description": "The request ID."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedOrganizationMembershipRequest"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/organizations/{organization_id}/roles": {
"get": {
"summary": "Get Organization Roles",
"description": "Retrieve a list of all roles of an organization.",
"tags": ["Roles"],
"operationId": "ListOrganizationRoles",
"parameters": [
{
"$ref": "#/components/parameters/LimitParameter"
},
{
"$ref": "#/components/parameters/OffsetParameter"
},
{
"in": "path",
"required": true,
"name": "organization_id",
"schema": {
"type": "string"
},
"description": "The organization ID."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Client.ClientWrappedRoles"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/redirect": {
"get": {
"summary": "Redirect to a validated URL",
"description": "Validates and redirects to a safe URL. If no URL is provided, redirects to a default URL.",
"tags": ["Redirect"],
"operationId": "redirectToUrl",
"parameters": [
{
"name": "redirect_url",
"in": "query",
"description": "The URL to redirect to (optional). If empty or not provided, redirects to the default URL.",
"required": false,
"allowEmptyValue": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"307": {
"description": "Temporary redirect to the validated URL or default URL",
"headers": {
"Location": {
"description": "The URL to redirect to",
"schema": {
"type": "string",
"format": "uri"
}
}
}
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"401": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/tickets/accept": {
"get": {
"summary": "Accept ticket",
"description": "Parses a ticket JWT and performs the necessary actions depending on the ticket's source type.\nDepending on the ticket source type, a successful response can either redirect to a new location\nwith the ticket in the query string, or respond directly with a text/html content type for the response body.",
"operationId": "acceptTicket",
"tags": ["Sign Ins"],
"parameters": [
{
"in": "query",
"name": "ticket",
"required": true,
"schema": {
"type": "string"
},
"description": "The JWT with verification information"
}
],
"responses": {
"200": {
"description": "Successful response with a plain text or HTML body."
},
"302": {
"description": "Redirect"
},
"303": {
"description": "Redirect"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"404": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/verify": {
"get": {
"summary": "Attempt Email Link Verification",
"description": "Attempt to verify a verification with email_link strategy.",
"operationId": "verify",
"tags": ["Sign Ins"],
"parameters": [
{
"in": "query",
"name": "token",
"required": true,
"schema": {
"type": "string"
},
"description": "The JWT with verification information"
}
],
"responses": {
"200": {
"description": "OK"
},
"303": {
"description": "Redirect"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
},
"/v1/waitlist": {
"post": {
"summary": "Join Waitlist",
"description": "Adds an email address to the waitlist. If the email is already on the waitlist, the request will still succeed,\nreturning the ID of the existing waitlist entry.",
"operationId": "joinWaitlist",
"security": [
{},
{
"DevBrowser": []
}
],
"tags": ["Waitlist"],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"email_address": {
"type": "string",
"nullable": false
}
},
"required": ["email_address"]
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Client.WaitlistEntry"
},
"400": {
"$ref": "#/components/responses/ClerkErrors"
},
"403": {
"$ref": "#/components/responses/ClerkErrors"
},
"422": {
"$ref": "#/components/responses/ClerkErrors"
}
}
}
}
},
"components": {
"securitySchemes": {
"ProductionBrowser": {
"type": "apiKey",
"in": "cookie",
"name": "__client",
"description": "The Client API token sent in the form of a browser cookie.\n\nUsed to authenticate production browser applications."
},
"DevBrowser": {
"type": "apiKey",
"in": "query",
"name": "__dev_session"
},
"ProductionNativeApp": {
"type": "http",
"scheme": "bearer",
"description": "The Client API token sent in the `Authorization` header.\n\nUsed to authentication native applications."
},
"ProductionNativeFlag": {
"type": "apiKey",
"in": "query",
"name": "_is_native",
"description": "If sent and the value is true, it instructs the server to parse the api token from the `Authorization` Header.\n\nIt should always be set to true when using `Authorization` header authentication strategy."
},
"Session": {
"type": "apiKey",
"in": "header",
"name": "__session"
}
},
"schemas": {
"WellKnown.Assetlinks": {
"type": "array",
"additionalProperties": false,
"items": {
"type": "object",
"properties": {
"relation": {
"type": "array",
"items": {
"type": "string",
"enum": [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
]
}
},
"target": {
"type": "object",
"properties": {
"namespace": {
"type": "string"
},
"package_name": {
"type": "string"
},
"sha256_cert_fingerprints": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
"JWKS.ed25519.PublicKey": {
"type": "object",
"properties": {
"kid": {
"type": "string"
},
"alg": {
"type": "string"
},
"use": {
"type": "string"
},
"kty": {
"type": "string",
"enum": ["OKP"]
},
"crv": {
"type": "string",
"enum": ["Ed25519"]
},
"x": {
"type": "string"
},
"x5c": {
"type": "array",
"items": {
"type": "string"
}
},
"x5t": {
"type": "string"
},
"x5t#S256": {
"type": "string"
},
"x5u": {
"type": "string"
}
},
"required": ["kid", "alg", "use", "kty", "crv", "x"]
},
"JWKS.ecdsa.PublicKey": {
"type": "object",
"properties": {
"kid": {
"type": "string"
},
"alg": {
"type": "string"
},
"use": {
"type": "string"
},
"kty": {
"type": "string",
"enum": ["EC"]
},
"crv": {
"type": "string"
},
"x": {
"type": "string"
},
"y": {
"type": "string"
},
"x5c": {
"type": "array",
"items": {
"type": "string"
}
},
"x5t": {
"type": "string"
},
"x5t#S256": {
"type": "string"
},
"x5u": {
"type": "string"
}
},
"required": ["kid", "alg", "use", "kty", "crv", "x", "y"]
},
"JWKS.rsa.PublicKey": {
"type": "object",
"properties": {
"kid": {
"type": "string"
},
"alg": {
"type": "string"
},
"use": {
"type": "string"
},
"kty": {
"type": "string",
"enum": ["RSA"]
},
"n": {
"type": "string"
},
"e": {
"type": "string"
},
"x5c": {
"type": "array",
"items": {
"type": "string"
}
},
"x5t": {
"type": "string"
},
"x5t#S256": {
"type": "string"
},
"x5u": {
"type": "string"
}
},
"required": ["kid", "alg", "use", "kty", "n", "e"]
},
"JWKS.ed25519.PrivateKey": {
"type": "object",
"properties": {
"kid": {
"type": "string"
},
"alg": {
"type": "string"
},
"use": {
"type": "string"
},
"kty": {
"type": "string",
"enum": ["OKP"]
},
"crv": {
"type": "string",
"enum": ["Ed25519"]
},
"x": {
"type": "string"
},
"d": {
"type": "string"
},
"x5c": {
"type": "array",
"items": {
"type": "string"
}
},
"x5t": {
"type": "string"
},
"x5t#S256": {
"type": "string"
},
"x5u": {
"type": "string"
}
},
"required": ["kid", "alg", "use", "kty", "crv", "x", "d"]
},
"JWKS.ecdsa.PrivateKey": {
"type": "object",
"properties": {
"kid": {
"type": "string"
},
"alg": {
"type": "string"
},
"use": {
"type": "string"
},
"kty": {
"type": "string",
"enum": ["EC"]
},
"crv": {
"type": "string"
},
"x": {
"type": "string"
},
"y": {
"type": "string"
},
"d": {
"type": "string"
},
"x5c": {
"type": "array",
"items": {
"type": "string"
}
},
"x5t": {
"type": "string"
},
"x5t#S256": {
"type": "string"
},
"x5u": {
"type": "string"
}
},
"required": ["kid", "alg", "use", "kty", "crv", "x", "y", "d"]
},
"JWKS.rsa.PrivateKey": {
"type": "object",
"properties": {
"kid": {
"type": "string"
},
"alg": {
"type": "string"
},
"use": {
"type": "string"
},
"kty": {
"type": "string",
"enum": ["RSA"]
},
"n": {
"type": "string"
},
"e": {
"type": "string"
},
"d": {
"type": "string"
},
"p": {
"type": "string"
},
"q": {
"type": "string"
},
"dp": {
"type": "string"
},
"dq": {
"type": "string"
},
"qi": {
"type": "string"
},
"x5c": {
"type": "array",
"items": {
"type": "string"
}
},
"x5t": {
"type": "string"
},
"x5t#S256": {
"type": "string"
},
"x5u": {
"type": "string"
}
},
"required": ["kid", "alg", "use", "kty", "crv", "n", "e", "d", "p", "q"]
},
"JWKS.symmetric.Key": {
"type": "object",
"properties": {
"kid": {
"type": "string"
},
"alg": {
"type": "string"
},
"use": {
"type": "string"
},
"kty": {
"type": "string",
"enum": ["oct"]
},
"k": {
"type": "string"
},
"x5c": {
"type": "array",
"items": {
"type": "string"
}
},
"x5t": {
"type": "string"
},
"x5t#S256": {
"type": "string"
},
"x5u": {
"type": "string"
}
},
"required": ["kid", "alg", "use", "kty", "k"]
},
"JWKS": {
"type": "object",
"additionalProperties": false,
"properties": {
"keys": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/JWKS.ed25519.PublicKey"
},
{
"$ref": "#/components/schemas/JWKS.ecdsa.PublicKey"
},
{
"$ref": "#/components/schemas/JWKS.rsa.PublicKey"
},
{
"$ref": "#/components/schemas/JWKS.ed25519.PrivateKey"
},
{
"$ref": "#/components/schemas/JWKS.ecdsa.PrivateKey"
},
{
"$ref": "#/components/schemas/JWKS.rsa.PrivateKey"
},
{
"$ref": "#/components/schemas/JWKS.symmetric.Key"
}
]
}
}
}
},
"ClerkError": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"long_message": {
"type": "string"
},
"code": {
"type": "string"
},
"meta": {
"type": "object"
},
"clerk_trace_id": {
"type": "string"
}
},
"required": ["message", "long_message", "code"]
},
"ClerkErrors": {
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ClerkError"
}
},
"meta": {
"type": "object"
},
"clerk_trace_id": {
"type": "string"
}
},
"required": ["errors"]
},
"WellKnown.AppleAppSiteAssociation": {
"type": "object",
"additionalProperties": false,
"properties": {
"webcredentials": {
"type": "object",
"additionalProperties": false,
"properties": {
"apps": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"WellKnown.OpenIDConfiguration": {
"type": "object",
"additionalProperties": false,
"properties": {
"issuer": {
"type": "string"
},
"authorization_endpoint": {
"type": "string"
},
"token_endpoint": {
"type": "string"
},
"revocation_endpoint": {
"type": "string"
},
"userinfo_endpoint": {
"type": "string"
},
"jwks_uri": {
"type": "string"
},
"scopes_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"response_types_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"response_modes_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"grant_types_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"subject_types_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"id_token_signing_alg_values_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"token_endpoint_auth_methods_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"claims_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"code_challenge_methods_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"backchannel_logout_supported": {
"type": "boolean"
},
"frontchannel_logout_supported": {
"type": "boolean"
}
},
"required": [
"issuer",
"authorization_endpoint",
"token_endpoint",
"revocation_endpoint",
"userinfo_endpoint",
"jwks_uri",
"scopes_supported",
"response_types_supported",
"response_modes_supported",
"grant_types_supported",
"subject_types_supported",
"id_token_signing_alg_values_supported",
"token_endpoint_auth_methods_supported",
"claims_supported",
"code_challenge_methods_supported",
"backchannel_logout_supported",
"frontchannel_logout_supported"
]
},
"WellKnown.OAuth2AuthorizationServerMetadata": {
"type": "object",
"additionalProperties": false,
"properties": {
"issuer": {
"type": "string"
},
"authorization_endpoint": {
"type": "string"
},
"token_endpoint": {
"type": "string"
},
"revocation_endpoint": {
"type": "string"
},
"jwks_uri": {
"type": "string"
},
"registration_endpoint": {
"type": "string"
},
"response_types_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"grant_types_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"token_endpoint_auth_methods_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"scopes_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"subject_types_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"id_token_signing_alg_values_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"claims_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"service_documentation": {
"type": "string"
},
"ui_locales_supported": {
"type": "array",
"items": {
"type": "string"
}
},
"op_tos_uri": {
"type": "string"
},
"code_challenge_methods_supported": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"issuer",
"authorization_endpoint",
"token_endpoint",
"revocation_endpoint",
"jwks_uri",
"response_types_supported",
"grant_types_supported",
"token_endpoint_auth_methods_supported",
"scopes_supported",
"subject_types_supported",
"id_token_signing_alg_values_supported",
"claims_supported",
"code_challenge_methods_supported"
]
},
"OAuth.Token": {
"type": "object",
"additionalProperties": false,
"properties": {
"access_token": {
"type": "string"
},
"token_type": {
"type": "string"
},
"expires_in": {
"type": "integer"
},
"refresh_token": {
"type": "string"
},
"scope": {
"type": "string"
},
"id_token": {
"type": "string"
}
},
"required": ["access_token", "token_type"]
},
"OAuth.UserInfo": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string"
},
"instance_id": {
"type": "string"
},
"user_id": {
"type": "string"
},
"sub": {
"type": "string"
},
"email": {
"type": "string",
"nullable": true
},
"email_verified": {
"type": "boolean",
"nullable": true
},
"family_name": {
"type": "string",
"nullable": true
},
"given_name": {
"type": "string",
"nullable": true
},
"name": {
"type": "string",
"nullable": true
},
"username": {
"type": "string",
"nullable": true,
"deprecated": true,
"description": "Deprecated. Use `preferred_username` instead."
},
"preferred_username": {
"type": "string",
"nullable": true
},
"picture": {
"type": "string",
"nullable": true
},
"public_metadata": {
"type": "object",
"nullable": true,
"additionalProperties": true
},
"private_metadata": {
"type": "object",
"nullable": true,
"additionalProperties": true
},
"unsafe_metadata": {
"type": "object",
"nullable": true,
"additionalProperties": true
}
},
"required": ["object", "instance_id", "user_id", "sub"]
},
"OAuth.TokenInfo": {
"type": "object",
"additionalProperties": false,
"properties": {
"active": {
"type": "boolean",
"description": "Boolean indicator of whether or not the presented token is currently active."
},
"client_id": {
"type": "string",
"description": "Client identifier for the OAuth 2.0 client that requested this token.",
"nullable": true
},
"iat": {
"type": "integer",
"description": "Integer timestamp, measured in the number of seconds since January 1 1970 UTC, indicating when this token was originally issued, as defined in JWT [RFC7519].",
"nullable": true
},
"scope": {
"type": "string",
"description": "A JSON string containing a space-separated list of scopes associated with this token, in the format described in Section 3.3 of OAuth 2.0 [RFC6749].",
"nullable": true
},
"sub": {
"type": "string",
"description": "Subject of the token, as defined in JWT [RFC7519].",
"nullable": true
}
},
"required": ["active"]
},
"OAuth.ScopeWithDescription": {
"type": "object",
"additionalProperties": false,
"properties": {
"scope": {
"type": "string"
},
"description": {
"type": "string",
"nullable": true
},
"requires_consent": {
"type": "boolean",
"description": "Whether the scope requires user consent"
}
},
"required": ["scope", "requires_consent"]
},
"OAuth.ConsentInfo": {
"type": "object",
"additionalProperties": false,
"properties": {
"oauth_application_name": {
"type": "string"
},
"oauth_application_logo_url": {
"type": "string",
"nullable": true,
"description": "URL to the OAuth application's logo image"
},
"oauth_application_url": {
"type": "string",
"nullable": true,
"description": "URL to the OAuth application's website or homepage"
},
"client_id": {
"type": "string"
},
"scopes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OAuth.ScopeWithDescription"
}
}
},
"required": ["oauth_application_name", "client_id", "scopes"]
},
"Client.AccountPortal": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["account_portal"]
},
"allowed": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
},
"internal_linking": {
"type": "boolean"
},
"after_sign_in_url": {
"type": "string"
},
"after_sign_up_url": {
"type": "string"
},
"after_join_waitlist_url": {
"type": "string"
},
"after_create_organization_url": {
"type": "string"
},
"after_leave_organization_url": {
"type": "string"
},
"logo_link_url": {
"type": "string"
},
"customization": {
"type": "object",
"properties": {
"appearance": {
"type": "string",
"enum": ["auto", "dark", "light"],
"nullable": true
},
"background_color_dark": {
"type": "string",
"nullable": true
},
"background_color_light": {
"type": "string",
"nullable": true
},
"primary_color_dark": {
"type": "string",
"nullable": true
},
"primary_color_light": {
"type": "string",
"nullable": true
}
},
"required": [
"appearance",
"background_color_dark",
"background_color_light",
"primary_color_dark",
"primary_color_light"
]
}
},
"required": [
"object",
"allowed",
"enabled",
"internal_linking",
"after_sign_in_url",
"after_sign_up_url",
"after_join_waitlist_url",
"after_create_organization_url",
"after_leave_organization_url",
"logo_link_url",
"customization"
]
},
"Client.AuthConfig": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["auth_config"]
},
"id": {
"type": "string"
},
"first_name": {
"type": "string",
"enum": ["on", "off", "required"]
},
"last_name": {
"type": "string",
"enum": ["on", "off", "required"]
},
"email_address": {
"type": "string",
"enum": ["on", "off", "required"]
},
"phone_number": {
"type": "string",
"enum": ["on", "off", "required"]
},
"username": {
"type": "string",
"enum": ["on", "off", "required"]
},
"password": {
"type": "string",
"enum": ["on", "off", "required"]
},
"identification_requirements": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"identification_strategies": {
"type": "array",
"items": {
"type": "string"
}
},
"first_factors": {
"type": "array",
"items": {
"type": "string"
}
},
"second_factors": {
"type": "array",
"items": {
"type": "string"
}
},
"email_address_verification_strategies": {
"type": "array",
"items": {
"type": "string"
}
},
"single_session_mode": {
"type": "boolean"
},
"enhanced_email_deliverability": {
"type": "boolean"
},
"test_mode": {
"type": "boolean"
},
"cookieless_dev": {
"type": "boolean",
"description": "Please use `url_based_session_syncing` instead",
"deprecated": true
},
"url_based_session_syncing": {
"type": "boolean"
},
"claimed_at": {
"type": "integer",
"format": "int64",
"nullable": true
},
"reverification": {
"type": "boolean"
}
},
"required": [
"object",
"id",
"first_name",
"last_name",
"email_address",
"phone_number",
"username",
"password",
"identification_requirements",
"identification_strategies",
"first_factors",
"second_factors",
"email_address_verification_strategies",
"single_session_mode",
"enhanced_email_deliverability",
"test_mode",
"url_based_session_syncing",
"claimed_at",
"reverification"
]
},
"Image": {
"type": "object",
"properties": {
"object": {
"type": "string",
"description": "The object type. Always \"image\"."
},
"id": {
"type": "string",
"description": "Unique identifier for the image."
},
"name": {
"type": "string",
"description": "The file name of the uploaded image."
},
"public_url": {
"type": "string",
"description": "The publicly accessible URL for the image."
}
}
},
"Client.DisplayConfig": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["display_config"]
},
"id": {
"type": "string"
},
"instance_environment_type": {
"type": "string",
"enum": ["production", "development", "staging"]
},
"application_name": {
"type": "string"
},
"theme": {
"type": "object"
},
"preferred_sign_in_strategy": {
"type": "string",
"enum": ["password", "otp"]
},
"logo_image_url": {
"nullable": true,
"type": "string"
},
"favicon_image_url": {
"nullable": true,
"type": "string"
},
"home_url": {
"type": "string"
},
"sign_in_url": {
"type": "string"
},
"sign_up_url": {
"type": "string"
},
"user_profile_url": {
"type": "string"
},
"waitlist_url": {
"type": "string"
},
"after_sign_in_url": {
"type": "string"
},
"after_sign_up_url": {
"type": "string"
},
"after_sign_out_one_url": {
"type": "string"
},
"after_sign_out_all_url": {
"type": "string"
},
"after_switch_session_url": {
"type": "string"
},
"after_join_waitlist_url": {
"type": "string"
},
"organization_profile_url": {
"type": "string"
},
"create_organization_url": {
"type": "string"
},
"after_leave_organization_url": {
"type": "string"
},
"after_create_organization_url": {
"type": "string"
},
"logo_link_url": {
"type": "string"
},
"support_email": {
"type": "string",
"nullable": true
},
"branded": {
"type": "boolean"
},
"experimental_force_oauth_first": {
"type": "boolean"
},
"clerk_js_version": {
"type": "string",
"nullable": true
},
"show_devmode_warning": {
"type": "boolean"
},
"google_one_tap_client_id": {
"type": "string",
"nullable": true
},
"help_url": {
"type": "string",
"nullable": true
},
"privacy_policy_url": {
"type": "string",
"nullable": true
},
"terms_url": {
"type": "string",
"nullable": true
},
"logo_url": {
"nullable": true,
"type": "string",
"deprecated": true,
"description": "Use `logo_image_url` instead"
},
"favicon_url": {
"nullable": true,
"type": "string",
"deprecated": true,
"description": "Use `favicon_image_url` instead"
},
"logo_image": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Image"
}
],
"deprecated": true,
"description": "Use `logo_image_url` instead"
},
"favicon_image": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Image"
}
],
"deprecated": true,
"description": "Use `favicon_image_url` instead"
},
"captcha_public_key": {
"type": "string",
"nullable": true
},
"captcha_widget_type": {
"type": "string",
"nullable": true,
"enum": ["smart", "invisible"]
},
"captcha_public_key_invisible": {
"type": "string",
"nullable": true
},
"captcha_provider": {
"type": "string",
"nullable": true,
"enum": ["turnstile"]
},
"captcha_oauth_bypass": {
"type": "array",
"items": {
"type": "string"
}
},
"captcha_heartbeat": {
"type": "boolean",
"nullable": true
}
},
"required": [
"object",
"id",
"instance_environment_type",
"application_name",
"theme",
"preferred_sign_in_strategy",
"home_url",
"sign_in_url",
"sign_up_url",
"user_profile_url",
"waitlist_url",
"after_sign_in_url",
"after_sign_up_url",
"after_sign_out_one_url",
"after_sign_out_all_url",
"after_switch_session_url",
"after_join_waitlist_url",
"organization_profile_url",
"create_organization_url",
"after_leave_organization_url",
"after_create_organization_url",
"logo_link_url",
"support_email",
"branded",
"experimental_force_oauth_first",
"clerk_js_version",
"show_devmode_warning",
"google_one_tap_client_id",
"help_url",
"privacy_policy_url",
"terms_url",
"logo_url",
"favicon_url",
"logo_image",
"favicon_image",
"captcha_public_key",
"captcha_widget_type",
"captcha_public_key_invisible",
"captcha_provider",
"captcha_oauth_bypass"
]
},
"UserSettings.Attribute": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"required": {
"type": "boolean"
},
"used_for_first_factor": {
"type": "boolean"
},
"first_factors": {
"type": "array",
"items": {
"type": "string"
}
},
"used_for_second_factor": {
"type": "boolean"
},
"second_factors": {
"type": "array",
"items": {
"type": "string"
}
},
"verifications": {
"type": "array",
"items": {
"type": "string"
}
},
"verify_at_sign_up": {
"type": "boolean"
}
},
"required": [
"enabled",
"required",
"used_for_first_factor",
"first_factors",
"used_for_second_factor",
"second_factors",
"verifications",
"verify_at_sign_up"
]
},
"UserSettings.Attributes": {
"type": "object",
"additionalProperties": false,
"properties": {
"email_address": {
"$ref": "#/components/schemas/UserSettings.Attribute"
},
"phone_number": {
"$ref": "#/components/schemas/UserSettings.Attribute"
},
"username": {
"$ref": "#/components/schemas/UserSettings.Attribute"
},
"web3_wallet": {
"$ref": "#/components/schemas/UserSettings.Attribute"
},
"first_name": {
"$ref": "#/components/schemas/UserSettings.Attribute"
},
"last_name": {
"$ref": "#/components/schemas/UserSettings.Attribute"
},
"password": {
"$ref": "#/components/schemas/UserSettings.Attribute"
},
"authenticator_app": {
"$ref": "#/components/schemas/UserSettings.Attribute"
},
"ticket": {
"$ref": "#/components/schemas/UserSettings.Attribute"
},
"backup_code": {
"$ref": "#/components/schemas/UserSettings.Attribute"
},
"passkey": {
"$ref": "#/components/schemas/UserSettings.Attribute"
}
},
"required": [
"email_address",
"phone_number",
"username",
"web3_wallet",
"first_name",
"last_name",
"password",
"authenticator_app",
"ticket",
"backup_code",
"passkey"
]
},
"UserSettings.Social": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"required": {
"type": "boolean"
},
"authenticatable": {
"type": "boolean"
},
"block_email_subaddresses": {
"type": "boolean"
},
"strategy": {
"type": "string"
},
"not_selectable": {
"type": "boolean"
},
"deprecated": {
"type": "boolean"
},
"name": {
"type": "string",
"description": "A human readable name for the social provider.",
"example": "Google"
},
"logo_url": {
"type": "string",
"nullable": true,
"description": "A URL pointing to the logo of the social provider.",
"example": "https://img.clerk.com/static/google.png"
}
},
"required": [
"enabled",
"required",
"authenticatable",
"block_email_subaddresses",
"strategy",
"not_selectable",
"deprecated"
]
},
"UserSettings.Socials": {
"type": "object",
"additionalProperties": false,
"properties": {
"oauth_apple": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_atlassian": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_bitbucket": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_box": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_coinbase": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_custom_mock": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_discord": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_dropbox": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_enstall": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_expressen": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_facebook": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_github": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_gitlab": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_google": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_hubspot": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_huggingface": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_instagram": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_line": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_linear": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_linkedin": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_linkedin_oidc": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_microsoft": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_mock": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_notion": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_slack": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_spotify": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_tiktok": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_twitch": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_twitter": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_x": {
"$ref": "#/components/schemas/UserSettings.Social"
},
"oauth_xero": {
"$ref": "#/components/schemas/UserSettings.Social"
}
}
},
"UserSettings.EnterpriseSSO": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
}
},
"required": ["enabled"]
},
"UserSettings.SignIn": {
"type": "object",
"additionalProperties": false,
"properties": {
"second_factor": {
"type": "object",
"additionalProperties": false,
"properties": {
"required": {
"type": "boolean"
}
},
"required": ["required"]
}
},
"required": ["second_factor"]
},
"UserSettings.SignUp": {
"type": "object",
"additionalProperties": false,
"properties": {
"captcha_enabled": {
"type": "boolean"
},
"captcha_widget_type": {
"type": "string",
"enum": ["smart", "invisible"]
},
"custom_action_required": {
"type": "boolean"
},
"progressive": {
"type": "boolean"
},
"mode": {
"type": "string",
"enum": ["public", "restricted", "waitlist"]
},
"legal_consent_enabled": {
"type": "boolean"
}
},
"required": [
"captcha_enabled",
"captcha_widget_type",
"custom_action_required",
"progressive",
"mode",
"legal_consent_enabled"
]
},
"UserSettings.Restrictions.Enabled": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
}
},
"required": ["enabled"]
},
"UserSettings.Restrictions": {
"type": "object",
"additionalProperties": false,
"properties": {
"allowlist": {
"$ref": "#/components/schemas/UserSettings.Restrictions.Enabled"
},
"blocklist": {
"$ref": "#/components/schemas/UserSettings.Restrictions.Enabled"
},
"allowlist_blocklist_disabled_on_sign_in": {
"$ref": "#/components/schemas/UserSettings.Restrictions.Enabled"
},
"block_email_subaddresses": {
"$ref": "#/components/schemas/UserSettings.Restrictions.Enabled"
},
"block_disposable_email_domains": {
"$ref": "#/components/schemas/UserSettings.Restrictions.Enabled"
}
},
"required": [
"allowlist",
"blocklist",
"allowlist_blocklist_disabled_on_sign_in",
"block_email_subaddresses",
"block_disposable_email_domains"
]
},
"UserSettings.PasswordSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"disable_hibp": {
"type": "boolean"
},
"min_length": {
"type": "integer"
},
"max_length": {
"type": "integer"
},
"require_special_char": {
"type": "boolean",
"description": "Denotes whether given passwords should contain at least one of the following special characters: #%$&_!\n"
},
"require_numbers": {
"type": "boolean"
},
"require_uppercase": {
"type": "boolean"
},
"require_lowercase": {
"type": "boolean"
},
"show_zxcvbn": {
"type": "boolean"
},
"min_zxcvbn_strength": {
"type": "integer",
"minimum": 0,
"maximum": 4
},
"enforce_hibp_on_sign_in": {
"type": "boolean"
},
"allowed_special_characters": {
"type": "string"
}
},
"required": [
"disable_hibp",
"min_length",
"max_length",
"require_special_char",
"require_numbers",
"require_uppercase",
"require_lowercase",
"show_zxcvbn",
"min_zxcvbn_strength",
"enforce_hibp_on_sign_in",
"allowed_special_characters"
]
},
"UserSettings.UsernameSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"min_length": {
"type": "integer",
"nullable": true
},
"max_length": {
"type": "integer",
"nullable": true
},
"allow_extended_special_characters": {
"type": "boolean"
}
},
"required": [
"min_length",
"max_length",
"allow_extended_special_characters"
]
},
"UserSettings.ActionsSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"delete_self": {
"type": "boolean"
},
"create_organization": {
"type": "boolean"
},
"create_organizations_limit": {
"type": "boolean",
"nullable": true
}
},
"required": [
"delete_self",
"create_organization",
"create_organizations_limit"
]
},
"UserSettings.AttackProtectionSettings.UserLockout": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"max_attempts": {
"type": "integer"
},
"duration_in_minutes": {
"type": "integer"
}
},
"required": ["enabled", "max_attempts", "duration_in_minutes"]
},
"UserSettings.AttackProtectionSettings.PII": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
}
},
"required": ["enabled"]
},
"UserSettings.AttackProtectionSettings.EmailLink": {
"type": "object",
"additionalProperties": false,
"properties": {
"require_same_client": {
"type": "boolean"
}
},
"required": ["require_same_client"]
},
"UserSettings.AttackProtectionSettings.EnumerationProtection": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
}
},
"required": ["enabled"]
},
"UserSettings.AttackProtectionSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"user_lockout": {
"$ref": "#/components/schemas/UserSettings.AttackProtectionSettings.UserLockout"
},
"pii": {
"$ref": "#/components/schemas/UserSettings.AttackProtectionSettings.PII"
},
"email_link": {
"$ref": "#/components/schemas/UserSettings.AttackProtectionSettings.EmailLink"
},
"enumeration_protection": {
"$ref": "#/components/schemas/UserSettings.AttackProtectionSettings.EnumerationProtection"
}
},
"required": [
"user_lockout",
"pii",
"email_link",
"enumeration_protection"
]
},
"UserSettings.PasskeySettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"allow_autofill": {
"type": "boolean",
"description": "Passkey UI will be shown when user interacts with the text input.",
"default": true
},
"show_sign_in_button": {
"type": "boolean",
"description": "Passkey UI will be shown when user clicks on a button.",
"default": true
}
},
"required": ["allow_autofill", "show_sign_in_button"]
},
"Client.UserSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"attributes": {
"$ref": "#/components/schemas/UserSettings.Attributes"
},
"social": {
"$ref": "#/components/schemas/UserSettings.Socials"
},
"saml": {
"$ref": "#/components/schemas/UserSettings.EnterpriseSSO"
},
"enterprise_sso": {
"$ref": "#/components/schemas/UserSettings.EnterpriseSSO"
},
"sign_in": {
"$ref": "#/components/schemas/UserSettings.SignIn"
},
"sign_up": {
"$ref": "#/components/schemas/UserSettings.SignUp"
},
"restrictions": {
"$ref": "#/components/schemas/UserSettings.Restrictions"
},
"password_settings": {
"$ref": "#/components/schemas/UserSettings.PasswordSettings"
},
"username_settings": {
"$ref": "#/components/schemas/UserSettings.UsernameSettings"
},
"actions": {
"$ref": "#/components/schemas/UserSettings.ActionsSettings"
},
"attack_protection": {
"$ref": "#/components/schemas/UserSettings.AttackProtectionSettings"
},
"passkey_settings": {
"$ref": "#/components/schemas/UserSettings.PasskeySettings"
}
},
"required": [
"attributes",
"social",
"saml",
"enterprise_sso",
"sign_in",
"sign_up",
"restrictions",
"password_settings",
"username_settings",
"actions",
"attack_protection",
"passkey_settings"
]
},
"OrganizationSettings.ActionsSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"admin_delete": {
"type": "boolean"
}
},
"required": ["admin_delete"]
},
"OrganizationSettings.DomainsSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"enrollment_modes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"manual_invitation",
"automatic_invitation",
"automatic_suggestion"
]
}
},
"default_role": {
"type": "string",
"description": "The role key that it will be used in order to create an organization invitation or suggestion."
}
},
"required": ["enabled", "enrollment_modes", "default_role"]
},
"Client.OrganizationSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"max_allowed_memberships": {
"type": "integer"
},
"actions": {
"$ref": "#/components/schemas/OrganizationSettings.ActionsSettings"
},
"domains": {
"$ref": "#/components/schemas/OrganizationSettings.DomainsSettings"
},
"creator_role": {
"type": "string",
"description": "The role key that a user will be assigned after creating an organization."
}
},
"required": [
"enabled",
"max_allowed_memberships",
"actions",
"domains",
"creator_role"
]
},
"FraudSettings.NativeSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"device_attestation_mode": {
"type": "string",
"enum": ["disabled", "onboarding", "enforced"]
}
},
"required": ["device_attestation_mode"]
},
"Client.FraudSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.",
"enum": ["fraud_settings"]
},
"native": {
"$ref": "#/components/schemas/FraudSettings.NativeSettings"
}
},
"required": ["native"]
},
"Client.CommerceSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"billing": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"stripe_publishable_key": {
"type": "string",
"nullable": true
},
"has_paid_user_plans": {
"type": "boolean"
},
"has_paid_org_plans": {
"type": "boolean"
},
"user": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"has_paid_plans": {
"type": "boolean"
}
}
},
"organization": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"has_paid_plans": {
"type": "boolean"
}
}
}
}
}
},
"required": ["billing"]
},
"Client.ApiKeysSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean",
"description": "Indicates whether the API Keys feature is enabled."
}
},
"required": ["enabled"]
},
"Client.Environment": {
"type": "object",
"additionalProperties": false,
"properties": {
"auth_config": {
"$ref": "#/components/schemas/Client.AuthConfig"
},
"display_config": {
"$ref": "#/components/schemas/Client.DisplayConfig"
},
"user_settings": {
"$ref": "#/components/schemas/Client.UserSettings"
},
"organization_settings": {
"$ref": "#/components/schemas/Client.OrganizationSettings"
},
"fraud_settings": {
"$ref": "#/components/schemas/Client.FraudSettings"
},
"commerce_settings": {
"$ref": "#/components/schemas/Client.CommerceSettings"
},
"api_keys_settings": {
"$ref": "#/components/schemas/Client.ApiKeysSettings"
},
"client_debug_mode": {
"type": "boolean"
},
"maintenance_mode": {
"type": "boolean"
}
}
},
"Token": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.\n",
"enum": ["token"]
},
"jwt": {
"type": "string",
"description": "String representing the encoded jwt value.\n"
}
},
"required": ["object", "jwt"]
},
"Client.SessionTask": {
"type": "object",
"properties": {
"key": {
"type": "string"
}
},
"required": ["key"]
},
"Client.SessionBase": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.\n",
"enum": ["session"]
},
"status": {
"type": "string",
"enum": [
"active",
"revoked",
"ended",
"expired",
"removed",
"abandoned",
"pending"
]
},
"expire_at": {
"type": "integer",
"format": "int64"
},
"abandon_at": {
"type": "integer",
"format": "int64"
},
"last_active_at": {
"type": "integer",
"format": "int64"
},
"last_active_token": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Token"
}
]
},
"actor": {
"type": "object",
"nullable": true,
"additionalProperties": true
},
"tasks": {
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/Client.SessionTask"
}
}
},
"required": [
"id",
"object",
"status",
"expire_at",
"abandon_at",
"last_active_at"
]
},
"Stubs.Verification.OTP": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_otp"]
},
"status": {
"type": "string",
"enum": ["unverified", "verified", "failed", "expired"]
},
"strategy": {
"type": "string",
"enum": [
"phone_code",
"email_code",
"reset_password_email_code",
"reset_password_phone_code"
]
},
"attempts": {
"type": "integer",
"nullable": true
},
"expire_at": {
"type": "integer"
}
},
"required": ["status", "strategy", "expire_at"]
},
"Stubs.Verification.Invitation": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_invitation"]
},
"status": {
"type": "string",
"enum": ["verified"]
},
"strategy": {
"type": "string",
"enum": ["invitation"]
},
"attempts": {
"type": "integer",
"nullable": true
},
"expire_at": {
"type": "integer",
"nullable": true
}
},
"required": ["status", "strategy"]
},
"Stubs.Verification.Link": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_email_link"]
},
"status": {
"type": "string",
"enum": ["unverified", "verified", "failed", "expired"]
},
"strategy": {
"type": "string",
"enum": ["email_link"]
},
"attempts": {
"type": "integer",
"nullable": true
},
"expire_at": {
"type": "integer"
},
"verified_at_client": {
"type": "string"
}
},
"required": ["status", "strategy", "expire_at"]
},
"Stubs.Verification.Ticket": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_ticket"]
},
"status": {
"type": "string",
"enum": ["unverified", "verified", "expired"]
},
"strategy": {
"type": "string",
"enum": ["ticket"]
},
"attempts": {
"type": "integer",
"nullable": true
},
"expire_at": {
"type": "integer",
"nullable": true
}
},
"required": ["status", "strategy"]
},
"Stubs.Verification.Admin": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_admin"]
},
"status": {
"type": "string",
"enum": ["verified"]
},
"strategy": {
"type": "string",
"enum": ["admin"]
},
"attempts": {
"type": "integer",
"nullable": true
},
"expire_at": {
"type": "integer",
"nullable": true
}
},
"required": ["status", "strategy"]
},
"Stubs.Verification.FromOauth": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_from_oauth"]
},
"status": {
"type": "string",
"enum": ["verified", "unverified"]
},
"strategy": {
"type": "string",
"enum": [
"from_oauth_apple",
"from_oauth_google",
"from_oauth_mock",
"from_oauth_custom_mock"
]
},
"attempts": {
"type": "integer",
"nullable": true
},
"expire_at": {
"type": "integer",
"nullable": true
}
},
"required": ["status", "strategy"]
},
"Stubs.Verification.SAML": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_saml"]
},
"status": {
"type": "string",
"enum": [
"unverified",
"verified",
"failed",
"expired",
"transferable"
]
},
"strategy": {
"type": "string",
"enum": ["saml"]
},
"external_verification_redirect_url": {
"nullable": true,
"type": "string"
},
"error": {
"allOf": [
{
"$ref": "#/components/schemas/ClerkError"
},
{
"type": "object",
"nullable": true
}
]
},
"expire_at": {
"type": "integer",
"nullable": true
},
"attempts": {
"type": "integer",
"nullable": true
}
},
"required": ["status", "strategy"]
},
"Stubs.Identification.Link": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"enum": [
"oauth_apple",
"oauth_google",
"oauth_mock",
"oauth_custom_mock",
"saml"
]
},
"id": {
"type": "string"
}
},
"required": ["type", "id"]
},
"Client.EmailAddress": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.\n",
"enum": ["email_address"]
},
"email_address": {
"type": "string"
},
"reserved": {
"type": "boolean"
},
"verification": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.Verification.OTP"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Invitation"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Link"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Ticket"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Admin"
},
{
"$ref": "#/components/schemas/Stubs.Verification.FromOauth"
},
{
"$ref": "#/components/schemas/Stubs.Verification.SAML"
}
]
},
"linked_to": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Stubs.Identification.Link"
}
},
"matches_sso_connection": {
"description": "Indicates whether this email address domain matches an active enterprise connection.\n",
"type": "boolean"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation\n"
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation\n"
}
},
"required": [
"id",
"object",
"email_address",
"verification",
"linked_to",
"reserved",
"created_at",
"updated_at"
]
},
"Client.PhoneNumber": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.\n",
"enum": ["phone_number"]
},
"phone_number": {
"type": "string"
},
"reserved_for_second_factor": {
"type": "boolean"
},
"default_second_factor": {
"type": "boolean"
},
"reserved": {
"type": "boolean"
},
"verification": {
"nullable": true,
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.Verification.OTP"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Admin"
}
]
},
"linked_to": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Stubs.Identification.Link"
}
},
"backup_codes": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation\n"
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation\n"
}
},
"required": [
"id",
"object",
"phone_number",
"verification",
"linked_to",
"reserved",
"created_at",
"updated_at"
]
},
"Stubs.Verification.Web3Signature": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_web3"]
},
"status": {
"type": "string",
"enum": ["unverified", "verified", "failed", "expired"]
},
"strategy": {
"type": "string",
"enum": [
"web3_metamask_signature",
"web3_base_signature",
"web3_coinbase_wallet_signature",
"web3_okx_wallet_signature"
]
},
"attempts": {
"type": "integer",
"nullable": true
},
"expire_at": {
"type": "integer",
"nullable": true
},
"nonce": {
"type": "string",
"nullable": true
},
"message": {
"type": "string",
"nullable": true
}
},
"required": ["status", "strategy"]
},
"Client.Web3Wallet": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.\n",
"enum": ["web3_wallet"]
},
"web3_wallet": {
"type": "string"
},
"verification": {
"nullable": true,
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.Verification.Web3Signature"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Admin"
}
]
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation\n"
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation\n"
}
},
"required": [
"id",
"object",
"web3_wallet",
"verification",
"created_at",
"updated_at"
]
},
"Stubs.Verification.Passkey": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_passkey"]
},
"status": {
"type": "string",
"enum": ["unverified", "verified", "failed", "expired"]
},
"strategy": {
"type": "string",
"enum": ["passkey"]
},
"attempts": {
"type": "integer",
"nullable": true
},
"expire_at": {
"type": "integer"
},
"nonce": {
"type": "string"
}
},
"required": ["status", "strategy", "expire_at"]
},
"Client.Passkey": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.\n",
"enum": ["passkey"]
},
"name": {
"type": "string"
},
"last_used_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of when the passkey was last used.\n",
"nullable": true
},
"verification": {
"nullable": true,
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.Verification.Passkey"
}
]
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation\n"
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of update\n"
}
},
"required": ["id", "object", "name", "verification"]
},
"Client.Organization": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.\n",
"enum": ["organization"]
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"image_url": {
"type": "string"
},
"has_image": {
"type": "boolean"
},
"members_count": {
"type": "integer"
},
"pending_invitations_count": {
"type": "integer"
},
"max_allowed_memberships": {
"type": "integer"
},
"admin_delete_enabled": {
"type": "boolean"
},
"public_metadata": {
"type": "object",
"additionalProperties": true
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation.\n"
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update.\n"
},
"logo_url": {
"type": "string",
"nullable": true,
"deprecated": true,
"description": "Deprecated. Use `image_url` instead."
}
},
"required": [
"object",
"id",
"name",
"slug",
"has_image",
"max_allowed_memberships",
"admin_delete_enabled",
"public_metadata",
"created_at",
"updated_at"
]
},
"Client.PublicUserData": {
"type": "object",
"additionalProperties": false,
"properties": {
"first_name": {
"type": "string",
"nullable": true
},
"last_name": {
"type": "string",
"nullable": true
},
"image_url": {
"type": "string",
"nullable": true
},
"has_image": {
"type": "boolean"
},
"identifier": {
"type": "string"
},
"profile_image_url": {
"type": "string",
"nullable": true,
"deprecated": true,
"description": "Use `image_url` instead."
},
"user_id": {
"type": "string",
"nullable": true
}
},
"required": ["first_name", "last_name", "identifier", "has_image"]
},
"Client.OrganizationMembership": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.\n",
"enum": ["organization_membership"]
},
"public_metadata": {
"type": "object",
"additionalProperties": true
},
"role": {
"type": "string"
},
"role_name": {
"type": "string"
},
"permissions": {
"type": "array",
"nullable": true,
"items": {
"type": "string"
}
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation."
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update."
},
"organization": {
"$ref": "#/components/schemas/Client.Organization"
},
"public_user_data": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.PublicUserData"
}
]
}
},
"required": [
"object",
"id",
"public_metadata",
"role",
"role_name",
"permissions",
"created_at",
"updated_at",
"organization"
]
},
"verification_oauth": {
"x-speakeasy-name-override": "Oauth",
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_oauth"]
},
"status": {
"type": "string",
"x-speakeasy-unknown-values": "allow",
"enum": [
"unverified",
"verified",
"failed",
"expired",
"transferable"
]
},
"strategy": {
"type": "string",
"x-speakeasy-unknown-values": "allow",
"pattern": "^oauth_(?:(?:token_)|(?:custom_))?[a-z]+$"
},
"external_verification_redirect_url": {
"type": "string"
},
"error": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/ClerkError"
}
]
},
"expire_at": {
"type": "integer"
},
"attempts": {
"type": "integer",
"nullable": true
},
"verified_at_client": {
"type": "string",
"nullable": true
}
},
"required": ["status", "strategy", "attempts", "expire_at"]
},
"verification_google_one_tap": {
"x-speakeasy-name-override": "GoogleOneTap",
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_google_one_tap"]
},
"status": {
"type": "string",
"enum": ["unverified", "verified"]
},
"strategy": {
"type": "string",
"enum": ["google_one_tap"]
},
"expire_at": {
"type": "integer",
"nullable": true
},
"attempts": {
"type": "integer",
"nullable": true
},
"verified_at_client": {
"type": "string",
"nullable": true
},
"error": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/ClerkError"
}
]
}
},
"required": ["status", "strategy", "attempts", "expire_at"]
},
"ExternalAccountWithVerification": {
"type": "object",
"additionalProperties": true,
"properties": {
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.",
"enum": ["external_account", "facebook_account", "google_account"]
},
"id": {
"type": "string"
},
"provider": {
"type": "string"
},
"identification_id": {
"type": "string"
},
"provider_user_id": {
"description": "The unique ID of the user in the external provider's system",
"type": "string"
},
"approved_scopes": {
"type": "string"
},
"email_address": {
"type": "string"
},
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"avatar_url": {
"type": "string",
"deprecated": true,
"description": "Please use `image_url` instead"
},
"image_url": {
"type": "string",
"nullable": true
},
"username": {
"type": "string",
"nullable": true
},
"phone_number": {
"type": "string",
"nullable": true
},
"public_metadata": {
"type": "object",
"additionalProperties": true
},
"label": {
"type": "string",
"nullable": true
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation\n"
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation\n"
},
"verification": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/verification_oauth"
},
{
"$ref": "#/components/schemas/verification_google_one_tap"
}
],
"discriminator": {
"propertyName": "object"
}
}
},
"required": [
"object",
"id",
"provider",
"identification_id",
"provider_user_id",
"approved_scopes",
"email_address",
"first_name",
"last_name",
"public_metadata",
"created_at",
"updated_at",
"verification"
]
},
"Stubs.SAMLConnection.SAMLAccount": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"domain": {
"type": "string",
"deprecated": true
},
"domains": {
"type": "array",
"items": {
"type": "string"
}
},
"active": {
"type": "boolean"
},
"provider": {
"type": "string"
},
"sync_user_attributes": {
"type": "boolean"
},
"allow_subdomains": {
"type": "boolean"
},
"allow_idp_initiated": {
"type": "boolean"
},
"disable_additional_identifications": {
"type": "boolean"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation.\n"
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update.\n"
}
},
"required": [
"id",
"name",
"active",
"provider",
"sync_user_attributes",
"created_at",
"updated_at"
],
"anyOf": [
{
"required": ["domain"]
},
{
"required": ["domains"]
}
]
},
"Client.SAMLAccount": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.\n",
"enum": ["saml_account"]
},
"provider": {
"type": "string"
},
"active": {
"type": "boolean"
},
"email_address": {
"type": "string"
},
"first_name": {
"type": "string",
"nullable": true
},
"last_name": {
"type": "string",
"nullable": true
},
"provider_user_id": {
"description": "The unique ID of the user in the external provider's system",
"type": "string",
"nullable": true
},
"public_metadata": {
"type": "object",
"additionalProperties": true
},
"verification": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.Verification.SAML"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Ticket"
}
]
},
"saml_connection": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.SAMLConnection.SAMLAccount"
}
]
}
},
"required": [
"id",
"object",
"provider",
"active",
"email_address",
"first_name",
"last_name",
"provider_user_id",
"public_metadata",
"saml_connection",
"verification"
]
},
"Client.User": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.\n",
"enum": ["user"]
},
"username": {
"nullable": true,
"type": "string"
},
"first_name": {
"nullable": true,
"type": "string"
},
"last_name": {
"nullable": true,
"type": "string"
},
"image_url": {
"type": "string"
},
"has_image": {
"type": "boolean"
},
"primary_email_address_id": {
"nullable": true,
"type": "string"
},
"primary_phone_number_id": {
"nullable": true,
"type": "string"
},
"primary_web3_wallet_id": {
"nullable": true,
"type": "string"
},
"password_enabled": {
"type": "boolean"
},
"two_factor_enabled": {
"type": "boolean"
},
"totp_enabled": {
"type": "boolean"
},
"backup_code_enabled": {
"type": "boolean"
},
"email_addresses": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.EmailAddress"
}
},
"phone_numbers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.PhoneNumber"
}
},
"web3_wallets": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.Web3Wallet"
}
},
"passkeys": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.Passkey"
}
},
"organization_memberships": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.OrganizationMembership"
}
},
"external_accounts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ExternalAccountWithVerification"
}
},
"saml_accounts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.SAMLAccount"
}
},
"password_last_updated_at": {
"nullable": true,
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update.",
"example": 1700690400000
},
"public_metadata": {
"type": "object",
"additionalProperties": true
},
"private_metadata": {
"type": "object",
"additionalProperties": true
},
"unsafe_metadata": {
"type": "object",
"additionalProperties": true
},
"external_id": {
"nullable": true,
"type": "string"
},
"last_sign_in_at": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Unix timestamp of last sign-in.",
"example": 1700690400000
},
"banned": {
"type": "boolean",
"description": "Flag to denote whether user is banned or not."
},
"locked": {
"type": "boolean",
"description": "Flag to denote whether user is currently locked, i.e. restricted from signing in or not.\n"
},
"lockout_expires_in_seconds": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "The number of seconds remaining until the lockout period expires for a locked user. A null value for a locked user indicates that lockout never expires.\n",
"example": 300
},
"verification_attempts_remaining": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "The number of verification attempts remaining until the user is locked. Null if account lockout is not enabled. Note: if a user is locked explicitly via the Backend API, they may still have verification attempts remaining.\n"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation.",
"example": 1700690400000
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update.",
"example": 1700690400000
},
"delete_self_enabled": {
"type": "boolean",
"description": "If enabled, user can delete themselves via FAPI."
},
"create_organization_enabled": {
"type": "boolean",
"description": "If enabled, user can create organizations via FAPI."
},
"create_organizations_limit": {
"type": "integer",
"description": "The maximum number of organizations the user can create. 0 means unlimited."
},
"last_active_at": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Unix timestamp of the latest session activity, with day precision.",
"example": 1700690400000
},
"mfa_enabled_at": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Unix timestamp at which the user enabled MFA.",
"example": 1700690400000
},
"mfa_disabled_at": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Unix timestamp at which the user disabled MFA.",
"example": 1700690400000
},
"legal_accepted_at": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Unix timestamp at which the user accepted the legal requirements.",
"example": 1700690400000
},
"profile_image_url": {
"type": "string",
"deprecated": true,
"description": "Deprecated. Use `image_url` instead."
}
},
"required": [
"id",
"object",
"username",
"first_name",
"last_name",
"has_image",
"primary_email_address_id",
"primary_phone_number_id",
"primary_web3_wallet_id",
"password_enabled",
"two_factor_enabled",
"totp_enabled",
"backup_code_enabled",
"email_addresses",
"phone_numbers",
"web3_wallets",
"passkeys",
"external_accounts",
"saml_accounts",
"enterprise_accounts",
"public_metadata",
"external_id",
"last_sign_in_at",
"banned",
"locked",
"lockout_expires_in_seconds",
"verification_attempts_remaining",
"created_at",
"updated_at",
"delete_self_enabled",
"create_organization_enabled",
"last_active_at",
"mfa_enabled_at",
"mfa_disabled_at",
"legal_accepted_at"
]
},
"Client.Session": {
"allOf": [
{
"$ref": "#/components/schemas/Client.SessionBase"
},
{
"type": "object",
"properties": {
"last_active_organization_id": {
"type": "string",
"nullable": true
},
"user": {
"$ref": "#/components/schemas/Client.User"
},
"public_user_data": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.PublicUserData"
}
]
},
"factor_verification_age": {
"type": "array",
"description": "Each item represents the minutes that have passed since the last time a first or second factor were verified.",
"items": {
"type": "integer"
}
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation.",
"example": 1700690400000
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update.",
"example": 1700690400000
}
},
"required": [
"last_active_organization_id",
"public_user_data",
"factor_verification_age",
"created_at",
"updated_at"
]
}
]
},
"Stubs.SignInFactor": {
"type": "object",
"additionalProperties": false,
"properties": {
"strategy": {
"type": "string",
"enum": [
"ticket",
"password",
"email_code",
"email_link",
"phone_code",
"web3_metamask_signature",
"web3_base_signature",
"web3_coinbase_wallet_signature",
"web3_okx_wallet_signature",
"totp",
"backup_code",
"oauth_apple",
"oauth_google",
"oauth_facebook",
"oauth_hubspot",
"oauth_github",
"oauth_mock",
"oauth_custom_mock",
"oauth_token_mock",
"saml",
"enterprise_sso",
"reset_password_email_code",
"reset_password_phone_code",
"passkey",
"google_one_tap"
]
},
"safe_identifier": {
"type": "string"
},
"email_address_id": {
"type": "string"
},
"phone_number_id": {
"type": "string"
},
"web3_wallet_id": {
"type": "string"
},
"passkey_id": {
"type": "string"
},
"primary": {
"type": "boolean",
"nullable": true
},
"external_verification_redirect_url": {
"nullable": true,
"type": "string"
},
"default": {
"type": "boolean"
}
},
"required": ["strategy"]
},
"Stubs.Verification.Password": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_password"]
},
"status": {
"type": "string",
"enum": ["unverified", "verified"]
},
"strategy": {
"type": "string",
"enum": ["password"]
},
"attempts": {
"type": "integer",
"nullable": true
},
"expire_at": {
"type": "integer",
"nullable": true
}
},
"required": ["status", "strategy"]
},
"Stubs.Verification.Oauth": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_oauth"]
},
"status": {
"type": "string",
"enum": [
"unverified",
"verified",
"failed",
"expired",
"transferable"
]
},
"strategy": {
"type": "string",
"pattern": "^oauth_(?:(?:token_)|(?:custom_))?[a-z]+$"
},
"external_verification_redirect_url": {
"nullable": true,
"type": "string"
},
"error": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/ClerkError"
}
]
},
"expire_at": {
"type": "integer"
},
"attempts": {
"type": "integer",
"nullable": true
}
},
"required": ["status", "strategy", "expire_at"]
},
"Stubs.Verification.GoogleOneTap": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_google_one_tap"]
},
"status": {
"type": "string",
"enum": ["unverified", "verified"]
},
"strategy": {
"type": "string",
"enum": ["google_one_tap"]
},
"expire_at": {
"type": "integer",
"nullable": true
},
"attempts": {
"type": "integer",
"nullable": true
}
},
"required": ["status", "strategy"]
},
"Stubs.Verification.TOTP": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_totp"]
},
"status": {
"type": "string",
"enum": ["unverified", "verified"]
},
"strategy": {
"type": "string",
"enum": ["totp"]
},
"attempts": {
"type": "integer",
"nullable": true
},
"expire_at": {
"type": "integer",
"nullable": true
}
},
"required": ["status", "strategy"]
},
"Stubs.Verification.BackupCode": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["verification_backup_code"]
},
"status": {
"type": "string",
"enum": ["unverified", "verified"]
},
"strategy": {
"type": "string",
"enum": ["backup_code"]
},
"attempts": {
"type": "integer",
"nullable": true
},
"expire_at": {
"type": "integer",
"nullable": true
}
},
"required": ["status", "strategy"]
},
"Client.SignIn": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.",
"enum": ["sign_in_attempt"]
},
"id": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"abandoned",
"needs_identifier",
"needs_first_factor",
"needs_second_factor",
"needs_new_password",
"complete"
]
},
"supported_identifiers": {
"type": "array",
"description": "List of supported identifiers that can be used to sign in.",
"items": {
"type": "string",
"enum": [
"email_address",
"phone_number",
"username",
"web3_wallet",
"passkey"
]
}
},
"supported_first_factors": {
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/Stubs.SignInFactor"
}
},
"supported_second_factors": {
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/Stubs.SignInFactor"
}
},
"first_factor_verification": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.Verification.Password"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Oauth"
},
{
"$ref": "#/components/schemas/Stubs.Verification.OTP"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Link"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Web3Signature"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Ticket"
},
{
"$ref": "#/components/schemas/Stubs.Verification.SAML"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Passkey"
},
{
"$ref": "#/components/schemas/Stubs.Verification.GoogleOneTap"
}
]
},
"second_factor_verification": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.Verification.OTP"
},
{
"$ref": "#/components/schemas/Stubs.Verification.TOTP"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Ticket"
},
{
"$ref": "#/components/schemas/Stubs.Verification.BackupCode"
}
]
},
"identifier": {
"nullable": true,
"type": "string"
},
"user_data": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"first_name": {
"type": "string",
"nullable": true
},
"last_name": {
"type": "string",
"nullable": true
},
"image_url": {
"type": "string"
},
"has_image": {
"type": "boolean"
},
"profile_image_url": {
"type": "string",
"nullable": true,
"deprecated": true,
"description": "Use `image_url` instead."
}
},
"required": ["first_name", "last_name", "has_image"]
},
"created_session_id": {
"nullable": true,
"type": "string"
},
"abandon_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp at which the sign in will be abandoned.",
"example": 1700690400000
}
},
"required": [
"object",
"id",
"status",
"supported_identifiers",
"supported_first_factors",
"supported_second_factors",
"first_factor_verification",
"second_factor_verification",
"identifier",
"user_data",
"created_session_id",
"abandon_at"
]
},
"Stubs.SignUpVerification": {
"type": "object",
"properties": {
"next_action": {
"type": "string",
"enum": ["needs_prepare", "needs_attempt", ""]
},
"supported_strategies": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["next_action", "supported_strategies"]
},
"Client.SignUp.Verifications": {
"type": "object",
"properties": {
"email_address": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.SignUpVerification"
}
]
},
"phone_number": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.SignUpVerification"
}
]
},
"web3_wallet": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.SignUpVerification"
}
]
},
"external_account": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.Verification.Oauth"
},
{
"$ref": "#/components/schemas/Stubs.Verification.SAML"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Ticket"
},
{
"$ref": "#/components/schemas/Stubs.Verification.GoogleOneTap"
}
]
}
},
"required": [
"email_address",
"phone_number",
"web3_wallet",
"external_account"
]
},
"Client.SignUp": {
"type": "object",
"properties": {
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.\n",
"enum": ["sign_up_attempt"]
},
"id": {
"type": "string",
"description": "Unique identifier for this sign up."
},
"status": {
"type": "string",
"enum": ["abandoned", "missing_requirements", "complete"]
},
"required_fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of required fields which need to be supplied to the current sign-up. These fields are mandatory in order for the sign-up to satisfy the attached registration policy and be marked as complete.\n"
},
"optional_fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of optional fields which can be supplied to the current sign-up. These fields are not required and their absence does not prevent the sign-up to be marked as complete.\n"
},
"missing_fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of the missing fields which still need to be supplied to the current sign-up. These fields are mandatory in order for the sign-up to satisfy the attached registration policy and be marked as complete.\n"
},
"unverified_fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of fields which are already supplied to the current sign-up but they need to be verified. Example of such fields are email addresses and phone numbers.\n"
},
"verifications": {
"description": "Group for all available verifications.\n",
"allOf": [
{
"$ref": "#/components/schemas/Client.SignUp.Verifications"
}
]
},
"username": {
"type": "string",
"nullable": true
},
"email_address": {
"type": "string",
"nullable": true
},
"phone_number": {
"type": "string",
"nullable": true
},
"web3_wallet": {
"type": "string",
"nullable": true
},
"password_enabled": {
"type": "boolean"
},
"first_name": {
"type": "string",
"nullable": true
},
"last_name": {
"type": "string",
"nullable": true
},
"unsafe_metadata": {
"description": "Custom JSON that callers can use to store arbitrary values that make sense in the context of the current sign up.\n",
"type": "object",
"additionalProperties": true
},
"public_metadata": {
"description": "Custom JSON that can be used to store arbitrary values which will end up in the user's public metadata. This field can only be populated from the application's BE. At this point, this can be done via invitations.\n",
"type": "object",
"additionalProperties": true
},
"custom_action": {
"type": "boolean"
},
"external_id": {
"type": "string",
"nullable": true
},
"created_session_id": {
"type": "string",
"nullable": true
},
"created_user_id": {
"type": "string",
"nullable": true
},
"abandon_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp at which the sign up will be abandoned.",
"example": 1700690400000
},
"legal_accepted_at": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Unix timestamp at which the user accepted the legal requirements.",
"example": 1700690400000
}
},
"required": [
"object",
"id",
"status",
"required_fields",
"optional_fields",
"missing_fields",
"unverified_fields",
"verifications",
"username",
"email_address",
"phone_number",
"web3_wallet",
"password_enabled",
"first_name",
"last_name",
"custom_action",
"external_id",
"created_session_id",
"created_user_id",
"abandon_at",
"legal_accepted_at"
]
},
"Client.Client": {
"type": "object",
"nullable": true,
"properties": {
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.",
"enum": ["client"]
},
"id": {
"type": "string",
"description": "String representing the identifier of the session."
},
"sessions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.Session"
}
},
"sign_in": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.SignIn"
}
]
},
"sign_up": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.SignUp"
}
]
},
"last_active_session_id": {
"nullable": true,
"type": "string",
"description": "Last active session_id."
},
"cookie_expires_at": {
"nullable": true,
"type": "integer",
"format": "int64",
"description": "Unix timestamp of the cookie expiration."
},
"captcha_bypass": {
"type": "boolean",
"description": "Whether the client can bypass CAPTCHA."
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation."
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update."
}
},
"required": [
"object",
"id",
"sessions",
"sign_in",
"sign_up",
"last_active_session_id",
"cookie_expires_at",
"captcha_bypass",
"created_at",
"updated_at"
]
},
"Client.ClientWrappedClient": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
},
"client": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.DeleteSession": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
},
"client": {
"type": "object",
"nullable": true
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedSignIn": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"$ref": "#/components/schemas/Client.SignIn"
},
"client": {
"$ref": "#/components/schemas/Client.Client"
}
},
"required": ["response", "client"]
},
"schemas-Client.SessionBase": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.\n",
"enum": ["session"]
},
"status": {
"type": "string",
"enum": [
"active",
"revoked",
"ended",
"expired",
"removed",
"abandoned"
]
},
"expire_at": {
"type": "integer",
"format": "int64"
},
"abandon_at": {
"type": "integer",
"format": "int64"
},
"last_active_at": {
"type": "integer",
"format": "int64"
},
"last_active_token": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Token"
}
]
},
"actor": {
"type": "object",
"nullable": true,
"additionalProperties": true
}
},
"required": [
"id",
"object",
"status",
"expire_at",
"abandon_at",
"last_active_at"
]
},
"schemas-Client.Session": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-Client.SessionBase"
},
{
"type": "object",
"properties": {
"last_active_organization_id": {
"type": "string",
"nullable": true
},
"user": {
"$ref": "#/components/schemas/Client.User"
},
"public_user_data": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.PublicUserData"
}
]
},
"factor_verification_age": {
"type": "array",
"description": "Each item represents the minutes that have passed since the last time a first or second factor were verified.",
"items": {
"type": "integer"
}
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation.",
"example": 1700690400000
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update.",
"example": 1700690400000
}
},
"required": [
"last_active_organization_id",
"public_user_data",
"factor_verification_age",
"created_at",
"updated_at"
]
}
]
},
"schemas-Client.Client": {
"type": "object",
"nullable": true,
"properties": {
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.",
"enum": ["client"]
},
"id": {
"type": "string",
"description": "String representing the identifier of the session."
},
"sessions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/schemas-Client.Session"
}
},
"sign_in": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.SignIn"
}
]
},
"sign_up": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.SignUp"
}
]
},
"last_active_session_id": {
"nullable": true,
"type": "string",
"description": "Last active session_id."
},
"cookie_expires_at": {
"nullable": true,
"type": "integer",
"format": "int64",
"description": "Unix timestamp of the cookie expiration."
},
"captcha_bypass": {
"type": "boolean",
"description": "Whether the client can bypass CAPTCHA."
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation."
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update."
}
},
"required": [
"object",
"id",
"sessions",
"sign_in",
"sign_up",
"last_active_session_id",
"cookie_expires_at",
"captcha_bypass",
"created_at",
"updated_at"
]
},
"schemas-Client.ClientWrappedSignIn": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"$ref": "#/components/schemas/Client.SignIn"
},
"client": {
"$ref": "#/components/schemas/schemas-Client.Client"
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedSignUp": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"$ref": "#/components/schemas/Client.SignUp"
},
"client": {
"$ref": "#/components/schemas/Client.Client"
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedSession": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"$ref": "#/components/schemas/Client.Session"
},
"client": {
"$ref": "#/components/schemas/Client.Client"
}
},
"required": ["response", "client"]
},
"Client.SessionActivity": {
"type": "object",
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
},
"device_type": {
"type": "string"
},
"is_mobile": {
"type": "boolean"
},
"browser_name": {
"type": "string"
},
"browser_version": {
"type": "string"
},
"ip_address": {
"type": "string"
},
"city": {
"type": "string"
},
"country": {
"type": "string"
}
},
"required": ["id", "object", "is_mobile"]
},
"Client.ActiveSession": {
"allOf": [
{
"$ref": "#/components/schemas/Client.SessionBase"
},
{
"type": "object",
"properties": {
"latest_activity": {
"$ref": "#/components/schemas/Client.SessionActivity"
}
}
}
]
},
"Client.ActiveSessions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.ActiveSession"
}
},
"Client.SessionReverification": {
"type": "object",
"properties": {
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.",
"enum": ["session_reverification"]
},
"level": {
"type": "string",
"description": "The level used for the session reverification"
},
"status": {
"type": "string",
"enum": ["needs_first_factor", "needs_second_factor", "complete"]
},
"supported_first_factors": {
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/Stubs.SignInFactor"
}
},
"supported_second_factors": {
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/Stubs.SignInFactor"
}
},
"first_factor_verification": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.Verification.Password"
},
{
"$ref": "#/components/schemas/Stubs.Verification.OTP"
},
{
"$ref": "#/components/schemas/Stubs.Verification.Passkey"
}
]
},
"second_factor_verification": {
"type": "object",
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/Stubs.Verification.OTP"
},
{
"$ref": "#/components/schemas/Stubs.Verification.TOTP"
},
{
"$ref": "#/components/schemas/Stubs.Verification.BackupCode"
}
]
},
"session": {
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/Client.SessionBase"
}
]
}
},
"required": [
"object",
"level",
"status",
"supported_first_factors",
"supported_second_factors",
"first_factor_verification",
"second_factor_verification",
"session"
]
},
"Client.ClientWrappedSessionReverification": {
"type": "object",
"properties": {
"response": {
"$ref": "#/components/schemas/Client.SessionReverification"
},
"client": {
"$ref": "#/components/schemas/Client.Client"
}
},
"required": ["response", "client"]
},
"Server.Sessions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.Session"
}
},
"Server.UserEmailAddresses": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.EmailAddress"
}
},
"Client.ClientWrappedEmailAddress": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.EmailAddress"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.DeletedObject": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"object": {
"type": "string"
},
"deleted": {
"type": "boolean"
}
},
"required": ["object", "deleted"]
},
"Client.ClientWrappedDeletedObject": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"$ref": "#/components/schemas/Client.DeletedObject"
},
"client": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Server.UserPhoneNumbers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.PhoneNumber"
}
},
"Client.ClientWrappedPhoneNumber": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.PhoneNumber"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Server.UserWeb3Wallets": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.Web3Wallet"
}
},
"Client.ClientWrappedWeb3Wallet": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Web3Wallet"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedPasskey": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Passkey"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedExternalAccount": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/ExternalAccountWithVerification"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedUser": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.User"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"TOTP": {
"type": "object",
"additionalProperties": true,
"properties": {
"object": {
"type": "string",
"enum": ["totp"]
},
"id": {
"type": "string"
},
"secret": {
"type": "string",
"nullable": true
},
"uri": {
"type": "string",
"nullable": true
},
"verified": {
"type": "boolean"
},
"backup_codes": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
},
"created_at": {
"type": "integer",
"format": "int64"
},
"updated_at": {
"type": "integer",
"format": "int64"
}
},
"required": [
"object",
"id",
"secret",
"uri",
"verified",
"created_at",
"updated_at"
]
},
"Client.ClientWrappedTOTP": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/TOTP"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"BackupCodes": {
"type": "object",
"properties": {
"object": {
"type": "string",
"enum": ["backup_code"]
},
"id": {
"type": "string"
},
"codes": {
"type": "array",
"items": {
"type": "string",
"description": "A list of backup codes"
}
},
"created_at": {
"type": "integer",
"format": "int64"
},
"updated_at": {
"type": "integer",
"format": "int64"
}
},
"required": ["object", "id", "codes", "created_at", "updated_at"]
},
"Client.ClientWrappedBackupCodes": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/BackupCodes"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedImage": {
"type": "object",
"properties": {
"response": {
"$ref": "#/components/schemas/Image"
},
"client": {
"$ref": "#/components/schemas/schemas-Client.Client"
}
},
"required": ["response", "client"]
},
"schemas-Client.ClientWrappedUser": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.User"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/schemas-Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedOrganizationMemberships": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"oneOf": [
{
"type": "object",
"nullable": false,
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.OrganizationMembership"
}
},
"total_count": {
"type": "integer",
"format": "int64"
}
}
},
{
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.OrganizationMembership"
}
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.PublicOrganizationData": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"image_url": {
"type": "string"
},
"has_image": {
"type": "boolean"
}
},
"required": ["id", "name", "slug", "has_image"]
},
"Client.OrganizationInvitation": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.",
"enum": ["organization_invitation"]
},
"email_address": {
"type": "string"
},
"role": {
"type": "string"
},
"role_name": {
"type": "string"
},
"organization_id": {
"type": "string"
},
"public_organization_data": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Client.PublicOrganizationData"
}
]
},
"status": {
"type": "string",
"description": "String representing the object's type. Objects of the same type share the same value.",
"enum": ["pending", "revoked", "accepted", "completed"]
},
"public_metadata": {
"type": "object",
"additionalProperties": true
},
"url": {
"type": "string",
"nullable": true
},
"expires_at": {
"type": "integer",
"nullable": true,
"format": "int64"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation."
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update."
}
},
"required": [
"object",
"id",
"email_address",
"role",
"role_name",
"public_metadata",
"url",
"expires_at",
"created_at",
"updated_at"
]
},
"Client.OrganizationInvitationUserContext": {
"type": "object",
"properties": {
"public_organization_data": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.PublicOrganizationData"
}
]
}
},
"allOf": [
{
"$ref": "#/components/schemas/Client.OrganizationInvitation"
}
]
},
"Client.ClientWrappedOrganizationInvitationsUserContext": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.OrganizationInvitationUserContext"
}
},
"total_count": {
"type": "integer",
"format": "int64"
}
}
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedOrganizationInvitationUserContext": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"allOf": [
{
"$ref": "#/components/schemas/Client.OrganizationInvitationUserContext"
}
],
"type": "object",
"nullable": false
},
"client": {
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
],
"type": "object",
"nullable": false
}
},
"required": ["response", "client"]
},
"Client.OrganizationSuggestion": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["organization_suggestion"]
},
"id": {
"type": "string"
},
"public_organization_data": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Client.PublicOrganizationData"
}
]
},
"status": {
"type": "string"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation."
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update."
}
},
"required": ["object", "id", "status", "created_at", "updated_at"]
},
"Client.ClientWrappedOrganizationSuggestions": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.OrganizationSuggestion"
}
},
"total_count": {
"type": "integer",
"format": "int64"
}
}
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedOrganizationSuggestion": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.OrganizationSuggestion"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedOrganization": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Organization"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"schemas-Client.ClientWrappedOrganization": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Organization"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/schemas-Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedOrganizationInvitations": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"oneOf": [
{
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.OrganizationInvitation"
}
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.OrganizationInvitation"
}
},
"total_count": {
"type": "integer",
"format": "int64"
}
}
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedOrganizationInvitation": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.OrganizationInvitation"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedOrganizationMembership": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.OrganizationMembership"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.OrganizationDomainVerification": {
"type": "object",
"additionalProperties": false,
"properties": {
"status": {
"type": "string"
},
"strategy": {
"type": "string"
},
"attempts": {
"type": "integer",
"nullable": true
},
"expire_at": {
"nullable": true,
"type": "integer",
"format": "int64"
}
},
"required": ["status", "strategy", "attempts", "expire_at"]
},
"Client.OrganizationDomain": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["organization_domain"]
},
"id": {
"type": "string"
},
"organization_id": {
"type": "string"
},
"name": {
"type": "string"
},
"enrollment_mode": {
"type": "string"
},
"affiliation_email_address": {
"nullable": true,
"type": "string"
},
"verification": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.OrganizationDomainVerification"
}
]
},
"total_pending_invitations": {
"type": "integer"
},
"total_pending_suggestions": {
"type": "integer"
},
"public_organization_data": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.PublicOrganizationData"
}
]
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation."
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update."
}
},
"required": [
"object",
"id",
"organization_id",
"name",
"enrollment_mode",
"affiliation_email_address",
"verification",
"total_pending_invitations",
"total_pending_suggestions",
"created_at",
"updated_at"
]
},
"Client.ClientWrappedOrganizationDomains": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.OrganizationDomain"
}
},
"total_count": {
"type": "integer",
"format": "int64"
}
}
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedOrganizationDomain": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.OrganizationDomain"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.OrganizationMembershipRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["organization_membership_request"]
},
"id": {
"type": "string"
},
"organization_id": {
"type": "string"
},
"status": {
"type": "string"
},
"public_user_data": {
"type": "object",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Client.PublicUserData"
}
]
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation."
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update."
}
},
"required": [
"object",
"id",
"organization_id",
"status",
"public_user_data",
"created_at",
"updated_at"
]
},
"Client.ClientWrappedOrganizationMembershipRequests": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.OrganizationMembershipRequest"
}
},
"total_count": {
"type": "integer",
"format": "int64"
}
}
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.ClientWrappedOrganizationMembershipRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.OrganizationMembershipRequest"
}
]
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.Permission": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["permission"]
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"key": {
"type": "string"
},
"description": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["system", "user"]
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation."
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update."
}
},
"required": [
"object",
"id",
"name",
"key",
"description",
"type",
"created_at",
"updated_at"
]
},
"Client.Role": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["role"]
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"key": {
"type": "string"
},
"description": {
"type": "string"
},
"is_creator_eligible": {
"type": "boolean"
},
"permissions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.Permission"
}
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of creation."
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp of last update."
}
},
"required": [
"object",
"id",
"name",
"key",
"description",
"is_creator_eligible",
"permissions",
"created_at",
"updated_at"
]
},
"Client.ClientWrappedRoles": {
"type": "object",
"additionalProperties": false,
"properties": {
"response": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Client.Role"
}
},
"total_count": {
"type": "integer",
"format": "int64"
}
}
},
"client": {
"type": "object",
"nullable": false,
"allOf": [
{
"$ref": "#/components/schemas/Client.Client"
}
]
}
},
"required": ["response", "client"]
},
"Client.WaitlistEntry": {
"type": "object",
"additionalProperties": false,
"properties": {
"object": {
"type": "string",
"enum": ["waitlist_entry"]
},
"id": {
"type": "string"
}
},
"required": ["object", "id"]
}
},
"responses": {
"WellKnown.Assetlinks": {
"description": "Get Android asset links for universal/deep linking",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WellKnown.Assetlinks"
}
}
}
},
"WellKnown.JWKS": {
"description": "Get the JSON Web Key Set",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/JWKS"
}
}
}
},
"ClerkErrors": {
"description": "Request was not successful",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ClerkErrors"
}
}
}
},
"WellKnown.AppleAppSiteAssociation": {
"description": "Get the Apple App Site Association file",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WellKnown.AppleAppSiteAssociation"
}
}
}
},
"WellKnown.OpenIDConfiguration": {
"description": "Get a basic openid configuration payload",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WellKnown.OpenIDConfiguration"
}
}
}
},
"WellKnown.OAuth2AuthorizationServerMetadata": {
"description": "Get the OAuth 2.0 Authorization Server Metadata",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WellKnown.OAuth2AuthorizationServerMetadata"
}
}
}
},
"OAuth.Token": {
"description": "Fetch token for OAuth2 flow",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OAuth.Token"
}
}
}
},
"OAuth.UserInfo": {
"description": "Get user info after successful OAuth2 flow",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OAuth.UserInfo"
}
}
}
},
"OAuth.TokenInfo": {
"description": "Get information for an access or refresh token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OAuth.TokenInfo"
}
}
}
},
"OAuth.ConsentInfo": {
"description": "OAuth2 consent information for a given OAuth Application Client ID and State",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OAuth.ConsentInfo"
}
}
}
},
"Client.AccountPortal": {
"description": "Returns the account portal.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.AccountPortal"
}
}
}
},
"Client.Environment": {
"description": "Returns the environment.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.Environment"
}
}
}
},
"Client.Client": {
"description": "Returns the current session object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedClient"
}
}
}
},
"Client.DeleteSession": {
"description": "Returns the response for DELETE session object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.DeleteSession"
}
}
}
},
"Client.SignIn": {
"description": "Returns the sign in object, as well as the updated session object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedSignIn"
}
}
}
},
"responses-Client.SignIn": {
"description": "Returns the sign in object, as well as the updated session object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/schemas-Client.ClientWrappedSignIn"
}
}
}
},
"Client.SignUp": {
"description": "Returns the sign up object, as well as the updated session object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedSignUp"
}
}
}
},
"Client.Session": {
"description": "Returns a Session object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedSession"
}
}
}
},
"Client.ActiveSessions": {
"description": "Returns an Active Sessions array.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ActiveSessions"
}
}
}
},
"Client.SessionReverification": {
"description": "Returns the session reverification object, as well as the session object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedSessionReverification"
}
}
}
},
"Server.Sessions": {
"description": "Returns Sessions array.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Server.Sessions"
}
}
}
},
"Server.UserEmailAddresses": {
"description": "Returns UserEmailAddresses array.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Server.UserEmailAddresses"
}
}
}
},
"Client.ClientWrappedEmailAddress": {
"description": "Returns the response for Session wrapped Email object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedEmailAddress"
}
}
}
},
"Client.ClientWrappedDeletedObject": {
"description": "Returns a deleted generic object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedDeletedObject"
}
}
}
},
"Server.UserPhoneNumbers": {
"description": "Returns UserPhoneNumbers array.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Server.UserPhoneNumbers"
}
}
}
},
"Client.ClientWrappedPhoneNumber": {
"description": "Returns the response for Session wrapped Email object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedPhoneNumber"
}
}
}
},
"Client.DeletedPhoneNumber": {
"description": "Returns single DeletedPhoneNumber.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedDeletedObject"
}
}
}
},
"Server.UserWeb3Wallets": {
"description": "Returns UserWeb3Wallets array.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Server.UserWeb3Wallets"
}
}
}
},
"Client.ClientWrappedWeb3Wallet": {
"description": "Returns the response for Session wrapped Web3 wallet object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedWeb3Wallet"
}
}
}
},
"Client.ClientWrappedPasskey": {
"description": "Returns the response for Session wrapped Passkey object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedPasskey"
}
}
}
},
"Client.DeletedPasskey": {
"description": "Returns a deleted Passkey object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedDeletedObject"
}
}
}
},
"Client.ClientWrappedExternalAccount": {
"description": "Returns the response for Session wrapped Verification object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedExternalAccount"
}
}
}
},
"Client.DeletedExternalAccount": {
"description": "Returns a deleted external account.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedDeletedObject"
}
}
}
},
"Client.ClientWrappedUser": {
"description": "Returns the response for Session wrapped User object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedUser"
}
}
}
},
"Client.ClientWrappedTOTP": {
"description": "Returns the response for Session wrapped TOTP object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedTOTP"
}
}
}
},
"Client.DeletedTOTP": {
"description": "Returns a deleted TOTP.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedDeletedObject"
}
}
}
},
"Client.ClientWrappedBackupCodes": {
"description": "Returns the response for Session wrapped Backup code object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedBackupCodes"
}
}
}
},
"Token": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Token"
}
}
}
},
"Client.ClientWrappedImage": {
"description": "Returns an Image object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedImage"
}
}
}
},
"responses-Client.ClientWrappedUser": {
"description": "Returns the response for Session wrapped User object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/schemas-Client.ClientWrappedUser"
}
}
}
},
"Client.ClientWrappedOrganizationMemberships": {
"description": "Returns the response for Client wrapped array of OrganizationMembership objects.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganizationMemberships"
}
}
}
},
"Client.ClientWrappedOrganizationInvitationsUserContext": {
"description": "Returns the response for Client wrapped array of OrganizationInvitation objects with user context.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganizationInvitationsUserContext"
}
}
}
},
"Client.ClientWrappedOrganizationInvitationUserContext": {
"description": "Returns the response for Client wrapped OrganizationInvitation object with user context.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganizationInvitationUserContext"
}
}
}
},
"Client.ClientWrappedOrganizationSuggestions": {
"description": "Returns the response for Client wrapped array of OrganizationSuggestion objects with user context.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganizationSuggestions"
}
}
}
},
"Client.ClientWrappedOrganizationSuggestion": {
"description": "Returns the response for Client wrapped OrganizationSuggestion object with user context.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganizationSuggestion"
}
}
}
},
"Client.ClientWrappedOrganization": {
"description": "Returns the response for Client wrapped Organization object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganization"
}
}
}
},
"responses-Client.ClientWrappedOrganization": {
"description": "Returns the response for Client wrapped Organization object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/schemas-Client.ClientWrappedOrganization"
}
}
}
},
"Client.ClientWrappedOrganizationInvitations": {
"description": "Returns the response for Client wrapped array of OrganizationInvitation objects.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganizationInvitations"
}
}
}
},
"Client.ClientWrappedOrganizationInvitation": {
"description": "Returns the response for Client wrapped OrganizationInvitation object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganizationInvitation"
}
}
}
},
"Client.ClientWrappedOrganizationMembership": {
"description": "Returns the response for Client wrapped OrganizationMembership object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganizationMembership"
}
}
}
},
"Client.ClientWrappedOrganizationDomains": {
"description": "Returns the response for Client wrapped array of OrganizationDomain objects.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganizationDomains"
}
}
}
},
"Client.ClientWrappedOrganizationDomain": {
"description": "Returns the response for Client wrapped OrganizationDomain object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganizationDomain"
}
}
}
},
"Client.DeletedOrganizationDomain": {
"description": "Returns a deleted organization domain.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedDeletedObject"
}
}
}
},
"Client.ClientWrappedOrganizationMembershipRequests": {
"description": "Returns the response for Client wrapped OrganizationMembershipRequest objects.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganizationMembershipRequests"
}
}
}
},
"Client.ClientWrappedOrganizationMembershipRequest": {
"description": "Returns the response for Client wrapped OrganizationMembershipRequest object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedOrganizationMembershipRequest"
}
}
}
},
"Client.ClientWrappedRoles": {
"description": "Returns the response for Client wrapped Roles objects.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.ClientWrappedRoles"
}
}
}
},
"Client.WaitlistEntry": {
"description": "Returns the waitlist object.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Client.WaitlistEntry"
}
}
}
}
},
"parameters": {
"LimitParameter": {
"name": "limit",
"in": "query",
"description": "Applies a limit to the number of results returned.\nCan be used for paginating the results together with `offset`.",
"required": false,
"schema": {
"type": "integer",
"default": 10,
"minimum": 1,
"maximum": 500
}
},
"OffsetParameter": {
"name": "offset",
"in": "query",
"description": "Skip the first `offset` results when paginating.\nNeeds to be an integer greater or equal to zero.\nTo be used in conjunction with `limit`.",
"required": false,
"schema": {
"type": "integer",
"default": 0,
"minimum": 0
}
},
"Paginated": {
"name": "paginated",
"in": "query",
"description": "Whether to paginate the results.\nIf true, the results will be paginated.\nIf false, the results will not be paginated.",
"required": false,
"schema": {
"type": "boolean"
}
}
}
},
"x-tagGroups": [
{
"name": "Environment",
"tags": ["Environment"]
},
{
"name": "Client",
"tags": ["Client", "Sessions", "Sign Ins", "Sign Ups"]
},
{
"name": "User",
"tags": [
"User",
"Active Sessions",
"Email Addresses",
"Phone Numbers",
"Web3 Wallets",
"Passkeys",
"External Accounts",
"TOTP",
"Backup Codes",
"Organizations Memberships"
]
},
{
"name": "Organizations",
"tags": [
"Organization",
"Invitations",
"Membership Requests",
"Members",
"Domains",
"Roles"
]
},
{
"name": "Other",
"tags": [
"Well Known",
"DevBrowser",
"Health",
"OAuth2 Identify Provider",
"OAuth2 Callbacks",
"SAML",
"Waitlist"
]
}
]
}