Sign in

Pagination

Long lists — the channel catalog and channel posts — are returned in pages with a cursor.

How it works

  • limit — rows per page: from 1 to 100, 50 by default.
  • The response has two fields: results — the rows of the page, next — a ready link to the next page. null in next means there are no more pages.
  • Use the link from next as is. The cursor inside it is encoded and remembers the sorting and filters — you don’t need to build it yourself.
  • The cursor is stable against new data: posts that appear while you are paging don’t shift pages or cause duplicates.
  • Each page is a separate request and costs as many units as the method.

Example: all posts of a channel

import requests

# first page — up to 100 posts
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 — no more pages
    URL = page["next"]

Without pages

The category and territory directories, daily statistics and the webhook list are returned in full. The catalog with the ids parameter (up to 100 numbers) also has no pages: cards come in request order.

Was this page helpful?

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Continue