Две настройки. Любой агент.
Любому инструменту нужны две вещи: Base URL CodingPass и ваш ключ. Вставьте ключ один раз — и все фрагменты на этой странице готовы к копированию.
Base URL
Совместимый с Anthropic
Messages API. Claude Code, Cline и SDK Anthropic. Без /v1 в конце.
Совместимый с OpenAI
Chat Completions и Responses. Codex, OpenCode и SDK OpenAI.
Вставьте ключ, выберите инструмент.
Остаётся в этой вкладке и только подставляется во фрагменты на странице.
У каждого инструмента есть разумная модель по умолчанию. Какие модели отвечают, решает ваш тариф.
Добавьте две строки export в ~/.zshrc или ~/.bashrc, откройте новый терминал и запустите Claude Code.
export ANTHROPIC_BASE_URL="https://codingpass.ai" export ANTHROPIC_AUTH_TOKEN="cp-live-your-key"
claude --model claude-sonnet-5-5
Проверьте, что ключ работает
Запросите список моделей, доступных ключу. Если пришёл список в JSON, ключ и URL верны; 401 значит, что ключ неверный.
curl https://codingpass.ai/v1/models \ -H "Authorization: Bearer cp-live-your-key"
Вашего инструмента нет в списке?
Подойдёт любой инструмент, где можно задать Base URL Anthropic или OpenAI. Найдите поле Base URL или своего провайдера, вставьте URL и ключ и возьмите ID модели на странице Модели.
Не получается? Напишите на [email protected]: название инструмента и заголовок x-request-id из ответа.
Каждая ошибка, её статус и что делать.
Шлюз отвечает стандартным HTTP-статусом и в формате ошибок, который ваш клиент уже знает. type тот же, что у Anthropic и OpenAI, и SDK обрабатывают его как обычно; message написан для людей. Код ошибки из таблицы виден рядом с каждым неудачным запросом в журнале запросов консоли.
Два формата в зависимости от эндпоинта
/v1/messages, /v1/messages/count_tokens)HTTP/1.1 429 Too Many Requests retry-after: 4253 x-should-retry: false x-ratelimit-remaining-5h: 0 x-ratelimit-reset-5h: 1h10m53s x-request-id: req_8f2c41d07ab3 { "type": "error", "error": { "type": "rate_limit_error", "message": "Account limit reached: your 5h quota is used up for all models. Resets at …" } }
/v1/chat/completions, /v1/responses, /v1/models)HTTP/1.1 401 Unauthorized x-request-id: req_5b1f09c2e7d4 { "error": { "message": "Invalid API key", "type": "authentication_error", "param": null, "code": null } }
| Статус | Код | Когда возникает и что делать |
|---|---|---|
| 400Неверный запрос | ||
| 400 | invalid_requestinvalid_request_error | Некорректное тело запроса Когда возникает: Тело не является корректным JSON, или не хватает обязательного поля: Что делать:
|
| 401Аутентификация | ||
| 401 | invalid_api_keyauthentication_error | API key не принят Когда возникает: Ключ не передан, введён с ошибкой, удалён или отправлен в заголовке, который шлюз не читает. Что делать:
|
| 403Доступ | ||
| 403 | no_subscriptionpermission_error | Нет активного тарифа Когда возникает: Ключ действителен, но у аккаунта нет активного тарифа: его не покупали, срок закончился или не прошёл платёж за продление. Что делать: |
| 404Не найдено | ||
| 404 / 405 | wrong_base_urlnot_found_error | Неверный Base URL или метод Когда возникает: Запрос пришёл на путь или с методом, которые шлюз не обслуживает. Обычно в Base URL лишний или недостающий Что делать:
|
| 404 | model_not_foundinvalid_request_error | Модели нет в вашем тарифе Когда возникает: ID модели написан с ошибкой, или модель не входит в ваш тариф. Что делать:
|
| 413Слишком большой | ||
| 413 | body_too_largeinvalid_request_error | Запрос слишком большой Когда возникает: Тело запроса превышает лимит размера шлюза — обычно из-за очень длинного контекста или больших вложений. Что делать:
|
| 429Лимиты | ||
| 429 | quota_exceededrate_limit_error | Квота израсходована Когда возникает: Достигнут 5-часовой, недельный или месячный лимит — для одной модели или для всего аккаунта. В сообщении указаны окно и время сброса; Что делать:
|
| 429 | concurrency_limitedrate_limit_errorМожно повторить | Слишком много одновременных запросов Когда возникает: Тариф допускает фиксированное число одновременных запросов, а новый пришёл, когда все слоты были заняты. Что делать:
|
| 429 | no_upstream_availablerate_limit_errorМожно повторить | Модель перегружена Когда возникает: Эта модель сейчас загружена полностью. Что делать:
|
| 5xxПровайдер модели | ||
| 4xx / 5xx | upstream_errorapi_errorМожно повторить | Провайдер модели вернул ошибку Когда возникает: Провайдер модели отклонил запрос или не смог его выполнить, и шлюз передал его статус и сообщение как есть. 502 значит, что запрос не удался и после повторов. Что делать:
|
| 503Недоступно | ||
| 503 | plan_unavailableapi_errorМожно повторить | Тариф временно недоступен для проверки Когда возникает: Шлюз ненадолго не смог загрузить ваш тариф. Проблема на нашей стороне, а не в вашем ключе. Что делать:
|
| 503 | quota_unavailableapi_errorМожно повторить | Квота временно недоступна для проверки Когда возникает: Шлюз не смог прочитать ваши счётчики использования и отклонил запрос, чтобы не гадать. Проблема на нашей стороне. Что делать:
|
| 503 | upstream_unavailableapi_errorМожно повторить | Не удалось обработать запрос Когда возникает: Модель не смогла принять запрос до начала ответа. Обычно помогает повтор. Что делать:
|
| 503 | no_upstreamapi_error | Модель сейчас не обслуживается Когда возникает: Модель входит в ваш тариф, но сейчас недоступна. Что делать:
|
| 200 / 499Во время ответа | ||
| 200 | stream_incompleteapi_errorМожно повторить | Поток оборвался Когда возникает: Ответ начался с 200, но поток закончился раньше, чем ответ был готов. Клиент показывает ответ, оборванный на середине, или ошибку в конце. Что делать:
|
| 499 | client_aborted | Отменено клиентом Когда возникает: Клиент закрыл соединение до конца ответа: вы нажали Esc или Ctrl+C, у клиента истёк тайм-аут или пропала сеть. 499 есть только в вашем журнале запросов; клиент его не получает. Что делать:
|
Ошибки с пометкой «можно повторить» временные: подождите секунду-две или столько секунд, сколько в retry-after, и отправьте тот же запрос снова. Большинство SDK делают это сами при 429 и 5xx. Остальные ошибки сначала требуют изменений на вашей стороне.
Полезные заголовки ответа
| Заголовок | Значение |
|---|---|
| x-request-id | Уникальный ID запроса — тот же, что в истории использования. Укажите его в письме на [email protected]. |
| retry-after | Сколько секунд ждать перед повтором. Приходит с 429 и с временными 503. |
| x-should-retry | Приходит со значением false при quota_exceeded: официальные SDK Anthropic и OpenAI перестают повторять запрос сами, потому что ждать нужно целое окно. |
| x-ratelimit-remaining-<window> | Приходит при quota_exceeded, значение — 0. Суффикс — сработавшее окно: 5h, week или month. Касается ли это всего аккаунта или одной модели, сказано в тексте ошибки. |
| x-ratelimit-reset-<window> | Приходит при quota_exceeded: сколько осталось до освобождения этого окна, например 1h10m53s. |
| x-ratelimit-limit-concurrency | Приходит при concurrency_limited: сколько запросов ваш тариф выполняет одновременно. x-ratelimit-remaining-concurrency равен 0. Не приходит, если 429 вызван нехваткой мощности у поставщика. |