---
title: "Get Plans"
method: GET
path: "/billing/plans"
tags: ["billing"]
---

# Get Plans

`GET /billing/plans`

## Request

- Base URL: `https://stardrift.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://stardrift.ai/billing/plans`
- Auth: none declared

Return live Pro pricing for the upgrade modal.

## Response `200`

Successful Response

- PlansResponse: Live monthly + yearly Pro pricing fetched from Stripe. Either field can be ``null`` if its price isn't configured in env or the Stripe lookup fails — frontend should disable that option rather than crash.
  - `monthly` PlanPrice: One Stripe price's display data.
    - `amount_cents` integer, required
    - `currency` string, required
    - `interval` 'month' | 'year', required
    - `price_id` string, required
  - `yearly` PlanPrice: One Stripe price's display data.
    - `amount_cents` integer, required
    - `currency` string, required
    - `interval` 'month' | 'year', required
    - `price_id` string, required

## Changes

- **2026-11-02** `be9ed1e6c38a`: 2 warning
  - removed the optional property `monthly/anyOf[subschema #1: PlanPrice]/trial_days` from the response with the `200` status
  - removed the optional property `yearly/anyOf[subschema #1: PlanPrice]/trial_days` from the response with the `200` status

[Operation history](https://skmtc.dev/stardrift/apis/stardrift-api/changes/billing/plans/get.md)

---

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