MAX Навигатор

← О каталоге

Документация для разработчиков

API каталога MAX

Чтение карточек ботов, каналов и чатов, дневная статистика, правка своих описаний и категорий. Все ответы — JSON.

Получить API-ключ

Подключение

Базовый URL:

https://max.htmlweb.ru/api/{метод}

Ключ доступа — 32 символа из кабинета. Нужна подтверждённая почта.

Передайте ключ одним из способов:

GET  ...?api_key=ВАШ_КЛЮЧ&…
Header: Authorization: Bearer ВАШ_КЛЮЧ

Лимиты: 20 запросов в сутки бесплатно; дальше — с баланса (≈0.59 ₽ за запрос или пакеты). item, stat, item_update — по 1 запросу. me — без списания.

Формат ответа

Успех и ошибка всегда в JSON. Поле status — HTTP-код смысла (200 = ок).

{
  "status": 200,
  "error": "",
  "user": 12345,
  ...
}

При ошибке обычно есть непустой error с текстом на русском.

me без списания

Кто вы по ключу, какие MAX-аккаунты привязаны, сколько запросов и денег осталось.

Запрос

GET https://max.htmlweb.ru/api/me?api_key=ВАШ_КЛЮЧ

Пример ответа

{
  "status": 200,
  "error": "",
  "user": 42,
  "mail_ok": 1,
  "max_ids": [16331206, 39494245],
  "balans": 150.5,
  "limit_counter": 18,
  "free_per_day": 20,
  "per_request": 0.59,
  "docs": "https://max.htmlweb.ru/api-docs.php",
  "example": "https://max.htmlweb.ru/api/item?api_key=…&id=182789882"
}
ПолеТипЧто означает
userчислоВаш id в кабинете htmlweb.ru
mail_ok1Почта подтверждена (иначе API не пускает)
max_idsмассив чиселMAX user_id, привязанные к кабинету. По ним API понимает, какие карточки «ваши» для правки
balansчислоБаланс в рублях
limit_counterчисло / nullСколько запросов ещё можно сделать без нового списания с баланса (остаток дневных бесплатных или купленного пакета)
free_per_dayчислоСколько запросов в сутки даётся бесплатно
per_requestчислоСтоимость одного запроса с баланса, ₽

item −1 запрос

Карточка бота, канала или чата из каталога — как на сайте, в машиночитаемом виде.

Запрос (нужен id или key)

GET https://max.htmlweb.ru/api/item?api_key=ВАШ_КЛЮЧ&id=182789882

GET https://max.htmlweb.ru/api/item?api_key=ВАШ_КЛЮЧ&key=p182789882
ПараметрОбязательныйЧто передать
idодин из двухЧисловой id в MAX: у ботов обычно > 0, у каналов и чатов < 0
keyодин из двухКлюч из URL сайта: p… для бота, m… для канала/чата (как в /chat/p182789882)
chatнетСиноним: число или тот же key

Пример ответа

{
  "status": 200,
  "error": "",
  "item": {
    "id": 182789882,
    "type": "bot",
    "name": "Розыгрыш призов - GiftBot",
    "username": "id616301431999_3_bot",
    "link": "https://max.ru/id616301431999_3_bot",
    "description": "Бот для розыгрышей…",
    "members": 0,
    "installs": 12500,
    "rating": 12840,
    "categories": [
      { "slug": "bots", "name": "Боты" },
      { "slug": "polls-giveaways", "name": "Опросы и розыгрыши" }
    ],
    "url": "https://max.htmlweb.ru/chat/p182789882"
  }
}
Поле itemТипЧто означает
idчислоId сущности в MAX (и в каталоге)
typeстрокаbot, channel или chat (как в каталоге)
nameстрокаОтображаемое название
usernameстрокаНик / username в MAX (если есть)
linkстрокаСсылка открыть в MAX
descriptionстрокаОписание на карточке каталога
membersчислоДля канала/чата — число подписчиков или участников. Для бота обычно 0
installsчислоДля бота — сколько раз бота добавили (оценка установок). Для канала/чата обычно 0
ratingчислоРейтинг в каталоге (голоса + участники/установки по правилам сайта)
categoriesмассивРубрики: slug (латиница для API) и name (название по-русски)
urlстрокаСтраница карточки на max.htmlweb.ru

stat −1 запрос

Посуточная статистика карточки. Данные хранятся не больше 30 календарных дней — более ранние даты в ответе не появятся.

Запрос

GET https://max.htmlweb.ru/api/stat?api_key=ВАШ_КЛЮЧ&id=-69124609332678&from=2026-07-01&to=2026-07-20
ПараметрПо умолчаниюЧто передать
id / keyКарточка (как у item)
fromto минус 29 днейНачало периода, дата YYYY-MM-DD
toсегодняКонец периода, дата YYYY-MM-DD

Пример ответа

{
  "status": 200,
  "error": "",
  "id": -69124609332678,
  "from": "2026-07-01",
  "to": "2026-07-03",
  "days": [
    {
      "date0": "2026-07-01",
      "messages": 42,
      "posts": 12,
      "reposts": 3,
      "ad_posts": 1,
      "views": 15000,
      "likes": 80,
      "comments": 15,
      "subs_member": 25,
      "unsubs_member": 4,
      "count_member": 10200,
      "delta_member": 21,
      "votes": 5,
      "rating": 340
    }
  ]
}
Поле в корнеЧто означает
idId карточки, по которой запрошена статистика
from, toФактический период (после обрезки до 30 дней)
daysМассив строк — по одной на каждый день, где есть данные (дни без записи могут отсутствовать)

Поля одного элемента days[]

ПолеТипЧто означает
date0строкаКалендарный день статистики (YYYY-MM-DD, Москва)
messagesчислоСообщений / событий активности за день, которые учёл каталог (для каналов близко к числу публикаций)
postsчислоПубликаций в канале за день. Для чатов и ботов часто 0
repostsчислоРепостов / пересылок, связанных с этой карточкой за день (сколько раз контент «ушёл» дальше, по данным каталога)
ad_postsчислоПостов, которые каталог пометил как рекламные, за день
viewsчислоСуммарные просмотры по учтённым постам за день (если данные есть; иначе 0)
likesчислоРеакции «нравится» (и аналоги) за день, если собираются
commentsчислоКомментарии за день, если собираются
subs_memberчислоСколько человек подписалось / вступило за день
unsubs_memberчислоСколько человек отписалось / вышло за день
count_memberчислоЧисло участников или подписчиков на конец этого дня (снимок)
delta_memberчислоПрирост участников за день: обычно count_member минус вчерашний снимок (может быть отрицательным)
votesчислоСколько голосов «👍» в каталоге было у карточки на этот день (или учтено за день — как в аналитике сайта)
ratingчислоРейтинг карточки на этот день

Если по дню нет строки в days — за этот день в каталоге ещё не накопилась статистика (бот не стоял в чате, не было синка и т.п.).

item_update −1 запрос

Меняет описание и/или категории своей карточки. Права те же, что на сайте: владелец бота (после «Это мой бот») или администратор канала/чата. Нужна привязка MAX в кабинете.

Запрос (GET или POST)

POST https://max.htmlweb.ru/api/item_update?api_key=ВАШ_КЛЮЧ
Content-Type: application/x-www-form-urlencoded

id=182789882&description=Новое+описание+бота&categories=bots,polls-giveaways
GET https://max.htmlweb.ru/api/item_update?api_key=ВАШ_КЛЮЧ&id=182789882&description=Текст
ПараметрОбязательныйЧто передать
id / keyдаКакую карточку менять
descriptionнетНовый текст описания (до ≈4000 символов). Если не передать — описание не трогаем
categoriesнетСписок slug рубрик через запятую. Полностью заменяет текущий набор категорий. Пример: bots,business

Пример ответа — как у item: объект item уже с новыми данными.

{
  "status": 200,
  "error": "",
  "item": { "id": 182789882, "description": "Новое описание бота", "categories": [ … ], … }
}

Если нет прав или MAX не привязан — status 403 и текст в error.

Ошибки

Общие правила всех API htmlweb: общие параметры.

{
  "error": "Исчерпан лимит бесплатного количества запросов в сутки…"
}
HTTPКогдаЧто сделать
400Неверный запрос (нет id, битые даты и т.п.)Проверить параметры
401Нет или неверный api_keyПолучить ключ
403Почта не подтверждена; нет прав на правку; MAX не привязанПодтвердить почту / привязать MAX / подтвердить владение
404Карточки нет в каталогеСначала добавить сущность в каталог
429Кончились бесплатные запросы и нельзя списать с балансаСразу прекратить запросы до конца суток или до пополнения баланса, иначе IP может попасть под защиту от DDOS. Заголовок: 429 You exceeded the rate limit

Другие API на том же ключе: каталог сервисов htmlweb. Людям без API: каталог, проверка канала, сервисы MAX.

По вопросам обращаться