---
title: Pagination
description: Page through REST collections by following each opaque next-page URL while preserving filters and the selected API version.
---

REST collection responses include `next_page_url`. Request the first page with the operation's query parameters, then follow each returned URL until the value is `null`.

## Request the First Page

List operations accept these query parameters:

| Parameter | Value |
| --- | --- |
| `limit` | Items per page. The default is `10`; the allowed range is `1` to `100`. |
| `sort` | Sort field. Supported values and defaults vary by operation. |
| `order` | `asc` or `desc`. The default is `desc`. |
| `page` | Opaque cursor. Omit it from the first request. |

The [REST API](/api-reference) lists the filters and sort fields available for each operation. Values outside the allowed range return `400`.

## Follow `next_page_url`

A response with another page returns a root-relative URL containing the effective limit, sorting, filters, and opaque cursor:

```json
{
  "next_page_url": "/markets?limit=100&order=asc&page=<opaque-cursor>&sort=event_date"
}
```

Because `next_page_url` is root-relative, resolve it against the REST API base URL and request the resulting URL exactly as returned. Do not append it to the current operation URL. It already preserves the effective limit, sorting, filters, and opaque cursor; do not construct, decode, or edit the `page` value. Continue using the same accepted credential and `UDX-Version`, and generate a new timestamp and signature for every signed page request.

Stop when the response returns:

```json
{
  "next_page_url": null
}
```
