MAX
11 мин··

Лимиты MAX Bot API: что известно точно, а где лучше не гадать

Собрали официально подтверждённые ограничения MAX Bot API и отдельно вынесли инженерные рекомендации, чтобы не путать документацию с предположениями.

Фактические детали в этой статье сверены по официальной документации MAX. Практики очередей, fallback-каналов и продуктовые советы здесь даны как инженерные рекомендации, а не как обещание платформы. Создание ботов, обзор Bot API, отправка сообщений, webhook, загрузка файлов.

Почему вообще важно знать лимиты

Лимиты нужны не ради красивой таблицы в блоге. Они определяют, как быстро вы можете отправлять сообщения, как строить очередь, что считать аномалией и где заканчивается “ошибка интеграции”, а начинается обычная защита платформы от перегрузки.

Вокруг MAX уже много пересказов, где официальные цифры смешаны с чужими догадками. Поэтому полезнее разделить материал на две части: что прямо подтверждено документацией и что уже относится к инженерной стратегии команды.

Что подтверждено официально

Ниже то, на что можно ссылаться без оговорок, потому что это зафиксировано в документации MAX для разработчиков.

ПараметрПодтверждённое значениеЧто это значит на практике
Максимальная частота запросовДо 30 rps на platform-api.max.ruЭто верхняя граница, а не рекомендованный рабочий темп для старта
Длина текстаДо 4000 символовДлинные сообщения лучше дробить по смыслу, а не упираться в максимум
Inline-кнопкиДо 210 кнопок, до 30 рядов, обычно до 7 в рядуТехнически можно много, но человеку обычно хватает 2-4 кнопок
Загрузка файловДо 4 ГБ через POST /uploadsСначала загружаете файл, потом используете токен или ссылку в сообщении
Webhook timeoutОтвет сервера до 30 секундТяжёлую обработку лучше выносить из HTTP handler в очередь
Long pollingtimeout от 0 до 90, limit до 1000Хватает для отладки и простых сценариев, но не заменяет продовый webhook
Удаление сообщенийСообщение должно быть младше 24 часовНе откладывайте cleanup и модерацию “на потом”

Этого набора достаточно, чтобы без фантазий спроектировать первую рабочую интеграцию. Всё остальное лучше считать гипотезой, которую вы подтверждаете уже собственными нагрузочными тестами.

Где лучше не выдумывать цифры

Есть вещи, про которые статьи часто пишут слишком уверенно: “вот точный предел на одного бота”, “вот жёсткий размер конкретного типа вложений”, “вот стандартный интервал повторов webhook”. Если документация не формулирует это явно, лучше не превращать инженерную догадку в “официальный лимит”.

  • Не подменяйте потолок API рекомендацией по боевому RPS.
  • Не опирайтесь на старые примеры с неофициальными доменами или query-токеном.
  • Не стройте критичную логику на предположении, что повторов webhook “будет мало”.

Если команда не уверена, зафиксируйте это прямо в документации проекта: “официально подтверждено” и “наш рабочий консервативный режим” должны быть разными таблицами.

Безопасный старт без лишнего риска

На старте бизнесу редко нужен максимум возможностей. Ему нужен предсказуемый канал. Поэтому разумная стратегия чаще выглядит так:

  1. Начните с темпа ниже официального верхнего лимита и поднимайте его постепенно.
  2. Ставьте все отправки через очередь, как только сообщение становится важным для денег или SLA.
  3. Фиксируйте идемпотентность по собственному ключу сообщения, а не надейтесь на “авось не задублируется”.
  4. На 429 не спорьте с каналом, а сбрасывайте темп и повторяйте позже.
const queuePolicy = {
  channel: "maxbot",
  startRps: 10,
  maxRpsAfterLoadTests: 30,
  retry: {
    maxAttempts: 5,
    strategy: "exponential-jitter",
  },
};

Здесь startRps: 10 не означает “официальный лимит 10”. Это просто консервативный старт, который помогает новой интеграции не умереть от первой же вспышки трафика.

Что мониторить

Если у вас нет наблюдаемости, лимиты быстро превращаются в мистику. Достаточно нескольких метрик, чтобы перестать гадать.

МетрикаЗачем нужна
RPS по каналу и ботуПонимать, насколько вы близко к верхней границе
Доля ответов 429Видеть, когда продукт уже спорит с лимитом
Время жизни сообщения в очередиПонимать, превращается ли “быстрая отправка” в фактическую задержку
Успешные и неуспешные webhookВовремя ловить проблемы в серверной обработке

Следующий шаг после лимитов обычно один из двух: либо вам нужно научиться спокойно переживать ошибку 429, либо встроить это всё в более крупный сценарий вроде массовой отправки.

Полезная статья про лимиты не обещает “точную карту мира”, а отделяет документированную правду от инженерных допущений. Для MAX это особенно важно, потому что платформа ещё развивается и старые пересказы быстро устаревают.

Создайте бесплатный MAX-профиль

Если хочется не просто читать, а сразу проверить сценарий руками: подключите MAX, отправьте себе тестовое сообщение и уже потом решайте, нужны ли другие каналы.