Ошибки и лимиты
Ошибки возвращаются в том же формате и с теми же текстами, что у api.telegram.org, поэтому обработка ошибок в библиотеках работает без изменений.
Формат ответа
400 Bad Request
{
"ok": false,
"error_code": 400,
"description": "Bad Request: chat not found"
}HTTP-статус ответа совпадает с error_code. Некоторые ошибки содержат объект ResponseParameters:
429 Too Many Requests
{
"ok": false,
"error_code": 429,
"description": "Too Many Requests: retry after 5",
"parameters": { "retry_after": 5 }
}Коды
| Код | Когда | Пример description |
|---|---|---|
400 | Неверные параметры, объект не найден, действие невозможно | Bad Request: message is not modified: ... |
401 | Неверный или отозванный токен | Unauthorized |
403 | Нет прав: пользователь заблокировал бота, бот не участник чата | Forbidden: bot was blocked by the user |
404 | Неизвестный метод | Not Found |
409 | Параллельный getUpdates или getUpdates при активном вебхуке | Conflict: ... |
429 | Слишком много запросов, ждите retry_after секунд | Too Many Requests: retry after N |
5xx | Внутренняя ошибка сервера, запрос можно повторить | Internal Server Error |
Если для внутренней ошибки нет официального текста, description имеет вид <Причина>: CODE, например Bad Request: STARGIFT_INVALID. Ориентируйтесь на error_code и parameters, а не на точный текст.
Лимиты
- Загрузка файла: до 25 МБ на запрос.
- Текст сообщения: 1-4096 символов, подпись к медиа: до 1024.
getUpdates:limitдо 100,timeoutдо 50 секунд.- Вебхук:
max_connections1-100. - При 429 соблюдайте
retry_after; aiogram и python-telegram-bot умеют повторять запрос автоматически.