My Plan & Limits
The plan of the caller's active account, as the same plan object /plans returns (see there for every field), with the account's effective values: entitlements and plan_limits have any active per-account admin override applied on top of the plan — exactly what the platform enforces for this account. An expired override falls back to the plan automatically, and features is generated from these effective values. Plans and limits are an account property: the values reflect the account the request operates in (the one an API key is scoped to, or the account you last switched to), not a per-user setting.
There is no separate limits object: every effective limit is in plan_limits (for example plan_limits.max_endpoints), and every feature switch in entitlements. -1 means unlimited (for a default-semantics key such as rate_limit_rps, the platform default or no cap), 0 means none, and a key missing from plan_limits means its feature is not included. This endpoint returns limits, not consumption — pair it with /account/usage for current-period usage.
Response (200 OK) — selected fields
free, team, enterprise, …) — how a plan is addressed (plans have no uuid), e.g. as plan in billing requests and responses."Developer", "Team").0 for free plans.features is generated from the effective entitlements + plan_limits; highlights are the plan's admin-written promises. Show them in that order.protocol:<p> (tunnel protocols accepted when an agent connects) and region:<slug> (regions a tunnel may serve from). Same keys as on /plans.-1 unlimited, 0 none, N N; a missing key means the feature is not included. The key names and the default-semantics keys are listed on /plans.description, plan_type, support_level, billing_model, sort_order, is_purchasable, metered_prices, default_domain_uuid / default_domain_name, created_at / updated_at — see /plans.Deprecated: until the sunset this response also carries the legacy integer id and default_domain_id. Don't use them; address a plan by its slug and read default_domain_uuid.
Common plan_limits keys
entitlements.endpoints is on).entitlements.tunnels is on).-1 = no cap.-1 = no cap.-1 = twice rate_limit_rps.-1 = no cap.-1 = no cap.account_members, custom_domains, dedicated_ports, …). The full list is on /plans.The response example is abridged: entitlements shows a few of its entries, and the prices, features and plan_limits are left out — their values depend on the plan. The real response carries every key.
Creating a resource beyond its plan_limits count fails with 403. The count quotas answer {"error": "You've reached your plan's limit of N <things> — delete one or upgrade your plan"}, or "Your plan doesn't include any <things> — upgrade your plan" when the limit is 0.