Лимиты
Мы следим за стабильностью API, поэтому есть лимиты на запросы (rate limiting). Они гибкие, зависят от нагрузки, но мы сделали их комфортными — должно хватить для любых ваших задач.
Входящие вебхуки
/webhooks/user123 считаем по user123Если за секунду отправите больше указанного количества запросов на один идентификатор, лишние получат 429 Too Many Requests. В заголовке Retry-After мы укажем, через сколько секунд можно попробовать снова.
API
HTTP_AUTHORIZATION). Один токен — один лимит. Запросы учитываются по каждому чату отдельно. Дополнительно, допускаются короткие ускорения выше указанного лимита отправки сообщений: до 30 запросов в секунду на протяжении 5 секунд в каждый чат.HTTP_AUTHORIZATION). Один токен — один лимит.HTTP_AUTHORIZATION). Один токен — один лимит.GET /webhooks/events. Считаем по токену авторизации.Если за секунду будет больше указанных запросов с одним токеном, API вернёт 429 Too Many Requests. В заголовке Retry-After мы укажем, через сколько секунд можно попробовать снова.
- Лимиты гибкие: они ориентировочные и могут меняться, чтобы всё работало гладко;
- Должно хватать на всё: мы настроили их так, чтобы вам было комфортно в любых сценариях;
- Если упёрлись в лимит: при ошибке
429смотрите заголовокRetry-After— он подскажет, через сколько секунд повторить запрос (или используйте экспоненциальныйbackoff, если хотите перестраховаться).
Защита от перегрузки
Если приложение продолжает слать запросы выше лимитов даже после 429, доступ токена может быть временно ограничен — это защита от сбойных циклов и случайной перегрузки. Чтобы этого избежать:
- Соблюдайте
Retry-After— он указывает, через сколько секунд имеет смысл повторить - Используйте экспоненциальный backoff с jitter — готовые примеры ниже в разделе Повторные запросы
- Если ваш сервис не успевает обрабатывать ответы, приостановите запросы, а не ускоряйте retry
Повторные запросы (Retry)
SDK (TypeScript, Python) уже включают автоматический retry с экспоненциальным backoff. Ниже — реализация для кастомных HTTP-клиентов.
TypeScript
Python
Стратегия повторов
| Код | Действие | Задержка |
|---|---|---|
429 | Повторить | Retry-After header или exponential backoff: 1с, 2с, 4с × jitter |
500, 502, 503, 504 | Повторить | Exponential backoff с jitter: ~1с, ~2с, ~4с |
400, 401, 403, 404, 422 | Не повторять | Ошибка клиента — нужно исправить запрос |