Skip to content

GET /v1/ledger

Call GET /v1/ledger
Price free
Scope account:read
Operation id listLedger

Every credit and debit on your balances, newest first, each linked to its decision or pack. Use it to reconcile spend; filter by kind or time. Free. Scope: account:read.

Copy it as curl. Set VERDICT_API_KEY first; uuidgen makes a fresh Idempotency-Key.

Request
curl -X GET 'https://api.askverdict.io/v1/ledger' \
-H "Authorization: Bearer $VERDICT_API_KEY"

200: A page of ledger entries.

200 response
{
"data": [
{
"id": "led_01JC3Z4Y8R9K2M5N7P1Q3S5T7V",
"kind": "decision_debit",
"environment": "live",
"amount_usd": -0.005,
"balance_after_usd": 18.32,
"decision_id": "dec_01JC3Z4Y8R9K2M5N7P1Q3S5T7V",
"pack_id": null,
"description": "qualify_firm",
"created_at": "2026-11-07T14:03:00Z"
}
],
"next_cursor": null,
"has_more": false
}
Name In Type Required Description
cursor query string no Opaque cursor from the next_cursor of the previous page. Omit it for the first page.
limit query integer no Page size, 1 to 200. Default 50.
kind query enum: “starter_credit”, “pack_credit”, “auto_topup_credit”, “promotional_credit”, “decision_debit”, “vendor_debit”, “refund”, “adjustment” no Only this kind.
from query string (date-time) no Only entries at or after this time.
to query string (date-time) no Only entries before this time.
x-verdict-version header string no API version to use, a date. Defaults to the version current when the key was created. The current version is 2026-11-01.
Field Type Required Description
data array of LedgerEntry yes Ledger entries, newest first.
data[].id string yes The ledger entry id.
data[].kind enum: “starter_credit”, “pack_credit”, “auto_topup_credit”, “promotional_credit”, “decision_debit”, “vendor_debit”, “refund”, “adjustment” yes Entry kind.
data[].environment enum: “live”, “test” yes live (cash) or test balance.
data[].amount_usd number yes Signed amount: credits positive, debits negative. US dollars, up to 6 decimals.
data[].balance_after_usd number yes Balance after the entry. US dollars, up to 6 decimals.
data[].decision_id string or null yes Decision billed, for debits.
data[].pack_id string or null yes Pack credited, for pack credits.
data[].description string yes Human description.
data[].created_at string (date-time) yes When the entry was written.
next_cursor string or null yes Pass as cursor to fetch the next page. null when this is the last page.
has_more boolean yes Whether another page follows.

Errors are RFC 9457 problem details and are never billed. Branch on type. See Errors.

Status Meaning
400 Invalid request: malformed JSON, an unknown field, a failed constraint or a size limit (invalid_request).
401 Missing, malformed, revoked or expired API key, or a bad webhook signature (unauthorized).
403 The key lacks the scope this operation needs (forbidden_scope).
429 Rate limited (rate_limited). Wait Retry-After seconds.
500 Unexpected server error (internal). Not billed; retry with the same Idempotency-Key.

Open the interactive reference to send this request from the browser. The full document is at /openapi.json.