Skip to content

Ошибки и лимиты ​

Коды ответов ​

КодКогдаЧто делать
400тело или параметры не прошли проверкупочинить запрос; повтор не поможет
401ключа нет, он отозван или недействителенпроверить заголовок и ключ
403ключу не выдана нужная область доступавыпустить ключ с нужной областью
404вакансия не найдена или чужаяпроверить vacancyId
429превышен лимит запросовподождать Retry-After секунд

Тело ошибки — стандартная форма Nest:

json
{ "statusCode": 403, "message": "Ключу не выдана нужная область доступа" }

Сообщения на русском и предназначены человеку, который читает логи. Ветвиться в коде по тексту не стоит — он может измениться; ветвитесь по коду ответа.

Почему 404, а не 403 ​

Запрос к чужой вакансии отвечает «не найдено», а не «нет доступа». Иначе по коду ответа можно было бы перебирать идентификаторы и узнавать, что у другой компании существует, — то есть утечка получалась бы из самой формы отказа.

По той же причине 401 одинаков для «формат ключа не тот», «такого ключа нет», «ключ отозван» и «секрет не сходится».

Лимиты ​

600 запросов в минуту на чтение и 60 в минуту на приём откликов — на каждый ключ отдельно. Превышение даёт 429 с заголовком Retry-After в секундах.

Уважайте Retry-After: клиент, который повторяет запрос немедленно, держит лимит исчерпанным и делает хуже прежде всего себе. Полная выгрузка страницами по 200 записей в эти лимиты укладывается с большим запасом; если упираетесь — скорее всего, вы ходите за одним и тем же по кругу вместо инкрементальной синхронизации.

Что делать при сбоях ​

Ошибки 5xx и обрывы соединения — повторяйте с экспоненциальной задержкой. Приём откликов идемпотентен, поэтому повтор безопасен: дубля не будет.

Выгрузка идемпотентна по своей природе — повторный запрос той же страницы вернёт то же самое, пока данные не изменились.