Документация для разработчиков
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_ok | 1 | Почта подтверждена (иначе 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) |
from | to минус 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
}
]
}
| Поле в корне | Что означает |
|---|---|
id | Id карточки, по которой запрошена статистика |
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.