The user object represents a user that has successfully signed up to your application.
Returns a list of all users. The users are returned sorted by creation date, with the newest users appearing first.
Success
Request was not successful
Authentication invalid
Invalid request parameters
[- {
- "id": "string",
- "object": "user",
- "external_id": "string",
- "primary_email_address_id": "string",
- "primary_phone_number_id": "string",
- "primary_web3_wallet_id": "string",
- "username": "string",
- "first_name": "string",
- "last_name": "string",
- "profile_image_url": "string",
- "image_url": "string",
- "has_image": true,
- "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "email_addresses": [
- {
- "id": "string",
- "object": "email_address",
- "email_address": "string",
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "created_at": 0,
- "updated_at": 0
}
], - "phone_numbers": [
- {
- "id": "string",
- "object": "phone_number",
- "phone_number": "string",
- "reserved_for_second_factor": true,
- "default_second_factor": true,
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "backup_codes": [
- "string"
], - "created_at": 0,
- "updated_at": 0
}
], - "web3_wallets": [
- {
- "id": "string",
- "object": "web3_wallet",
- "web3_wallet": "string",
- "verification": {
- "status": "unverified",
- "strategy": "web3_metamask_signature",
- "nonce": "string",
- "attempts": 0,
- "expire_at": 0
}, - "created_at": 0,
- "updated_at": 0
}
], - "passkeys": [
- {
- "id": "string",
- "object": "passkey",
- "name": "string",
- "last_used_at": 0,
- "verification": {
- "status": "verified",
- "strategy": "passkey",
- "nonce": "nonce",
- "attempts": 0,
- "expire_at": 0
}
}
], - "password_enabled": true,
- "two_factor_enabled": true,
- "totp_enabled": true,
- "backup_code_enabled": true,
- "mfa_enabled_at": 0,
- "mfa_disabled_at": 0,
- "external_accounts": [
- { }
], - "saml_accounts": [
- {
- "id": "string",
- "object": "saml_account",
- "provider": "string",
- "active": true,
- "email_address": "string",
- "first_name": "string",
- "last_name": "string",
- "provider_user_id": "string",
- "public_metadata": { },
- "verification": {
- "status": "unverified",
- "strategy": "saml",
- "external_verification_redirect_url": "string",
- "error": {
- "message": "string",
- "long_message": "string",
- "code": "string",
- "meta": { },
- "clerk_trace_id": "string"
}, - "expire_at": 0,
- "attempts": 0
}
}
], - "last_sign_in_at": 0,
- "banned": true,
- "locked": true,
- "lockout_expires_in_seconds": 0,
- "verification_attempts_remaining": 0,
- "updated_at": 0,
- "created_at": 0,
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "last_active_at": 1700690400000
}
]
Creates a new user. Your user management settings determine how you should setup your user model.
Any email address and phone number created using this method will be marked as verified.
Note: If you are performing a migration, check out our guide on zero downtime migrations.
A rate limit rule of 20 requests per 10 seconds is applied to this endpoint.
external_id | string or null The ID of the user as used in your external systems or your previous authentication solution. Must be unique across your instance. |
first_name | string or null The first name to assign to the user |
last_name | string or null The last name to assign to the user |
email_address | Array of strings Email addresses to add to the user. Must be unique across your instance. The first email address will be set as the user's primary email address. |
phone_number | Array of strings Phone numbers to add to the user. Must be unique across your instance. The first phone number will be set as the user's primary phone number. |
web3_wallet | Array of strings Web3 wallets to add to the user. Must be unique across your instance. The first wallet will be set as the user's primary wallet. |
username | string or null The username to give to the user. It must be unique across your instance. |
password | string or null The plaintext password to give the user. Must be at least 8 characters long, and can not be in any list of hacked passwords. |
password_digest | string In case you already have the password digests and not the passwords, you can use them for the newly created user via this property.
The digests should be generated with one of the supported algorithms.
The hashing algorithm can be specified using the |
password_hasher | string (PasswordHasher) The hashing algorithm that was used to generate the password digest. The algorithms we support at the moment are bcrypt, bcrypt_sha256_django, bcrypt_peppered, hmac_sha256_utf16_b64, md5, pbkdf2_sha1, pbkdf2_sha256, pbkdf2_sha512, pbkdf2_sha256_django, phpass, scrypt_firebase, scrypt_werkzeug, sha256, sha256_salted and the argon2 variants argon2i and argon2id. If you need support for any particular hashing algorithm, please let us know. Note: for password hashers considered insecure (at this moment MD5 and SHA256), the corresponding user password hashes will be transparently migrated to Bcrypt (a secure hasher) upon the user's first successful password sign in.
Insecure schemes are marked with Each of the supported hashers expects the incoming digest to be in a particular format. Specifically: bcrypt: The digest should be of the following form:
bcrypt_sha256_django: This is the Django-specific variant of Bcrypt, using SHA256 hashing function. The format should be as follows (as exported from Django):
bcrypt_peppered: As used in implementations such as Devise for Ruby on Rails applications. Identical to bcrypt except for the fact that a
hmac_sha256_utf16_b64 (insecure): This is HMAC algorithm using the SHA256 hashing function. The format should be as follows:
md5 (insecure): The digest should follow the regular form e.g.:
pbkdf2_sha256: This is the PBKDF2 algorithm using the SHA256 hashing function. The format should be as follows:
Note: Both the salt and the hash are expected to be base64-encoded. pbkdf2_sha512: This is the PBKDF2 algorithm using the SHA512 hashing function. The format should be as follows:
iterations: The number of iterations used. Must be an integer less than 420000. salt: The salt used when generating the hash. Must be less than 1024 bytes. hash: The hex-encoded hash. Must have been generated with a key length less than 1024 bytes. pbkdf2_sha256_django: This is the Django-specific variant of PBKDF2 and the digest should have the following format (as exported from Django):
Note: The salt is expected to be un-encoded, the hash is expected base64-encoded. pbkdf2_sha1: This is similar to pkbdf2_sha256_django, but with two differences:
The format is the following:
phpass: Portable public domain password hashing framework for use in PHP applications. Digests hashed with phpass have the following sections: The format is the following:
scrypt_firebase: The Firebase-specific variant of scrypt. The value is expected to have 6 segments separated by the $ character and include the following information: hash: The actual Base64 hash. This can be retrieved when exporting the user from Firebase. salt: The salt used to generate the above hash. Again, this is given when exporting the user. signer key: The base64 encoded signer key. salt separator: The base64 encoded salt separator. rounds: The number of rounds the algorithm needs to run. memory cost: The cost of the algorithm run The first 2 (hash and salt) are per user and can be retrieved when exporting the user from Firebase. The other 4 values (signer key, salt separator, rounds and memory cost) are project-wide settings and can be retrieved from the project's password hash parameters. Once you have all these, you can combine it in the following format and send this as the digest in order for Clerk to accept it:
scrypt_werkzeug: The Werkzeug-specific variant of scrypt. The value is expected to have 3 segments separated by the $ character and include the following information: algorithm args: The algorithm used to generate the hash. salt: The salt used to generate the above hash. hash: The actual Base64 hash. The algorithm args are the parameters used to generate the hash and are included in the digest. argon2i: Algorithms in the argon2 family generate digests that encode the following information: version (v): The argon version, version 19 is assumed memory (m): The memory used by the algorithm (in kibibytes) iterations (t): The number of iterations to perform parallelism (p): The number of threads to use Parts are demarcated by the
argon2id: See the previous algorithm for an explanation of the formatting. For the argon2id case, the value of the algorithm in the first part of the digest is
sha256 (insecure): The digest should be a 64-length hex string, e.g.:
sha256_salted (insecure): The digest should be a 64-length hex string with a salt. The format is the following:
The value is expected to have 2 segments separated by the $ character and include the following information: hash: The sha256 hash, a 64-length hex string. salt: The salt used to generate the above hash. Must be between 1 and 1024 bits. awscognito: This is a special migration hasher. The value must be When set, Upon a successful migration, See our migration guide for usage details. |
skip_password_checks | boolean When set to |
skip_password_requirement | boolean When set to |
totp_secret | string In case TOTP is configured on the instance, you can provide the secret to enable it on the newly created user without the need to reset it. Please note that currently the supported options are:
|
backup_codes | Array of strings If Backup Codes are configured on the instance, you can provide them to enable it on the newly created user without the need to reset them. You must provide the backup codes in plain format or the corresponding bcrypt digest. |
public_metadata | object Metadata saved on the user, that is visible to both your Frontend and Backend APIs |
private_metadata | object Metadata saved on the user, that is only visible to your Backend API |
unsafe_metadata | object Metadata saved on the user, that can be updated from both the Frontend and Backend APIs. Note: Since this data can be modified from the frontend, it is not guaranteed to be safe. |
delete_self_enabled | boolean or null If enabled, user can delete themselves via FAPI. |
create_organization_enabled | boolean or null If enabled, user can create organizations via FAPI. |
create_organizations_limit | integer or null The maximum number of organizations the user can create. 0 means unlimited. |
created_at | string A custom date/time denoting when the user signed up to the application, specified in RFC3339 format (e.g. |
Success
Request was not successful
Authentication invalid
Authentication invalid
Invalid request parameters
{- "external_id": "string",
- "first_name": "string",
- "last_name": "string",
- "email_address": [
- "string"
], - "phone_number": [
- "string"
], - "web3_wallet": [
- "string"
], - "username": "string",
- "password": "string",
- "password_digest": "string",
- "password_hasher": "argon2i",
- "skip_password_checks": true,
- "skip_password_requirement": true,
- "totp_secret": "string",
- "backup_codes": [
- "string"
], - "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "created_at": "string"
}
{- "id": "string",
- "object": "user",
- "external_id": "string",
- "primary_email_address_id": "string",
- "primary_phone_number_id": "string",
- "primary_web3_wallet_id": "string",
- "username": "string",
- "first_name": "string",
- "last_name": "string",
- "profile_image_url": "string",
- "image_url": "string",
- "has_image": true,
- "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "email_addresses": [
- {
- "id": "string",
- "object": "email_address",
- "email_address": "string",
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "created_at": 0,
- "updated_at": 0
}
], - "phone_numbers": [
- {
- "id": "string",
- "object": "phone_number",
- "phone_number": "string",
- "reserved_for_second_factor": true,
- "default_second_factor": true,
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "backup_codes": [
- "string"
], - "created_at": 0,
- "updated_at": 0
}
], - "web3_wallets": [
- {
- "id": "string",
- "object": "web3_wallet",
- "web3_wallet": "string",
- "verification": {
- "status": "unverified",
- "strategy": "web3_metamask_signature",
- "nonce": "string",
- "attempts": 0,
- "expire_at": 0
}, - "created_at": 0,
- "updated_at": 0
}
], - "passkeys": [
- {
- "id": "string",
- "object": "passkey",
- "name": "string",
- "last_used_at": 0,
- "verification": {
- "status": "verified",
- "strategy": "passkey",
- "nonce": "nonce",
- "attempts": 0,
- "expire_at": 0
}
}
], - "password_enabled": true,
- "two_factor_enabled": true,
- "totp_enabled": true,
- "backup_code_enabled": true,
- "mfa_enabled_at": 0,
- "mfa_disabled_at": 0,
- "external_accounts": [
- { }
], - "saml_accounts": [
- {
- "id": "string",
- "object": "saml_account",
- "provider": "string",
- "active": true,
- "email_address": "string",
- "first_name": "string",
- "last_name": "string",
- "provider_user_id": "string",
- "public_metadata": { },
- "verification": {
- "status": "unverified",
- "strategy": "saml",
- "external_verification_redirect_url": "string",
- "error": {
- "message": "string",
- "long_message": "string",
- "code": "string",
- "meta": { },
- "clerk_trace_id": "string"
}, - "expire_at": 0,
- "attempts": 0
}
}
], - "last_sign_in_at": 0,
- "banned": true,
- "locked": true,
- "lockout_expires_in_seconds": 0,
- "verification_attempts_remaining": 0,
- "updated_at": 0,
- "created_at": 0,
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "last_active_at": 1700690400000
}
Returns a total count of all users that match the given filtering criteria.
Success
Invalid request parameters
{- "object": "total_count",
- "total_count": 0
}
Retrieve the details of a user
Success
Request was not successful
Authentication invalid
Resource not found
{- "id": "string",
- "object": "user",
- "external_id": "string",
- "primary_email_address_id": "string",
- "primary_phone_number_id": "string",
- "primary_web3_wallet_id": "string",
- "username": "string",
- "first_name": "string",
- "last_name": "string",
- "profile_image_url": "string",
- "image_url": "string",
- "has_image": true,
- "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "email_addresses": [
- {
- "id": "string",
- "object": "email_address",
- "email_address": "string",
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "created_at": 0,
- "updated_at": 0
}
], - "phone_numbers": [
- {
- "id": "string",
- "object": "phone_number",
- "phone_number": "string",
- "reserved_for_second_factor": true,
- "default_second_factor": true,
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "backup_codes": [
- "string"
], - "created_at": 0,
- "updated_at": 0
}
], - "web3_wallets": [
- {
- "id": "string",
- "object": "web3_wallet",
- "web3_wallet": "string",
- "verification": {
- "status": "unverified",
- "strategy": "web3_metamask_signature",
- "nonce": "string",
- "attempts": 0,
- "expire_at": 0
}, - "created_at": 0,
- "updated_at": 0
}
], - "passkeys": [
- {
- "id": "string",
- "object": "passkey",
- "name": "string",
- "last_used_at": 0,
- "verification": {
- "status": "verified",
- "strategy": "passkey",
- "nonce": "nonce",
- "attempts": 0,
- "expire_at": 0
}
}
], - "password_enabled": true,
- "two_factor_enabled": true,
- "totp_enabled": true,
- "backup_code_enabled": true,
- "mfa_enabled_at": 0,
- "mfa_disabled_at": 0,
- "external_accounts": [
- { }
], - "saml_accounts": [
- {
- "id": "string",
- "object": "saml_account",
- "provider": "string",
- "active": true,
- "email_address": "string",
- "first_name": "string",
- "last_name": "string",
- "provider_user_id": "string",
- "public_metadata": { },
- "verification": {
- "status": "unverified",
- "strategy": "saml",
- "external_verification_redirect_url": "string",
- "error": {
- "message": "string",
- "long_message": "string",
- "code": "string",
- "meta": { },
- "clerk_trace_id": "string"
}, - "expire_at": 0,
- "attempts": 0
}
}
], - "last_sign_in_at": 0,
- "banned": true,
- "locked": true,
- "lockout_expires_in_seconds": 0,
- "verification_attempts_remaining": 0,
- "updated_at": 0,
- "created_at": 0,
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "last_active_at": 1700690400000
}
Update a user's attributes.
You can set the user's primary contact identifiers (email address and phone numbers) by updating the primary_email_address_id
and primary_phone_number_id
attributes respectively.
Both IDs should correspond to verified identifications that belong to the user.
You can remove a user's username by setting the username attribute to null or the blank string "". This is a destructive action; the identification will be deleted forever. Usernames can be removed only if they are optional in your instance settings and there's at least one other identifier which can be used for authentication.
This endpoint allows changing a user's password. When passing the password
parameter directly you have two further options.
You can ignore the password policy checks for your instance by setting the skip_password_checks
parameter to true
.
You can also choose to sign the user out of all their active sessions on any device once the password is updated. Just set sign_out_of_other_sessions
to true
.
external_id | string or null The ID of the user as used in your external systems or your previous authentication solution. Must be unique across your instance. |
first_name | string or null The first name to assign to the user |
last_name | string or null The last name to assign to the user |
primary_email_address_id | string The ID of the email address to set as primary. It must be verified, and present on the current user. |
notify_primary_email_address_changed | boolean Default: false If set to |
primary_phone_number_id | string The ID of the phone number to set as primary. It must be verified, and present on the current user. |
primary_web3_wallet_id | string The ID of the web3 wallets to set as primary. It must be verified, and present on the current user. |
username | string or null The username to give to the user. It must be unique across your instance. |
profile_image_id | string or null The ID of the image to set as the user's profile image |
password | string or null The plaintext password to give the user. Must be at least 8 characters long, and can not be in any list of hacked passwords. |
password_digest | string In case you already have the password digests and not the passwords, you can use them for the newly created user via this property.
The digests should be generated with one of the supported algorithms.
The hashing algorithm can be specified using the |
password_hasher | string (PasswordHasher) The hashing algorithm that was used to generate the password digest. The algorithms we support at the moment are bcrypt, bcrypt_sha256_django, bcrypt_peppered, hmac_sha256_utf16_b64, md5, pbkdf2_sha1, pbkdf2_sha256, pbkdf2_sha512, pbkdf2_sha256_django, phpass, scrypt_firebase, scrypt_werkzeug, sha256, sha256_salted and the argon2 variants argon2i and argon2id. If you need support for any particular hashing algorithm, please let us know. Note: for password hashers considered insecure (at this moment MD5 and SHA256), the corresponding user password hashes will be transparently migrated to Bcrypt (a secure hasher) upon the user's first successful password sign in.
Insecure schemes are marked with Each of the supported hashers expects the incoming digest to be in a particular format. Specifically: bcrypt: The digest should be of the following form:
bcrypt_sha256_django: This is the Django-specific variant of Bcrypt, using SHA256 hashing function. The format should be as follows (as exported from Django):
bcrypt_peppered: As used in implementations such as Devise for Ruby on Rails applications. Identical to bcrypt except for the fact that a
hmac_sha256_utf16_b64 (insecure): This is HMAC algorithm using the SHA256 hashing function. The format should be as follows:
md5 (insecure): The digest should follow the regular form e.g.:
pbkdf2_sha256: This is the PBKDF2 algorithm using the SHA256 hashing function. The format should be as follows:
Note: Both the salt and the hash are expected to be base64-encoded. pbkdf2_sha512: This is the PBKDF2 algorithm using the SHA512 hashing function. The format should be as follows:
iterations: The number of iterations used. Must be an integer less than 420000. salt: The salt used when generating the hash. Must be less than 1024 bytes. hash: The hex-encoded hash. Must have been generated with a key length less than 1024 bytes. pbkdf2_sha256_django: This is the Django-specific variant of PBKDF2 and the digest should have the following format (as exported from Django):
Note: The salt is expected to be un-encoded, the hash is expected base64-encoded. pbkdf2_sha1: This is similar to pkbdf2_sha256_django, but with two differences:
The format is the following:
phpass: Portable public domain password hashing framework for use in PHP applications. Digests hashed with phpass have the following sections: The format is the following:
scrypt_firebase: The Firebase-specific variant of scrypt. The value is expected to have 6 segments separated by the $ character and include the following information: hash: The actual Base64 hash. This can be retrieved when exporting the user from Firebase. salt: The salt used to generate the above hash. Again, this is given when exporting the user. signer key: The base64 encoded signer key. salt separator: The base64 encoded salt separator. rounds: The number of rounds the algorithm needs to run. memory cost: The cost of the algorithm run The first 2 (hash and salt) are per user and can be retrieved when exporting the user from Firebase. The other 4 values (signer key, salt separator, rounds and memory cost) are project-wide settings and can be retrieved from the project's password hash parameters. Once you have all these, you can combine it in the following format and send this as the digest in order for Clerk to accept it:
scrypt_werkzeug: The Werkzeug-specific variant of scrypt. The value is expected to have 3 segments separated by the $ character and include the following information: algorithm args: The algorithm used to generate the hash. salt: The salt used to generate the above hash. hash: The actual Base64 hash. The algorithm args are the parameters used to generate the hash and are included in the digest. argon2i: Algorithms in the argon2 family generate digests that encode the following information: version (v): The argon version, version 19 is assumed memory (m): The memory used by the algorithm (in kibibytes) iterations (t): The number of iterations to perform parallelism (p): The number of threads to use Parts are demarcated by the
argon2id: See the previous algorithm for an explanation of the formatting. For the argon2id case, the value of the algorithm in the first part of the digest is
sha256 (insecure): The digest should be a 64-length hex string, e.g.:
sha256_salted (insecure): The digest should be a 64-length hex string with a salt. The format is the following:
The value is expected to have 2 segments separated by the $ character and include the following information: hash: The sha256 hash, a 64-length hex string. salt: The salt used to generate the above hash. Must be between 1 and 1024 bits. awscognito: This is a special migration hasher. The value must be When set, Upon a successful migration, See our migration guide for usage details. |
skip_password_checks | boolean or null Set it to |
sign_out_of_other_sessions | boolean or null Set to |
totp_secret | string In case TOTP is configured on the instance, you can provide the secret to enable it on the specific user without the need to reset it. Please note that currently the supported options are:
|
backup_codes | Array of strings If Backup Codes are configured on the instance, you can provide them to enable it on the specific user without the need to reset them. You must provide the backup codes in plain format or the corresponding bcrypt digest. |
public_metadata | object Metadata saved on the user, that is visible to both your Frontend and Backend APIs |
private_metadata | object Metadata saved on the user, that is only visible to your Backend API |
unsafe_metadata | object Metadata saved on the user, that can be updated from both the Frontend and Backend APIs. Note: Since this data can be modified from the frontend, it is not guaranteed to be safe. |
delete_self_enabled | boolean or null If true, the user can delete themselves with the Frontend API. |
create_organization_enabled | boolean or null If true, the user can create organizations with the Frontend API. |
create_organizations_limit | integer or null The maximum number of organizations the user can create. 0 means unlimited. |
created_at | string A custom date/time denoting when the user signed up to the application, specified in RFC3339 format (e.g. |
Success
Request was not successful
Authentication invalid
Resource not found
Invalid request parameters
{- "external_id": "string",
- "first_name": "string",
- "last_name": "string",
- "primary_email_address_id": "string",
- "notify_primary_email_address_changed": false,
- "primary_phone_number_id": "string",
- "primary_web3_wallet_id": "string",
- "username": "string",
- "profile_image_id": "string",
- "password": "string",
- "password_digest": "string",
- "password_hasher": "argon2i",
- "skip_password_checks": true,
- "sign_out_of_other_sessions": true,
- "totp_secret": "string",
- "backup_codes": [
- "string"
], - "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "created_at": "string"
}
{- "id": "string",
- "object": "user",
- "external_id": "string",
- "primary_email_address_id": "string",
- "primary_phone_number_id": "string",
- "primary_web3_wallet_id": "string",
- "username": "string",
- "first_name": "string",
- "last_name": "string",
- "profile_image_url": "string",
- "image_url": "string",
- "has_image": true,
- "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "email_addresses": [
- {
- "id": "string",
- "object": "email_address",
- "email_address": "string",
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "created_at": 0,
- "updated_at": 0
}
], - "phone_numbers": [
- {
- "id": "string",
- "object": "phone_number",
- "phone_number": "string",
- "reserved_for_second_factor": true,
- "default_second_factor": true,
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "backup_codes": [
- "string"
], - "created_at": 0,
- "updated_at": 0
}
], - "web3_wallets": [
- {
- "id": "string",
- "object": "web3_wallet",
- "web3_wallet": "string",
- "verification": {
- "status": "unverified",
- "strategy": "web3_metamask_signature",
- "nonce": "string",
- "attempts": 0,
- "expire_at": 0
}, - "created_at": 0,
- "updated_at": 0
}
], - "passkeys": [
- {
- "id": "string",
- "object": "passkey",
- "name": "string",
- "last_used_at": 0,
- "verification": {
- "status": "verified",
- "strategy": "passkey",
- "nonce": "nonce",
- "attempts": 0,
- "expire_at": 0
}
}
], - "password_enabled": true,
- "two_factor_enabled": true,
- "totp_enabled": true,
- "backup_code_enabled": true,
- "mfa_enabled_at": 0,
- "mfa_disabled_at": 0,
- "external_accounts": [
- { }
], - "saml_accounts": [
- {
- "id": "string",
- "object": "saml_account",
- "provider": "string",
- "active": true,
- "email_address": "string",
- "first_name": "string",
- "last_name": "string",
- "provider_user_id": "string",
- "public_metadata": { },
- "verification": {
- "status": "unverified",
- "strategy": "saml",
- "external_verification_redirect_url": "string",
- "error": {
- "message": "string",
- "long_message": "string",
- "code": "string",
- "meta": { },
- "clerk_trace_id": "string"
}, - "expire_at": 0,
- "attempts": 0
}
}
], - "last_sign_in_at": 0,
- "banned": true,
- "locked": true,
- "lockout_expires_in_seconds": 0,
- "verification_attempts_remaining": 0,
- "updated_at": 0,
- "created_at": 0,
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "last_active_at": 1700690400000
}
Marks the given user as banned, which means that all their sessions are revoked and they are not allowed to sign in again.
Success
Payment required
{- "id": "string",
- "object": "user",
- "external_id": "string",
- "primary_email_address_id": "string",
- "primary_phone_number_id": "string",
- "primary_web3_wallet_id": "string",
- "username": "string",
- "first_name": "string",
- "last_name": "string",
- "profile_image_url": "string",
- "image_url": "string",
- "has_image": true,
- "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "email_addresses": [
- {
- "id": "string",
- "object": "email_address",
- "email_address": "string",
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "created_at": 0,
- "updated_at": 0
}
], - "phone_numbers": [
- {
- "id": "string",
- "object": "phone_number",
- "phone_number": "string",
- "reserved_for_second_factor": true,
- "default_second_factor": true,
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "backup_codes": [
- "string"
], - "created_at": 0,
- "updated_at": 0
}
], - "web3_wallets": [
- {
- "id": "string",
- "object": "web3_wallet",
- "web3_wallet": "string",
- "verification": {
- "status": "unverified",
- "strategy": "web3_metamask_signature",
- "nonce": "string",
- "attempts": 0,
- "expire_at": 0
}, - "created_at": 0,
- "updated_at": 0
}
], - "passkeys": [
- {
- "id": "string",
- "object": "passkey",
- "name": "string",
- "last_used_at": 0,
- "verification": {
- "status": "verified",
- "strategy": "passkey",
- "nonce": "nonce",
- "attempts": 0,
- "expire_at": 0
}
}
], - "password_enabled": true,
- "two_factor_enabled": true,
- "totp_enabled": true,
- "backup_code_enabled": true,
- "mfa_enabled_at": 0,
- "mfa_disabled_at": 0,
- "external_accounts": [
- { }
], - "saml_accounts": [
- {
- "id": "string",
- "object": "saml_account",
- "provider": "string",
- "active": true,
- "email_address": "string",
- "first_name": "string",
- "last_name": "string",
- "provider_user_id": "string",
- "public_metadata": { },
- "verification": {
- "status": "unverified",
- "strategy": "saml",
- "external_verification_redirect_url": "string",
- "error": {
- "message": "string",
- "long_message": "string",
- "code": "string",
- "meta": { },
- "clerk_trace_id": "string"
}, - "expire_at": 0,
- "attempts": 0
}
}
], - "last_sign_in_at": 0,
- "banned": true,
- "locked": true,
- "lockout_expires_in_seconds": 0,
- "verification_attempts_remaining": 0,
- "updated_at": 0,
- "created_at": 0,
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "last_active_at": 1700690400000
}
Removes the ban mark from the given user.
Success
Payment required
{- "id": "string",
- "object": "user",
- "external_id": "string",
- "primary_email_address_id": "string",
- "primary_phone_number_id": "string",
- "primary_web3_wallet_id": "string",
- "username": "string",
- "first_name": "string",
- "last_name": "string",
- "profile_image_url": "string",
- "image_url": "string",
- "has_image": true,
- "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "email_addresses": [
- {
- "id": "string",
- "object": "email_address",
- "email_address": "string",
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "created_at": 0,
- "updated_at": 0
}
], - "phone_numbers": [
- {
- "id": "string",
- "object": "phone_number",
- "phone_number": "string",
- "reserved_for_second_factor": true,
- "default_second_factor": true,
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "backup_codes": [
- "string"
], - "created_at": 0,
- "updated_at": 0
}
], - "web3_wallets": [
- {
- "id": "string",
- "object": "web3_wallet",
- "web3_wallet": "string",
- "verification": {
- "status": "unverified",
- "strategy": "web3_metamask_signature",
- "nonce": "string",
- "attempts": 0,
- "expire_at": 0
}, - "created_at": 0,
- "updated_at": 0
}
], - "passkeys": [
- {
- "id": "string",
- "object": "passkey",
- "name": "string",
- "last_used_at": 0,
- "verification": {
- "status": "verified",
- "strategy": "passkey",
- "nonce": "nonce",
- "attempts": 0,
- "expire_at": 0
}
}
], - "password_enabled": true,
- "two_factor_enabled": true,
- "totp_enabled": true,
- "backup_code_enabled": true,
- "mfa_enabled_at": 0,
- "mfa_disabled_at": 0,
- "external_accounts": [
- { }
], - "saml_accounts": [
- {
- "id": "string",
- "object": "saml_account",
- "provider": "string",
- "active": true,
- "email_address": "string",
- "first_name": "string",
- "last_name": "string",
- "provider_user_id": "string",
- "public_metadata": { },
- "verification": {
- "status": "unverified",
- "strategy": "saml",
- "external_verification_redirect_url": "string",
- "error": {
- "message": "string",
- "long_message": "string",
- "code": "string",
- "meta": { },
- "clerk_trace_id": "string"
}, - "expire_at": 0,
- "attempts": 0
}
}
], - "last_sign_in_at": 0,
- "banned": true,
- "locked": true,
- "lockout_expires_in_seconds": 0,
- "verification_attempts_remaining": 0,
- "updated_at": 0,
- "created_at": 0,
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "last_active_at": 1700690400000
}
Marks the given user as locked, which means they are not allowed to sign in again until the lock expires. Lock duration can be configured in the instance's restrictions settings.
Success
Authorization invalid
{- "id": "string",
- "object": "user",
- "external_id": "string",
- "primary_email_address_id": "string",
- "primary_phone_number_id": "string",
- "primary_web3_wallet_id": "string",
- "username": "string",
- "first_name": "string",
- "last_name": "string",
- "profile_image_url": "string",
- "image_url": "string",
- "has_image": true,
- "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "email_addresses": [
- {
- "id": "string",
- "object": "email_address",
- "email_address": "string",
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "created_at": 0,
- "updated_at": 0
}
], - "phone_numbers": [
- {
- "id": "string",
- "object": "phone_number",
- "phone_number": "string",
- "reserved_for_second_factor": true,
- "default_second_factor": true,
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "backup_codes": [
- "string"
], - "created_at": 0,
- "updated_at": 0
}
], - "web3_wallets": [
- {
- "id": "string",
- "object": "web3_wallet",
- "web3_wallet": "string",
- "verification": {
- "status": "unverified",
- "strategy": "web3_metamask_signature",
- "nonce": "string",
- "attempts": 0,
- "expire_at": 0
}, - "created_at": 0,
- "updated_at": 0
}
], - "passkeys": [
- {
- "id": "string",
- "object": "passkey",
- "name": "string",
- "last_used_at": 0,
- "verification": {
- "status": "verified",
- "strategy": "passkey",
- "nonce": "nonce",
- "attempts": 0,
- "expire_at": 0
}
}
], - "password_enabled": true,
- "two_factor_enabled": true,
- "totp_enabled": true,
- "backup_code_enabled": true,
- "mfa_enabled_at": 0,
- "mfa_disabled_at": 0,
- "external_accounts": [
- { }
], - "saml_accounts": [
- {
- "id": "string",
- "object": "saml_account",
- "provider": "string",
- "active": true,
- "email_address": "string",
- "first_name": "string",
- "last_name": "string",
- "provider_user_id": "string",
- "public_metadata": { },
- "verification": {
- "status": "unverified",
- "strategy": "saml",
- "external_verification_redirect_url": "string",
- "error": {
- "message": "string",
- "long_message": "string",
- "code": "string",
- "meta": { },
- "clerk_trace_id": "string"
}, - "expire_at": 0,
- "attempts": 0
}
}
], - "last_sign_in_at": 0,
- "banned": true,
- "locked": true,
- "lockout_expires_in_seconds": 0,
- "verification_attempts_remaining": 0,
- "updated_at": 0,
- "created_at": 0,
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "last_active_at": 1700690400000
}
Removes the lock from the given user.
Success
Authorization invalid
{- "id": "string",
- "object": "user",
- "external_id": "string",
- "primary_email_address_id": "string",
- "primary_phone_number_id": "string",
- "primary_web3_wallet_id": "string",
- "username": "string",
- "first_name": "string",
- "last_name": "string",
- "profile_image_url": "string",
- "image_url": "string",
- "has_image": true,
- "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "email_addresses": [
- {
- "id": "string",
- "object": "email_address",
- "email_address": "string",
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "created_at": 0,
- "updated_at": 0
}
], - "phone_numbers": [
- {
- "id": "string",
- "object": "phone_number",
- "phone_number": "string",
- "reserved_for_second_factor": true,
- "default_second_factor": true,
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "backup_codes": [
- "string"
], - "created_at": 0,
- "updated_at": 0
}
], - "web3_wallets": [
- {
- "id": "string",
- "object": "web3_wallet",
- "web3_wallet": "string",
- "verification": {
- "status": "unverified",
- "strategy": "web3_metamask_signature",
- "nonce": "string",
- "attempts": 0,
- "expire_at": 0
}, - "created_at": 0,
- "updated_at": 0
}
], - "passkeys": [
- {
- "id": "string",
- "object": "passkey",
- "name": "string",
- "last_used_at": 0,
- "verification": {
- "status": "verified",
- "strategy": "passkey",
- "nonce": "nonce",
- "attempts": 0,
- "expire_at": 0
}
}
], - "password_enabled": true,
- "two_factor_enabled": true,
- "totp_enabled": true,
- "backup_code_enabled": true,
- "mfa_enabled_at": 0,
- "mfa_disabled_at": 0,
- "external_accounts": [
- { }
], - "saml_accounts": [
- {
- "id": "string",
- "object": "saml_account",
- "provider": "string",
- "active": true,
- "email_address": "string",
- "first_name": "string",
- "last_name": "string",
- "provider_user_id": "string",
- "public_metadata": { },
- "verification": {
- "status": "unverified",
- "strategy": "saml",
- "external_verification_redirect_url": "string",
- "error": {
- "message": "string",
- "long_message": "string",
- "code": "string",
- "meta": { },
- "clerk_trace_id": "string"
}, - "expire_at": 0,
- "attempts": 0
}
}
], - "last_sign_in_at": 0,
- "banned": true,
- "locked": true,
- "lockout_expires_in_seconds": 0,
- "verification_attempts_remaining": 0,
- "updated_at": 0,
- "created_at": 0,
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "last_active_at": 1700690400000
}
Update a user's profile image
Success
Request was not successful
Request was not successful
Request was not successful
{- "id": "string",
- "object": "user",
- "external_id": "string",
- "primary_email_address_id": "string",
- "primary_phone_number_id": "string",
- "primary_web3_wallet_id": "string",
- "username": "string",
- "first_name": "string",
- "last_name": "string",
- "profile_image_url": "string",
- "image_url": "string",
- "has_image": true,
- "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "email_addresses": [
- {
- "id": "string",
- "object": "email_address",
- "email_address": "string",
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "created_at": 0,
- "updated_at": 0
}
], - "phone_numbers": [
- {
- "id": "string",
- "object": "phone_number",
- "phone_number": "string",
- "reserved_for_second_factor": true,
- "default_second_factor": true,
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "backup_codes": [
- "string"
], - "created_at": 0,
- "updated_at": 0
}
], - "web3_wallets": [
- {
- "id": "string",
- "object": "web3_wallet",
- "web3_wallet": "string",
- "verification": {
- "status": "unverified",
- "strategy": "web3_metamask_signature",
- "nonce": "string",
- "attempts": 0,
- "expire_at": 0
}, - "created_at": 0,
- "updated_at": 0
}
], - "passkeys": [
- {
- "id": "string",
- "object": "passkey",
- "name": "string",
- "last_used_at": 0,
- "verification": {
- "status": "verified",
- "strategy": "passkey",
- "nonce": "nonce",
- "attempts": 0,
- "expire_at": 0
}
}
], - "password_enabled": true,
- "two_factor_enabled": true,
- "totp_enabled": true,
- "backup_code_enabled": true,
- "mfa_enabled_at": 0,
- "mfa_disabled_at": 0,
- "external_accounts": [
- { }
], - "saml_accounts": [
- {
- "id": "string",
- "object": "saml_account",
- "provider": "string",
- "active": true,
- "email_address": "string",
- "first_name": "string",
- "last_name": "string",
- "provider_user_id": "string",
- "public_metadata": { },
- "verification": {
- "status": "unverified",
- "strategy": "saml",
- "external_verification_redirect_url": "string",
- "error": {
- "message": "string",
- "long_message": "string",
- "code": "string",
- "meta": { },
- "clerk_trace_id": "string"
}, - "expire_at": 0,
- "attempts": 0
}
}
], - "last_sign_in_at": 0,
- "banned": true,
- "locked": true,
- "lockout_expires_in_seconds": 0,
- "verification_attempts_remaining": 0,
- "updated_at": 0,
- "created_at": 0,
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "last_active_at": 1700690400000
}
Delete a user's profile image
Success
Request was not successful
{- "id": "string",
- "object": "user",
- "external_id": "string",
- "primary_email_address_id": "string",
- "primary_phone_number_id": "string",
- "primary_web3_wallet_id": "string",
- "username": "string",
- "first_name": "string",
- "last_name": "string",
- "profile_image_url": "string",
- "image_url": "string",
- "has_image": true,
- "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "email_addresses": [
- {
- "id": "string",
- "object": "email_address",
- "email_address": "string",
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "created_at": 0,
- "updated_at": 0
}
], - "phone_numbers": [
- {
- "id": "string",
- "object": "phone_number",
- "phone_number": "string",
- "reserved_for_second_factor": true,
- "default_second_factor": true,
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "backup_codes": [
- "string"
], - "created_at": 0,
- "updated_at": 0
}
], - "web3_wallets": [
- {
- "id": "string",
- "object": "web3_wallet",
- "web3_wallet": "string",
- "verification": {
- "status": "unverified",
- "strategy": "web3_metamask_signature",
- "nonce": "string",
- "attempts": 0,
- "expire_at": 0
}, - "created_at": 0,
- "updated_at": 0
}
], - "passkeys": [
- {
- "id": "string",
- "object": "passkey",
- "name": "string",
- "last_used_at": 0,
- "verification": {
- "status": "verified",
- "strategy": "passkey",
- "nonce": "nonce",
- "attempts": 0,
- "expire_at": 0
}
}
], - "password_enabled": true,
- "two_factor_enabled": true,
- "totp_enabled": true,
- "backup_code_enabled": true,
- "mfa_enabled_at": 0,
- "mfa_disabled_at": 0,
- "external_accounts": [
- { }
], - "saml_accounts": [
- {
- "id": "string",
- "object": "saml_account",
- "provider": "string",
- "active": true,
- "email_address": "string",
- "first_name": "string",
- "last_name": "string",
- "provider_user_id": "string",
- "public_metadata": { },
- "verification": {
- "status": "unverified",
- "strategy": "saml",
- "external_verification_redirect_url": "string",
- "error": {
- "message": "string",
- "long_message": "string",
- "code": "string",
- "meta": { },
- "clerk_trace_id": "string"
}, - "expire_at": 0,
- "attempts": 0
}
}
], - "last_sign_in_at": 0,
- "banned": true,
- "locked": true,
- "lockout_expires_in_seconds": 0,
- "verification_attempts_remaining": 0,
- "updated_at": 0,
- "created_at": 0,
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "last_active_at": 1700690400000
}
Update a user's metadata attributes by merging existing values with the provided parameters.
This endpoint behaves differently than the Update a user endpoint. Metadata values will not be replaced entirely. Instead, a deep merge will be performed. Deep means that any nested JSON objects will be merged as well.
You can remove metadata keys at any level by setting their value to null
.
object Metadata saved on the user, that is visible to both your frontend and backend. The new object will be merged with the existing value. | |
object Metadata saved on the user that is only visible to your backend. The new object will be merged with the existing value. | |
object Metadata saved on the user, that can be updated from both the Frontend and Backend APIs. The new object will be merged with the existing value. Note: Since this data can be modified from the frontend, it is not guaranteed to be safe. |
Success
Request was not successful
Authentication invalid
Resource not found
Invalid request parameters
{- "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { }
}
{- "id": "string",
- "object": "user",
- "external_id": "string",
- "primary_email_address_id": "string",
- "primary_phone_number_id": "string",
- "primary_web3_wallet_id": "string",
- "username": "string",
- "first_name": "string",
- "last_name": "string",
- "profile_image_url": "string",
- "image_url": "string",
- "has_image": true,
- "public_metadata": { },
- "private_metadata": { },
- "unsafe_metadata": { },
- "email_addresses": [
- {
- "id": "string",
- "object": "email_address",
- "email_address": "string",
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "created_at": 0,
- "updated_at": 0
}
], - "phone_numbers": [
- {
- "id": "string",
- "object": "phone_number",
- "phone_number": "string",
- "reserved_for_second_factor": true,
- "default_second_factor": true,
- "reserved": true,
- "verification": {
- "status": "unverified",
- "strategy": "phone_code",
- "attempts": 0,
- "expire_at": 0
}, - "linked_to": [
- {
- "type": "oauth_google",
- "id": "string"
}
], - "backup_codes": [
- "string"
], - "created_at": 0,
- "updated_at": 0
}
], - "web3_wallets": [
- {
- "id": "string",
- "object": "web3_wallet",
- "web3_wallet": "string",
- "verification": {
- "status": "unverified",
- "strategy": "web3_metamask_signature",
- "nonce": "string",
- "attempts": 0,
- "expire_at": 0
}, - "created_at": 0,
- "updated_at": 0
}
], - "passkeys": [
- {
- "id": "string",
- "object": "passkey",
- "name": "string",
- "last_used_at": 0,
- "verification": {
- "status": "verified",
- "strategy": "passkey",
- "nonce": "nonce",
- "attempts": 0,
- "expire_at": 0
}
}
], - "password_enabled": true,
- "two_factor_enabled": true,
- "totp_enabled": true,
- "backup_code_enabled": true,
- "mfa_enabled_at": 0,
- "mfa_disabled_at": 0,
- "external_accounts": [
- { }
], - "saml_accounts": [
- {
- "id": "string",
- "object": "saml_account",
- "provider": "string",
- "active": true,
- "email_address": "string",
- "first_name": "string",
- "last_name": "string",
- "provider_user_id": "string",
- "public_metadata": { },
- "verification": {
- "status": "unverified",
- "strategy": "saml",
- "external_verification_redirect_url": "string",
- "error": {
- "message": "string",
- "long_message": "string",
- "code": "string",
- "meta": { },
- "clerk_trace_id": "string"
}, - "expire_at": 0,
- "attempts": 0
}
}
], - "last_sign_in_at": 0,
- "banned": true,
- "locked": true,
- "lockout_expires_in_seconds": 0,
- "verification_attempts_remaining": 0,
- "updated_at": 0,
- "created_at": 0,
- "delete_self_enabled": true,
- "create_organization_enabled": true,
- "create_organizations_limit": 0,
- "last_active_at": 1700690400000
}
Fetch the corresponding OAuth access token for a user that has previously authenticated with a particular OAuth provider. For OAuth 2.0, if the access token has expired and we have a corresponding refresh token, the access token will be refreshed transparently the new one will be returned.
The OAuth access token of the user, if any.
Request was not successful
Invalid request parameters
[- {
- "object": "string",
- "external_account_id": "string",
- "provider_user_id": "string",
- "token": "string",
- "provider": "string",
- "public_metadata": { },
- "label": "string",
- "scopes": [
- "string"
], - "token_secret": "string"
}
]
Retrieve a paginated list of the user's organization memberships
A list of organization memberships
Request was not successful
{- "data": [
- {
- "id": "string",
- "object": "organization_membership",
- "role": "string",
- "permissions": [
- "string"
], - "public_metadata": { },
- "private_metadata": { },
- "organization": {
- "object": "organization",
- "id": "string",
- "name": "string",
- "slug": "string",
- "members_count": 0,
- "max_allowed_memberships": 0,
- "admin_delete_enabled": true,
- "public_metadata": { },
- "private_metadata": { },
- "created_by": "string",
- "created_at": 0,
- "updated_at": 0
}, - "public_user_data": {
- "user_id": "string",
- "first_name": "string",
- "last_name": "string",
- "profile_image_url": "string",
- "image_url": "string",
- "has_image": true,
- "identifier": "string"
}, - "created_at": 0,
- "updated_at": 0
}
], - "total_count": 0
}
Check that the user's password matches the supplied input. Useful for custom auth flows and re-verification.
The provided password was correct.
The user does not have a password set.
The user does not exist.
The provided password was incorrect.
Request was not successful
{- "password": "string"
}
{- "verified": true
}
Verify that the provided TOTP or backup code is valid for the user. Verifying a backup code will result it in being consumed (i.e. it will become invalid). Useful for custom auth flows and re-verification.
The provided TOTP or backup code was correct.
The user does not have TOTP configured for their account.
The user does not exist.
The provided TOTP or backup code was incorrect.
Request was not successful
{- "code": "string"
}
{- "verified": true,
- "code_type": "totp"
}
Disable all of a user's MFA methods (e.g. OTP sent via SMS, TOTP on their authenticator app) at once.
Successful operation.
Resource not found
Request was not successful
{- "user_id": "string"
}
Delete the passkey identification for a given user and notify them through email.
Deleted Object
Authorization invalid
Resource not found
Request was not successful
{- "object": "string",
- "id": "string",
- "slug": "string",
- "deleted": true
}
Delete the web3 wallet identification for a given user.
Deleted Object
Request was not successful
Authorization invalid
Resource not found
Request was not successful
{- "object": "string",
- "id": "string",
- "slug": "string",
- "deleted": true
}
Creates a TOTP (Time-based One-Time Password) for a given user, returning both the TOTP secret and the URI.
A TOTP (Time-based One-Time Password)
Request was not successful
Resource not found
Request was not successful
{- "object": "string",
- "id": "string",
- "secret": "string",
- "uri": "string",
- "verified": true,
- "backup_codes": [
- "string"
]
}