Войти

Пагинация

Длинные списки — каталог каналов и посты канала — отдаются страницами по курсору.

Как это устроено

  • limit — сколько строк на странице: от 1 до 100, по умолчанию 50.
  • В ответе два поля: results — строки страницы, next — готовая ссылка на следующую страницу. null в next — страниц больше нет.
  • Берите ссылку из next целиком. Курсор в ней закодирован и помнит сортировку и фильтры — собирать его самому не нужно.
  • Курсор устойчив к новым данным: посты, которые появились, пока вы листаете, не сдвигают страницы и не дают повторов.
  • Каждая страница — отдельный запрос и стоит столько же единиц, сколько метод.

Пример: все посты канала

import requests

# первая страница — до 100 постов
URL = "https://api.datool.ru/v1/max/channels/@citynews/posts/?limit=100"
HEADERS = {"Authorization": "Bearer dtk_…"}

posts = []
while URL:
    page = requests.get(URL, headers=HEADERS, timeout=30).json()
    posts += page["results"]
    # None — страниц больше нет
    URL = page["next"]

Без страниц

Справочники рубрик и территорий, статистика по дням и список вебхуков отдаются целиком. Каталог с параметром ids (до 100 номеров) — тоже без страниц: карточки идут в порядке запроса.

Страница полезна?

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти