Посты
Методы группы «MAX: посты». Справа — пример запроса и ответа для каждого.
Посты канала
/v1/max/channels/{channel}/posts/Посты открытого канала, новые сверху, страницами до 100 (по умолчанию 50); ссылка на следующую страницу — в поле next. Фильтры: from и to — период по московскому времени включительно, is_ad — только рекламные (true) или без рекламы (false). Открыто с тарифа «API.Max Старт»; у закрытого канала — 403 closed_channel, у группового чата — 404 (сообщения чатов мы не собираем), у удалённого или недоступного в MAX канала — 404.
Параметры
| Имя параметра | Где | Описание |
|---|---|---|
channel обязателенстрока | путь | Номер канала в datool.ru или публичное имя (с @ или без) |
cursorстрока | запрос | Курсор следующей страницы — берите готовую ссылку из поля next |
fromдата | запрос | С этого дня (по Москве) |
is_adда / нет | запрос | Только рекламные (true) или без рекламы (false) |
limitчисло | запрос | Строк на странице: 1–100, по умолчанию 50 |
toдата | запрос | По этот день включительно (по Москве) |
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
results | список | Посты этой страницы, новые сверху |
results[].id | число | Номер поста в datool.ru — по нему /v1/max/posts/{id}/ |
results[].channel | число | Номер канала в datool.ru |
results[].external_id | число | Номер поста в канале MAX |
results[].url | строка или null | Ссылка на пост в MAX или null |
results[].published_at | дата и время | Время публикации (ISO 8601, по Москве, +03:00) |
results[].edited_at | дата и время или null | Когда заметили правку текста (ISO 8601, по Москве) или null |
results[].text | строка | Текст поста без разметки (может быть пустым — пост из одних вложений) |
results[].views | число или null | Просмотры на момент последнего чтения или null |
results[].reactions_count | число или null | Реакций всего или null (ещё не прочитаны) |
results[].reactions | объект | Реакции по эмодзи: {"👍": 12} |
results[].is_ad | да / нет | Рекламный пост: есть маркировка erid, пометка «Реклама» или ссылка наружу с призывом купить или перейти (отмечается автоматически) |
results[].forwarded_from | объект или null | Источник репоста или null |
results[].media | список | Вложения в порядке поста |
results[].page_url | строка | Страница поста на max.datool.ru |
next | строка или null | Адрес следующей страницы или null |
Ошибки
| Код | code | Когда |
|---|---|---|
| 400 | ошибки полей | Неверный параметр или поле тела: ошибка приходит у имени поля, например {"channels": ["Номера каналов через запятую."]}. |
| 401 | not_authenticated / authentication_failed | Нет ключа, ключ неверный или отозван, участник приостановлен или организация ключа в архиве. |
| 403 | tariff_required | Посты закрыты на тарифе «API.Max Тест» — нужен «API.Max Старт». |
| 403 | closed_channel | Канал закрытый: через API у него только карточка. |
| 404 | not_found | Нет объекта с таким номером или именем, или он вам не виден. |
| 404 | not_found | Групповой чат: сообщения чатов не собираются. |
| 429 | rate_limited / quota_exceeded / throttled | Слишком часто (больше запросов в секунду, чем по тарифу) или запросы за период закончились; сколько ждать — в заголовке Retry-After. |
| 503 | timeout | Запрос к базе не уложился в 5 секунд — повторите позже или сузьте выборку. |
Пост
/v1/max/posts/{id}/Один пост открытого канала по номеру datool.ru: текст, время публикации и правки, просмотры, реакции по эмодзи, признак рекламы, источник репоста и вложения. Пост закрытого, удалённого или недоступного в MAX канала и группового чата — 404, как несуществующий. Открыто с тарифа «API.Max Старт».
Параметры
| Имя параметра | Где | Описание |
|---|---|---|
id обязателенчисло | путь | Номер поста в datool.ru |
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | число | Номер поста в datool.ru — по нему /v1/max/posts/{id}/ |
channel | число | Номер канала в datool.ru |
external_id | число | Номер поста в канале MAX |
url | строка или null | Ссылка на пост в MAX или null |
published_at | дата и время | Время публикации (ISO 8601, по Москве, +03:00) |
edited_at | дата и время или null | Когда заметили правку текста (ISO 8601, по Москве) или null |
text | строка | Текст поста без разметки (может быть пустым — пост из одних вложений) |
views | число или null | Просмотры на момент последнего чтения или null |
reactions_count | число или null | Реакций всего или null (ещё не прочитаны) |
reactions | объект | Реакции по эмодзи: {"👍": 12} |
is_ad | да / нет | Рекламный пост: есть маркировка erid, пометка «Реклама» или ссылка наружу с призывом купить или перейти (отмечается автоматически) |
forwarded_from | объект или null | Источник репоста или null |
forwarded_from.title | строка | Название источника, как его дал MAX |
forwarded_from.link | строка | Ссылка на источник или пусто |
forwarded_from.channel | число или null | Номер канала в datool.ru или null |
media | список | Вложения в порядке поста |
media[].kind | строка | image, video, audio, file, link, poll, sticker, location, contact |
media[].position | число | Порядок вложения в посте, с 0 |
media[].width | число или null | Ширина картинки или видео в пикселях или null |
media[].height | число или null | Высота картинки или видео в пикселях или null |
media[].duration | число или null | Длительность видео или аудио в секундах или null |
media[].preview | строка или null | Превью — наша копия через CDN media.datool.ru или null (копии нет) |
page_url | строка | Страница поста на max.datool.ru |
Ошибки
| Код | code | Когда |
|---|---|---|
| 401 | not_authenticated / authentication_failed | Нет ключа, ключ неверный или отозван, участник приостановлен или организация ключа в архиве. |
| 403 | tariff_required | Посты закрыты на тарифе «API.Max Тест» — нужен «API.Max Старт». |
| 404 | not_found | Нет объекта с таким номером или именем, или он вам не виден. |
| 429 | rate_limited / quota_exceeded / throttled | Слишком часто (больше запросов в секунду, чем по тарифу) или запросы за период закончились; сколько ждать — в заголовке Retry-After. |
| 503 | timeout | Запрос к базе не уложился в 5 секунд — повторите позже или сузьте выборку. |
Формат ошибок, заголовки лимитов и что делать при каждой — в статье «Ошибки».