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

# Get Plans

`GET /billing/plans`

Return live Pro pricing for the upgrade modal.

Auth is optional — anonymous callers resolve to a guest.

## 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
    - `trial_days` integer, nullable
  - `yearly` PlanPrice — One Stripe price's display data.
    - `amount_cents` integer, required
    - `currency` string, required
    - `interval` 'month' | 'year', required
    - `price_id` string, required
    - `trial_days` integer, nullable

---

[API](https://skmtc.dev/stardrift/apis/fastapi.md) · [All operations](https://skmtc.dev/stardrift/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stardrift/fastapi/revisions/00746572572a/schema)
