Get one statement
GET/api/v1/billing/statements/{period}
One month's statement with its lines, one per metric. A line's
ehu_billed is its exact EHU; the period total is rounded up to a
whole EHU once, in billed_ehu.
Requires the billing:invoice:read scope.
Authorization
Parameters
Path parameters
periodstring requiredThe month,YYYY-MM.
Responses
200
The statement.
dataStatementShow Statement properties
idstringorg_idstringperiod_startstring (date-time)period_endstring (date-time)The first instant of the next month (exclusive).statusstringopenfor the month in progress,predictedfor a closed month computed but not yet charged,finalizedonce the amount is frozen.rate_versionintegerThe rate card version that priced the period.pricing_tierstringtotal_ehunumberExact usage for the period, before rounding and the free allowance.billed_ehunumbertotal_ehurounded up to a whole EHU.allowance_ehunumberHow much the free allowance covered.chargeable_ehunumberbilled_ehuminusallowance_ehu.credit_ehunumberHow much of that was paid from the credit balance.commitment_ehunumberThe committed volume billed, used or not.overage_ehunumberUsage beyond what the tier covered, priced on demand.total_usdnumberThe period's own charge. A month covered by the allowance costs 0.carried_in_usdnumberAmounts owed by earlier months that were too small to charge alone, collected with this one.carried_periodsarray of string (date-time)The months carried in. Left out when there are none.settled_by_periodstring (date-time)The month whose payment collected this one, when it was carried forward. Left out while still owed.generated_atstring (date-time)finalized_atstring (date-time)When the amount was frozen. Left out while it can still change.charge_statusstringWhat became of the money. Left out until collection has run.not_required: nothing was owed.below_minimum: too small to charge, carried forward.no_payment_method: owed with no card on file.invoiced: invoice raised and payment attempted.paid.failed: the card was declined or the invoice refused.charged_atstring (date-time)hosted_invoice_urlstring (uri)invoice_pdf_urlstring (uri)receipt_urlstring (uri)linesarray of objectOne line per metric. Only on a single statement, and left out when it has none.metric_keystringquantitynumberehunumberehu_billednumberusdnumber
amount_due_usdnumberWhat the statement asks for —total_usdpluscarried_in_usd.
400
period is not YYYY-MM (INVALID_PERIOD).
errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
401
No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).
errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
403
The key lacks the scope this endpoint needs (FORBIDDEN).
errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
404
There is no statement for that month (STATEMENT_NOT_FOUND).
errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
429
Too many requests (RATE_LIMITED). Wait for Retry-After seconds.
Retry-AfterintegerSeconds to wait before retrying.
errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
500
The statement could not be loaded (STATEMENT_FAILED). Retry later.
errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
Example request
curl -X GET 'https://evohub.io/api/v1/billing/statements/2026-10' \
-H 'Authorization: Bearer <TOKEN>'
