Paginated list endpoints accept page and limit query parameters and return a meta.pagination object so you can walk through every result.

Query parameters

page
number
default:"1"
The 1-based page number to return.
limit
number
default:"50"
Items per page. Clamped to a maximum of 100.
cURL
curl "https://stagingapi.balansas.com/functions/v1/customer-api/transactions?page=2&limit=50" \
  -H "x-api-key: sk_test_xxxxxxxxxxxxxxxxxxxx"

The pagination envelope

Paginated responses add meta.pagination alongside data:
Response
{
  "data": [ /* up to `limit` items */ ],
  "meta": {
    "pagination": { "page": 2, "limit": 50, "total": 128 }
  }
}
meta.pagination.page
number
The page that was returned.
meta.pagination.limit
number
The page size that was applied.
meta.pagination.total
number
The total number of matching items across all pages. Use this to compute the last page: Math.ceil(total / limit).

Looping through every page

Keep requesting pages until you have collected total items (or the returned page comes back empty).
Node
async function fetchAll(path, key) {
  const limit = 50;
  let page = 1;
  const all = [];

  while (true) {
    const res = await fetch(
      `https://stagingapi.balansas.com/functions/v1/customer-api/${path}?page=${page}&limit=${limit}`,
      { headers: { "x-api-key": key } }
    );
    const body = await res.json();
    if (body.error) throw new Error(body.error.message);

    all.push(...body.data);
    const { total } = body.meta.pagination;
    if (all.length >= total || body.data.length === 0) break;
    page += 1;
  }
  return all;
}

Which endpoints paginate

Paginated list endpoints return meta.pagination and honour page/limit:

GET /transactions

EU Rails transaction history.
GET /fiat-accounts, GET /virtual-accounts, GET /payees, GET /end-users, and GET /webhooks currently return the full collection as a data array without a meta.pagination object. Webhooks are capped at 10 per customer so the response is bounded; account / payee / end-user lists are not paginated yet. Treat the array as complete — do not assume more pages exist. Always read meta.pagination defensively (it may be absent) and fall back to consuming the whole data array.

Response format

The envelope that wraps every list response.