Проверьте заголовки и адрес одной командой
Anthropic требует два заголовка: x-api-key и anthropic-version. Без второго придёт 400 ещё до проверки ключа.
Ключ Anthropic выдаётся в консоли, консоль из России закрыта. Разбираем, как устроен API, что писать в заголовках и base URL, и как читать ответы 400, 401, 403, 429 и 529.
Коротко: Получить ключ Anthropic API и оплатить его из России напрямую не выйдет. Ключ вида sk-ant-… выдаётся в консоли Anthropic и привязан к организации с предоплаченным балансом, но России нет в списке поддерживаемых регионов Anthropic, российскую карту консоль не принимает, а на 10.10.2026 запрос с российского IP получает 403 Request not allowed ещё до проверки ключа. Рабочих варианта два: аккаунт и карта другой страны с сервером за границей или Anthropic-совместимый шлюз с оплатой в рублях, где меняются только base URL и ключ.
Как устроен API. Запрос уходит методом POST на https://api.anthropic.com/v1/messages с заголовками x-api-key (ваш ключ) и anthropic-version (дата версии протокола). SDK Anthropic и Claude Code берут адрес из ANTHROPIC_BASE_URL, поэтому на совместимый шлюз код переключается без правок, формат запросов тот же.
Ошибки Anthropic приходят в JSON с полем type: authentication_error (401), forbidden и permission_error (403), invalid_request_error (400), rate_limit_error (429), overloaded_error (529). Отдельный случай — текст Your credit balance is too low to access the Anthropic API: это 400, а не 402, и означает пустой баланс. Код ошибки по HTTP говорит, что делать: 401 и 400 чинить у себя, 429 и 529 повторять с паузой.
Claude Sonnet 5 и Opus 5.5 по нашему ключу: подходят и Anthropic SDK, и Claude Code, меняется только ANTHROPIC_BASE_URL. Аккаунт Anthropic и зарубежная карта не нужны.
from openai import OpenAI client = OpenAI( api_key="ВАШ_API_КЛЮЧ", base_url="https://api.kosareva.cloud/v1", ) response = client.chat.completions.create( model="claude-sonnet-5", messages=[{"role": "user", "content": "Привет!"}], stream=True, )
import OpenAI from "openai"; const client = new OpenAI({ apiKey: "ВАШ_API_КЛЮЧ", baseURL: "https://api.kosareva.cloud/v1", }); const response = await client.chat.completions.create({ model: "claude-sonnet-5", messages: [{ role: "user", content: "Привет!" }], stream: true, });
curl https://api.kosareva.cloud/v1/chat/completions \ -H "Authorization: Bearer ВАШ_API_КЛЮЧ" \ -H "Content-Type: application/json" \ -d '{"model":"claude-sonnet-5","messages":[{"role":"user","content":"Привет!"}],"stream":true}'
пустая переменная ANTHROPIC_API_KEY, ключ от другого сервиса, ключ отозван в консоли.
с российского IP приходит forbidden: Request not allowed (проверено 10.10.2026), а если у ключа или организации нет прав на модель — permission_error.
предоплата исчерпана, автопополнение не настроено или карта отклонена.
нет заголовка anthropic-version, max_tokens не указан, messages начинаются не с user, контекст длиннее допустимого.
больше запросов или токенов в минуту, чем разрешает уровень организации.
модель временно не справляется с нагрузкой, повтор через паузу проходит.
| Текст ошибки | Причина | Что делать |
|---|---|---|
| 401 authentication_error: invalid x-api-key | Ключ пустой, с опечаткой или не от Anthropic. | Проверить переменную окружения и заголовок x-api-key, пересоздать ключ. |
| 403 forbidden: Request not allowed | Запрос из неподдерживаемого региона, в том числе с российского IP (проверено 10.10.2026). До ключа дело не дошло. | Другой ключ с того же IP не поможет: нужен сервер в поддерживаемой стране или шлюз. |
| 403 permission_error | У ключа или организации нет прав на модель или действие. | Проверить доступ ключа к модели и ограничения организации в консоли. |
| 400 Your credit balance is too low to access the Anthropic API | Баланс организации на нуле. | Пополнить баланс в консоли. Повторы бесполезны, хотя код 400. |
| 400 invalid_request_error | Неверный параметр: нет max_tokens, нет anthropic-version, неверный формат messages. | Прочитать message: там названо поле. Исправить запрос. |
| 429 rate_limit_error | Превышен лимит запросов или токенов в минуту. | Повторить с растущей паузой, уважать retry-after, сократить параллельность. |
| 529 overloaded_error | Модель перегружена на стороне Anthropic. | Повторить через 5–30 секунд, в SDK max_retries делает это сам. |
Поле type в JSON стабильно, текст message может меняться. Если ответ пришёл не в JSON, запрос не дошёл до API: проверьте base URL и прокси.
Anthropic требует два заголовка: x-api-key и anthropic-version. Без второго придёт 400 ещё до проверки ключа.
authentication_error — чинить ключ. forbidden и permission_error — регион или права, ключ ни при чём. credit balance is too low — пополнять. rate_limit_error и overloaded_error — повторять.
SDK Anthropic и Claude Code читают ANTHROPIC_BASE_URL. Так один и тот же код работает и с api.anthropic.com, и с совместимым шлюзом без правок.
В официальных SDK параметр max_retries с экспоненциальной паузой уже есть. Для 400 и 401 повторы отключайте: они не пройдут.
Если карта российская, консоль Anthropic её не примет. Либо зарубежная карта и аккаунт, либо шлюз с оплатой в рублях. Проверьте это до того, как писать код.
Переменные ANTHROPIC_BASE_URL и ANTHROPIC_API_KEY (или ANTHROPIC_AUTH_TOKEN) в окружении терминала; вход в аккаунт при этом не нужен. 403 при входе из России — регион, а не ключ.
Конструктор Anthropic(base_url=…, api_key=…) или те же переменные окружения. Исключения: AuthenticationError, PermissionDeniedError, RateLimitError, InternalServerError для 529.
Провайдер Anthropic с полем Base URL; если поля нет, выбирайте OpenAI Compatible и OpenAI-совместимый адрес того же шлюза.
Нода Anthropic принимает ключ и base URL в credentials; ошибка приходит в сыром ответе, поле type там на месте.
Это адрес, куда SDK шлёт запросы; по умолчанию https://api.anthropic.com. Меняют его на адрес совместимого шлюза через ANTHROPIC_BASE_URL или параметр base_url, формат запросов при этом не меняется.
Так устроен API Anthropic: нехватка баланса считается ошибкой запроса. В коде ловите по тексту message или по BadRequestError и не повторяйте такой запрос.
Российскую карту консоль не принимает, а России нет в списке поддерживаемых регионов Anthropic. Работают зарубежная карта с аккаунтом другой страны или шлюз с оплатой в рублях: у нас это Claude API по ключу из кабинета.
Повторять через 5–30 секунд: модель перегружена на стороне Anthropic, ваш запрос в порядке. В официальных SDK параметр max_retries делает это сам.
У Anthropic напрямую нет. Через совместимый шлюз — да: у нас Claude Sonnet 5 и Opus 5.5 по одному ключу, оплата картой РФ или через СБП от 50 ₽, компаниям — по счёту с договором и актом, см. ИИ для бизнеса.
OpenAI-совместимый адрес, оплата в рублях, ключ сразу после регистрации. Пополнение картой от 50 ₽.