Решение проблем
На этой странице
- 401: ключ не принят
- 402: не хватает баланса
- 403: модель не разрешена ключу
- 400: модель не найдена
- 429: сработал лимит
- 413 и 400: запрос слишком большой
- 524 и обрывы: ответа не дождались
- 404 и «нет соединения»: неверный base URL
- Из России не открывается или обрывается
- 502 и 503: сервис временно недоступен
- Запроса нет в журнале кабинета
Сначала посмотри на HTTP-статус и на поле error.code в теле ответа: у одного статуса бывает несколько причин. Полная таблица кодов — в разделе «Ошибки и лимиты».
401: ключ не принят#
Ответ 401 invalid_api_key.
Причина. Одна из трёх:
- ключ скопирован не целиком, с пробелом или кавычками;
- ключ отозван;
- в Claude Code — в окружении осталась переменная
ANTHROPIC_API_KEY. Её значение уходит в заголовкеx-api-key, а он у нас главнееAuthorization: вместо нашего ключа приходит старый ключ Anthropic.
Что делать. Проверь ключ на странице «Ключи»: он начинается с sk-aic- и стоит в списке активных. Для Claude Code убери лишнюю переменную и убедись, что её больше нет:
unset ANTHROPIC_API_KEY
env | grep ANTHROPICПеременная может быть задана и в файле ~/.claude/settings.json — проверь блок env. Потом набери в Claude Code /status: в строке Auth token должно стоять ANTHROPIC_AUTH_TOKEN.
402: не хватает баланса#
Ответ 402 insufficient_balance.
Причина. Баланс не вмещает резерв под запрос. Резерв больше цены запроса: он считается по размеру тела и по max_tokens, а без него — по максимуму выхода модели. Поэтому 402 бывает и при ненулевом балансе.
Что делать. Пополни баланс или задай в запросе max_tokens поменьше. Повторять запрос без этого бесполезно. Как считается резерв — в разделе «Биллинг и статистика».
403: модель не разрешена ключу#
Ответ 403 model_not_allowed.
Причина. У ключа задан список разрешённых моделей, и этой модели в нём нет.
Что делать. Добавь модель в список ключа на странице «Ключи» или возьми разрешённую: их показывает GET /v1/models с этим ключом. В Claude Code проверь и фоновую модель из ANTHROPIC_DEFAULT_HAIKU_MODEL — она тоже должна быть в списке.
Если вместо JSON пришёл 403 с HTML-страницей, это ответ не нашего API: наш 403 — всегда JSON с error.code. Напиши в поддержку время запроса и адрес, на который он шёл.
400: модель не найдена#
Ответ 400 model_not_available.
Причина. Такого имени нет в нашем списке, или модель есть, но не на этом протоколе. Частые случаи:
- Claude Code прислал своё имя модели, потому что модели не закреплены переменными
ANTHROPIC_DEFAULT_*_MODEL; - имя написано иначе, чем в списке, — например, с точкой вместо дефиса;
- модель выбрана в инструменте, который говорит по другому протоколу: Codex работает только с моделями протокола Responses.
Что делать. Возьми имя из раздела «Модели и цены» и проверь, что у модели есть протокол твоего инструмента. Для Claude Code закрепи модели, как в его настройке.
429: сработал лимит#
У ответа 429 пять разных причин. Какая из них — видно по телу ответа:
| Что в ответе | Причина | Что делать |
|---|---|---|
rate_limit_exceeded | Исчерпан лимит ключа на запросы или токены в минуту. | Подожди столько секунд, сколько сказано в retry-after. Если упираешься постоянно — подними лимит ключа в кабинете. |
concurrent_requests | По ключу уже идёт максимум одновременных запросов — 4. | Повтори через секунду; Claude Code с субагентами делает это сам. Нужно больше параллельных запросов — раздели их по ключам. |
monthly_limit_exceeded | Исчерпан месячный лимит расходов ключа. | До следующего месяца ждать бесполезно. Увеличь месячный лимит ключа в кабинете или возьми другой ключ. |
| Обычный текст, без JSON | Лимит по IP-адресу: 60 запросов в минуту и 1 200 в час с одного адреса, сколько бы ключей ни было. | Подожди по retry-after. Второй ключ не поможет: считается адрес. |
| Ошибка в формате Anthropic или OpenAI, без нашего кода | Лимит на стороне провайдера модели; ответ передан как есть. | Повтори по retry-after и x-should-retry; Claude Code делает это сам. |
Все лимиты и их значения — в разделе «Ключи и лимиты».
413 и 400: запрос слишком большой#
Код request_too_large приходит с двумя статусами, 413 и 400, и причины у них разные.
- 413. Тело запроса больше 32 МБ. Ответ может прийти и обычным текстом, без JSON. Сократи историю диалога или вложения: картинки в base64 занимают больше всего.
- 400. Запрос один больше всего минутного лимита токенов ключа. Токены здесь — оценка: размер тела в байтах, делённый на 4. Ожидание не поможет: подними лимит токенов ключа в кабинете или сократи запрос.
524 и обрывы: ответа не дождались#
Причина. Запрос без стрима ждёт весь ответ молча. Если модель готовит его дольше примерно двух минут, Cloudflare перед нашим API закрывает соединение с кодом 524. Это ответ Cloudflare, а не наш: JSON с error.code в нём нет.
Что делать. Включи стрим — "stream": true. В стриме, когда модель молчит дольше 15 секунд, мы шлём keepalive, и соединение держится. Для Codex оставь stream_idle_timeout_ms из нашей настройки.
Другой случай — ответ 504 upstream_timeout: запрос шёл дольше 30 минут, это предел для одного запроса. Раздели задачу на части.
404 и «нет соединения»: неверный base URL#
Причина. Адрес записан не так, как его ждёт инструмент. Клиенты Anthropic сами добавляют /v1 к адресу, клиенты OpenAI — нет. Лишний или пропущенный /v1 даёт путь, которого у нас нет, и ответ 404.
Что делать. Сверь адрес с таблицей:
| Инструмент | Настройка | Значение |
|---|---|---|
| Claude Code | ANTHROPIC_BASE_URL | https://api.aicreator.app |
| Codex CLI | base_url | https://api.aicreator.app/v1 |
| Cline | Base URL | https://api.aicreator.app/v1 |
| OpenCode | settings.baseURL | https://api.aicreator.app/v1 |
| Aider | OPENAI_API_BASE | https://api.aicreator.app/v1 |
Адрес сайта — llm.aicreator.app — для запросов не подходит: API живёт на api.aicreator.app.
Из России не открывается или обрывается#
Причина. Основной адрес идёт через Cloudflare, а он из России доступен не везде.
Что делать. Возьми второй адрес того же API — https://api-ru.aicreator.app. Ключ, пути и баланс те же. Правило про /v1 то же: для Claude Code — https://api-ru.aicreator.app, для остальных — https://api-ru.aicreator.app/v1. Длинные ответы и здесь запрашивай стримом.
502 и 503: сервис временно недоступен#
Причина. Провайдер модели не ответил (502 upstream_unavailable) или сервис перегружен (503 at_capacity). Деньги за такой запрос не списываются.
Что делать. Повтори запрос, если заголовок x-should-retry не говорит false; когда есть retry-after — подожди столько секунд. Если ошибка держится, напиши в поддержку время запроса и модель. Заголовок X-Billing-Id приложи, если он есть в ответе: у 503 его нет.
Запроса нет в журнале кабинета#
Причина. В журнал попадают только запросы, которые дошли до провайдера модели. Запрос, который мы отклонили раньше — 401, 402, 403, наши 400 и 429, — в журнале не появляется и ничего не стоит.
Что делать. Смотри на ответ, который получил инструмент: причина в его статусе и error.code.