---
title: "GET /v1/billing/plans — list available billing plans."
method: GET
path: "/v1/billing/plans"
tags: ["billing"]
---

# GET /v1/billing/plans — list available billing plans.

`GET /v1/billing/plans`

## Response `200`

Available plans

- BillingPlan[]
  - `created_at` string, date-time, required
  - `description` string, nullable
  - `display_name` string, required
  - `id` string, uuid, required
  - `included_disk_gib_hours` integer, nullable
  - `included_memory_gib_hours` integer, nullable
  - `included_storage_gib` integer, nullable
  - `included_vcpu_hours` integer, nullable — Monthly included allowances bundled into the flat fee (pool of vCPU-hours / memory GiB-hours / writable-disk GiB-hours / durable-storage GiB). Usage beyond the pool is metered overage on priced plans; on an unpriced (free) plan the compute pool is a hard wall.
  - `is_default` boolean, required — The plan new orgs are assigned. Exactly one row is the default.
  - `max_concurrent_ephemeral_running` integer, nullable — Max simultaneously-running *ephemeral* sandboxes (cheap, self-cleaning).
  - `max_concurrent_persistent_running` integer, nullable — Max simultaneously-running *persistent* sandboxes (snapshot/restore cost).
  - `max_disk_size_mib_per_sandbox` integer, nullable — Maximum writable disk size (MiB) per sandbox.
  - `max_memory_mib_per_sandbox` integer, nullable
  - `max_sandboxes` integer, nullable
  - `max_total_storage_gib` integer, nullable — Per-org durable-storage hard cap (GiB). Used storage is billed at a flat per-GB-month rate (no free allotment).
  - `max_uptime_minutes_per_sandbox` integer, nullable
  - `max_vcpus_per_sandbox` integer, nullable
  - `monthly_sandbox_minutes` integer, nullable — Deprecated wall-clock minutes budget (NULL). The compute wall is now `included_vcpu_hours` on unpriced plans.
  - `name` string, required
  - `self_serve` boolean, required — May a user self-subscribe to this plan via the API? Fail-closed; the change-plan check keys on this flag, not the plan name.
  - `subscription_price_cents` integer, nullable — Flat monthly subscription price (cents); `None` = unpriced (free). Source of upgrade/downgrade ordering — compare prices, not a fixed tier rank.
  - `trial_duration_days` integer, nullable
  - `updated_at` string, date-time, required
  - `usage_disk_gib_hour_usd` number, double, nullable
  - `usage_memory_gib_hour_usd` number, double, nullable
  - `usage_storage_gib_month_usd` number, double, nullable
  - `usage_vcpu_hour_usd` number, double, nullable — Per-unit overage rates (USD) charged on usage beyond the included pool; `None` on the free/unpriced plan (no overage path). Drive the live cost estimate `subscription + Σ overage`; Autumn's invoice stays authoritative.

## Other responses

- `401` — Unauthorized

---

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