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.
BearerAuthAuthorizationBearer <token>An instance admin key from ADMIN_API_KEYS, or an organization key (elmo_…) issued from the dashboard.
organizationId*stringGet billing state
application/json- response
Read-only view of an organization's subscription, limits, and usage. The API has no way to change any of it: there is no billing write endpoint and no billing write scope. Stripe identifiers, payment methods, and invoices are deliberately not exposed — those live in the Stripe customer portal.
organizationId*stringbillingEnabled*booleanFalse on self-hosted deployments, where nothing is metered.
plan*|Null when the organization has no subscription, or when billing is disabled.
limits*|nullusage*curl -X GET 'https://app.elmohq.com/api/v1/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 }}