Clerk Client API

Used to interact with the Client Object.

Operations 8

GET /v1/client Get Current Client #
PUT /v1/client Create New Client #
POST /v1/client Create New Client #
DELETE /v1/client Delete Client's Sessions #
GET /v1/client/sync Sync Clients Across Multiple Domains #
GET /v1/client/link Link Clients Across Multiple Domains #
GET /v1/client/handshake Generate and Return a New Session Token for a Given Client. #
GET /v1/agents/tasks Create Session from Agent Task #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/clerk-com-client-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

clerk-com-client-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Clerk Frontend Client API
  version: v1
  description: 'The Clerk REST Frontend API, meant to be accessed from a browser or native environment.


    This is a Form Based API and all the data must be sent and formatted according to the `application/x-www-form-urlencoded` content type.


    ### 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 release date, e.g. `2021-02-05`. For more information, please see [Clerk API Versions](https://clerk.com/docs/backend-requests/versioning/overview).


    ### Using the Try It Console


    The `Try It` feature of the docs only works for **Development Instances** when using the `DevBrowser` security scheme.

    To use it, first generate a dev instance token from the `/v1/dev_browser` endpoint.


    Please see https://clerk.com/docs for more information.'
  x-logo:
    url: https://clerk.com/_next/image?url=%2Fimages%2Fclerk-logo.svg&w=96&q=75
    altText: Clerk docs
    href: https://clerk.com/docs
  contact:
    email: support@clerk.com
    name: Clerk Team
    url: https://clerk.com/support
  termsOfService: https://clerk.com/terms
  license:
    name: MIT
    url: https://github.com/clerk/javascript/blob/main/LICENSE
servers:
- url: https://{domain}.clerk.accounts.dev
  variables:
    domain:
      default: example-destined-camel-13
      description: Your Development Instance Frontend API Domain.
security:
- {}
- DevBrowser: []
- ProductionBrowser: []
- ProductionNativeApp: []
  ProductionNativeFlag: []
tags:
- name: Client
  description: Used to interact with the Client Object.
paths:
  /v1/client:
    get:
      summary: Get Current Client
      description: Returns the current client that is present either in the browser cookies or authorization header.
      tags:
      - Client
      operationId: getClient
      security:
      - {}
      - DevBrowser: []
      responses:
        '200':
          $ref: '#/components/responses/Client.Client'
        '400':
          $ref: '#/components/responses/ClerkErrors'
        '401':
          $ref: '#/components/responses/ClerkErrors'
        '403':
          $ref: '#/components/responses/ClerkErrors'
    put:
      summary: Create New Client
      description: Creates a new Client and sets it either in the response cookies or the response authorization header.
      security:
      - {}
      - DevBrowser: []
      tags:
      - Client
      operationId: putClient
      responses:
        '200':
          $ref: '#/components/responses/Client.Client'
        '307':
          description: Redirect, no body.
    post:
      summary: Create New Client
      description: Creates a new Client and sets it either in the response cookies or the response authorization header.
      security:
      - {}
      - DevBrowser: []
      operationId: postClient
      tags:
      - Client
      responses:
        '200':
          $ref: '#/components/responses/Client.Client'
        '307':
          description: Redirect, no body.
    delete:
      summary: Delete Client's Sessions
      description: Ends all Sessions of the Current Client
      tags:
      - Client
      operationId: deleteClientSessions
      responses:
        '200':
          $ref: '#/components/responses/Client.DeleteSession'
        '307':
          description: Redirect, no body.
        '404':
          $ref: '#/components/responses/ClerkErrors'
  /v1/client/sync:
    get:
      summary: Sync Clients Across Multiple Domains
      description: Start the syncing process between a satellite and primary domain.
      operationId: syncClient
      parameters:
      - in: query
        name: link_domain
        schema:
          type: string
        description: The satellite domain which should be synced with its primary.
      - in: query
        name: redirect_url
        schema:
          type: string
        description: The URL to redirect to after the syncing process has been completed.
      responses:
        '307':
          description: Redirect
        '400':
          $ref: '#/components/responses/ClerkErrors'
        '403':
          $ref: '#/components/responses/ClerkErrors'
        '422':
          $ref: '#/components/responses/ClerkErrors'
      tags:
      - Client
  /v1/client/link:
    get:
      summary: Link Clients Across Multiple Domains
      description: Complete a syncing process between a satellite and primary domains by linking their clients.
      operationId: linkClient
      parameters:
      - in: query
        name: __clerk_token
        schema:
          type: string
        description: The token generated from a sync request.
      responses:
        '307':
          description: Redirect
        '400':
          $ref: '#/components/responses/ClerkErrors'
        '403':
          $ref: '#/components/responses/ClerkErrors'
        '422':
          $ref: '#/components/responses/ClerkErrors'
      tags:
      - Client
  /v1/client/handshake:
    get:
      summary: Generate and Return a New Session Token for a Given Client.
      description: When the authentication status cannot be determined from the current session token, we initiate a handshake to refresh the token and send it back to the application. Called in server environments.
      tags:
      - Client
      operationId: handshakeClient
      parameters:
      - in: header
        name: Clerk-Proxy-Url
        description: The URL of the proxy
        schema:
          type: string
      - in: header
        name: Clerk-Secret-Key
        description: The secret key of the proxy
        schema:
          type: string
      - in: query
        name: redirect_url
        schema:
          type: string
        description: The URL to redirect back to after the handshake
      - in: query
        name: format
        allowEmptyValue: false
        required: false
        schema:
          type: string
          enum:
          - nonce
          - token
          default: token
        description: The supported format of the handshake payload.
      - in: query
        name: organization_id
        schema:
          type: string
        allowEmptyValue: true
        description: 'The organization ID or slug to attempt to set as active for the session. If this param is present but has no value,

          the personal account will be set as active. If the organization cannot be set as active (because it does not

          exist, or the user is not a member), the active organization for the session will not change.

          '
      - in: query
        name: satellite_fapi
        description: The Frontend API of the satellite domain
        schema:
          type: string
      responses:
        '307':
          description: Redirect
        '400':
          $ref: '#/components/responses/ClerkErrors'
        '403':
          $ref: '#/components/responses/ClerkErrors'
        '404':
          $ref: '#/components/responses/ClerkErrors'
        '422':
          $ref: '#/components/responses/ClerkErrors'
        '500':
          $ref: '#/components/responses/ClerkErrors'
  /v1/agents/tasks:
    get:
      x-speakeasy-group: agentTasks
      x-speakeasy-name-override: create
      summary: Create Session from Agent Task
      description: 'Creates a new session directly from an agent task without requiring navigation to the sign-in page.

        Agent tasks are single-use tokens created via the Backend API that bypass MFA requirements.


        The endpoint returns a redirect with a handshake cookie containing all session cookies,

        enabling cookie sync to the app domain in a single step. This is useful for browser

        automation tools (Puppeteer, Playwright) that need cookies on the application domain.

        '
      tags:
      - Client
      operationId: createAgentTask
      security:
      - {}
      - DevBrowser: []
      parameters:
      - in: query
        name: ticket
        required: true
        schema:
          type: string
        description: The agent task ticket value obtained from the Backend API.
      responses:
        '307':
          description: "Redirect to the `redirect_url` specified when the agent task was created.\n\nBefore redirecting, the URL is validated:\n- Must be a valid absolute URL with an `https` scheme in production.\n  In development instances, `http` is also permitted.\n- The URL's domain must belong to one of the instance's associated domains\n  (primary or satellite).\n\nIn production, the handshake payload is set as a cookie.\nIn development, the handshake payload is passed as a query parameter.\n"
        '400':
          $ref: '#/components/responses/ClerkErrors'
        '403':
          $ref: '#/components/responses/ClerkErrors'
        '404':
          $ref: '#/components/responses/ClerkErrors'
        '422':
          $ref: '#/components/responses/ClerkErrors'
        '500':
          $ref: '#/components/responses/ClerkErrors'
components:
  schemas:
    Stubs.Verification.SAML:
      type: object
      properties:
        object:
          type: string
          enum:
          - verification_saml
        status:
          type: string
          enum:
          - unverified
          - verified
          - failed
          - expired
          - transferable
        strategy:
          type: string
          enum:
          - saml
        external_verification_redirect_url:
          type:
          - string
          - 'null'
        error:
          allOf:
          - $ref: '#/components/schemas/ClerkError'
          - type:
            - object
            - 'null'
        expire_at:
          type:
          - integer
          - 'null'
        attempts:
          type:
          - integer
          - 'null'
      required:
      - status
      - strategy
    Stubs.Verification.Link:
      type: object
      properties:
        object:
          type: string
          enum:
          - verification_email_link
        status:
          type: string
          enum:
          - unverified
          - verified
          - failed
          - expired
          - transferable
        strategy:
          type: string
          enum:
          - email_link
        attempts:
          type:
          - integer
          - 'null'
        expire_at:
          type: integer
        verified_at_client:
          type: string
      required:
      - status
      - strategy
      - expire_at
    Client.Passkey:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
        object:
          type: string
          description: 'String representing the object''s type. Objects of the same type share the same value.

            '
          enum:
          - passkey
        name:
          type: string
        last_used_at:
          type:
          - integer
          - 'null'
          format: int64
          description: 'Unix timestamp of when the passkey was last used.

            '
        verification:
          type:
          - object
          - 'null'
          oneOf:
          - $ref: '#/components/schemas/Stubs.Verification.Passkey'
        created_at:
          type: integer
          format: int64
          description: 'Unix timestamp of creation

            '
        updated_at:
          type: integer
          format: int64
          description: 'Unix timestamp of update

            '
      required:
      - id
      - object
      - name
      - verification
    Client.DeleteSession:
      type: object
      additionalProperties: false
      properties:
        response:
          type:
          - object
          - 'null'
          allOf:
          - $ref: '#/components/schemas/schemas-Client.Client'
        client:
          type:
          - object
          - 'null'
      required:
      - response
      - client
    Stubs.SignInFactor:
      type: object
      additionalProperties: false
      properties:
        strategy:
          type: string
          enum:
          - ticket
          - password
          - email_code
          - email_link
          - phone_code
          - web3_metamask_signature
          - web3_base_signature
          - web3_coinbase_wallet_signature
          - web3_okx_wallet_signature
          - web3_solana_signature
          - totp
          - backup_code
          - oauth_apple
          - oauth_google
          - oauth_facebook
          - oauth_hubspot
          - oauth_github
          - oauth_mock
          - oauth_custom_mock
          - oauth_token_mock
          - saml
          - enterprise_sso
          - reset_password_email_code
          - reset_password_phone_code
          - passkey
          - google_one_tap
        safe_identifier:
          type: string
        enterprise_connection_id:
          type: string
        enterprise_connection_name:
          type: string
        email_address_id:
          type: string
        phone_number_id:
          type: string
        web3_wallet_id:
          type: string
        passkey_id:
          type: string
        primary:
          type:
          - boolean
          - 'null'
        external_verification_redirect_url:
          type:
          - string
          - 'null'
        default:
          type: boolean
      required:
      - strategy
    Stubs.Verification.BackupCode:
      type: object
      additionalProperties: false
      properties:
        object:
          type: string
          enum:
          - verification_backup_code
        status:
          type: string
          enum:
          - unverified
          - verified
        strategy:
          type: string
          enum:
          - backup_code
        attempts:
          type:
          - integer
          - 'null'
        expire_at:
          type:
          - integer
          - 'null'
      required:
      - status
      - strategy
    Stubs.Verification.FromOauth:
      type: object
      properties:
        object:
          type: string
          enum:
          - verification_from_oauth
        status:
          type: string
          enum:
          - verified
          - unverified
        strategy:
          type: string
          enum:
          - from_oauth_apple
          - from_oauth_google
          - from_oauth_mock
          - from_oauth_custom_mock
        attempts:
          type:
          - integer
          - 'null'
        expire_at:
          type:
          - integer
          - 'null'
      required:
      - status
      - strategy
    Token:
      type: object
      additionalProperties: false
      properties:
        object:
          type: string
          description: 'String representing the object''s type. Objects of the same type share the same value.

            '
          enum:
          - token
        jwt:
          type: string
          description: 'String representing the encoded JWT value.

            '
      required:
      - object
      - jwt
    Stubs.Verification.Admin:
      type: object
      additionalProperties: false
      properties:
        object:
          type: string
          enum:
          - verification_admin
        status:
          type: string
          enum:
          - verified
          - unverified
          - failed
          - expired
        strategy:
          type: string
          enum:
          - admin
        attempts:
          type:
          - integer
          - 'null'
        expire_at:
          type:
          - integer
          - 'null'
      required:
      - status
      - strategy
    Client.EmailAddress:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
        object:
          type: string
          description: 'String representing the object''s type. Objects of the same type share the same value.

            '
          enum:
          - email_address
        email_address:
          type: string
        reserved:
          type: boolean
        verification:
          type:
          - object
          - 'null'
          oneOf:
          - $ref: '#/components/schemas/Stubs.Verification.OTP'
          - $ref: '#/components/schemas/Stubs.Verification.Invitation'
          - $ref: '#/components/schemas/Stubs.Verification.Link'
          - $ref: '#/components/schemas/Stubs.Verification.Ticket'
          - $ref: '#/components/schemas/Stubs.Verification.Admin'
          - $ref: '#/components/schemas/Stubs.Verification.FromOauth'
          - $ref: '#/components/schemas/Stubs.Verification.SAML'
        linked_to:
          type: array
          items:
            $ref: '#/components/schemas/Stubs.Identification.Link'
        matches_sso_connection:
          description: 'Indicates whether this email address domain matches an active enterprise connection.

            '
          type: boolean
        created_at:
          type: integer
          format: int64
          description: 'Unix timestamp of creation

            '
        updated_at:
          type: integer
          format: int64
          description: 'Unix timestamp of creation

            '
      required:
      - id
      - object
      - email_address
      - verification
      - linked_to
      - reserved
      - created_at
      - updated_at
    ExternalAccountWithVerification:
      type: object
      additionalProperties: true
      properties:
        object:
          type: string
          description: String representing the object's type. Objects of the same type share the same value.
          enum:
          - external_account
          - facebook_account
          - google_account
        id:
          type: string
        provider:
          type: string
        identification_id:
          type: string
        provider_user_id:
          description: The unique ID of the user in the external provider's system
          type: string
        approved_scopes:
          type: string
        email_address:
          type: string
        email_address_verified:
          type:
          - boolean
          - 'null'
          description: 'Whether the email was verified by the OAuth provider at creation time. null = unknown (pre-migration data or custom OAuth providers), true = provider confirmed email was verified, false = provider confirmed email was NOT verified

            '
        first_name:
          type: string
        last_name:
          type: string
        avatar_url:
          type: string
          deprecated: true
          description: Please use `image_url` instead
        image_url:
          type:
          - string
          - 'null'
        username:
          type:
          - string
          - 'null'
        phone_number:
          type:
          - string
          - 'null'
        public_metadata:
          type: object
          additionalProperties: true
        label:
          type:
          - string
          - 'null'
        created_at:
          type: integer
          format: int64
          description: 'Unix timestamp of creation

            '
        updated_at:
          type: integer
          format: int64
          description: 'Unix timestamp of creation

            '
        verification:
          type:
          - object
          - 'null'
          oneOf:
          - $ref: '#/components/schemas/verification_oauth'
          - $ref: '#/components/schemas/verification_google_one_tap'
          discriminator:
            propertyName: object
      required:
      - object
      - id
      - provider
      - identification_id
      - provider_user_id
      - approved_scopes
      - email_address
      - first_name
      - last_name
      - public_metadata
      - created_at
      - updated_at
      - verification
    Client.OrganizationMembership:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
          description: 'String representing the object''s type. Objects of the same type share the same value.

            '
          enum:
          - organization_membership
        public_metadata:
          type: object
          additionalProperties: true
        role:
          type: string
        role_name:
          type: string
        permissions:
          type:
          - array
          - 'null'
          items:
            type: string
        created_at:
          type: integer
          format: int64
          description: Unix timestamp of creation.
        updated_at:
          type: integer
          format: int64
          description: Unix timestamp of last update.
        organization:
          $ref: '#/components/schemas/Client.Organization'
        public_user_data:
          type:
          - object
          - 'null'
          allOf:
          - $ref: '#/components/schemas/Client.PublicUserData'
      required:
      - object
      - id
      - public_metadata
      - role
      - role_name
      - permissions
      - created_at
      - updated_at
      - organization
    Client.PublicUserData:
      type: object
      additionalProperties: false
      properties:
        first_name:
          type:
          - string
          - 'null'
        last_name:
          type:
          - string
          - 'null'
        image_url:
          type:
          - string
          - 'null'
        has_image:
          type: boolean
        identifier:
          type: string
        profile_image_url:
          type:
          - string
          - 'null'
          deprecated: true
          description: Use `image_url` instead.
        user_id:
          type:
          - string
          - 'null'
        username:
          type:
          - string
          - 'null'
        banned:
          type: boolean
      required:
      - first_name
      - last_name
      - identifier
      - has_image
    verification_oauth:
      x-speakeasy-name-override: Oauth
      type: object
      additionalProperties: false
      properties:
        object:
          type: string
          enum:
          - verification_oauth
        status:
          type: string
          x-speakeasy-unknown-values: allow
          enum:
          - unverified
          - verified
          - failed
          - expired
          - transferable
        strategy:
          type: string
          x-speakeasy-unknown-values: allow
          pattern: ^oauth_(?:(?:token_)|(?:custom_))?[a-z]+$
        external_verification_redirect_url:
          type: string
        error:
          type:
          - object
          - 'null'
          oneOf:
          - $ref: '#/components/schemas/ClerkError'
        expire_at:
          type: integer
        attempts:
          type:
          - integer
          - 'null'
        verified_at_client:
          type:
          - string
          - 'null'
      required:
      - status
      - strategy
      - attempts
      - expire_at
    ClerkErrors:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ClerkError'
        meta:
          type: object
        clerk_trace_id:
          type: string
      required:
      - errors
    Stubs.Verification.Ticket:
      type: object
      properties:
        object:
          type: string
          enum:
          - verification_ticket
        status:
          type: string
          enum:
          - unverified
          - verified
          - expired
        strategy:
          type: string
          enum:
          - ticket
        attempts:
          type:
          - integer
          - 'null'
        expire_at:
          type:
          - integer
          - 'null'
      required:
      - status
      - strategy
    schemas-Client.Session:
      allOf:
      - $ref: '#/components/schemas/schemas-Client.SessionBase'
      - type: object
        properties:
          last_active_organization_id:
            type:
            - string
            - 'null'
          user:
            $ref: '#/components/schemas/Client.User'
          public_user_data:
            type:
            - object
            - 'null'
            allOf:
            - $ref: '#/components/schemas/Client.PublicUserData'
          factor_verification_age:
            type: array
            description: Each item represents the minutes that have passed since the last time a first or second factor were verified.
            items:
              type: integer
          created_at:
            type: integer
            format: int64
            description: Unix timestamp of creation.
            example: 1700690400000
          updated_at:
            type: integer
            format: int64
            description: Unix timestamp of last update.
            example: 1700690400000
        required:
        - last_active_organization_id
        - public_user_data
        - factor_verification_age
        - created_at
        - updated_at
    Stubs.Verification.Passkey:
      type: object
      additionalProperties: false
      properties:
        object:
          type: string
          enum:
          - verification_passkey
        status:
          type: string
          enum:
          - unverified
          - verified
          - failed
          - expired
        strategy:
          type: string
          enum:
          - passkey
        attempts:
          type:
          - integer
          - 'null'
        expire_at:
          type: integer
        nonce:
          type: string
      required:
      - status
      - strategy
      - expire_at
    Stubs.Verification.Web3Signature:
      type: object
      properties:
        object:
          type: string
          enum:
          - verification_web3
        status:
          type: string
          enum:
          - unverified
          - verified
          - failed
          - expired
        strategy:
          type: string
          enum:
          - web3_metamask_signature
          - web3_base_signature
          - web3_coinbase_wallet_signature
          - web3_okx_wallet_signature
          - web3_solana_signature
        attempts:
          type:
          - integer
          - 'null'
        expire_at:
          type:
          - integer
          - 'null'
        nonce:
          type:
          - string
          - 'null'
        message:
          type:
          - string
          - 'null'
      required:
      - status
      - strategy
    Client.SessionTask:
      type: object
      properties:
        key:
          type: string
      required:
      - key
    schemas-Client.Client:
      type:
      - object
      - 'null'
      properties:
        object:
          type: string
          description: String representing the object's type. Objects of the same type share the same value.
          enum:
          - client
        id:
          type: string
          description: String representing the identifier of the session.
        sessions:
          type: array
          items:
            $ref: '#/components/schemas/schemas-Client.Session'
        sign_in:
          type:
          - object
          - 'null'
          allOf:
          - $ref: '#/components/schemas/schemas-Client.SignIn'
        sign_up:
          type:
          - object
          - 'null'
          allOf:
          - $ref: '#/components/schemas/Client.SignUp'
        last_active_session_id:
          type:
          - string
          - 'null'
          description: Last active session_id.
        last_authentication_strategy:
          type:
          - string
          - 'null'
          description: 'The authentication strategy that was last used to authenticate the user on this client.

            '
        cookie_expires_at:
          type:
          - integer
          - 'null'
          format: int64
          description: Unix timestamp of the cookie expiration.
        captcha_bypass:
          type: boolean
          description: Whether the client can bypass CAPTCHA.
        created_at:
          type: integer
          format: int64
          description: Unix timestamp of creation.
        updated_at:
          type: integer
          format: int64
          description: Unix timestamp of last update.
      required:
      - object
      - id
      - sessions
      - sign_in
      - sign_up
      - last_active_session_id
      - last_authentication_strategy
      - cookie_expires_at
      - captcha_bypass
      - created_at
      - updated_at
    Client.User:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
          description: 'String representing the object''s type. Objects of the same type share the same value.

            '
          enum:
          - user
        username:
          type:
          - string
          - 'null'
        first_name:
          type:
          - string
          - 'null'
        last_name:
          type:
          - string
          - 'null'
        image_url:
          type: string
        has_image:
          type: boolean
        primary_email_address_id:
          type:
          - string
          - 'null'
        primary_phone_number_id:
          type:
          - string
          - 'null'
        primary_web3_wallet_id:
          type:
          - string
          - 'null'
        password_enabled:
          type: boolean
        two_factor_enabled:
          type: boolean
        totp_enabled:
          type: boolean
        backup_code_enabled:
          type: boolean
        email_addresses:
          type: array
          items:
            $ref: '#/components/schemas/Client.EmailAddress'
        phone_numbers:
          type: array
          items:
            $ref: '#/components/schemas/Client.PhoneNumber'
        web3_wallets:
          type: array
          items:
            $ref: '#/components/schemas/Client.Web3Wallet'
        passkeys:
          type: array
          items:
            $ref: '#/components/schemas/Client.Passkey'
        organization_memberships:
          type: array
          items:
            $ref: '#/components/schemas/Client.OrganizationMembership'
        external_accounts:
          type: array
          items:
            $ref: '#/components/schemas/ExternalAccountWithVerification'
        saml_accounts:
          type: array
          items:
            $ref: '#/components/schemas/Client.SAMLAccount'
        password_last_updated_at:
          type:
          - integer
          - 'null'
          format: int64
          description: Unix timestamp of last update.
          example: 1700690400000
        public_metadata:
          type: object
          additionalProperties: true
        private_metadata:
          type: object
          additionalProperties: true
        unsafe_metadata:
          type: object
          additionalProperties: true
        external_id:
          type:
          - string
          - 'null'
        last_sign_in_at:
          type:
          - integer
          - 'null'
          format: int64
          description: Unix timestamp of last sign-in.
          example: 1700690400000
        banned:
          type: boolean
          description: Flag to denote whether user is banned or not.
        locked:
          type: boolean
          description: 'Flag to denote whether user is currently locked, i.e. restricted from signing in or not.

            '
        deprovisioned:
          type: boolean
          description: 'Flag to denote whether the user has been deprovisioned via SCIM and is restricted from signing in. Only present on instances with SCIM enabled.

            '
        lockout_expires_in_seconds:
          type:
          - integer
          - 'null'
          format: int64
          description: 'The number of seconds remaining until the lockout period expires for a locked user. A null value for a locked user indicates that lockout never expires.

            '
          example: 300
        verification_attempts_remaining:
          type:
          - integer
          - 'null'
          format: int64
          description: 'The number of verification attempts remaining until the user is locked. Null if account lockout is not enabled. Note: if a user is locked explicitly via the Backend API, they may still have verification attempts remaining.

            '
        created_at:
          type: integer
          format: int64
          description: Unix timestamp of creation.
          example: 1700690400000
        updated_at:
          type: integer
          format: int64
          description: Unix timestamp of last update.
          example: 1700690400000
        delete_self_enabled:
        

# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/clerk-com/refs/heads/main/openapi/clerk-com-client-api-openapi.yml