---
title: "List all billing plans"
method: GET
path: "/billing/plans"
tags: ["Billing"]
---

# List all billing plans

`GET /billing/plans`

Returns a list of all billing plans for the instance. The plans are returned sorted by creation date,
with the newest plans appearing first. This includes both free and paid plans. Pagination is supported.

## Query parameters

- `paginated` boolean
- `limit` integer
- `offset` integer
- `payer_type` 'user' | 'org'

## Response `200`

A list of commerce plans.

- PaginatedCommercePlanResponse
  - `data` CommercePlan[], required — Array of plans.
    - `object` 'commerce_plan', required — String representing the object's type. Objects of the same type share the same value.
    - `id` string, required — Unique identifier for the plan.
    - `name` string, required — The name of the plan.
    - `fee` CommerceMoneyResponse, required
      - `amount` integer, required — The amount in cents.
      - `amount_formatted` string, required — The formatted amount as a string (e.g., "$49.99").
      - `currency` string, required — The currency code (e.g., "USD").
      - `currency_symbol` string, required — The currency symbol (e.g., "$").
    - `annual_monthly_fee` CommerceMoneyResponse, required
      - `amount` integer, required — The amount in cents.
      - `amount_formatted` string, required — The formatted amount as a string (e.g., "$49.99").
      - `currency` string, required — The currency code (e.g., "USD").
      - `currency_symbol` string, required — The currency symbol (e.g., "$").
    - `annual_fee` CommerceMoneyResponse, required
      - `amount` integer, required — The amount in cents.
      - `amount_formatted` string, required — The formatted amount as a string (e.g., "$49.99").
      - `currency` string, required — The currency code (e.g., "USD").
      - `currency_symbol` string, required — The currency symbol (e.g., "$").
    - `description` string, nullable, required — The description of the plan.
    - `product_id` string, required — The ID of the product this plan belongs to.
    - `is_default` boolean, required — Whether this is the default plan.
    - `is_recurring` boolean, required — Whether this is a recurring plan.
    - `publicly_visible` boolean, required — Whether this plan is publicly visible.
    - `has_base_fee` boolean, required — Whether this plan has a base fee.
    - `for_payer_type` string, required — The payer type this plan is designed for.
    - `slug` string, required — The URL-friendly slug for the plan.
    - `avatar_url` string, nullable, required — The URL of the plan's avatar image.
    - `features` FeatureResponse[] — The features included in this plan.
      - `object` 'feature', required — String representing the object's type. Objects of the same type share the same value.
      - `id` string, required — Unique identifier for the feature.
      - `name` string, required — The name of the feature.
      - `description` string, nullable, required — The description of the feature.
      - `slug` string, required — The URL-friendly slug for the feature.
      - `avatar_url` string, nullable, required — The URL of the feature's avatar image.
    - `free_trial_enabled` boolean, required — Whether free trial is enabled for this plan.
    - `free_trial_days` integer, nullable, required — Number of free trial days for this plan.
    - `unit_prices` CommercePlanUnitPrice[] — Per-unit pricing tiers for this plan (for example, seats)
      - `name` string, required — Name of the billable unit (for example, seats)
      - `block_size` integer, required — Number of units included in each pricing block
      - `tiers` CommercePlanUnitPriceTier[], required — Tiered pricing configuration for this unit
        - `starts_at_block` integer, required — Start block (inclusive) for this tier
        - `ends_after_block` integer, nullable — End block (inclusive) for this tier; null means unlimited
        - `fee_per_block` CommerceMoneyResponse, required
          - `amount` integer, required — The amount in cents.
          - `amount_formatted` string, required — The formatted amount as a string (e.g., "$49.99").
          - `currency` string, required — The currency code (e.g., "USD").
          - `currency_symbol` string, required — The currency symbol (e.g., "$").
  - `total_count` integer, required — Total number of plans.

## Other responses

- `400` — Request was not successful
- `401` — Authentication invalid
- `422` — Invalid request parameters
- `500` — Request was not successful

---

[API](https://skmtc.net/clerk/apis/clerk-backend-api.md) · [All operations](https://skmtc.net/clerk/apis/clerk-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clerk/clerk-backend-api/revisions/75df3a43fcb2/schema)
