Endpoints
| Method | Path | Description |
|---|---|---|
GET | /v1/plans | List plan definitions (company) |
POST | /v1/plans | Create / update a plan (upsert by key) |
GET | /v1/users/:user_id/billing/subscription | Get a tenant’s subscription |
PUT | /v1/users/:user_id/billing/subscription | Set a tenant’s subscription (optionally assign the plan’s kit) |
GET | /v1/users/:user_id/billing/usage | Current-period usage rollup + quotas |
Plans
quotas maps a primitive slug to its max calls per period (month | day).
Subscription
assignKit (default true) also assigns the plan’s Account Kit to the tenant — one call applies tier permissions + quotas. Drive this from your Stripe webhook.
Usage & quota enforcement
seo, aeo, email) record one usage event per successful call. Exceeding a quota returns 429 rate_limited. Tenants with no subscription are not limited.
SDK
billing sub-client.