New260+ blocks and 240+ tools are now fully documented
DocumentationReferenceTool IntegrationsSecurity & Identity
Tool

Clerk Tools

Manage users, organizations, and sessions in your Clerk authentication application via workflow blocks.

Clerk is an authentication and user management platform. Use these tools in your workflows to programmatically manage users, organizations, and sessions — for example, syncing new sign-ups to a CRM, automating user provisioning, or revoking sessions on security events.

Overview

PropertyValue
Providerclerk
Categorytools
AuthBearer Token (Clerk Secret Key passed as secretKey)

Operations

OperationTool IDDescription
List Usersclerk_list_usersList all users with optional filtering and pagination
Get Userclerk_get_userRetrieve a single user by their Clerk user ID
Create Userclerk_create_userCreate a new user in your Clerk application
Update Userclerk_update_userUpdate an existing user's profile or metadata
Delete Userclerk_delete_userDelete a user from your Clerk application
List Organizationsclerk_list_organizationsList all organizations with optional filtering
Get Organizationclerk_get_organizationRetrieve a single organization by ID or slug
Create Organizationclerk_create_organizationCreate a new organization in your Clerk application
List Sessionsclerk_list_sessionsList sessions for a user or client
Revoke Sessionclerk_revoke_sessionRevoke a session to immediately invalidate it

Configuration

clerk_list_users

GET https://api.clerk.com/v1/users

ParameterTypeRequiredDescription
secretKeystringYesClerk Secret Key for API authentication (e.g. sk_live_...)
limitnumberNoNumber of results per page (range: 1–500, default: 10)
offsetnumberNoNumber of results to skip for pagination
orderBystringNoSort field with +/- prefix (default: -created_at)
emailAddressstringNoFilter by email address; comma-separate multiple values
phoneNumberstringNoFilter by phone number; comma-separate multiple values
externalIdstringNoFilter by external ID; comma-separate multiple values
usernamestringNoFilter by username; comma-separate multiple values
userIdstringNoFilter by user ID; comma-separate multiple values
querystringNoSearch query across email, phone, username, and names

clerk_get_user

GET https://api.clerk.com/v1/users/{userId}

ParameterTypeRequiredDescription
secretKeystringYesClerk Secret Key for API authentication
userIdstringYesThe Clerk user ID to retrieve (e.g. user_xxx)

clerk_create_user

POST https://api.clerk.com/v1/users

ParameterTypeRequiredDescription
secretKeystringYesClerk Secret Key for API authentication
emailAddressstringNoEmail address(es) for the user; comma-separate multiple values
phoneNumberstringNoPhone number(s) for the user; comma-separate multiple values
usernamestringNoUsername (must be unique in your application)
passwordstringNoPassword (minimum 8 characters)
firstNamestringNoFirst name
lastNamestringNoLast name
externalIdstringNoExternal system identifier (must be unique)
publicMetadatajsonNoPublic metadata object visible to the frontend
privateMetadatajsonNoPrivate metadata object visible only server-side
unsafeMetadatajsonNoUnsafe metadata object writable by the frontend
skipPasswordChecksbooleanNoSkip password validation checks
skipPasswordRequirementbooleanNoMake password optional for this user

clerk_update_user

PATCH https://api.clerk.com/v1/users/{userId}

ParameterTypeRequiredDescription
secretKeystringYesClerk Secret Key for API authentication
userIdstringYesThe ID of the user to update
firstNamestringNoFirst name
lastNamestringNoLast name
usernamestringNoUsername (must be unique)
passwordstringNoNew password (minimum 8 characters)
externalIdstringNoExternal system identifier
primaryEmailAddressIdstringNoID of a verified email address to set as primary
primaryPhoneNumberIdstringNoID of a verified phone number to set as primary
publicMetadatajsonNoPublic metadata object (replaces existing)
privateMetadatajsonNoPrivate metadata object (replaces existing)
unsafeMetadatajsonNoUnsafe metadata object (replaces existing)
skipPasswordChecksbooleanNoSkip password validation checks

clerk_delete_user

DELETE https://api.clerk.com/v1/users/{userId}

ParameterTypeRequiredDescription
secretKeystringYesClerk Secret Key for API authentication
userIdstringYesThe ID of the user to delete

clerk_list_organizations

GET https://api.clerk.com/v1/organizations

ParameterTypeRequiredDescription
secretKeystringYesClerk Secret Key for API authentication
limitnumberNoNumber of results per page (range: 1–500, default: 10)
offsetnumberNoNumber of results to skip for pagination
includeMembersCountbooleanNoInclude member count for each organization in the response
querystringNoSearch by organization ID, name, or slug
orderBystringNoSort field with +/- prefix

clerk_get_organization

GET https://api.clerk.com/v1/organizations/{organizationId}

ParameterTypeRequiredDescription
secretKeystringYesClerk Secret Key for API authentication
organizationIdstringYesThe ID or slug of the organization to retrieve

clerk_create_organization

POST https://api.clerk.com/v1/organizations

ParameterTypeRequiredDescription
secretKeystringYesClerk Secret Key for API authentication
namestringYesThe name of the organization
createdBystringYesThe user ID of the initial admin of the organization
slugstringNoA unique URL slug for the organization
maxAllowedMembershipsnumberNoMaximum number of memberships (0 = unlimited)
publicMetadatajsonNoPublic metadata object
privateMetadatajsonNoPrivate metadata object

clerk_list_sessions

GET https://api.clerk.com/v1/sessions

ParameterTypeRequiredDescription
secretKeystringYesClerk Secret Key for API authentication
userIdstringNoUser ID to filter sessions for
clientIdstringNoClient ID to filter sessions for
statusstringNoFilter by session status: abandoned, active, ended, expired, pending, removed, replaced, or revoked
limitnumberNoNumber of results per page (range: 1–500, default: 10)
offsetnumberNoNumber of results to skip for pagination

clerk_revoke_session

POST https://api.clerk.com/v1/sessions/{sessionId}/revoke

ParameterTypeRequiredDescription
secretKeystringYesClerk Secret Key for API authentication
sessionIdstringYesThe ID of the session to revoke

Outputs

clerk_list_users

  • users (array) — Array of Clerk user objects matching the query
  • totalCount (number) — Total number of users matching the query (from x-total-count response header)

clerk_get_user

  • id (string) — User ID
  • username (string) — Username
  • firstName (string) — First name
  • lastName (string) — Last name
  • emailAddresses (array) — List of email address objects associated with the user

clerk_create_user

  • id (string) — Created user ID
  • emailAddresses (array) — Email addresses associated with the new user

clerk_update_user

  • id (string) — Updated user ID
  • emailAddresses (array) — Email addresses associated with the user

clerk_delete_user

  • id (string) — Deleted user ID
  • deleted (boolean) — Whether the user was successfully deleted

clerk_list_organizations

  • organizations (array) — Array of Clerk organization objects
  • totalCount (number) — Total number of organizations

clerk_get_organization

  • id (string) — Organization ID
  • name (string) — Organization name

clerk_create_organization

  • id (string) — Created organization ID
  • name (string) — Organization name
  • slug (string) — Organization slug

clerk_list_sessions

  • sessions (array) — Array of Clerk session objects
  • totalCount (number) — Total number of sessions (from x-total-count response header)

clerk_revoke_session

  • id (string) — Session ID
  • status (string) — Session status after revocation (revoked)

YAML Example

clerk_1:
  type: clerk
  name: "Clerk"
  inputs:
    operation: "clerk_list_users"
    secretKey: "{{CLERK_SECRET_KEY}}"
    limit: 50
    query: "{{trigger.searchQuery}}"
  connections:
    outgoing:
      - target: next-block-id

Tips

  • Your Clerk Secret Key starts with sk_live_ (production) or sk_test_ (development). Store it as an environment variable and reference it as {{CLERK_SECRET_KEY}} — never hardcode it in a workflow.
  • When filtering list endpoints with comma-separated values (e.g. emailAddress, userId), the tool splits them automatically and sends each as a separate query parameter, which is what the Clerk API expects.
  • To revoke all sessions for a user during a security incident, first call clerk_list_sessions with the userId filter and status: active, then loop over the results and call clerk_revoke_session for each session ID using {{clerkListSessions.sessions}}.