429 — ни один запрос не обрабатывается частично. Реализуйте клиент так, чтобы он считывал заголовок Retry-After и делал паузу перед повтором, а не долбил эндпоинт в плотном цикле.
Лимиты по эндпоинтам
Лимиты считаются на API-ключ в фиксированных минутных окнах: счётчик обнуляется в начале каждой минуты. Единственное исключение — фид цен без ключа: его лимит считается по IP-адресу.30 запросов с неверными или отсутствующими API-ключами с одного IP-адреса в течение минуты автоматически включают 5-минутный бан на уровне IP. Во время бана каждый запрос с этого IP получает
429 too_many_failed_auth, какой бы ключ он ни содержал. Исправьте ключ и дождитесь окончания бана, прежде чем повторять запросы.Формат ответа 429
При превышении лимита на ключ API возвращает:Retry-After — целое число секунд. Для лимитов на ключ это 60: такой паузы всегда достаточно, потому что счётчик обнуляется в начале следующей минуты.
Эндпоинт массового снапшота использует отдельный код ошибки при превышении лимита:
GET /v1/public/prices без ключа ограничивается по IP-адресу, а не по ключу, и в теле его ответа 429 нет поля code — ориентируйтесь на статус и Retry-After:
Обработка 429 в клиенте
СчитывайтеRetry-After и спите как минимум столько секунд, прежде чем повторять запрос. Ниже показан простой цикл повторов на bash: