Clerk is a comprehensive identity infrastructure platform that helps you manage users, authentication, and sessions for your applications.
In AACFlow.io, the Clerk integration lets your agents automate user and session management through easy-to-use API-based tools. Agents can securely list users, update user profiles, manage organizations, monitor sessions, and revoke access directly in your workflow.
With Clerk, you can:
- Authenticate users and manage sessions: Seamlessly control sign-in, sign-up, and session lifecycle for your users.
- List and update users: Automatically pull user lists, update user attributes, or view profile details as part of your agent tasks.
- Manage organizations and memberships: Add or update organizations and administer user memberships with clarity.
- Monitor and revoke sessions: See active or past user sessions, and revoke access immediately if needed for security.
The integration enables real-time, auditable management of your user base—all from within AACFlow.io. Connected agents can automate onboarding, enforce policies, keep directories up to date, and react to authentication events or organizational changes, helping you run secure and flexible processes using Clerk as your identity engine.
Integrate Clerk authentication and user management into your workflow. Create, update, delete, ban, lock, and list users. Manage organizations, their memberships, and invitations. Monitor and control user sessions. Maintain allowlist/blocklist identifiers, JWT templates, and actor tokens.
List all users in your Clerk application with optional filtering and pagination
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
limit | number | No | Number of results per page (e.g., 10, 50, 100; range: 1-500, default: 10) |
offset | number | No | Number of results to skip for pagination (e.g., 0, 10, 20) |
orderBy | string | No | Sort field with optional +/- prefix for direction (default: -created_at) |
emailAddress | string | No | Filter by email address (e.g., user@example.com or user1@example.com,user2@example.com) |
phoneNumber | string | No | Filter by phone number (comma-separated for multiple) |
externalId | string | No | Filter by external ID (comma-separated for multiple) |
username | string | No | Filter by username (comma-separated for multiple) |
userId | string | No | Filter by user ID (e.g., user_2NNEqL2nrIRdJ194ndJqAHwEfxC or comma-separated for multiple) |
query | string | No | Search query to match across email, phone, username, and names (e.g., john or john@example.com) |
| Parameter | Type | Description |
|---|
users | array | Array of Clerk user objects |
↳ id | string | User ID |
↳ username | string | Username |
↳ firstName | string | First name |
↳ lastName | string | Last name |
↳ imageUrl | string | Profile image URL |
↳ hasImage | boolean | Whether user has a profile image |
↳ primaryEmailAddressId | string | Primary email address ID |
↳ primaryPhoneNumberId | string | Primary phone number ID |
↳ emailAddresses | array | User email addresses |
↳ id | string | Email address ID |
↳ emailAddress | string | Email address |
↳ phoneNumbers | array | User phone numbers |
↳ id | string | Phone number ID |
↳ phoneNumber | string | Phone number |
↳ externalId | string | External system ID |
↳ passwordEnabled | boolean | Whether password is enabled |
↳ twoFactorEnabled | boolean | Whether 2FA is enabled |
↳ banned | boolean | Whether user is banned |
↳ locked | boolean | Whether user is locked |
↳ lastSignInAt | number | Last sign-in timestamp |
↳ lastActiveAt | number | Last activity timestamp |
↳ createdAt | number | Creation timestamp |
↳ updatedAt | number | Last update timestamp |
↳ publicMetadata | json | Public metadata |
totalCount | number | Total number of users matching the query |
success | boolean | Operation success status |
Retrieve a single user by their ID from Clerk
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
userId | string | Yes | The ID of the user to retrieve (e.g., user_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
| Parameter | Type | Description |
|---|
id | string | User ID |
username | string | Username |
firstName | string | First name |
lastName | string | Last name |
imageUrl | string | Profile image URL |
hasImage | boolean | Whether user has a profile image |
primaryEmailAddressId | string | Primary email address ID |
primaryPhoneNumberId | string | Primary phone number ID |
primaryWeb3WalletId | string | Primary Web3 wallet ID |
emailAddresses | array | User email addresses |
↳ id | string | Email address ID |
↳ emailAddress | string | Email address |
↳ verified | boolean | Whether email is verified |
phoneNumbers | array | User phone numbers |
↳ id | string | Phone number ID |
↳ phoneNumber | string | Phone number |
↳ verified | boolean | Whether phone is verified |
externalId | string | External system ID |
passwordEnabled | boolean | Whether password is enabled |
twoFactorEnabled | boolean | Whether 2FA is enabled |
totpEnabled | boolean | Whether TOTP is enabled |
backupCodeEnabled | boolean | Whether backup codes are enabled |
banned | boolean | Whether user is banned |
locked | boolean | Whether user is locked |
deleteSelfEnabled | boolean | Whether user can delete themselves |
createOrganizationEnabled | boolean | Whether user can create organizations |
lastSignInAt | number | Last sign-in timestamp |
lastActiveAt | number | Last activity timestamp |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
publicMetadata | json | Public metadata (readable from frontend) |
privateMetadata | json | Private metadata (backend only) |
unsafeMetadata | json | Unsafe metadata (modifiable from frontend) |
success | boolean | Operation success status |
Create a new user in your Clerk application
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
emailAddress | string | No | Email addresses for the user (comma-separated for multiple) |
phoneNumber | string | No | Phone numbers for the user (comma-separated for multiple) |
username | string | No | Username for the user (must be unique) |
password | string | No | Password for the user (minimum 8 characters) |
firstName | string | No | First name of the user |
lastName | string | No | Last name of the user |
externalId | string | No | External system identifier (must be unique) |
publicMetadata | json | No | Public metadata (JSON object, readable from frontend) |
privateMetadata | json | No | Private metadata (JSON object, backend only) |
unsafeMetadata | json | No | Unsafe metadata (JSON object, modifiable from frontend) |
skipPasswordChecks | boolean | No | Skip password validation checks |
skipPasswordRequirement | boolean | No | Make password optional |
| Parameter | Type | Description |
|---|
id | string | Created user ID |
username | string | Username |
firstName | string | First name |
lastName | string | Last name |
imageUrl | string | Profile image URL |
primaryEmailAddressId | string | Primary email address ID |
primaryPhoneNumberId | string | Primary phone number ID |
emailAddresses | array | User email addresses |
↳ id | string | Email address ID |
↳ emailAddress | string | Email address |
↳ verified | boolean | Whether email is verified |
phoneNumbers | array | User phone numbers |
↳ id | string | Phone number ID |
↳ phoneNumber | string | Phone number |
↳ verified | boolean | Whether phone is verified |
externalId | string | External system ID |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
publicMetadata | json | Public metadata |
success | boolean | Operation success status |
Update an existing user in your Clerk application
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
userId | string | Yes | The ID of the user to update (e.g., user_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
firstName | string | No | First name of the user |
lastName | string | No | Last name of the user |
username | string | No | Username (must be unique) |
password | string | No | New password (minimum 8 characters) |
externalId | string | No | External system identifier |
primaryEmailAddressId | string | No | ID of verified email to set as primary |
primaryPhoneNumberId | string | No | ID of verified phone to set as primary |
publicMetadata | json | No | Public metadata (JSON object) |
privateMetadata | json | No | Private metadata (JSON object) |
unsafeMetadata | json | No | Unsafe metadata (JSON object) |
skipPasswordChecks | boolean | No | Skip password validation checks |
| Parameter | Type | Description |
|---|
id | string | Updated user ID |
username | string | Username |
firstName | string | First name |
lastName | string | Last name |
imageUrl | string | Profile image URL |
primaryEmailAddressId | string | Primary email address ID |
primaryPhoneNumberId | string | Primary phone number ID |
emailAddresses | array | User email addresses |
↳ id | string | Email address ID |
↳ emailAddress | string | Email address |
↳ verified | boolean | Whether email is verified |
phoneNumbers | array | User phone numbers |
↳ id | string | Phone number ID |
↳ phoneNumber | string | Phone number |
↳ verified | boolean | Whether phone is verified |
externalId | string | External system ID |
banned | boolean | Whether user is banned |
locked | boolean | Whether user is locked |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
publicMetadata | json | Public metadata |
success | boolean | Operation success status |
Delete a user from your Clerk application
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
userId | string | Yes | The ID of the user to delete (e.g., user_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
| Parameter | Type | Description |
|---|
id | string | Deleted user ID |
object | string | Object type (user) |
deleted | boolean | Whether the user was deleted |
success | boolean | Operation success status |
Ban a user, preventing them from signing in
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
userId | string | Yes | The ID of the user to ban (e.g., user_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
| Parameter | Type | Description |
|---|
id | string | User ID |
username | string | Username |
firstName | string | First name |
lastName | string | Last name |
banned | boolean | Whether the user is banned |
locked | boolean | Whether the user is locked |
lockoutExpiresInSeconds | number | Seconds until lockout expires |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
Remove a ban from a user, allowing them to sign in again
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
userId | string | Yes | The ID of the user to unban (e.g., user_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
| Parameter | Type | Description |
|---|
id | string | User ID |
username | string | Username |
firstName | string | First name |
lastName | string | Last name |
banned | boolean | Whether the user is banned |
locked | boolean | Whether the user is locked |
lockoutExpiresInSeconds | number | Seconds until lockout expires |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
Lock a user account, blocking sign-in attempts
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
userId | string | Yes | The ID of the user to lock (e.g., user_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
| Parameter | Type | Description |
|---|
id | string | User ID |
username | string | Username |
firstName | string | First name |
lastName | string | Last name |
banned | boolean | Whether the user is banned |
locked | boolean | Whether the user is locked |
lockoutExpiresInSeconds | number | Seconds until lockout expires |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
Unlock a previously locked user account
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
userId | string | Yes | The ID of the user to unlock (e.g., user_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
| Parameter | Type | Description |
|---|
id | string | User ID |
username | string | Username |
firstName | string | First name |
lastName | string | Last name |
banned | boolean | Whether the user is banned |
locked | boolean | Whether the user is locked |
lockoutExpiresInSeconds | number | Seconds until lockout expires |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
Retrieve a user's OAuth access token for a connected external provider (e.g. Google, GitHub, Microsoft) obtained via Clerk SSO
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
userId | string | Yes | The ID of the user (e.g., user_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
provider | string | Yes | OAuth provider slug, e.g. google, github, microsoft, discord (without the oauth_ prefix) |
| Parameter | Type | Description |
|---|
accessTokens | array | OAuth access tokens for the connected provider |
↳ externalAccountId | string | External account ID |
↳ token | string | OAuth access token |
↳ expiresAt | number | Expiration timestamp |
↳ provider | string | OAuth provider slug |
↳ label | string | Token label |
↳ scopes | array | OAuth scopes granted to the token |
↳ publicMetadata | json | Public metadata associated with the token |
success | boolean | Operation success status |
List all organizations in your Clerk application with optional filtering
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
limit | number | No | Number of results per page (e.g., 10, 50, 100; range: 1-500, default: 10) |
offset | number | No | Number of results to skip for pagination (e.g., 0, 10, 20) |
includeMembersCount | boolean | No | Include member count for each organization |
query | string | No | Search by organization ID, name, or slug (e.g., Acme Corp or acme-corp) |
orderBy | string | No | Sort field (name, created_at, members_count) with +/- prefix |
| Parameter | Type | Description |
|---|
organizations | array | Array of Clerk organization objects |
↳ id | string | Organization ID |
↳ name | string | Organization name |
↳ slug | string | Organization slug |
↳ imageUrl | string | Organization image URL |
↳ hasImage | boolean | Whether organization has an image |
↳ membersCount | number | Number of members |
↳ pendingInvitationsCount | number | Number of pending invitations |
↳ maxAllowedMemberships | number | Max allowed memberships |
↳ adminDeleteEnabled | boolean | Whether admin delete is enabled |
↳ createdBy | string | Creator user ID |
↳ createdAt | number | Creation timestamp |
↳ updatedAt | number | Last update timestamp |
↳ publicMetadata | json | Public metadata |
totalCount | number | Total number of organizations |
success | boolean | Operation success status |
Retrieve a single organization by ID or slug from Clerk
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
organizationId | string | Yes | The ID or slug of the organization to retrieve (e.g., org_2NNEqL2nrIRdJ194ndJqAHwEfxC or my-org-slug) |
| Parameter | Type | Description |
|---|
id | string | Organization ID |
name | string | Organization name |
slug | string | Organization slug |
imageUrl | string | Organization image URL |
hasImage | boolean | Whether organization has an image |
membersCount | number | Number of members |
pendingInvitationsCount | number | Number of pending invitations |
maxAllowedMemberships | number | Max allowed memberships |
adminDeleteEnabled | boolean | Whether admin delete is enabled |
createdBy | string | Creator user ID |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
publicMetadata | json | Public metadata |
success | boolean | Operation success status |
Create a new organization in your Clerk application
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
name | string | Yes | Name of the organization |
createdBy | string | Yes | User ID of the creator who will become admin (e.g., user_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
slug | string | No | Slug identifier for the organization |
maxAllowedMemberships | number | No | Maximum member capacity (0 for unlimited) |
publicMetadata | json | No | Public metadata (JSON object) |
privateMetadata | json | No | Private metadata (JSON object) |
| Parameter | Type | Description |
|---|
id | string | Created organization ID |
name | string | Organization name |
slug | string | Organization slug |
imageUrl | string | Organization image URL |
hasImage | boolean | Whether organization has an image |
membersCount | number | Number of members |
pendingInvitationsCount | number | Number of pending invitations |
maxAllowedMemberships | number | Max allowed memberships |
adminDeleteEnabled | boolean | Whether admin delete is enabled |
createdBy | string | Creator user ID |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
publicMetadata | json | Public metadata |
success | boolean | Operation success status |
Update an existing organization in your Clerk application
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
organizationId | string | Yes | The ID of the organization to update (e.g., org_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
name | string | No | Name of the organization |
slug | string | No | Slug identifier for the organization |
maxAllowedMemberships | number | No | Maximum member capacity (0 for unlimited) |
adminDeleteEnabled | boolean | No | Whether admins can delete the organization |
| Parameter | Type | Description |
|---|
id | string | Organization ID |
name | string | Organization name |
slug | string | Organization slug |
imageUrl | string | Organization image URL |
hasImage | boolean | Whether organization has an image |
membersCount | number | Number of members |
pendingInvitationsCount | number | Number of pending invitations |
maxAllowedMemberships | number | Max allowed memberships |
adminDeleteEnabled | boolean | Whether admin delete is enabled |
createdBy | string | Creator user ID |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
publicMetadata | json | Public metadata |
success | boolean | Operation success status |
Delete an organization from your Clerk application
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
organizationId | string | Yes | The ID of the organization to delete (e.g., org_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
| Parameter | Type | Description |
|---|
id | string | Deleted organization ID |
object | string | Object type (organization) |
deleted | boolean | Whether the organization was deleted |
success | boolean | Operation success status |
List members of a Clerk organization with optional filtering and pagination
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
organizationId | string | Yes | The ID of the organization (e.g., org_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
limit | number | No | Number of results per page (e.g., 10, 50, 100; range: 1-500, default: 10) |
offset | number | No | Number of results to skip for pagination (e.g., 0, 10, 20) |
orderBy | string | No | Sort field (e.g., created_at) with +/- prefix for direction |
role | string | No | Filter by role, comma-separated for multiple (e.g., org:admin,org:member) |
| Parameter | Type | Description |
|---|
memberships | array | Array of Clerk organization membership objects |
↳ id | string | Membership ID |
↳ role | string | Member role |
↳ roleName | string | Human-readable role name |
↳ permissions | array | Permissions granted by the role |
↳ organizationId | string | Organization ID |
↳ userId | string | Member user ID |
↳ firstName | string | Member first name |
↳ lastName | string | Member last name |
↳ imageUrl | string | Member profile image URL |
↳ identifier | string | Member identifier (e.g., email) |
↳ username | string | Member username |
↳ banned | boolean | Whether the member is banned |
↳ publicMetadata | json | Public metadata |
↳ createdAt | number | Creation timestamp |
↳ updatedAt | number | Last update timestamp |
totalCount | number | Total number of memberships |
success | boolean | Operation success status |
Add a user as a member of a Clerk organization with a given role
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
organizationId | string | Yes | The ID of the organization (e.g., org_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
userId | string | Yes | ID of the user to add as a member |
role | string | Yes | Role to assign, e.g. org:admin or org:member |
| Parameter | Type | Description |
|---|
id | string | Membership ID |
role | string | Member role |
roleName | string | Human-readable role name |
permissions | array | Permissions granted by the role |
organizationId | string | Organization ID |
userId | string | Member user ID |
firstName | string | Member first name |
lastName | string | Member last name |
imageUrl | string | Member profile image URL |
identifier | string | Member identifier (e.g., email) |
username | string | Member username |
banned | boolean | Whether the member is banned |
publicMetadata | json | Public metadata |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
Change a member's role within a Clerk organization
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
organizationId | string | Yes | The ID of the organization (e.g., org_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
userId | string | Yes | ID of the member whose role is being changed |
role | string | Yes | New role to assign, e.g. org:admin or org:member |
| Parameter | Type | Description |
|---|
id | string | Membership ID |
role | string | Member role |
roleName | string | Human-readable role name |
permissions | array | Permissions granted by the role |
organizationId | string | Organization ID |
userId | string | Member user ID |
firstName | string | Member first name |
lastName | string | Member last name |
imageUrl | string | Member profile image URL |
identifier | string | Member identifier (e.g., email) |
username | string | Member username |
banned | boolean | Whether the member is banned |
publicMetadata | json | Public metadata |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
Remove a member from a Clerk organization
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
organizationId | string | Yes | The ID of the organization (e.g., org_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
userId | string | Yes | ID of the member to remove |
| Parameter | Type | Description |
|---|
id | string | Membership ID |
role | string | Member role |
roleName | string | Human-readable role name |
permissions | array | Permissions granted by the role |
organizationId | string | Organization ID |
userId | string | Member user ID |
firstName | string | Member first name |
lastName | string | Member last name |
imageUrl | string | Member profile image URL |
identifier | string | Member identifier (e.g., email) |
username | string | Member username |
banned | boolean | Whether the member is banned |
publicMetadata | json | Public metadata |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
Invite a user by email to join a Clerk organization with a given role
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
organizationId | string | Yes | The ID of the organization (e.g., org_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
emailAddress | string | Yes | Email address of the user to invite |
role | string | Yes | Role to assign on acceptance, e.g. org:admin or org:member |
inviterUserId | string | No | User ID of the inviter |
redirectUrl | string | No | URL to redirect to after the invitation is accepted |
expiresInDays | number | No | Days until the invitation expires (1-365, default 30) |
publicMetadata | json | No | Public metadata (JSON object) |
privateMetadata | json | No | Private metadata (JSON object) |
notify | boolean | No | Whether Clerk sends the invitation email (default true) |
| Parameter | Type | Description |
|---|
id | string | Invitation ID |
emailAddress | string | Invited email address |
role | string | Role to assign on acceptance |
roleName | string | Human-readable role name |
organizationId | string | Organization ID |
inviterId | string | User ID of the inviter |
inviterEmail | string | Inviter's email address |
inviterFirstName | string | Inviter's first name |
inviterLastName | string | Inviter's last name |
status | string | Invitation status |
url | string | Invitation URL |
expiresAt | number | Expiration timestamp |
publicMetadata | json | Public metadata |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
List pending and past invitations for a Clerk organization
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
organizationId | string | Yes | The ID of the organization (e.g., org_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
status | string | No | Filter by status: pending, accepted, revoked, or expired |
emailAddress | string | No | Filter by invited email address |
orderBy | string | No | Sort field (created_at, email_address) with +/- prefix (default: -created_at) |
limit | number | No | Number of results per page (e.g., 10, 50, 100; range: 1-500, default: 10) |
offset | number | No | Number of results to skip for pagination (e.g., 0, 10, 20) |
| Parameter | Type | Description |
|---|
invitations | array | Array of Clerk organization invitation objects |
↳ id | string | Invitation ID |
↳ emailAddress | string | Invited email address |
↳ role | string | Role to assign on acceptance |
↳ roleName | string | Human-readable role name |
↳ organizationId | string | Organization ID |
↳ inviterId | string | User ID of the inviter |
↳ inviterEmail | string | Inviter's email address |
↳ inviterFirstName | string | Inviter's first name |
↳ inviterLastName | string | Inviter's last name |
↳ status | string | Invitation status |
↳ url | string | Invitation URL |
↳ expiresAt | number | Expiration timestamp |
↳ publicMetadata | json | Public metadata |
↳ createdAt | number | Creation timestamp |
↳ updatedAt | number | Last update timestamp |
totalCount | number | Total number of invitations |
success | boolean | Operation success status |
List sessions for a user or client in your Clerk application
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
userId | string | No | User ID to list sessions for (e.g., user_2NNEqL2nrIRdJ194ndJqAHwEfxC; required if clientId not provided) |
clientId | string | No | Client ID to list sessions for (required if userId not provided) |
status | string | No | Filter by session status (abandoned, active, ended, expired, pending, removed, replaced, revoked) |
limit | number | No | Number of results per page (e.g., 10, 50, 100; range: 1-500, default: 10) |
offset | number | No | Number of results to skip for pagination (e.g., 0, 10, 20) |
| Parameter | Type | Description |
|---|
sessions | array | Array of Clerk session objects |
↳ id | string | Session ID |
↳ userId | string | User ID |
↳ clientId | string | Client ID |
↳ status | string | Session status |
↳ lastActiveAt | number | Last activity timestamp |
↳ lastActiveOrganizationId | string | Last active organization ID |
↳ expireAt | number | Expiration timestamp |
↳ abandonAt | number | Abandon timestamp |
↳ createdAt | number | Creation timestamp |
↳ updatedAt | number | Last update timestamp |
totalCount | number | Total number of sessions |
success | boolean | Operation success status |
Retrieve a single session by ID from Clerk
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
sessionId | string | Yes | The ID of the session to retrieve (e.g., sess_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
| Parameter | Type | Description |
|---|
id | string | Session ID |
userId | string | User ID |
clientId | string | Client ID |
status | string | Session status |
lastActiveAt | number | Last activity timestamp |
lastActiveOrganizationId | string | Last active organization ID |
expireAt | number | Expiration timestamp |
abandonAt | number | Abandon timestamp |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
Revoke a session to immediately invalidate it
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
sessionId | string | Yes | The ID of the session to revoke (e.g., sess_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
| Parameter | Type | Description |
|---|
id | string | Session ID |
userId | string | User ID |
clientId | string | Client ID |
status | string | Session status (should be revoked) |
lastActiveAt | number | Last activity timestamp |
lastActiveOrganizationId | string | Last active organization ID |
expireAt | number | Expiration timestamp |
abandonAt | number | Abandon timestamp |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
List email/phone/web3-wallet identifiers on your Clerk instance allowlist
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
limit | number | No | Number of results per page (e.g., 10, 50, 100; range: 1-500, default: 10) |
offset | number | No | Number of results to skip for pagination (e.g., 0, 10, 20) |
| Parameter | Type | Description |
|---|
identifiers | array | Array of Clerk allowlist identifier objects |
↳ id | string | Allowlist identifier ID |
↳ identifier | string | Email, phone, or web3 wallet identifier |
↳ identifierType | string | Type of identifier |
↳ invitationId | string | Associated invitation ID |
↳ createdAt | number | Creation timestamp |
↳ updatedAt | number | Last update timestamp |
totalCount | number | Total number of allowlist identifiers |
success | boolean | Operation success status |
Add an email, phone number, or web3 wallet to your Clerk instance allowlist
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
identifier | string | Yes | Email address, phone number, or web3 wallet to allow (wildcards like *@example.com supported for email) |
notify | boolean | No | Whether to notify the identifier owner by email (default false) |
| Parameter | Type | Description |
|---|
id | string | Allowlist identifier ID |
identifier | string | Email, phone, or web3 wallet identifier |
identifierType | string | Type of identifier |
invitationId | string | Associated invitation ID |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
Remove an identifier from your Clerk instance allowlist
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
identifierId | string | Yes | ID of the allowlist identifier to delete |
| Parameter | Type | Description |
|---|
id | string | Deleted allowlist identifier ID |
object | string | Object type (allowlist_identifier) |
deleted | boolean | Whether the identifier was deleted |
success | boolean | Operation success status |
List email/phone/web3-wallet identifiers on your Clerk instance blocklist
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
| Parameter | Type | Description |
|---|
identifiers | array | Array of Clerk blocklist identifier objects |
↳ id | string | Blocklist identifier ID |
↳ identifier | string | Email, phone, or web3 wallet identifier |
↳ identifierType | string | Type of identifier |
↳ createdAt | number | Creation timestamp |
↳ updatedAt | number | Last update timestamp |
totalCount | number | Total number of blocklist identifiers |
success | boolean | Operation success status |
Add an email, phone number, or web3 wallet to your Clerk instance blocklist to prevent sign-ups
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
identifier | string | Yes | Email address, phone number, or web3 wallet to block |
| Parameter | Type | Description |
|---|
id | string | Blocklist identifier ID |
identifier | string | Email, phone, or web3 wallet identifier |
identifierType | string | Type of identifier |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
Remove an identifier from your Clerk instance blocklist
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
identifierId | string | Yes | ID of the blocklist identifier to delete |
| Parameter | Type | Description |
|---|
id | string | Deleted blocklist identifier ID |
object | string | Object type (blocklist_identifier) |
deleted | boolean | Whether the identifier was deleted |
success | boolean | Operation success status |
List custom JWT templates configured on your Clerk instance
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
| Parameter | Type | Description |
|---|
templates | array | Array of Clerk JWT template objects |
↳ id | string | JWT template ID |
↳ name | string | JWT template name |
↳ claims | json | Custom claims defined on the template |
↳ lifetime | number | Token lifetime in seconds |
↳ allowedClockSkew | number | Allowed clock skew in seconds |
↳ customSigningKey | boolean | Whether a custom signing key is configured |
↳ signingAlgorithm | string | Signing algorithm used |
↳ createdAt | number | Creation timestamp |
↳ updatedAt | number | Last update timestamp |
totalCount | number | Total number of JWT templates |
success | boolean | Operation success status |
Retrieve a single custom JWT template by ID from Clerk
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
templateId | string | Yes | ID of the JWT template to retrieve |
| Parameter | Type | Description |
|---|
id | string | JWT template ID |
name | string | JWT template name |
claims | json | Custom claims defined on the template |
lifetime | number | Token lifetime in seconds |
allowedClockSkew | number | Allowed clock skew in seconds |
customSigningKey | boolean | Whether a custom signing key is configured |
signingAlgorithm | string | Signing algorithm used |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
Create an actor token to impersonate a user (God Mode / act-as-user), e.g. for support tooling
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
userId | string | Yes | ID of the user to impersonate |
actor | json | Yes | Actor JSON object identifying who is impersonating, must include a "sub" field, e.g. {"sub": "user_support_agent_id"} |
expiresInSeconds | number | No | Seconds until the token expires (default 3600) |
sessionMaxDurationInSeconds | number | No | Max duration in seconds for sessions created with this token (default 1800) |
| Parameter | Type | Description |
|---|
id | string | Actor token ID |
status | string | Actor token status |
userId | string | ID of the impersonated user |
actor | json | Actor object identifying who is impersonating |
token | string | Signed actor token (JWT) |
url | string | Sign-in URL for the actor token |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
Revoke an actor token before it is used or expires
| Parameter | Type | Required | Description |
|---|
secretKey | string | Yes | The Clerk Secret Key for API authentication |
actorTokenId | string | Yes | ID of the actor token to revoke |
| Parameter | Type | Description |
|---|
id | string | Actor token ID |
status | string | Actor token status (should be revoked) |
userId | string | ID of the impersonated user |
actor | json | Actor object identifying who is impersonating |
token | string | Signed actor token (JWT) |
url | string | Sign-in URL for the actor token |
createdAt | number | Creation timestamp |
updatedAt | number | Last update timestamp |
success | boolean | Operation success status |
A Trigger is a block that starts a workflow when an event happens in this service.
Trigger workflow when a Clerk organization is created
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
organizationId | string | Clerk organization ID (data.id) |
name | string | Organization name (data.name) |
slug | string | Organization slug (data.slug) |
createdBy | string | User ID of the creator (data.created_by) |
membersCount | number | Number of members (data.members_count) |
maxAllowedMemberships | number | Maximum allowed memberships (data.max_allowed_memberships) |
createdAt | number | Organization creation timestamp (data.created_at) |
Trigger workflow when a Clerk organization is deleted
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
organizationId | string | Deleted Clerk organization ID (data.id) |
deleted | boolean | Whether the organization was deleted (data.deleted) |
Trigger workflow when a Clerk organization membership is created
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
membershipId | string | Membership ID (data.id) |
role | string | Membership role, e.g. org:admin (data.role) |
organizationId | string | Organization ID (data.organization.id) |
userId | string | User ID of the member (data.public_user_data.user_id) |
createdAt | number | Membership creation timestamp (data.created_at) |
Trigger workflow when a Clerk organization membership is deleted
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
membershipId | string | Deleted membership ID (data.id) |
deleted | boolean | Whether the membership was deleted (data.deleted) |
Trigger workflow when a Clerk organization membership is updated
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
membershipId | string | Membership ID (data.id) |
role | string | Membership role, e.g. org:admin (data.role) |
organizationId | string | Organization ID (data.organization.id) |
userId | string | User ID of the member (data.public_user_data.user_id) |
createdAt | number | Membership creation timestamp (data.created_at) |
Trigger workflow when a Clerk organization is updated
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
organizationId | string | Clerk organization ID (data.id) |
name | string | Organization name (data.name) |
slug | string | Organization slug (data.slug) |
createdBy | string | User ID of the creator (data.created_by) |
membersCount | number | Number of members (data.members_count) |
maxAllowedMemberships | number | Maximum allowed memberships (data.max_allowed_memberships) |
createdAt | number | Organization creation timestamp (data.created_at) |
Trigger workflow when a Clerk session is created
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
sessionId | string | Clerk session ID (data.id) |
userId | string | User the session belongs to (data.user_id) |
clientId | string | Client ID for the session (data.client_id) |
status | string | Session status (data.status) |
createdAt | number | Session creation timestamp (data.created_at) |
Trigger workflow when a Clerk session ends
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
sessionId | string | Clerk session ID (data.id) |
userId | string | User the session belongs to (data.user_id) |
clientId | string | Client ID for the session (data.client_id) |
status | string | Session status (data.status) |
createdAt | number | Session creation timestamp (data.created_at) |
Trigger workflow when a Clerk session is removed
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
sessionId | string | Clerk session ID (data.id) |
userId | string | User the session belongs to (data.user_id) |
clientId | string | Client ID for the session (data.client_id) |
status | string | Session status (data.status) |
createdAt | number | Session creation timestamp (data.created_at) |
Trigger workflow when a Clerk session is revoked
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
sessionId | string | Clerk session ID (data.id) |
userId | string | User the session belongs to (data.user_id) |
clientId | string | Client ID for the session (data.client_id) |
status | string | Session status (data.status) |
createdAt | number | Session creation timestamp (data.created_at) |
Trigger workflow when a Clerk user is created
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
userId | string | Clerk user ID (data.id) |
firstName | string | User's first name |
lastName | string | User's last name |
username | string | User's username |
imageUrl | string | Profile image URL |
primaryEmailAddressId | string | Primary email address ID |
emailAddresses | json | Array of email address objects |
phoneNumbers | json | Array of phone number objects |
externalId | string | External system ID linked to the user |
createdAt | number | User creation timestamp (data.created_at) |
updatedAt | number | User last update timestamp (data.updated_at) |
Trigger workflow when a Clerk user is deleted
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
userId | string | Deleted Clerk user ID (data.id) |
deleted | boolean | Whether the user was deleted (data.deleted) |
Trigger workflow when a Clerk user is updated
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |
userId | string | Clerk user ID (data.id) |
firstName | string | User's first name |
lastName | string | User's last name |
username | string | User's username |
imageUrl | string | Profile image URL |
primaryEmailAddressId | string | Primary email address ID |
emailAddresses | json | Array of email address objects |
phoneNumbers | json | Array of phone number objects |
externalId | string | External system ID linked to the user |
createdAt | number | User creation timestamp (data.created_at) |
updatedAt | number | User last update timestamp (data.updated_at) |
Trigger workflow on any Clerk webhook event
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Copy this from your Clerk webhook endpoint to verify event signatures. |
| Parameter | Type | Description |
|---|
type | string | Event type (e.g., user.created, session.created) |
object | string | Always "event" |
timestamp | number | Timestamp in milliseconds when the event occurred |
instance_id | string | Identifier of your Clerk instance |
data | json | Raw event data object (shape varies by event type) |