Get billing state
The organization's plan, its limits, and how much of each limit is already spent — enough for an integration to know a write will be rejected before attempting it. This endpoint is read-only by construction. No API key of any kind can change a subscription, an add-on quantity, or a payment method; there is no billing write endpoint and no billing write scope. Stripe identifiers, invoices, and payment methods are never returned. Deployments without billing answer `200` with `billingEnabled: false`, a null plan, and null limits, so callers need no special case.
The organization's plan, its limits, and how much of each limit is already spent — enough for an integration to know a write will be rejected before attempting it.
This endpoint is read-only by construction. No API key of any kind can change a subscription, an add-on quantity, or a payment method; there is no billing write endpoint and no billing write scope. Stripe identifiers, invoices, and payment methods are never returned.
Deployments without billing answer 200 with billingEnabled: false, a null plan, and null limits, so callers need no special case.
Authorization
BearerAuth An instance admin key from ADMIN_API_KEYS, or an organization key (elmo_…) issued from the dashboard.
In: header
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/organizations/string/billing"{ "organizationId": "string", "billingEnabled": true, "plan": { "key": "string", "name": "string", "standing": "active", "interval": "monthly", "periodEnd": "2019-08-24T14:15:22Z", "cancelAtPeriodEnd": true, "trackingActive": true }, "limits": { "maxBrands": 0, "maxPrompts": 0, "modelPicks": 0, "modelMenu": [ "string" ], "standardRunsPerDay": 0, "premiumPool": 0, "premiumRunsPerDay": 0 }, "usage": { "brands": 0, "enabledPrompts": 0, "premiumPairingsAssigned": 0 }}