> For the complete documentation index, see [llms.txt](https://www.boxhero.io/docs/llms.txt). Every page is available as Markdown by appending `.md` to its URL; this page is [Markdown](https://www.boxhero.io/docs/ru/developers/api/pagination.md).

# Пагинация

> Обходите длинные списки в BoxHero API с помощью пагинации на основе курсора.

Эндпоинты списков возвращают результаты постранично и используют пагинацию на основе курсора.

## Параметры запроса

| Параметр | Описание |
| --- | --- |
| `cursor` | Начало страницы. Передайте поле `cursor` из предыдущего ответа. При первом вызове не указывайте его. |
| `limit` | Размер страницы. Допустимый диапазон и значение по умолчанию указаны у каждого эндпоинта, например [Список товаров](https://www.boxhero.io/docs/ru/developers/api/reference/items/list-items.md). |

## Ответ

Каждая страница содержит результаты и поля, необходимые для получения следующей:

```json
{
  "items": [...],
  "count": 100,
  "limit": 100,
  "cursor": 1234567,
  "has_more": true
}
```

| Поле | Описание |
| --- | --- |
| `count` | Количество результатов на этой странице |
| `limit` | Размер страницы, использованный для этой страницы |
| `cursor` | Передайте это значение в параметре запроса `cursor`, чтобы получить следующую страницу. `null`, если страниц больше нет. |
| `has_more` | `true`, если после этой страницы есть ещё результаты |

## Получение всех страниц

1. Вызовите эндпоинт списка без `cursor`.
2. Пока `has_more` равно `true`, вызывайте его снова, указав в `cursor` значение `cursor` из последнего ответа.
3. Остановитесь, когда `has_more` станет `false`.

```bash
curl "https://rest.boxhero-app.com/v1/items?cursor=1234567" \
  -H "Authorization: Bearer $BOXHERO_API_TOKEN"
```

Фильтры, использованные в первом вызове, оставляйте неизменными во всех последующих.

## Порядок

Каждый ресурс задаёт собственный порядок. Большинство эндпоинтов списков возвращают результаты по возрастанию id. [Список операций](https://www.boxhero.io/docs/ru/developers/api/reference/transactions/list-transactions.md) возвращает сначала самые новые операции (по времени операции, а при совпадении — по id).

> **Tip**
>
> **Полезный совет**: чтобы поддерживать копию своих операций в актуальном состоянии, сохраняйте `revision` каждой операции. Когда вы снова обходите список, более высокое значение `revision` означает, что операция была изменена с момента, когда вы видели её в последний раз.
