Перейти к основному содержанию
Запрос вернул ошибку вместо ответа модели? Найдите ваш код ниже — почти всё чинится в пару шагов. Точный текст ошибки и номер запроса всегда видны в Консоль → Логи.

Шпаргалка

КодЧто значитБыстрое решение
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.
  • В ключ затесались лишние пробелы или перенос строки при копировании — частая беда при копи-пасте.
  • Ключ отключён или удалён.
Решение.
  1. Откройте Консоль → Токены и убедитесь, что ключ активен. При необходимости скопируйте его заново.
  2. Вставьте ключ без пробелов в начале и конце, без переноса строки.
  3. Проверьте, что заголовок именно 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
Anthropichttps://www.ruapi.ai  ← без /v1
Для Anthropic-протокола не добавляйте /v1 в конце адреса. SDK сам подставляет /v1/messages, и лишний /v1 даёт /v1/v1/messages404. И наоборот: для 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], и мы быстро разберёмся.