Clerk website screenshot

Clerk

Clerk is a drop-in authentication and user management platform for web and mobile applications. The product spans sign-up / sign-in flows, user profiles, multi-factor authentication, passkeys, social sign-on, magic links, bot and fraud detection, organizations (B2B / multi-tenant) with custom roles and invitations, and a Billing product for subscriptions. The Backend API at api.clerk.com is authenticated with a Bearer secret key and has an OpenAPI specification. Frontend SDKs cover Next.js, React, React Router, Expo, Astro, TanStack React Start, Chrome Extension, and vanilla JavaScript. Backend SDKs cover Node, Go, Python, Ruby, Java, PHP, and C#. Webhooks are delivered via Svix.

18 APIs 0 Features
AuthenticationUser ManagementIdentityPasskeysMFAB2BOrganizationsBilling

APIs

Clerk Backend API

Server-to-server REST API for managing users, sessions, organizations, organization memberships, organization invitations, JWT templates, sign-in tokens, OAuth applications, SAM...

Clerk Frontend API

Browser-facing API consumed by Clerk's frontend SDKs and ClerkJS for sign-up, sign-in, session refresh, and user profile mutations. Endpoint is instance-specific (subdomain on c...

Clerk Webhooks (Svix)

Webhook events delivered via Svix for user, session, organization, email, SMS, and role lifecycle changes. Customers configure endpoints in the dashboard and verify signatures w...

Clerk JavaScript SDK

Official ClerkJS browser library and monorepo of framework adapters (Next.js, React, Expo, React Router, Astro, Chrome Extension, TanStack). Powers Clerk's prebuilt UI component...

Clerk Next.js SDK

Next.js integration covering App Router and Pages Router, middleware, route handlers, server components, and server actions. Distributed from the @clerk/nextjs package inside th...

Clerk React SDK

React components, hooks, and providers from the @clerk/clerk-react package for plain React SPAs.

Clerk Expo SDK

Expo / React Native bindings for Clerk supporting OAuth via deep links, secure session storage, and biometrics.

Clerk React Router SDK

Adapter for React Router v7 (Remix successor) covering loaders, actions, and server-rendered authentication.

Clerk Astro SDK

Adapter for the Astro framework with components and middleware.

Clerk TanStack Start SDK

Adapter for TanStack Start (React full-stack framework) with route-level authentication helpers.

Clerk Node.js SDK

Backend SDK for Node.js (@clerk/backend / @clerk/express / @clerk/fastify) that wraps the Backend API and verifies session JWTs.

Clerk Go SDK

Official Go SDK for the Clerk Backend API.

Clerk Python SDK

Official Python SDK for the Clerk Backend API.

Clerk Ruby SDK

Official Ruby SDK for the Clerk Backend API, with a Rails integration.

Clerk Java SDK

Official Java SDK for the Clerk Backend API.

Clerk PHP SDK

Official PHP SDK for the Clerk Backend API.

Clerk C# / .NET SDK

Official C# / .NET SDK for the Clerk Backend API.

Clerk OpenAPI Specifications

Public repository of OpenAPI specifications for Clerk's APIs, used as the source for generated SDKs and documentation.

Collections

GraphQL

Clerk GraphQL

Clerk's public API surface is REST-based. The Backend API lives at `https://api.clerk.com/v1` and is documented at [https://clerk.com/docs/reference/backend-api](https://clerk.c...

GRAPHQL

Pricing Plans

Clerk Plans Pricing

1 plans

PLANS

Rate Limits

Clerk Rate Limits

2 limits

RATE LIMITS

FinOps

Clerk Finops

FINOPS

Event Specifications

Clerk Webhooks

AsyncAPI 2.6 specification for Clerk's webhook surface. Clerk delivers webhook events via Svix to customer-configured endpoints. Each delivery is an HTTP POST of a JSON envelope...

ASYNCAPI

Resources

🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHub
GitHub
💰
Pricing
Pricing
📄
ChangeLog
ChangeLog
📰
Blog
Blog
🟢
Status
Status
🔗
LinkedIn
LinkedIn
🔗
LlmsText
LlmsText

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Clerk Backend API
  version: v1
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Users
    type: folder
  items:
  - info:
      name: List users
      type: http
    http:
      method: GET
      url: https://api.clerk.com/v1/users
      params:
      - name: email_address
        value: ''
        type: query
      - name: phone_number
        value: ''
        type: query
      - name: username
        value: ''
        type: query
      - name: user_id
        value: ''
        type: query
      - name: organization_id
        value: ''
        type: query
      - name: limit
        value: ''
        type: query
      - name: offset
        value: ''
        type: query
      - name: order_by
        value: ''
        type: query
    docs: List users
  - info:
      name: Create a user
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/users
      body:
        type: json
        data: '{}'
    docs: Create a user
  - info:
      name: Get a user
      type: http
    http:
      method: GET
      url: https://api.clerk.com/v1/users/:user_id
      params:
      - name: user_id
        value: ''
        type: path
    docs: Get a user
  - info:
      name: Update a user
      type: http
    http:
      method: PATCH
      url: https://api.clerk.com/v1/users/:user_id
      params:
      - name: user_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update a user
  - info:
      name: Delete a user
      type: http
    http:
      method: DELETE
      url: https://api.clerk.com/v1/users/:user_id
      params:
      - name: user_id
        value: ''
        type: path
    docs: Delete a user
  - info:
      name: Ban a user
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/users/:user_id/ban
      params:
      - name: user_id
        value: ''
        type: path
    docs: Ban a user
  - info:
      name: Unban a user
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/users/:user_id/unban
      params:
      - name: user_id
        value: ''
        type: path
    docs: Unban a user
- info:
    name: Sessions
    type: folder
  items:
  - info:
      name: List sessions
      type: http
    http:
      method: GET
      url: https://api.clerk.com/v1/sessions
      params:
      - name: client_id
        value: ''
        type: query
      - name: user_id
        value: ''
        type: query
      - name: status
        value: ''
        type: query
      - name: limit
        value: ''
        type: query
      - name: offset
        value: ''
        type: query
    docs: List sessions
  - info:
      name: Get a session
      type: http
    http:
      method: GET
      url: https://api.clerk.com/v1/sessions/:session_id
      params:
      - name: session_id
        value: ''
        type: path
    docs: Get a session
  - info:
      name: Revoke a session
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/sessions/:session_id/revoke
      params:
      - name: session_id
        value: ''
        type: path
    docs: Revoke a session
  - info:
      name: Verify a session token
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/sessions/:session_id/verify
      params:
      - name: session_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Verify a session token
- info:
    name: Organizations
    type: folder
  items:
  - info:
      name: List organizations
      type: http
    http:
      method: GET
      url: https://api.clerk.com/v1/organizations
      params:
      - name: limit
        value: ''
        type: query
      - name: offset
        value: ''
        type: query
      - name: query
        value: ''
        type: query
    docs: List organizations
  - info:
      name: Create an organization
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/organizations
      body:
        type: json
        data: '{}'
    docs: Create an organization
  - info:
      name: Get an organization
      type: http
    http:
      method: GET
      url: https://api.clerk.com/v1/organizations/:organization_id
      params:
      - name: organization_id
        value: ''
        type: path
    docs: Get an organization
  - info:
      name: Update an organization
      type: http
    http:
      method: PATCH
      url: https://api.clerk.com/v1/organizations/:organization_id
      params:
      - name: organization_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update an organization
  - info:
      name: Delete an organization
      type: http
    http:
      method: DELETE
      url: https://api.clerk.com/v1/organizations/:organization_id
      params:
      - name: organization_id
        value: ''
        type: path
    docs: Delete an organization
  - info:
      name: List organization memberships
      type: http
    http:
      method: GET
      url: https://api.clerk.com/v1/organizations/:organization_id/memberships
      params:
      - name: organization_id
        value: ''
        type: path
    docs: List organization memberships
  - info:
      name: Create an organization membership
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/organizations/:organization_id/memberships
      params:
      - name: organization_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Create an organization membership
  - info:
      name: List organization invitations
      type: http
    http:
      method: GET
      url: https://api.clerk.com/v1/organizations/:organization_id/invitations
      params:
      - name: organization_id
        value: ''
        type: path
    docs: List organization invitations
  - info:
      name: Create an organization invitation
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/organizations/:organization_id/invitations
      params:
      - name: organization_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Create an organization invitation
- info:
    name: Invitations
    type: folder
  items:
  - info:
      name: List invitations
      type: http
    http:
      method: GET
      url: https://api.clerk.com/v1/invitations
    docs: List invitations
  - info:
      name: Create an invitation
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/invitations
      body:
        type: json
        data: '{}'
    docs: Create an invitation
  - info:
      name: Revoke an invitation
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/invitations/:invitation_id/revoke
      params:
      - name: invitation_id
        value: ''
        type: path
    docs: Revoke an invitation
- info:
    name: SignInTokens
    type: folder
  items:
  - info:
      name: Create a sign-in token
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/sign_in_tokens
      body:
        type: json
        data: '{}'
    docs: Create a sign-in token
  - info:
      name: Revoke a sign-in token
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/sign_in_tokens/:sign_in_token_id/revoke
      params:
      - name: sign_in_token_id
        value: ''
        type: path
    docs: Revoke a sign-in token
- info:
    name: JwtTemplates
    type: folder
  items:
  - info:
      name: List JWT templates
      type: http
    http:
      method: GET
      url: https://api.clerk.com/v1/jwt_templates
    docs: List JWT templates
  - info:
      name: Create a JWT template
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/jwt_templates
      body:
        type: json
        data: '{}'
    docs: Create a JWT template
- info:
    name: Webhooks
    type: folder
  items:
  - info:
      name: Create a Svix app for the instance
      type: http
    http:
      method: POST
      url: https://api.clerk.com/v1/webhooks/svix
    docs: Create a Svix app for the instance
  - info:
      name: Delete the Svix app
      type: http
    http:
      method: DELETE
      url: https://api.clerk.com/v1/webhooks/svix
    docs: Delete the Svix app
bundled: true