The tiers
GET /plans/ returns the live tiers as the deployment holds them; treat that as authoritative if the table above and the dashboard ever disagree.
How limits are counted
Subscriptions belong to a user — one person holds at most one, and it is what they pay for. Limits are then enforced per workspace, and a workspace inherits the limits of the user who owns it. Three consequences worth knowing:- A member on the free tier who joins someone else’s Scale workspace works under Scale’s allowances inside that workspace.
max_workspacesis the one limit counted against the user, and it is what bounds how many times a paid tier’s allowances can be multiplied.max_environmentsis counted within a project, not a workspace.
active or due still entitles its holder. One that has been cancelled or has fallen past_due drops back to free.
An account that has never subscribed has no subscription row at all, and resolves to built-in free defaults rather than to the Free plan row above. The two differ in three places: the defaults allow 3 projects and 3 environments rather than 1 of each, and do not include provider imports. Check
GET /plans/{workspace_id}/subscription for what a given workspace actually gets.Hitting a limit
Any call that would push a workspace past its allowance is refused with402 Payment Required before it does any work, and the message names the plan you are on. The CLI surfaces it as a plan error pointing at Settings → Billing.
The same status covers feature switches: creating a share link on the free tier, importing from a provider without the entitlement, or listing a secret’s versions without history all answer 402 rather than 403.
Checking usage
limits and current usage, with null for anything unlimited.
Managing a subscription
All of it is available from Settings → Billing in the dashboard; the endpoints exist for automation. Plan creation and editing (
POST, PATCH, DELETE on /plans/) is administrative and gated behind a separate operator token.