Skip to content

Get the authenticated user's tier state (plan card / CTA / usage surface).

GET
/api/billing/tier
curl --request GET \
--url https://api.tradr.cloud/api/billing/tier

Authed, DELIBERATELY UNTHROTTLED read (plan-tiers Component 6’s pinned posture — the 2 s confirming poll alone is 30/min and the tier cache key is invalidated after every committed turn; sharing the spend budget would 429 the confirming banner and lock out legitimate checkout clicks). Returns the TierState shape: gatingEnabled, exempt, tier, purchasable, subscription (derived from the LOCAL mirror only via the qualifying-first display-row rule — renders with Stripe unconfigured, REQ-11.1; carried even when gating is off, the REQ-11.7 carve-out), limits (the free/pro lever catalog), and usage (populated only when gating is on and the user is non-exempt). Booleans and state only — no server credentials, no price ids.

TierState — see packages/shared/src/schemas/tier.ts.