Pagination
List endpoints that can grow without bound — Orders and the Ledger — are paginated with limit and offset. Smaller, capped lists return a plain array.
The paginated envelope
A paginated response wraps the page in data and reports the query that produced it plus the total number of matching records:
Paginated response
{
"data": [
{ "id": "ord_2Zx9Qw8sUaM2", "status": "paid" }
// ...
],
"total": 134,
"limit": 20,
"offset": 0
}
- Name
data- Type
- array
- Description
The page of records.
- Name
total- Type
- integer
- Description
The total number of records matching the query, across all pages.
- Name
limit- Type
- integer
- Description
The page size that was applied.
- Name
offset- Type
- integer
- Description
The offset that was applied.
Query parameters
- Name
limit- Type
- integer
- Description
Page size. Defaults to
20, clamped to a maximum of200. Out-of-range values fall back to the default.
- Name
offset- Type
- integer
- Description
Number of records to skip. Defaults to
0.
Remember that the query string is part of the request signature — sign the path (e.g.
/api/v1/orders) together with the canonical query (the key=value pairs sorted and rejoined
with &, e.g. limit=20&offset=40), and send the same parameters on the URL. See
Authentication.
Paging through results
Request a page, then advance offset by limit until offset + data.length reaches total.
Page through orders
# First page
curl -G "$BASE/api/v1/orders" \
-d limit=20 -d offset=0 \
-H "X-Api-Key: $KEY_ID" \
-H "X-Timestamp: $TS" \
-H "X-Signature: $SIG"
Non-paginated lists
Capped list endpoints — Wallets, Channels, Payouts, Disputes, Webhook deliveries and Subscriptions — return the most recent records as a plain array under data, with no total/limit/offset:
Plain list response
{
"data": [
{ "id": "wlt_1", "currency": "USDT", "balance": "120.00" }
// ...
]
}