Шпаргалка
401 Unauthorized — Invalid API key
Причина. Сервер не принял ваш ключ. Чаще всего одна из трёх причин:- Подставлен не тот ключ: должен быть токен RuAPI (
sk-...), а не официальный ключ OpenAI (sk-...) или Anthropic (sk-ant-...). Внешне ключи OpenAI и RuAPI похожи, но рабочий — только из вашей Консоли RuAPI. - В ключ затесались лишние пробелы или перенос строки при копировании — частая беда при копи-пасте.
- Ключ отключён или удалён.
- Откройте Консоль → Токены и убедитесь, что ключ активен. При необходимости скопируйте его заново.
- Вставьте ключ без пробелов в начале и конце, без переноса строки.
- Проверьте, что заголовок именно
Authorization: Bearer sk-...(OpenAI-протокол) илиx-api-key: sk-...(Anthropic-протокол).
402 — Insufficient balance
Причина. На счёте закончились деньги. Запросы не выполняются, пока баланс не станет положительным. Решение.- Пополните баланс в USDT / USDC или банковской картой — минимум 5 $. Криптовалюта зачисляется обычно за 1–5 минут, оплата картой — за секунды.
- Учтите: агентные инструменты (Claude Code, Cline, автономные агенты) и длинный контекст сжигают токены очень быстро — десятки запросов за минуту — это норма.
- Чтобы случайно не уйти в ноль на одном проекте, задайте лимит расхода на токен в Консоль → Токены — ключ перестанет работать при достижении суммы, а остальные продолжат.
404 — model not found
Две совершенно разные причины дают один и тот же 404. Проверьте обе. Причина 1 — опечатка в имени модели. Имя в полеmodel должно точно совпадать с ID со страницы цен (вплоть до дефисов и регистра). Алиасы и «примерные» названия не сработают.
Причина 2 — неверный base_url. Это самая частая скрытая причина 404, и зависит она от протокола:
Решение. Сверьте имя модели со страницей цен, затем проверьте
base_url по таблице выше. Подробный разбор адресов — в справочнике API.
429 — Too Many Requests / rate limit
Причина. Слишком много запросов за короткий промежуток — либо ваш код шлёт их пачкой, либо апстрим-провайдер временно ограничивает поток. Решение.- Сбавьте темп и повторяйте с экспоненциальной задержкой (backoff): 1 с, 2 с, 4 с, 8 с…
- Распределите нагрузку во времени, не отправляйте сотни запросов одновременно.
- Для пакетной обработки добавьте небольшую паузу между запросами или ограничьте число параллельных потоков.
5xx — 500 / 502 / 503 / upstream error
Причина. Временный сбой на стороне апстрим-провайдера или шлюза. Это не проблема вашего ключа или кода. Решение.- Повторите запрос через несколько секунд — чаще всего со второй-третьей попытки проходит.
- Заверните вызовы в retry с backoff, чтобы такие всплески не роняли ваш скрипт.
- Если ошибка держится долго и повторяется на разных моделях — напишите на [email protected], приложите номер запроса из Консоль → Логи.
Обрывы стриминга и таймауты
Длинные ответы (большой контекст, рассуждающие модели, генерация кода) могут идти десятки секунд. Если соединение рвётся на середине стрима или клиент отваливается по таймауту — увеличьтеtimeout в SDK (для тяжёлых запросов ставьте 60–120 с и выше), убедитесь, что между вами и RuAPI нет прокси, обрывающего долгие SSE-соединения, и не отключайте стриминг для длинных ответов — именно он не даёт запросу упасть по таймауту.