list_billing_events
Recent billing events (usage.recorded, credits.granted, credits.low). Free.
Newest first, paged with limit/offset like list_hooks and list_outcomes. Returns
{events:[{id, event_type, payload, created_at}], limit, offset, total}.
Errors: unauthorized, invalid_request, rate_limited.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max billing events to return, 1-200. Above the ceiling is an invalid_request, never a silent truncation. | |
| offset | No | Number of rows to skip for paging, 0-9223372036854775807. Page with offset += the limit you actually requested; `total` in the response is the unpaged count. The ceiling is SQLite's largest bindable integer: above it the read could only ever have been a 500, so it is a typed invalid_request instead. | |
| api_key | No | API key for this call. Omit to fall back to the Authorization: Bearer / X-API-Key request header (streamable-HTTP only), then the VHGENGINE_API_KEY env var (the stdio default). No key resolvable -> unauthorized. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size actually applied. | |
| total | No | Rows matching the filters IGNORING paging. | |
| events | No | This page: {id, event_type, payload, created_at}. | |
| offset | No | Offset this page started at. |