# Clerk Backend API API

> Clerk Backend API API on Apizie: 198 endpoints (Returns the markup for the interstitial page, Retrieve the JSON Web Key Set of the instance, Verify a client, Get a client, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://zieapi.vercel.app/v1/security:clerk/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `security:clerk`
- Category: Security
- Status: byok
- Source: https://clerk.com/support
- Page: https://zieapi.vercel.app/api/security/clerk
- OpenAPI: https://zieapi.vercel.app/api/security/clerk/openapi.json

The Clerk REST Backend API, meant to be accessed by backend servers. ### Versions When the API changes in a way that isn't compatible with older versions, a new version is released. Each version is identified by its…

## Endpoints

### Returns the markup for the interstitial page
`GET https://zieapi.vercel.app/v1/security:clerk/get-public-interstitial` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| frontendApi | string | no | Please use `frontend_api` instead |
| frontend_api | string | no | The Frontend API key of your instance |
| publishable_key | string | no | The publishable key of your instance |
| proxy_url | string | no | The proxy URL of your instance |
| domain | string | no | The domain of your instance |
| sign_in_url | string | no | The sign in URL of your instance |
| use_domain_for_script | boolean | no | Whether to use the domain for the script URL |

### Retrieve the JSON Web Key Set of the instance
`GET https://zieapi.vercel.app/v1/security:clerk/get-jwks` (byok)

### Verify a client
`POST https://zieapi.vercel.app/v1/security:clerk/verify-client` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get a client
`GET https://zieapi.vercel.app/v1/security:clerk/get-client` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| client_id | string | yes | Client ID. |

### Create an email address
`POST https://zieapi.vercel.app/v1/security:clerk/create-email-address` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve an email address
`GET https://zieapi.vercel.app/v1/security:clerk/get-email-address` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email_address_id | string | yes | The ID of the email address to retrieve |

### Update an email address
`POST https://zieapi.vercel.app/v1/security:clerk/update-email-address` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email_address_id | string | yes | The ID of the email address to update |
| body | object | no | JSON request body |

### Delete an email address
`POST https://zieapi.vercel.app/v1/security:clerk/delete-email-address` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email_address_id | string | yes | The ID of the email address to delete |

### Send a verification code to an email address
`POST https://zieapi.vercel.app/v1/security:clerk/prepare-email-address-verification` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email_address_id | string | yes | The ID of the email address to send the verification code to |

### Verify a code sent to an email address
`POST https://zieapi.vercel.app/v1/security:clerk/attempt-email-address-verification` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email_address_id | string | yes | The ID of the email address whose code is being verified |
| body | object | yes | JSON request body |

### Replace a user's email address
`POST https://zieapi.vercel.app/v1/security:clerk/replace-user-email-address` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user whose email address to replace |
| body | object | yes | JSON request body |

### Create a phone number
`POST https://zieapi.vercel.app/v1/security:clerk/create-phone-number` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve a phone number
`GET https://zieapi.vercel.app/v1/security:clerk/get-phone-number` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| phone_number_id | string | yes | The ID of the phone number to retrieve |

### Update a phone number
`POST https://zieapi.vercel.app/v1/security:clerk/update-phone-number` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| phone_number_id | string | yes | The ID of the phone number to update |
| body | object | no | JSON request body |

### Delete a phone number
`POST https://zieapi.vercel.app/v1/security:clerk/delete-phone-number` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| phone_number_id | string | yes | The ID of the phone number to delete |

### Send a verification code to a phone number
`POST https://zieapi.vercel.app/v1/security:clerk/prepare-phone-number-verification` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| phone_number_id | string | yes | The ID of the phone number to send the verification code to |

### Verify a code sent to a phone number
`POST https://zieapi.vercel.app/v1/security:clerk/attempt-phone-number-verification` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| phone_number_id | string | yes | The ID of the phone number whose code is being verified |
| body | object | yes | JSON request body |

### Replace a user's phone number
`POST https://zieapi.vercel.app/v1/security:clerk/replace-user-phone-number` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user whose phone number to replace |
| body | object | yes | JSON request body |

### List all sessions
`GET https://zieapi.vercel.app/v1/security:clerk/get-session-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| client_id | string | no | List sessions for the given client |
| user_id | string | no | List sessions for the given user |
| status | string | no | Filter sessions by the provided status |
| paginated | boolean | no | Whether to paginate the results. If true, the results will be paginated. If false, the results will not be paginated. |
| limit | integer | no | Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`. |
| offset | integer | no | Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. |

### Create a new active session
`POST https://zieapi.vercel.app/v1/security:clerk/create-session` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve a session
`GET https://zieapi.vercel.app/v1/security:clerk/get-session` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| session_id | string | yes | The ID of the session |

### Refresh a session
`POST https://zieapi.vercel.app/v1/security:clerk/refresh-session` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| session_id | string | yes | The ID of the session |
| body | object | no | JSON request body |

### Retrieve a reverification
`GET https://zieapi.vercel.app/v1/security:clerk/get-reverification` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| session_id | string | yes | The ID of the session the reverification belongs to |
| reverification_id | string | yes | The ID of the reverification |

### Revoke a session
`POST https://zieapi.vercel.app/v1/security:clerk/revoke-session` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| session_id | string | yes | The ID of the session |

### Create a session token
`POST https://zieapi.vercel.app/v1/security:clerk/create-session-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| session_id | string | yes | The ID of the session |
| body | object | no | JSON request body |

### Create a session token from a JWT template
`POST https://zieapi.vercel.app/v1/security:clerk/create-session-token-from-template` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| session_id | string | yes | The ID of the session |
| template_name | string | yes | The name of the JWT template defined in your instance (e.g. `custom_hasura`). |
| body | object | no | JSON request body |

### List all users
`GET https://zieapi.vercel.app/v1/security:clerk/get-user-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email_address | array | no | Returns users with the specified email addresses. Accepts up to 100 email addresses. Any email addresses not found are ignored. |
| phone_number | array | no | Returns users with the specified phone numbers. Accepts up to 100 phone numbers. Any phone numbers not found are ignored. |
| external_id | array | no | Returns users with the specified external IDs. For each external ID, the `+` and `-` can be prepended to the ID, which denote whether the… |
| username | array | no | Returns users with the specified usernames. Accepts up to 100 usernames. Any usernames not found are ignored. |
| web3_wallet | array | no | Returns users with the specified web3 wallet addresses. Accepts up to 100 web3 wallet addresses. Any web3 wallet addresses not found are… |
| user_id | array | no | Returns users with the user IDs specified. For each user ID, the `+` and `-` can be prepended to the ID, which denote whether the… |
| organization_id | array | no | Returns users that have memberships to the given organizations. For each organization ID, the `+` and `-` can be prepended to the ID,… |
| query | string | no | Returns users that match the given query. For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user… |
| email_address_query | string | no | Returns users with emails that match the given query, via case-insensitive partial match. For example, `email_address_query=ello` will… |
| phone_number_query | string | no | Returns users with phone numbers that match the given query, via case-insensitive partial match. For example, `phone_number_query=555`… |
| username_query | string | no | Returns users with usernames that match the given query, via case-insensitive partial match. For example, `username_query=CoolUser` will… |
| name_query | string | no | Returns users with names that match the given query, via case-insensitive partial match. |
| banned | boolean | no | Returns users which are either banned (`banned=true`) or not banned (`banned=false`). |
| last_active_at_before | integer | no | Returns users whose last session activity was before the given date (with millisecond precision). Example: use 1700690400000 to retrieve… |
| last_active_at_after | integer | no | Returns users whose last session activity was after the given date (with millisecond precision). Example: use 1700690400000 to retrieve… |
| last_active_at_since | integer | no | Returns users that had session activity since the given date. Example: use 1700690400000 to retrieve users that had session activity from… |
| created_at_before | integer | no | Returns users who have been created before the given date (with millisecond precision). Example: use 1730160000000 to retrieve users who… |
| created_at_after | integer | no | Returns users who have been created after the given date (with millisecond precision). Example: use 1730160000000 to retrieve users who… |
| last_sign_in_at_before | integer | no | Returns users whose last sign-in was before the given date (with millisecond precision). Example: use 1700690400000 to retrieve users… |
| last_sign_in_at_after | integer | no | Returns users whose last sign-in was after the given date (with millisecond precision). Example: use 1700690400000 to retrieve users whose… |
| provider | string | no | Returns users with external accounts for the specified OAuth provider. Must be used in combination with the `provider_user_id` parameter.… |
| provider_user_id | array | no | Returns users with the specified provider user IDs for a specific provider. Must be used in combination with the `provider` parameter. For… |
| limit | integer | no | Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`. |
| offset | integer | no | Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. |
| starting_after | string | no | A cursor for pagination: the `id` of the last user on the previous page. Returns the users that follow it. **Requires ordering by… |
| order_by | string | no | Allows to return users in a particular order. At the moment, you can order the returned users by their… |

### Create a new user
`POST https://zieapi.vercel.app/v1/security:clerk/create-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Count users
`GET https://zieapi.vercel.app/v1/security:clerk/get-users-count` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email_address | array | no | Counts users with the specified email addresses. Accepts up to 100 email addresses. Any email addresses not found are ignored. |
| phone_number | array | no | Counts users with the specified phone numbers. Accepts up to 100 phone numbers. Any phone numbers not found are ignored. |
| external_id | array | no | Counts users with the specified external IDs. Accepts up to 100 external IDs. Any external IDs not found are ignored. |
| username | array | no | Counts users with the specified usernames. Accepts up to 100 usernames. Any usernames not found are ignored. |
| web3_wallet | array | no | Counts users with the specified web3 wallet addresses. Accepts up to 100 web3 wallet addresses. Any web3 wallet addresses not found are… |
| user_id | array | no | Counts users with the user IDs specified. Accepts up to 100 user IDs. Any user IDs not found are ignored. |
| organization_id | array | no | Returns users that have memberships to the given organizations. For each organization ID, the `+` and `-` can be prepended to the ID,… |
| query | string | no | Counts users that match the given query. For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user… |
| email_address_query | string | no | Counts users with emails that match the given query, via case-insensitive partial match. For example, `email_address_query=ello` will… |
| phone_number_query | string | no | Counts users with phone numbers that match the given query, via case-insensitive partial match. For example, `phone_number_query=555` will… |
| username_query | string | no | Counts users with usernames that match the given query, via case-insensitive partial match. For example, `username_query=CoolUser` will… |
| name_query | string | no | Returns users with names that match the given query, via case-insensitive partial match. |
| banned | boolean | no | Counts users which are either banned (`banned=true`) or not banned (`banned=false`). |
| last_active_at_before | integer | no | Returns users whose last session activity was before the given date (with millisecond precision). Example: use 1700690400000 to retrieve… |
| last_active_at_after | integer | no | Returns users whose last session activity was after the given date (with millisecond precision). Example: use 1700690400000 to retrieve… |
| last_active_at_since | integer | no | Returns users that had session activity since the given date. Example: use 1700690400000 to retrieve users that had session activity from… |
| created_at_before | integer | no | Returns users who have been created before the given date (with millisecond precision). Example: use 1730160000000 to retrieve users who… |
| created_at_after | integer | no | Returns users who have been created after the given date (with millisecond precision). Example: use 1730160000000 to retrieve users who… |
| last_sign_in_at_before | integer | no | Counts users whose last sign-in was before the given date (with millisecond precision). Example: use 1700690400000 to count users whose… |
| last_sign_in_at_after | integer | no | Counts users whose last sign-in was after the given date (with millisecond precision). Example: use 1700690400000 to count users whose… |
| provider | string | no | Counts users with external accounts for the specified OAuth provider. Must be used in combination with the `provider_user_id` parameter.… |
| provider_user_id | array | no | Counts users with the specified provider user IDs for a specific provider. Must be used in combination with the `provider` parameter. For… |

### Retrieve a user
`GET https://zieapi.vercel.app/v1/security:clerk/get-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user to retrieve |

### Update a user
`POST https://zieapi.vercel.app/v1/security:clerk/update-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user to update |
| body | object | yes | JSON request body |

### Delete a user
`POST https://zieapi.vercel.app/v1/security:clerk/delete-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user to delete |

### Ban a user
`POST https://zieapi.vercel.app/v1/security:clerk/ban-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user to ban |

### Unban a user
`POST https://zieapi.vercel.app/v1/security:clerk/unban-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user to unban |

### Ban multiple users
`POST https://zieapi.vercel.app/v1/security:clerk/users-ban` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Unban multiple users
`POST https://zieapi.vercel.app/v1/security:clerk/users-unban` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Lock a user
`POST https://zieapi.vercel.app/v1/security:clerk/lock-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user to lock |

### Unlock a user
`POST https://zieapi.vercel.app/v1/security:clerk/unlock-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user to unlock |

### Merge another user into this user
`POST https://zieapi.vercel.app/v1/security:clerk/merge-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user that remains after the merge |
| body | object | yes | JSON request body |

### Set user profile image
`POST https://zieapi.vercel.app/v1/security:clerk/set-user-profile-image` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user to update the profile image for |
| body | object | yes | Form fields as a JSON object |

### Delete user profile image
`POST https://zieapi.vercel.app/v1/security:clerk/delete-user-profile-image` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user to delete the profile image for |

### Replace a user's metadata
`POST https://zieapi.vercel.app/v1/security:clerk/replace-user-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user whose metadata will be replaced |
| body | object | no | JSON request body |

### Merge and update a user's metadata
`POST https://zieapi.vercel.app/v1/security:clerk/update-user-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user whose metadata will be updated and merged |
| body | object | no | JSON request body |

### Retrieve a user's credit balance
`GET https://zieapi.vercel.app/v1/security:clerk/get-user-billing-credit-balance` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user whose credit balance to retrieve |

### Adjust a user's credit balance
`POST https://zieapi.vercel.app/v1/security:clerk/adjust-user-billing-credit-balance` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user whose credit balance to adjust |
| body | object | yes | JSON request body |

### Retrieve the OAuth access token of a user
`GET https://zieapi.vercel.app/v1/security:clerk/get-oauth-access-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user for which to retrieve the OAuth access token |
| provider | string | yes | The ID of the OAuth provider (e.g. `oauth_google`) |
| paginated | boolean | no | Whether to paginate the results. If true, the results will be paginated. If false, the results will not be paginated. |
| limit | integer | no | Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`. |
| offset | integer | no | Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. |

### Retrieve all memberships for a user
`GET https://zieapi.vercel.app/v1/security:clerk/users-get-organization-memberships` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user whose organization memberships we want to retrieve |
| limit | integer | no | Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`. |
| offset | integer | no | Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. |

### Retrieve all invitations for a user
`GET https://zieapi.vercel.app/v1/security:clerk/users-get-organization-invitations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user whose organization invitations we want to retrieve |
| limit | integer | no | Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`. |
| offset | integer | no | Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. |
| status | string | no | Filter organization invitations based on their status |

### Remove a user's password
`POST https://zieapi.vercel.app/v1/security:clerk/remove-user-password` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user whose password to remove |
| body | object | no | JSON request body |

### Verify the password of a user
`POST https://zieapi.vercel.app/v1/security:clerk/verify-password` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user for whom to verify the password |
| body | object | no | JSON request body |

### Verify a TOTP or backup code for a user
`POST https://zieapi.vercel.app/v1/security:clerk/verify-totp` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user for whom to verify the TOTP |
| body | object | no | JSON request body |

### Disable a user's MFA methods
`POST https://zieapi.vercel.app/v1/security:clerk/disable-mfa` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user whose MFA methods are to be disabled |

### Disable all user's Backup codes
`POST https://zieapi.vercel.app/v1/security:clerk/delete-backup-code` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user whose backup codes are to be deleted. |

### Delete a user passkey
`POST https://zieapi.vercel.app/v1/security:clerk/user-passkey-delete` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user that owns the passkey identity |
| passkey_identification_id | string | yes | The ID of the passkey identity to be deleted |

### Delete a user web3 wallet
`POST https://zieapi.vercel.app/v1/security:clerk/user-web3-wallet-delete` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user that owns the web3 wallet |
| web3_wallet_identification_id | string | yes | The ID of the web3 wallet identity to be deleted |

### Delete all the user's TOTPs
`POST https://zieapi.vercel.app/v1/security:clerk/delete-totp` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user whose TOTPs are to be deleted |

### Delete External Account
`POST https://zieapi.vercel.app/v1/security:clerk/delete-external-account` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | yes | The ID of the user's external account |
| external_account_id | string | yes | The ID of the external account to delete |

### List all invitations
`GET https://zieapi.vercel.app/v1/security:clerk/list-invitations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| status | string | no | Filter invitations based on their status |
| query | string | no | Filter invitations based on their `email_address` or `id` |
| order_by | string | no | Allows to return invitations in a particular order. At the moment, you can order the returned invitations either by their `created_at`,… |
| paginated | boolean | no | Whether to paginate the results. If true, the results will be paginated. If false, the results will not be paginated. |
| limit | integer | no | Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`. |
| offset | integer | no | Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. |

### Create an invitation
`POST https://zieapi.vercel.app/v1/security:clerk/create-invitation` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Create multiple invitations
`POST https://zieapi.vercel.app/v1/security:clerk/create-bulk-invitations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Delete an invitation
`POST https://zieapi.vercel.app/v1/security:clerk/delete-invitation` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| invitation_id | string | yes | The ID of the invitation to delete |

### Revokes an invitation
`POST https://zieapi.vercel.app/v1/security:clerk/revoke-invitation` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| invitation_id | string | yes | The ID of the invitation to be revoked |

### Get a list of organization invitations for the current instance
`GET https://zieapi.vercel.app/v1/security:clerk/list-instance-organization-invitations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| order_by | string | no | Allows to return organization invitations in a particular order. At the moment, you can order the returned organization invitations either… |
| status | string | no | Filter organization invitations based on their status |
| query | string | no | Filter organization invitations based on their `email_address` |
| limit | integer | no | Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`. |
| offset | integer | no | Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. |

### List all identifiers on the allow-list
`GET https://zieapi.vercel.app/v1/security:clerk/list-allowlist-identifiers` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| paginated | boolean | no | Whether to paginate the results. If true, the results will be paginated. If false, the results will not be paginated. |
| limit | integer | no | Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`. |
| offset | integer | no | Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. |

### Add identifier to the allow-list
`POST https://zieapi.vercel.app/v1/security:clerk/create-allowlist-identifier` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Delete identifier from allow-list
`POST https://zieapi.vercel.app/v1/security:clerk/delete-allowlist-identifier` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| identifier_id | string | yes | The ID of the identifier to delete from the allow-list |

### List all identifiers on the block-list
`GET https://zieapi.vercel.app/v1/security:clerk/list-blocklist-identifiers` (byok)

### Add identifier to the block-list
`POST https://zieapi.vercel.app/v1/security:clerk/create-blocklist-identifier` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Delete identifier from block-list
`POST https://zieapi.vercel.app/v1/security:clerk/delete-blocklist-identifier` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| identifier_id | string | yes | The ID of the identifier to delete from the block-list |

### Update instance settings
`POST https://zieapi.vercel.app/v1/security:clerk/update-instance-auth-config` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Create actor token
`POST https://zieapi.vercel.app/v1/security:clerk/create-actor-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Revoke actor token
`POST https://zieapi.vercel.app/v1/security:clerk/revoke-actor-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| actor_token_id | string | yes | The ID of the actor token to be revoked. |

### List all instance domains
`GET https://zieapi.vercel.app/v1/security:clerk/list-domains` (byok)

### Add a domain
`POST https://zieapi.vercel.app/v1/security:clerk/add-domain` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Update a domain
`POST https://zieapi.vercel.app/v1/security:clerk/update-domain` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| domain_id | string | yes | The ID of the domain that will be updated. |
| body | object | yes | JSON request body |

### Delete a domain
`POST https://zieapi.vercel.app/v1/security:clerk/delete-domain` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| domain_id | string | yes | The ID of the domain that will be deleted. |

### Fetch the current instance
`GET https://zieapi.vercel.app/v1/security:clerk/get-instance` (byok)

### Update instance settings
`POST https://zieapi.vercel.app/v1/security:clerk/update-instance` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Update instance restrictions
`POST https://zieapi.vercel.app/v1/security:clerk/update-instance-restrictions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get instance protect settings
`GET https://zieapi.vercel.app/v1/security:clerk/get-instance-protect` (byok)

### Update instance protect settings
`POST https://zieapi.vercel.app/v1/security:clerk/update-instance-protect` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get instance communication settings
`GET https://zieapi.vercel.app/v1/security:clerk/get-instance-communication` (byok)

### Update instance communication settings
`POST https://zieapi.vercel.app/v1/security:clerk/update-instance-communication` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get OAuth application settings
`GET https://zieapi.vercel.app/v1/security:clerk/get-instance-oauth-application-settings` (byok)

### Update OAuth application settings
`POST https://zieapi.vercel.app/v1/security:clerk/update-instance-oauth-application-settings` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Update production instance domain
`POST https://zieapi.vercel.app/v1/security:clerk/change-production-instance-domain` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get instance organization settings
`GET https://zieapi.vercel.app/v1/security:clerk/get-instance-organization-settings` (byok)

### Update instance organization settings
`POST https://zieapi.vercel.app/v1/security:clerk/update-instance-organization-settings` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Create a Svix app
`POST https://zieapi.vercel.app/v1/security:clerk/create-svix-app` (byok)

### Delete a Svix app
`POST https://zieapi.vercel.app/v1/security:clerk/delete-svix-app` (byok)

### Create a Svix Dashboard URL
`POST https://zieapi.vercel.app/v1/security:clerk/generate-svix-auth-url` (byok)

### List all templates
`GET https://zieapi.vercel.app/v1/security:clerk/list-jwttemplates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| paginated | boolean | no | Whether to paginate the results. If true, the results will be paginated. If false, the results will not be paginated. |
| limit | integer | no | Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`. |
| offset | integer | no | Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. |

### Create a JWT template
`POST https://zieapi.vercel.app/v1/security:clerk/create-jwttemplate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve a template
`GET https://zieapi.vercel.app/v1/security:clerk/get-jwttemplate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes | JWT Template ID |

### Update a JWT template
`POST https://zieapi.vercel.app/v1/security:clerk/update-jwttemplate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes | The ID of the JWT template to update |
| body | object | no | JSON request body |

### Delete a Template
`POST https://zieapi.vercel.app/v1/security:clerk/delete-jwttemplate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes | JWT Template ID |

### Get a list of machines for an instance
`GET https://zieapi.vercel.app/v1/security:clerk/list-machines` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | no | Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`. |
| offset | integer | no | Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. |
| query | string | no | Returns machines with ID or name that match the given query. Uses exact match for machine ID and partial match for name. |
| order_by | string | no | Allows to return machines in a particular order. You can order the returned machines by their `name` or `created_at`. To specify the… |

### Create a machine
`POST https://zieapi.vercel.app/v1/security:clerk/create-machine` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve a machine
`GET https://zieapi.vercel.app/v1/security:clerk/get-machine` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| machine_id | string | yes | The ID of the machine to retrieve |

### Update a machine
`POST https://zieapi.vercel.app/v1/security:clerk/update-machine` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| machine_id | string | yes | The ID of the machine to update |
| body | object | no | JSON request body |

### Delete a machine
`POST https://zieapi.vercel.app/v1/security:clerk/delete-machine` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| machine_id | string | yes | The ID of the machine to delete |

### Retrieve a machine secret key
`GET https://zieapi.vercel.app/v1/security:clerk/get-machine-secret-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| machine_id | string | yes | The ID of the machine to retrieve the secret key for |

### Rotate a machine's secret key
`POST https://zieapi.vercel.app/v1/security:clerk/rotate-machine-secret-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| machine_id | string | yes | The ID of the machine to rotate the secret key for |
| body | object | yes | JSON request body |

### Create a machine scope
`POST https://zieapi.vercel.app/v1/security:clerk/create-machine-scope` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| machine_id | string | yes | The ID of the machine that will have access to another machine |
| body | object | no | JSON request body |

### Delete a machine scope
`POST https://zieapi.vercel.app/v1/security:clerk/delete-machine-scope` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| machine_id | string | yes | The ID of the machine that has access to another machine |
| other_machine_id | string | yes | The ID of the machine that is being accessed |

### Get a list of organizations for an instance
`GET https://zieapi.vercel.app/v1/security:clerk/list-organizations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| include_members_count | boolean | no | Flag to denote whether the member counts of each organization should be included in the response or not. |
| include_missing_member_with_elevated_permissions | boolean | no | Flag to denote whether or not to include a member with elevated permissions who is not currently a member of the organization. |
| query | string | no | Returns organizations with ID, name, or slug that match the given query. Uses exact match for organization ID and partial match for name… |
| user_id | array | no | Returns organizations that include any of the specified user IDs as members. Any user IDs not found are ignored. For each user ID, the `+`… |
| organization_id | array | no | Returns organizations with the organization IDs specified. Any organization IDs not found are ignored. For each organization ID, the `+`… |
| order_by | string | no | Allows to return organizations in a particular order. At the moment, you can order the returned organizations either by their `name`,… |
| limit | integer | no | Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`. |
| offset | integer | no | Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. |

### Create an organization
`POST https://zieapi.vercel.app/v1/security:clerk/create-organization` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve an organization by ID or slug
`GET https://zieapi.vercel.app/v1/security:clerk/get-organization` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The ID or slug of the organization |
| include_members_count | boolean | no | Flag to denote whether or not the organization's members count should be included in the response. |
| include_missing_member_with_elevated_permissions | boolean | no | Flag to denote whether or not to include a member with elevated permissions who is not currently a member of the organization. |

### Update an organization
`POST https://zieapi.vercel.app/v1/security:clerk/update-organization` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The ID of the organization to update |
| body | object | yes | JSON request body |

### Delete an organization
`POST https://zieapi.vercel.app/v1/security:clerk/delete-organization` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The ID of the organization to delete |

### Replace metadata for an organization
`POST https://zieapi.vercel.app/v1/security:clerk/replace-organization-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The ID of the organization whose metadata will be replaced |
| body | object | yes | JSON request body |

### Merge and update metadata for an organization
`POST https://zieapi.vercel.app/v1/security:clerk/merge-organization-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The ID of the organization for which metadata will be merged or updated |
| body | object | yes | JSON request body |

### Upload a logo for the organization
`POST https://zieapi.vercel.app/v1/security:clerk/upload-organization-logo` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The ID of the organization for which to upload a logo |
| body | object | no | Form fields as a JSON object |

### Delete the organization's logo.
`POST https://zieapi.vercel.app/v1/security:clerk/delete-organization-logo` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The ID of the organization for which the logo will be deleted. |

### Retrieve an organization's billing subscription
`GET https://zieapi.vercel.app/v1/security:clerk/get-organization-billing-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The ID of the organization whose subscription to retrieve |

### Retrieve an organization's credit balance
`GET https://zieapi.vercel.app/v1/security:clerk/get-organization-billing-credit-balance` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The ID of the organization whose credit balance to retrieve |

### Adjust an organization's credit balance
`POST https://zieapi.vercel.app/v1/security:clerk/adjust-organization-billing-credit-balance` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The ID of the organization whose credit balance to adjust |
| body | object | yes | JSON request body |

### Get a list of organization invitations
`GET https://zieapi.vercel.app/v1/security:clerk/list-organization-invitations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The organization ID. |
| status | string | no | Filter organization invitations based on their status |
| email_address | string | no | Returns organization invitations inviting the specified email address. |
| order_by | string | no | Allows to return organization invitations in a particular order. You can order the returned organization invitations either by their… |
| limit | integer | no | Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`. |
| offset | integer | no | Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. |

### Create and send an organization invitation
`POST https://zieapi.vercel.app/v1/security:clerk/create-organization-invitation` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The ID of the organization for which to send the invitation |
| body | object | no | JSON request body |

### Bulk create and send organization invitations
`POST https://zieapi.vercel.app/v1/security:clerk/create-organization-invitation-bulk` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| organization_id | string | yes | The organization ID. |
| body | object | yes | JSON request body |

…and 78 more. See the OpenAPI spec.

## Example
```
curl "https://zieapi.vercel.app/v1/security:clerk/get-public-interstitial" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Clerk Backend API API?
Create a free Apizie key, then send GET https://zieapi.vercel.app/v1/security:clerk/get-public-interstitial with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Clerk Backend API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Clerk Backend API itself also needs your own key from clerk.

### Can AI agents use the Clerk Backend API API?
Yes. Add the Apizie MCP server (https://zieapi.vercel.app/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key security:clerk.

### What is the status of the Clerk Backend API API?
Needs your own provider key (bring your own key)
