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

# Pagination

> All list endpoints use cursor-based pagination. Navigate pages using the cursors returned in each response.

All Nuvion list endpoints return paginated results using **cursor-based pagination**. Each response includes a `meta.pagination` object with cursors pointing to the previous and next pages.

***

## Request parameters

Pass these as query parameters on any list endpoint.

<ParamField query="limit" type="integer">
  Number of records to return. Default: `20`. Maximum: `20`.
</ParamField>

<ParamField query="cursor" type="string">
  Pagination cursor from a previous response.
</ParamField>

***

## Response envelope

All list endpoints wrap their results in a standard envelope:

```json theme={null}
{
  "message": "success",
  "status": "success",
  "data": {
    "data": [ ],
    "meta": {
      "pagination": {
        "limit": 20,
        "total_count": 84,
        "has_next": true,
        "has_previous": false,
        "next_cursor": "01HXYZ9012MNOP",
        "previous_cursor": null
      },
      "filters_applied": {}
    }
  }
}
```

<ResponseField name="data.data" type="array">
  The list of objects for the current page.
</ResponseField>

<ResponseField name="data.meta.pagination.limit" type="integer">
  The number of records requested per page.
</ResponseField>

<ResponseField name="data.meta.pagination.total_count" type="integer">
  Total number of records matching the query across all pages.
</ResponseField>

<ResponseField name="data.meta.pagination.has_next" type="boolean">
  `true` if there are more records after this page. `false` on the last page.
</ResponseField>

<ResponseField name="data.meta.pagination.has_previous" type="boolean">
  `true` if there are records before this page. `false` on the first page.
</ResponseField>

<ResponseField name="data.meta.pagination.next_cursor" type="string | null">
  Value to pass as `cursor` to fetch the next page. `null` when `has_next` is `false`.
</ResponseField>

<ResponseField name="data.meta.pagination.previous_cursor" type="string | null">
  Value to pass as `cursor` to fetch the prior page. `null` when `has_previous` is `false`.
</ResponseField>

<ResponseField name="data.meta.filters_applied" type="object">
  The active filters applied to the query, reflected back in the response.
</ResponseField>

***

## Example: iterate through pages

<CodeGroup>
  ```bash First page theme={null}
  curl "https://api.nuvion.dev/transfers?limit=20" \
    -H "Authorization: Bearer $NUVION_API_KEY"
  ```

  ```bash Next page theme={null}
  curl "https://api.nuvion.dev/transfers?limit=20&next_cursor=01HXYZ9012MNOP" \
    -H "Authorization: Bearer $NUVION_API_KEY"
  ```
</CodeGroup>

<Tip>
  Always check `has_next` before requesting the next page rather than testing for a non-null `next_cursor` — this is the authoritative signal that more records exist.
</Tip>
