GET /v1/ledger
| Call | GET /v1/ledger |
| Price | free |
| Scope | account:read |
| Operation id | listLedger |
What it does
Section titled “What it does”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.
Example request
Section titled “Example request”Copy it as curl. Set VERDICT_API_KEY first; uuidgen makes a fresh Idempotency-Key.
curl -X GET 'https://api.askverdict.io/v1/ledger' \ -H "Authorization: Bearer $VERDICT_API_KEY"Example response
Section titled “Example response”200: A page of ledger entries.
{ "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}Parameters
Section titled “Parameters”| 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. |
Response fields (200)
Section titled “Response fields (200)”| 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
Section titled “Errors”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. |
Try it
Section titled “Try it”Open the interactive reference to send this request from the browser. The full document is at /openapi.json.