Основы
Пагинация
Списки приходят страницами. Страница - объект с "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.
Как пройти весь список
- Запросите первую страницу без
starting_after. - Обработайте
data. - Если
has_moreравноtrue, запросите следующую страницу, передав вstarting_afterid последнего объекта изdata. - Повторяйте, пока
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.