Ошибки и лимиты
Коды
Мы используем обычные коды ответов HTTP для обозначения результата выполнения запроса.
Коды группы 2** указывают на успех. Коды группы 4** указывают на ошибку запроса, который не удался с учетом предоставленной информации (например, обязательный параметр был пропущен, несуществующий идентификатор и др.). Коды группы 5** указывают на ошибки на серверах Пачки (они редки).
Пояснения ошибки
В зависимости от типа ошибки вы получите в теле ответа одну из следующих структур:
- ApiError — для кодов
400,403,404,409,410,422. Содержит массивerrorsс детальной информацией об ошибках. - OAuthError — для кода
401. Содержит поляerrorиerror_descriptionс информацией об ошибке авторизации.
Лимиты
Мы следим за стабильностью API, поэтому есть лимиты на запросы (rate limiting). Они гибкие, зависят от нагрузки, но мы сделали их комфортными — должно хватить для любых ваших задач.
/webhooks/user123 считаем по user123Если за секунду отправите больше 2 запросов на один идентификатор, лишние получат 429 Too Many Requests. В заголовке Retry-After мы укажем, через сколько секунд можно попробовать снова.
API
HTTP_AUTHORIZATION). Один токен — один лимит. Запросы учитываются по каждому чату отдельно. Дополнительно, допускаются короткие ускорения выше указанного лимита отправки сообщений: до 30 запросов в секунду на протяжении 5 секунд в каждый чат.HTTP_AUTHORIZATION). Один токен — один лимит.HTTP_AUTHORIZATION). Один токен — один лимит.Если за секунду будет больше указанных запросов с одним токеном, API вернёт 429 Too Many Requests. В заголовке Retry-After мы укажем, через сколько секунд можно попробовать снова.
- Лимиты гибкие: они ориентировочные и могут меняться, чтобы всё работало гладко;
- Должно хватать на всё: мы настроили их так, чтобы вам было комфортно в любых сценариях;
- Если упёрлись в лимит: при ошибке
429смотрите заголовокRetry-After— он подскажет, через сколько секунд повторить запрос (или используйте экспоненциальныйbackoff, если хотите перестраховаться).