REST API · billing
GET /billing
The project's billing state: which ledger it settles on (`prepaid` or `invoiceable`), credit balances (paid + testing), current tier, effective live RPM (add-ons included), free-tier decay countdown, remaining allowance vs prepaid pools, and the plan's overage rate.
An empty balance does not mean the project cannot send: an Enterprise account's credit fields are empty by design, live traffic is never refused for an exhausted balance, and a free-tier project is exempt from live credit billing outright. Only the testing pool refuses when spent. On a Pro or Scale plan billed for overage, `overage` reports the billing cycle running now: `usedCredits` (credits used in it), `overageCredits` (the part beyond your allowance and prepaid credits), `amount` (what that comes to so far, in minor units of `currency`, such as cents; null when it cannot be worked out), `windowEndsAt` (when this cycle stops counting), `throttled` (true while this cycle's request limit is halved because spend passed five times the plan's credits) and `throttledUntil` (when the halved limit ends, or null). It is absent otherwise. On Pro or Scale, `overageBilling` is the account's own overage setting, changed with `PUT /billing/overage-billing`.
get_api_billing
Authentication
- Bearer
Responses
200
The project's billing state.
application/json
{
"credits": 0,
"testCredits": 1200,
"billingModel": "prepaid",
"tier": "paid",
"liveRpm": 1000,
"daysUntilDecay": null,
"allowanceRemaining": null,
"prepaidRemaining": 0,
"overageRatePer1k": 7,
"overageBilling": true,
"overage": {
"usedCredits": 262500,
"overageCredits": 12500,
"amount": 87,
"currency": "EUR",
"windowEndsAt": "2026-10-01T09:00:00+00:00",
"throttled": false,
"throttledUntil": null
}
}