Каналы
Методы группы «MAX: каналы». Справа — пример запроса и ответа для каждого.
Каталог каналов
/v1/max/channels/Каталог активных каналов MAX (или групповых чатов при kind=chat) с фильтрами по названию, рубрике, территории, числу подписчиков, метке A+ и подтверждению владельцем. Сортировка всегда по убыванию: подписчики (по умолчанию), индекс качества, индекс цитируемости или время последнего поста. Страницы до 100 карточек; ссылка на следующую — в поле next (null — страниц больше нет).
С параметром ids (до 100 номеров через запятую) — карточки этих каналов в порядке запроса: остальные фильтры и страницы тогда не применяются, невидимые и несуществующие номера пропускаются. Закрытые каналы видны только организации, которой они открыты.
Параметры
| Имя параметра | Где | Описание |
|---|---|---|
a_plusда / нет | запрос | Только с меткой A+ (true) или без неё (false) |
categoryстрока | запрос | Код рубрики (основной или дополнительной) из /v1/max/categories/ |
cursorстрока | запрос | Курсор следующей страницы — берите готовую ссылку из поля next |
idsстрока | запрос | До 100 номеров каналов через запятую — карточки в том же порядке, без фильтров и страниц |
kindстрока | запрос | channel — каналы (по умолчанию), chat — групповые чаты Значения: channel, chat |
limitчисло | запрос | Строк на странице: 1–100, по умолчанию 50 |
orderingстрока | запрос | Сортировка, всегда по убыванию Значения: -citation, -last_post_at, -quality, -subscribers |
qстрока | запрос | Поиск: подстрока названия или имени (от 3 символов), ссылка max.ru/… или @имя |
subscribers_maxчисло | запрос | Подписчиков не больше |
subscribers_minчисло | запрос | Подписчиков не меньше |
territoryстрока | запрос | Код территории из /v1/max/territories/ — вместе с потомками |
verifiedда / нет | запрос | Только подтверждённые владельцем (true) или нет (false) |
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
results | список | Карточки каналов этой страницы |
results[].id | число | Номер канала в datool.ru — им запрашивают статистику и посты |
results[].external_id | число или null | ID чата в MAX (со знаком, как в MAX) |
results[].handle | строка | Публичное имя без @ или пусто |
results[].link | строка | Ссылка на канал в MAX (max.ru/…) или пустая строка |
results[].kind | строка | channel — канал, chat — групповой чат |
results[].status | строка | Состояние в каталоге: active — показывается; new — ещё не проверен; unavailable — MAX отвечает «не найден»; removed — удалён из каталога datool.ru (посты таких каналов не отдаются) |
results[].title | строка | Название канала в MAX |
results[].description | строка | Описание канала из MAX (может быть пустым) |
results[].avatar_url | строка или null | Аватар — наша копия через CDN media.datool.ru или null |
results[].subscribers | число или null | Подписчиков (участников у чата) по последнему опросу |
results[].posts_total | число или null | Сообщений в MAX по последнему опросу |
results[].is_public | да / нет | Открытый канал (true) или закрытый — по приглашению (false); у закрытого через API только карточка |
results[].a_plus | да / нет | Метка A+ из MAX (реестр РКН) |
results[].verified | да / нет | Владелец подтвердил канал через бота datool.ru |
results[].category | строка или null | Код основной рубрики или null |
results[].categories | список | Все рубрики канала (до 5) |
results[].territory | объект или null | Территория канала или null |
results[].tags | список | Теги канала |
results[].quality | число или null | Индекс качества 0–100 или null |
results[].citation | число или null | Индекс цитируемости или null |
results[].adult | да / нет | Среди рубрик есть «Для взрослых (18+)» |
results[].last_post_at | дата и время или null | Время последнего поста (ISO 8601, по Москве, +03:00) |
results[].first_seen_at | дата и время | Когда datool.ru нашёл канал (ISO 8601, по Москве) |
results[].updated_at | дата и время | Когда карточка обновлялась (ISO 8601, по Москве) |
results[].page_url | строка | Страница канала на max.datool.ru |
next | строка или null | Адрес следующей страницы или null |
Ошибки
| Код | code | Когда |
|---|---|---|
| 400 | ошибки полей | Неверный параметр или поле тела: ошибка приходит у имени поля, например {"channels": ["Номера каналов через запятую."]}. |
| 401 | not_authenticated / authentication_failed | Нет ключа, ключ неверный или отозван, участник приостановлен или организация ключа в архиве. |
| 429 | rate_limited / quota_exceeded / throttled | Слишком часто (больше запросов в секунду, чем по тарифу) или запросы за период закончились; сколько ждать — в заголовке Retry-After. |
| 503 | timeout | Запрос к базе не уложился в 5 секунд — повторите позже или сузьте выборку. |
Карточка канала по номеру или имени
/v1/max/channels/{channel}/Карточка канала или группового чата по номеру datool.ru или публичному имени (с @ или без): название, описание, подписчики, рубрики, территория, теги, индексы качества и цитируемости, отметки A+ и подтверждения владельцем. Закрытый канал видит только организация, которой он открыт (подтвердила владение или добавила по приглашению); остальным — 404.
Параметры
| Имя параметра | Где | Описание |
|---|---|---|
channel обязателенстрока | путь | Номер канала в datool.ru или публичное имя (с @ или без) |
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | число | Номер канала в datool.ru — им запрашивают статистику и посты |
external_id | число или null | ID чата в MAX (со знаком, как в MAX) |
handle | строка | Публичное имя без @ или пусто |
link | строка | Ссылка на канал в MAX (max.ru/…) или пустая строка |
kind | строка | channel — канал, chat — групповой чат |
status | строка | Состояние в каталоге: active — показывается; new — ещё не проверен; unavailable — MAX отвечает «не найден»; removed — удалён из каталога datool.ru (посты таких каналов не отдаются) |
title | строка | Название канала в MAX |
description | строка | Описание канала из MAX (может быть пустым) |
avatar_url | строка или null | Аватар — наша копия через CDN media.datool.ru или null |
subscribers | число или null | Подписчиков (участников у чата) по последнему опросу |
posts_total | число или null | Сообщений в MAX по последнему опросу |
is_public | да / нет | Открытый канал (true) или закрытый — по приглашению (false); у закрытого через API только карточка |
a_plus | да / нет | Метка A+ из MAX (реестр РКН) |
verified | да / нет | Владелец подтвердил канал через бота datool.ru |
category | строка или null | Код основной рубрики или null |
categories | список | Все рубрики канала (до 5) |
categories[].id | число | Номер рубрики в справочнике |
categories[].slug | строка | Код рубрики (как в ?category=) |
categories[].name | строка | Название рубрики |
categories[].is_primary | да / нет | Основная рубрика канала |
territory | объект или null | Территория канала или null |
territory.id | число | Номер узла в справочнике территорий |
territory.slug | строка | Код территории (как в ?territory=) |
territory.name | строка | Название территории |
territory.kind | строка | country, district, region или city |
territory.path | строка | Коды узлов от страны до этого узла через «/» |
tags | список | Теги канала |
quality | число или null | Индекс качества 0–100 или null |
citation | число или null | Индекс цитируемости или null |
adult | да / нет | Среди рубрик есть «Для взрослых (18+)» |
last_post_at | дата и время или null | Время последнего поста (ISO 8601, по Москве, +03:00) |
first_seen_at | дата и время | Когда datool.ru нашёл канал (ISO 8601, по Москве) |
updated_at | дата и время | Когда карточка обновлялась (ISO 8601, по Москве) |
page_url | строка | Страница канала на max.datool.ru |
Ошибки
| Код | code | Когда |
|---|---|---|
| 401 | not_authenticated / authentication_failed | Нет ключа, ключ неверный или отозван, участник приостановлен или организация ключа в архиве. |
| 404 | not_found | Нет объекта с таким номером или именем, или он вам не виден. |
| 429 | rate_limited / quota_exceeded / throttled | Слишком часто (больше запросов в секунду, чем по тарифу) или запросы за период закончились; сколько ждать — в заголовке Retry-After. |
| 503 | timeout | Запрос к базе не уложился в 5 секунд — повторите позже или сузьте выборку. |
Найти канал по ссылке или ID MAX
/v1/max/channels/resolve/Найти канал по тому, что вы знаете: ссылка max.ru/…, пригласительная ссылка max.ru/join/…, @имя или ID чата в MAX (отрицательное число). Ответ — карточка канала; номер datool.ru — в поле id, по нему дальше запрашивают статистику и посты. Канала нет в нашей базе — 404.
Параметры
| Имя параметра | Где | Описание |
|---|---|---|
q обязателенстрока | запрос | Ссылка max.ru/… (в том числе пригласительная), @имя или ID чата MAX (со знаком или без) |
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | число | Номер канала в datool.ru — им запрашивают статистику и посты |
external_id | число или null | ID чата в MAX (со знаком, как в MAX) |
handle | строка | Публичное имя без @ или пусто |
link | строка | Ссылка на канал в MAX (max.ru/…) или пустая строка |
kind | строка | channel — канал, chat — групповой чат |
status | строка | Состояние в каталоге: active — показывается; new — ещё не проверен; unavailable — MAX отвечает «не найден»; removed — удалён из каталога datool.ru (посты таких каналов не отдаются) |
title | строка | Название канала в MAX |
description | строка | Описание канала из MAX (может быть пустым) |
avatar_url | строка или null | Аватар — наша копия через CDN media.datool.ru или null |
subscribers | число или null | Подписчиков (участников у чата) по последнему опросу |
posts_total | число или null | Сообщений в MAX по последнему опросу |
is_public | да / нет | Открытый канал (true) или закрытый — по приглашению (false); у закрытого через API только карточка |
a_plus | да / нет | Метка A+ из MAX (реестр РКН) |
verified | да / нет | Владелец подтвердил канал через бота datool.ru |
category | строка или null | Код основной рубрики или null |
categories | список | Все рубрики канала (до 5) |
categories[].id | число | Номер рубрики в справочнике |
categories[].slug | строка | Код рубрики (как в ?category=) |
categories[].name | строка | Название рубрики |
categories[].is_primary | да / нет | Основная рубрика канала |
territory | объект или null | Территория канала или null |
territory.id | число | Номер узла в справочнике территорий |
territory.slug | строка | Код территории (как в ?territory=) |
territory.name | строка | Название территории |
territory.kind | строка | country, district, region или city |
territory.path | строка | Коды узлов от страны до этого узла через «/» |
tags | список | Теги канала |
quality | число или null | Индекс качества 0–100 или null |
citation | число или null | Индекс цитируемости или null |
adult | да / нет | Среди рубрик есть «Для взрослых (18+)» |
last_post_at | дата и время или null | Время последнего поста (ISO 8601, по Москве, +03:00) |
first_seen_at | дата и время | Когда datool.ru нашёл канал (ISO 8601, по Москве) |
updated_at | дата и время | Когда карточка обновлялась (ISO 8601, по Москве) |
page_url | строка | Страница канала на max.datool.ru |
Ошибки
| Код | code | Когда |
|---|---|---|
| 400 | ошибки полей | Неверный параметр или поле тела: ошибка приходит у имени поля, например {"channels": ["Номера каналов через запятую."]}. |
| 401 | not_authenticated / authentication_failed | Нет ключа, ключ неверный или отозван, участник приостановлен или организация ключа в архиве. |
| 429 | rate_limited / quota_exceeded / throttled | Слишком часто (больше запросов в секунду, чем по тарифу) или запросы за период закончились; сколько ждать — в заголовке Retry-After. |
| 503 | timeout | Запрос к базе не уложился в 5 секунд — повторите позже или сузьте выборку. |
Формат ошибок, заголовки лимитов и что делать при каждой — в статье «Ошибки».