Основы

Пагинация

Списки приходят страницами. Страница - объект с "object": "list":

{
  "object": "list",
  "data": [
    { "object": "contact", "id": "01a0d7f0-b6c0-7a1a-82e4-2cab98a901c7", "name": "Анна Смирнова" },
    { "object": "contact", "id": "01a0d3f0-aa80-7592-ae85-1a0309a9fd64", "name": "Иван Петров" }
  ],
  "has_more": true
}
  • data - объекты страницы, от новых к старым.
  • has_more - true, если дальше есть ещё объекты.

Общего числа объектов и номеров страниц в ответе нет.

Параметры

Параметр Что задаёт
limit Сколько объектов на странице: от 1 до 100, по умолчанию 20
starting_after id объекта, после которого начинается страница. Обычно это id последнего объекта предыдущей страницы

Значение вне этих границ или starting_after, который не похож на id, - ошибка 422 validation.

Как пройти весь список

  1. Запросите первую страницу без starting_after.
  2. Обработайте data.
  3. Если has_more равно true, запросите следующую страницу, передав в starting_after id последнего объекта из data.
  4. Повторяйте, пока has_more не станет false.
curl "https://api.ru.dialogi.io/v1/contacts?limit=100" \
  -H "Authorization: Bearer dk_live_…"

curl "https://api.ru.dialogi.io/v1/contacts?limit=100&starting_after=01a0d3f0-aa80-7592-ae85-1a0309a9fd64" \
  -H "Authorization: Bearer dk_live_…"

Фильтры списка, например project_id, передавайте на каждой странице одни и те же.

Что важно знать

  • Объекты, созданные во время обхода, в него не попадут: они новее первой страницы. Чтобы забрать новые объекты, начните обход заново, без starting_after.
  • Курсор работает, даже если объект с этим id уже удалён.
  • Каждая страница - отдельный запрос и расходует лимит запросов. Для выгрузки берите limit=100.