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

# Pagination

> Opaque cursor pagination on list endpoints

List endpoints (`GET /adventures`, `GET /bookings`, `GET /settlements`) use
**opaque cursor** pagination. There are no page numbers and no total count —
this keeps results stable while data changes underneath.

## Request

| Query param | Default | Notes                                                             |
| ----------- | ------- | ----------------------------------------------------------------- |
| `limit`     | `25`    | Items per page, max `100`.                                        |
| `cursor`    | —       | Opaque token from the previous response. Omit for the first page. |

## Response envelope

```json theme={"theme":"github-dark-dimmed"}
{
  "data": [ /* ... items ... */ ],
  "meta": { "count": 25, "next_cursor": "eyJvIjoxMjV9" }
}
```

* `meta.count` — number of items in **this** page.
* `meta.next_cursor` — pass it back as `cursor` for the next page. `null` means
  this was the last page.

## Iterating

```
GET /adventures?limit=50
→ meta.next_cursor = "abc"        # more pages
GET /adventures?limit=50&cursor=abc
→ meta.next_cursor = null         # done
```

<Note>
  Treat the cursor as opaque — do not parse, store long-term, or construct it.
  Cursors are not guaranteed stable across `v1` minor changes.
</Note>
