Перейти к основному содержимому

Пагинация

Длинные списки листаются курсором, без номеров страниц: новые записи между запросами не сдвигают страницы и не дают дублей.

ОперацияПараметрыОтвет
GET conversationslimit (1–100, по умолчанию 50), cursoritems, next_cursor, has_more
GET conversations/{id}/historylimit (1–100, по умолчанию 50), cursoritems, next_cursor, up_to_sequence
GET webhooks/{webhook_id}/deliverieslimit (до 100)последние доставки за 30 дней, без курсора

Остальные списки (справочники, метки обращения, подписки) приходят целиком.

Как листать​

  1. Первый запрос — без cursor.
  2. Если в ответе next_cursor не null, следующий запрос — с cursor=<next_cursor> и теми же фильтрами.
  3. next_cursor = null — это последняя страница.
curl -sS "$HELPDESK_URL/api/integration/v1/conversations?state=waiting&limit=100" \
-H "Authorization: Bearer $TOKEN"
# следующая страница
curl -sS "$HELPDESK_URL/api/integration/v1/conversations?state=waiting&limit=100&cursor=$NEXT" \
-H "Authorization: Bearer $TOKEN"
  • Курсор передают как есть: он подписан сервером. Изменённый или чужой курсор — 422 VALIDATION_FAILED.
  • Сначала идут новые: обращения — по убыванию номера, история — по убыванию sequence.
  • up_to_sequence истории — номер самого нового сообщения на момент чтения. Сообщения новее него читаются следующим запросом без курсора.
  • Если история обращения перестроена (например, при слиянии), курсор старой истории получает 410 RESYNC_REQUIRED: начните чтение заново, без курсора.

SDK обходят страницы сами: history(...) и списки в SDK — итераторы по всем страницам.