---
title: "Get the signed-in user's plan."
method: GET
path: "/plan"
tags: ["billing"]
---

# Get the signed-in user's plan.

`GET /plan`

## Request

- Base URL: `https://api.shorebird.dev/api/v1`
- URL: `https://api.shorebird.dev/api/v1/plan`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

The plan the signed-in user's own account is on, with that
account's install credit and overage limit applied. Read from a
cache that can trail a subscription change by a few minutes;
`DELETE /users/me/plan-cache` drops it. Service accounts are
refused with a `403` (`service_account_forbidden`).

## Response `200`

The user's plan.

- Plan: The subscription an account is on: what it costs, what it includes, and how installs past the allotment are handled. An account with no subscription is on the free Hobby plan, whose billing period is the calendar month. Several fields are strings rather than enums so that new values can be added without breaking clients; their current values are listed in each description.
  - `name` string, required: The plan's display name.
  - `currency` string, required: The ISO 4217 code of the plan's currency (e.g. `usd`).
  - `base_price` integer, required: The list price per billing period, in minor units of `currency` (e.g. cents), whatever the installs used. Does not reflect coupons or discounts.
  - `base_install_count` integer, required: The patch installs included in the base price each billing period.
  - `patch_install_credit` integer, required: Extra patch installs granted to the account's owner on top of `base_install_count`, such as promotional or support credit. `0` when there is none.
  - `patch_overage_limit` integer, nullable, required: The most installs past the allotment the owner has agreed to pay for each overage period: their spending limit, in installs. Null when the owner has set no limit.
  - `price_per_overage_install` string, nullable, required: The price of each install past the allotment, in minor units of `currency`, as a decimal number in a string because it can be fractional (e.g. `"0.1"`). Null when the plan has no overage billing.
  - `current_period_start` string, date-time, required: The start of the current billing period. The start of the current month on the Hobby plan.
  - `current_period_end` string, date-time, required: The end of the current billing period. The start of the next month on the Hobby plan.
  - `cancel_at_period_end` boolean, required: Whether the subscription is set to end at the end of the current billing period.
  - `is_tiered` boolean, required: Whether the plan is one of the standard tiers an account can switch between.
  - `is_trial` boolean, required: Whether the account is on a trial, which is not billed and ends on its own.
  - `base_standing` string, required: The payment standing of the subscription carrying the plan: `none` (no subscription), `trialing`, `active`, or `past_due`. `past_due` keeps the plan in force while Stripe retries the payment; prompt for a working payment method.
  - `overage_standing` string, required: The payment standing of the subscription carrying the overage price, in the same terms as `base_standing` plus `unpaid` (every retry failed and only paying the invoice resumes overage). Equal to `base_standing` when overage bills on the base subscription; independent when an annual plan bills overage on its own monthly subscription. `none` when the plan has no overage billing.
  - `overage_state` string, required: Whether installs past the allotment are served, and on what terms: `unavailable` (the plan has no overage billing), `off` (the limit is `0`), `blocked` (a payment is overdue; see `overage_blocked_by`), `capped` (up to `patch_overage_limit` each overage period), or `unlimited`.
  - `overage_blocked_by` string, nullable, required: Which overdue payment holds overage back while `overage_state` is `blocked`: `base_past_due`, `overage_past_due`, or `overage_unpaid`. Null otherwise.
  - `overage_period_start` string, date-time, nullable, required: The start of the period overage is capped and invoiced over: the billing period for a monthly plan, the overage subscription's own month for an annual one. Null when the plan has no overage billing.
  - `overage_period_end` string, date-time, nullable, required: The end of the period overage is capped and invoiced over. Null when the plan has no overage billing.
  - `features` string[], required: The features the plan enables. Current values: `collaboration`, `historicalInsights`, `audienceAnalytics`, `customTokenExpiration`, `auditLogs`, `sizeAnalysis`, `oidcFederation`.
  - `level` string, required: The plan's tier: `free`, `pro`, `business`, or `enterprise`.
  - `minimum_releases_kept` integer, nullable, required: How many of an app's releases are kept however long they sit unused. Null when releases are never retired.
  - `max_team_size` integer, nullable, required: The most members an account may have: `1` on plans without collaboration, null when there is no limit.
  - `available_roles` Role[], required: The roles that may be given to members on this plan.
  - `billing_interval` string, nullable, required: The unit the subscription bills on: `day`, `week`, `month`, or `year`. Null without a subscription.
  - `billing_interval_count` integer, nullable, required: How many `billing_interval`s make one billing period. Null without a subscription.
  - `subscriber_since` string, date-time, nullable, required: When the subscription started; unchanged by renewals and plan changes. Null without a subscription.

## Other responses

- `424`: The subscription could not be read from Stripe, or the account has more than one active subscription (`shorebird_plan_subscription_error`).
- `default`: Standard error response. Emitted for any non-2xx status where a body can be decoded into an [ErrorResponse].

## Changes

- **2026-11-05** `941da8871d10`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/shorebird/apis/shorebird-codepush-api/changes/plan/get.md)

---

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