> ## Documentation Index
> Fetch the complete documentation index at: https://paytectechnologies.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Pagination

> List endpoints return cursor-paginated collections with a stable wrapper.

Every collection endpoint returns the same wrapper and uses opaque cursors, so
the same paging logic works across the API.

## Request parameters

<ParamField query="limit" type="integer" default="20">
  Maximum items per page. Minimum `1`, maximum `100`.
</ParamField>

<ParamField query="cursor" type="string">
  An opaque cursor from a previous response's `pagination.nextCursor`. Omit it on
  the first request.
</ParamField>

## Response shape

```json theme={null}
{
  "data": [
    { "id": "…" }
  ],
  "pagination": {
    "nextCursor": "b3BhcXVl",
    "hasMore": true
  }
}
```

<ResponseField name="data" type="array">
  The page of resources.
</ResponseField>

<ResponseField name="pagination.nextCursor" type="string | null">
  Pass this as `cursor` to fetch the next page. `null` when there are no more
  pages.
</ResponseField>

<ResponseField name="pagination.hasMore" type="boolean">
  Whether another page is available.
</ResponseField>

## Paging through all results

Treat the cursor as opaque: pass it back exactly as received, and stop when
`hasMore` is `false`.

```bash cURL theme={null}
# First page
curl -sS "https://api.zeam.app/v1/wallets?limit=50" \
  -H "Authorization: Bearer $ZEAM_TOKEN" \
  -H "x-zeam-auth: $ZEAM_APP_SECRET"

# Next page, using nextCursor from the previous response
curl -sS "https://api.zeam.app/v1/wallets?limit=50&cursor=b3BhcXVl" \
  -H "Authorization: Bearer $ZEAM_TOKEN" \
  -H "x-zeam-auth: $ZEAM_APP_SECRET"
```

<Tip>
  Do not parse or construct cursors yourself. Their format is internal and may
  change without notice.
</Tip>
