BillKit/Docs Console
Usage records

List usage records

List the usage reported against one metered subscription.

GET/v1/subscriptions/{subscription_id}/usage_records
Operation list_usage_records · Scope usage_records:read · Spec snapshot 2026-09-13

Parameters

ParameterDescription
subscription_idstring · pathrequiredNo description in the spec.
invoice_idstring | null · queryoptionalFilter by billing state: 'pending' for records not yet invoiced, or an invoice id for the records it billed.
limitinteger · queryoptionalDefaults to 10. Between 1 and 100.
starting_afterstring | null · queryoptionalAt most 128 characters.

Cursor-paginated. limit caps a page and starting_after takes the last id you saw.

Returns

Returns a page of UsageRecordResponse objects. data holds the page and has_more says whether another one exists. Page forward by passing the last id of the page as starting_after; a short page is not the end of the list.

Errors

Status Cause
401 Missing or invalid API key.
403 Key is missing the usage_records:read scope.
404 No such object, or it belongs to the other mode.
422 Validation Error
429 Rate limited. Back off and retry.
Request · curl
curl -X GET https://api.billkit.eu/v1/subscriptions/sub_9XKp2vQ1/usage_records \
  -H "Authorization: Bearer $BILLKIT_SECRET_KEY"
Response · 200 OK
{
  "data": [
    {
      "created": 1789392000,
      "id": "ur_9XKp2vQ1",
      "identifier": "string",
      "invoice_id": "inv_9XKp2vQ1",
      "livemode": false,
      "metadata": {
        "key": "value"
      },
      "object": "usage_record",
      "occurred_at": 1789392000,
      "quantity": 0,
      "subscription_id": "sub_9XKp2vQ1",
      "written_off_at": 1789392000
    }
  ],
  "has_more": false,
  "object": "list"
}