Запрос вернул ошибку вместо ответа модели? Найдите ваш код ниже — почти всё чинится в пару шагов. Точный текст ошибки и номер запроса всегда видны в Консоль → Логи.
Шпаргалка
| Код | Что значит | Быстрое решение |
|---|
| 401 | Ключ не принят (Invalid API key) | Подставьте токен RuAPI sk-... (см. Быстрый старт), уберите лишние пробелы |
| 402 | Кончился баланс (Insufficient balance) | Пополните счёт в USDT |
| 404 | Модель не найдена (model not found) | Проверьте имя модели и base_url (для Anthropic — без /v1) |
| 429 | Слишком много запросов (rate limit) | Сбавьте темп, повторите с экспоненциальной задержкой |
| 5xx | Сбой на стороне провайдера/шлюза | Повторите запрос; если не проходит — напишите нам |
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 — минимум 10 USDT, зачисление обычно за 1–5 минут.
- Учтите: агентные инструменты (Claude Code, Cline, автономные агенты) и длинный контекст сжигают токены очень быстро — десятки запросов за минуту это норма.
- Чтобы случайно не уйти в ноль на одном проекте, задайте лимит расхода на токен в Консоль → Токены — ключ перестанет работать при достижении суммы, а остальные продолжат.
404 — model not found
Две совершенно разные причины дают один и тот же 404. Проверьте обе.
Причина 1 — опечатка в имени модели. Имя в поле model должно точно совпадать с ID со страницы цен основного сайта (вплоть до дефисов и регистра). Алиасы и «примерные» названия не сработают.
Причина 2 — неверный base_url. Это самая частая скрытая причина 404, и зависит она от протокола:
| Протокол | Правильный base_url |
|---|
| OpenAI-совместимый | https://www.ruapi.ai/v1 ← обязательно с /v1 |
| Anthropic | https://www.ruapi.ai ← без /v1 |
Для Anthropic-протокола не добавляйте /v1 в конце адреса. SDK сам подставляет /v1/messages, и лишний /v1 даёт /v1/v1/messages → 404. И наоборот: для OpenAI-протокола /v1 обязателен.
Решение. Сверьте имя модели со страницей цен, затем проверьте 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-соединения, и не отключайте стриминг для длинных ответов — именно он не даёт запросу упасть по таймауту.
Всё ещё не работает?
Откройте Консоль → Логи и найдите свой запрос — там виден точный код ошибки, модель и тело ответа. С этими данными пишите на [email protected], и мы быстро разберёмся.