Clerk Plans API

Used to interact with plans that users and organizations can purchase.

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-plans-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 email required.

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

OpenAPI Specification

clerk-com-plans-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Clerk Backend Account Portal Plans API
  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 Platform Team
    url: https://clerk.com/support
  description: 'The Clerk REST Backend API, meant to be accessed by backend servers.


    ### Versions


    When the API changes in a way that isn''t compatible with older versions, a new version is released.

    Each version is identified by its release date, e.g. `2025-04-10`. For more information, please see [Clerk API Versions](https://clerk.com/docs/versioning/available-versions).


    Please see https://clerk.com/docs for more information.'
  version: '2025-11-10'
  termsOfService: https://clerk.com/terms
  license:
    name: MIT
    url: https://github.com/clerk/openapi-specs/blob/main/LICENSE
servers:
- url: https://api.clerk.com/v1
security:
- bearerAuth: []
tags:
- name: Plans
  description: Used to interact with plans that users and organizations can purchase.
paths:
  /v1/billing/plans:
    get:
      operationId: GetBillingPlanList
      x-speakeasy-group: billing
      x-speakeasy-name-override: listPlans
      tags:
      - Plans
      summary: List Billing Plans
      description: Returns a list of all publicly visible billing plans.
      parameters:
      - in: query
        name: payer_type
        description: Filter plans by payer type
        required: false
        schema:
          type: string
          enum:
          - user
          - org
      responses:
        '200':
          $ref: '#/components/responses/BillingPlanList'
        '400':
          $ref: '#/components/responses/ClerkErrors'
        '403':
          $ref: '#/components/responses/ClerkErrors'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
  /v1/billing/plans/{planIdOrSlug}:
    get:
      operationId: GetBillingPlan
      x-speakeasy-group: billing
      x-speakeasy-name-override: getPlan
      tags:
      - Plans
      summary: Get a Billing Plan
      description: Returns a billing plan by ID or slug.
      parameters:
      - name: planIdOrSlug
        in: path
        description: The ID or slug of the plan
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/BillingPlan'
        '400':
          $ref: '#/components/responses/ClerkErrors'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
components:
  responses:
    BillingPlan:
      description: Returns a commerce plan.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BillingPlan'
    ClerkErrors:
      description: Request was not successful
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ClerkErrors'
    ResourceNotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ClerkErrors'
    BillingPlanList:
      description: Returns a list of commerce plans.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
            - data
            - total_count
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/BillingPlan'
              total_count:
                type: integer
                format: int64
    UnprocessableEntity:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ClerkErrors'
  schemas:
    ClerkError:
      type: object
      properties:
        message:
          type: string
        long_message:
          type: string
        code:
          type: string
        meta:
          type: object
      required:
      - message
      - long_message
      - code
    BillingFee:
      type: object
      additionalProperties: false
      properties:
        amount:
          type: integer
          format: int64
          description: Amount in the smallest currency unit (e.g., cents)
          minimum: 0
        amount_formatted:
          type: string
          description: The formatted amount as a string (e.g., "$49.99")
        currency:
          type: string
          description: The currency code (e.g., "USD")
        currency_symbol:
          type: string
          description: The currency symbol (e.g., "$")
      required:
      - amount
      - amount_formatted
      - currency
      - currency_symbol
    BillingPlan:
      type: object
      additionalProperties: false
      properties:
        object:
          type: string
          description: String representing the object's type
          enum:
          - commerce_plan
        id:
          type: string
          description: Unique identifier for the plan
        name:
          type: string
          description: The name of the plan
        fee:
          allOf:
          - $ref: '#/components/schemas/BillingFee'
          nullable: true
          description: The monthly fee for this plan
        annual_monthly_fee:
          allOf:
          - $ref: '#/components/schemas/BillingFee'
          nullable: true
          description: The monthly equivalent when billed annually
        annual_fee:
          allOf:
          - $ref: '#/components/schemas/BillingFee'
          nullable: true
          description: The annual fee for this plan
        description:
          type: string
          description: The description of the plan
          nullable: true
        product_id:
          type: string
          description: The ID of the product this plan belongs to
          deprecated: true
        is_default:
          type: boolean
          description: Whether this is the default plan
        is_recurring:
          type: boolean
          description: Whether this is a recurring plan
        publicly_visible:
          type: boolean
          description: Whether this plan is publicly visible
        has_base_fee:
          type: boolean
          description: Whether this plan has a base fee
        for_payer_type:
          type: string
          description: The payer type this plan is designed for
        slug:
          type: string
          description: The URL-friendly slug for the plan
        avatar_url:
          type: string
          description: The URL of the plan's avatar image
          nullable: true
        free_trial_enabled:
          type: boolean
          description: Whether free trial is enabled for this plan
        free_trial_days:
          type: integer
          nullable: true
          description: Number of free trial days for this plan
        unit_prices:
          type: array
          items:
            $ref: '#/components/schemas/BillingPlanUnitPrice'
          description: Per-unit pricing tiers for this plan (for example, seats)
        features:
          type: array
          description: The features included in this plan
          items:
            type: object
            properties:
              object:
                type: string
                enum:
                - feature
                description: String representing the object's type
              id:
                type: string
                description: Unique identifier for the feature
              name:
                type: string
                description: Name of the feature
              description:
                type: string
                nullable: true
                description: Description of the feature
              slug:
                type: string
                description: URL-friendly representation of the feature's name
              avatar_url:
                type: string
                nullable: true
                description: URL for an image to represent the feature
            required:
            - object
            - id
            - name
            - description
            - slug
            - avatar_url
      required:
      - object
      - id
      - name
      - fee
      - annual_monthly_fee
      - annual_fee
      - description
      - product_id
      - is_default
      - is_recurring
      - publicly_visible
      - has_base_fee
      - for_payer_type
      - slug
      - avatar_url
      - free_trial_enabled
      - free_trial_days
    ClerkErrors:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ClerkError'
        meta:
          type: object
        clerk_trace_id:
          type: string
      required:
      - errors
    BillingPlanUnitPrice:
      type: object
      additionalProperties: false
      properties:
        name:
          type: string
          description: Name of the billable unit (for example, seats)
        block_size:
          type: integer
          format: int64
          description: Number of units included in each pricing block
        tiers:
          type: array
          items:
            $ref: '#/components/schemas/BillingPlanUnitPriceTier'
          description: Tiered pricing configuration for this unit
      required:
      - name
      - block_size
      - tiers
    BillingMoneyResponse:
      type: object
      additionalProperties: false
      properties:
        amount:
          type: integer
          format: int64
          description: Amount in cents
        amount_formatted:
          type: string
          description: Formatted amount as a string (e.g., "$10.00")
        currency:
          type: string
          description: Currency code (e.g., "USD")
        currency_symbol:
          type: string
          description: Currency symbol (e.g., "$")
      required:
      - amount
      - amount_formatted
      - currency
      - currency_symbol
    BillingPlanUnitPriceTier:
      type: object
      additionalProperties: false
      properties:
        starts_at_block:
          type: integer
          format: int64
          description: Start block (inclusive) for this tier
        ends_after_block:
          type: integer
          format: int64
          nullable: true
          description: End block (inclusive) for this tier; null means unlimited
        fee_per_block:
          $ref: '#/components/schemas/BillingMoneyResponse'
          description: Price charged per block in this tier
      required:
      - starts_at_block
      - fee_per_block
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Secret key, obtained under "API Keys" in the Clerk Dashboard.
      bearerFormat: sk_<environment>_<secret value>
externalDocs:
  url: https://clerk.com/docs
x-speakeasy-retries:
  strategy: backoff
  backoff:
    initialInterval: 500
    maxInterval: 60000
    maxElapsedTime: 3600000
    exponent: 1.5
  statusCodes:
  - 5XX
  retryConnectionErrors: true