429 — сработал один из пяти лимитов
Что произошло
Запрос отклонён лимитом. Действие не выполнено, заказ не создан, деньги не списаны. Тело у трёх из пяти источников одинаковое и бесполезное: {"success": false, "message": "Too many attempts. Please wait a moment and try again."}.
Почему
Кодом 429 отвечают ПЯТЬ независимых механизмов, и лечатся они по-разному: rate-limit ключа (частота запросов), токен-квота ключа (объём генерации), usage-лимит подписки, лимит одновременно активных задач и кулдаун после серии контентных блокировок. Слепой экспоненциальный backoff помогает только первым двум, а на лимите одновременных задач и на кулдауне политики он просто жжёт время.
Что сделать прямо сейчас
Разбирать по двум признакам, оба видны в самом ответе. Первый — есть ли reason в теле: нет reason — это rate-limit ключа. Второй — есть ли заголовок Retry-After: он приходит ТОЛЬКО у token_quota_exceeded и policy_cooldown_active. Комбинация этих двух признаков различает все пять источников однозначно.
Какой запрос отправить следующим
GET /usage — действующие лимиты подписки и текущий расход, включая запись с limit_type: "concurrent". Лимиты самого ключа туда не входят: они в разделе разработчика.
Куда идти дальше
Скормить страницу ИИ
спека 0.0.1