Skip to content
Beta · The spec may still change before general availability. The API domain api.hensa.example is a placeholder. See changes →

Pagination & rate limits

List endpoints return:

{ "data": [ … ], "nextCursor": "eyJpZCI6ImJ0eF8wMUpEN…" }
  • limit: 1–100 (default 25).
  • Send cursor=<nextCursor> for the next page. nextCursor: null = done.
  • Newest first; records created while you page through never cause duplicates or gaps.
let cursor = null
do {
const url = new URL('https://api.hensa.example/v1/bank_transactions')
url.searchParams.set('limit', '100')
if (cursor) url.searchParams.set('cursor', cursor)
const page = await (await fetch(url, { headers: { Authorization: `Bearer ${process.env.HENSA_API_KEY}` } })).json()
for (const tx of page.data) handle(tx)
cursor = page.nextCursor
} while (cursor)

Hensa limits requests per API key and per store. Going over → 429 rate_limited with a Retry-After header (seconds). Wait that long, then retry.

Tip: use webhooks instead of polling to learn about incoming money – faster and free of rate limits.