---
title: "List Plans"
method: GET
path: "/v1/plans"
---

# List Plans

`GET /v1/plans`

## Request

- Base URL: `https://api.transcript.land` (the document declares no server; this is the origin it was published from)
- URL: `https://api.transcript.land/v1/plans`
- Auth: none declared

PUBLIC live pricing + active discounts, so the landing page and billing
tab always match what Polar actually charges. Cached in-process for a few
minutes. Falls back to static prices when Polar isn't configured/reachable
so the pricing UI never breaks.

## Response `200`

Successful Response

- PlansResponse
  - `plans` PlanInfo[], required
    - `tier` string, required
    - `amount` integer, nullable, required
    - `currency` string, nullable, required
    - `interval` string, nullable, required
  - `discounts` DiscountInfo[], required
    - `name` string, nullable, required
    - `code` string, nullable, required
    - `type` string, nullable, required
    - `basis_points` integer, nullable
    - `amount` integer, nullable
    - `currency` string, nullable
    - `product_ids` string[]
    - `tiers` string[]
    - `starts_at` string, nullable
    - `ends_at` string, nullable
  - `source` string, required

---

[API](https://skmtc.dev/transcript/apis/transcript-api.md) · [All operations](https://skmtc.dev/transcript/apis/transcript-api/llms.txt) · [OpenAPI document](https://skmtc.dev/transcript/apis/transcript-api/revisions/224a4605e044?raw)
