Конверт
Без заголовка ответ списка — JSON-массив (совместимость). С X-Sapportly-List-Envelope: 1 или ?envelope=true:
{
"data": [ { "channel": "custom:shop", "last_at": "2026-08-19T10:00:00Z" } ],
"has_more": true,
"next_cursor": { "before_at": "2026-08-19T10:00:00Z", "before_channel": "custom:shop" }
}Курсоры
| Endpoint | Порядок | Курсор берётся из | Параметры |
|---|---|---|---|
GET /v1/messages | новые сверху | последнего элемента страницы | cursor = непрозрачный next_cursor. offset≠0 без cursor → 400 (не SQL OFFSET). |
GET /v1/conversations | новые сверху | последнего элемента | before_at, before_channel |
GET /v1/conversations/{channel}/messages | страница хронологическая, листаем назад | первого элемента | before_message_at, before_message_id, before_channel_sequence |
Короткая страница (меньше limit) — последняя. Нулевой channel_sequence в query не отправляйте. GET /v1/channels не листается: limit режет до 200.