List endpoints in Geldstuck use cursor-based pagination. Cursors are opaque strings that point to an exact position in the result set, and they’re stable across inserts and deletes - you won’t see duplicates or miss rows while paginating.

Parameters

ParameterTypeDescription
limitintegerPage size. Default 20, max 100.
starting_afterstringCursor. Return results after this ID.
ending_beforestringCursor. Return results before this ID.

Response shape

{
  "data": [ { "id": "tx_01HX3ZF...", ... }, ... ],
  "hasMore": true,
  "nextCursor": "tx_01HX3ZG..."
}
When hasMore is true, pass nextCursor as starting_after to fetch the next page.

Example

curl "https://api.geldstuck.com/v1/transactions?limit=50&starting_after=tx_01HX3ZF..." \
  -H "x-api-key: $GELDSTUCK_PUBLIC_KEY" \
  -H "x-api-secret: $GELDSTUCK_SECRET_KEY"
Copy this helper once and you rarely need to think about cursors again.

Filtering

All list endpoints accept filters as query parameters. Filters compose with pagination:
GET /transactions?status=pending&accountType=escrow&limit=100
See each endpoint’s reference page for the full list of supported filters.
Cursors expire after 24 hours. If you store them for longer, expect cursor_expired errors - just restart from the beginning.