---
title: "Public plan catalog (plus billing {configured, mode})"
method: GET
path: "/plans"
tags: ["Billing"]
---

# Public plan catalog (plus billing {configured, mode})

`GET /plans`

## Request

- Base URL: `https://api.customdomain.ai/v1`
- URL: `https://api.customdomain.ai/v1/plans`
- Auth: none required

The public plan catalog: `starter` ($10 a month, the default for a new workspace, 14 day trial), `startup`, `growth`, and the contact-sales `premium` and `enterprise`. The retired `free` plan is not listed; a workspace created before it was retired keeps it until it subscribes.

## Response `200`

Plans

- object
  - `plans` Plan[]
    - `id` 'starter' | 'startup' | 'growth' | 'premium' | 'enterprise' | 'free': `free` is retired: legacy workspaces still carry it until they subscribe, and it cannot be bought or assigned.
    - `name` string
    - `price_cents` integer: Monthly price in US cents; 0 when not public.
    - `public_price` boolean
    - `domains_per_year` integer: The marketed annual allowance.
    - `domains_per_month` integer: The enforced monthly allowance (`domains_per_year` ceiling-divided by 12; 0 = unlimited).
    - `metered` boolean
    - `overage_increment` integer
    - `motion` 'self_serve' | 'contact_sales'
    - `entitlements` object
    - `hard_cap` boolean: Connections past the monthly allowance are refused (`starter`) rather than recorded as overage.
    - `trial_days` integer: The trial a new workspace's first subscription to this plan starts with (0 for contact sales).
    - `default` boolean: The plan preselected for a new workspace (`starter`).
  - `billing` object
    - `configured` boolean: Whether a Stripe key is configured.
    - `mode` 'test' | 'live' | ''
    - `trial_days` integer: The trial a new workspace's first subscription starts with.

---

[API](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api.md) · [All operations](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api/llms.txt) · [OpenAPI document](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api/revisions/34d89cb7a7cd?raw)
