Section 12

12. Usage, billing and quotas

Every route below resolves your tenant from the credential — no ids in URLs.

EndpointAnswers
GET /v1/usagespend over 24h / 7d / 30d / all-time, plus per-kind breakdown
GET /v1/billing/costsper-request ledger rows — the whole history, not paginated
GET /v1/billing/balanceprepaid credit balance
GET /v1/billing/creditscredit ledger, paginated
GET /v1/billing/entitlementyour plan and any overrides
GET /v1/quotasone slot per quota kind: usage and ceiling in one stated unit (see below)
GET /v1/analytics/costper-day cost series
GET /v1/analytics/instancesper-instance lifetime and spend
GET /v1/analytics/margininference versus compute spend

Each has an addressed twin at /v1/tenants/{tenant_id}/… for principals that span tenants. They return identical data; the caller-scoped form exists because the id could only ever have been your own.

Quotas

GET /v1/quotas always returns exactly one slot per quota kind, read through the same code path that refuses a request, so what you read is what you are enforced on. Within a slot, value and ceiling are in the same unit.

json
{"tenant_id":"…","plan_id":"enterprise","slots":[
  {"kind":"monthly_credits","period_key":"2026-09","value":155640,"ceiling":null,
   "unit":"micro_cents","measure":"spend","unlimited":true,"source":"api.cost_ledger","enforced":true},
  {"kind":"max_concurrent_instances","period_key":"","value":0,"ceiling":null,
   "unit":"instances","measure":"gauge","unlimited":true,"source":"compute.instances","enforced":true},
  {"kind":"per_minute","period_key":"2026-09-21T14:05","value":0,"ceiling":600,
   "unit":"requests","measure":"counter","unlimited":false,"source":"api.quota_counters","enforced":false},
  {"kind":"max_model_size_b","period_key":"","value":0,"ceiling":9999,
   "unit":"params_b","measure":"ceiling_only","unlimited":false,"source":"api.plans","enforced":true}
]}
  • monthly_credits — this calendar month's spend summed from your cost ledger, against your plan allowance, both in micro-cents (1¢ = 1,000,000 µ¢).
  • max_concurrent_instances — a live gauge of instances holding hardware.
  • per_minute / per_day — event counters; enforced: false means no route declares them today, so they are reported but inert.
  • max_model_size_b — bounds a launch request; value is always 0 and is not a measurement (measure: "ceiling_only").
  • ceiling: null appears only with unlimited: true (an enterprise override).

Plans

PlanMonthly creditsMax concurrent instances
free1
hobby2,000¢1
pro20,000¢5
team100,000¢20
enterprise1,000,000¢9,999

Exceeding the monthly allowance returns 429 budget.exceeded. The prepaid balance is deliberately not enforced per call.