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

# List billing plans

`GET /plans`

Returns all active self-serve plans, their products, prices, and plan-specific quantity rules. This endpoint is public.

## Response `200`

Active self-serve billing plans.

- BillingPlansResponse
  - `plans` BillingPlan[], required
    - `id` integer
    - `name` string
    - `slug` string — Stable plan identifier used when creating or changing a subscription.
    - `plan_type` 'self_serve' | 'custom' | 'default'
    - `base_fee_cents` integer
    - `base_fee_dollars` number, double
    - `total_base_cost_cents` integer
    - `total_base_cost_dollars` number, double
    - `included_dollar_balance_cents` integer
    - `included_dollar_balance_dollars` number, double
    - `billing_interval` 'monthly' | 'quarterly' | 'annual'
    - `plan_family` BillingPlanFamily
      - `key` string
      - `name` string
      - `description` string, nullable
      - `position` integer, nullable
    - `active` boolean
    - `products` BillingPlanProduct[]
      - `id` integer
      - `name` string
      - `slug` string — Stable product identifier used in product_quantities and changes requests.
      - `description` string, nullable
      - `unit_type` string
      - `category` 'metered' | 'subscription' | 'base_fee' | 'included_credits'
      - `rate_per_unit_cents` integer
      - `rate_per_unit_dollars` number, double
      - `has_tiers` boolean
      - `tiers` BillingProductRateTier[]
        - `tier_order` integer
        - `min_quantity` number, double
        - `max_quantity` number, double, nullable
        - `rate_per_unit_cents` integer
        - `rate_per_unit_dollars` number, double
      - `included_quantity` number, double, nullable
      - `allow_additional_usage` boolean — Whether the plan permits the product quantity to be changed.
      - `min_usage_per_period` number, double, nullable — Minimum allowed quantity for this product on the plan.
      - `max_usage_per_period` number, double, nullable — Maximum allowed quantity for this product on the plan. Null means no plan-specific maximum.
      - `ui_visible` boolean — Whether the product is displayed in Resemble billing interfaces.
      - `product_family` BillingProductFamily
        - `key` string
        - `name` string
        - `description` string, nullable
        - `position` integer, nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `500` — An unexpected billing error occurred.

## Changes

- **2026-08-13** `d4ac42174f94` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/resemble/apis/api-reference/changes/plans/get.md)

---

[API](https://skmtc.dev/resemble/apis/api-reference.md) · [All operations](https://skmtc.dev/resemble/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/resemble/api-reference/revisions/e93597a6b425/schema)
