# Pagination

> How cursor pagination works on every ShopAssist list endpoint.

Source: https://shopassist.coec.dk/docs/api/pagination · Updated 2026-10-01

Every list endpoint returns a page:

```json
{ "data": [], "next_cursor": "eyJr…", "has_more": true }
```

* `limit`: page size, default 50, at most 200 on the merchant API.
* `cursor`: pass the previous page's `next_cursor` to get the next page. `null` means there are no more pages.
* Results are newest first unless an endpoint says otherwise.
* Cursors are opaque and valid for 24 hours. Keep the same filters on every page; changing them gets `400 invalid_cursor`.

```bash
curl "https://api.shopassist.coec.dk/v1/stores/sto_…/conversations?limit=100&cursor=eyJr…" \
  -H "Authorization: Bearer $SHOPASSIST_API_KEY"
```

## Incremental sync [#incremental]

Lists of conversations, leads and back-in-stock subscriptions accept `updated_since` (RFC 3339). Store the time of your last successful run and pass it next time, then page through the results.
