← Назад в блог

28 сентября 2026 г. • 12 мин • AI Architecture Team

Claude Code через API-ключ и свой base URL: прокси, OpenRouter, шлюзы

Как подключить Claude Code через API-ключ: ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN и ANTHROPIC_BASE_URL, HTTPS-прокси, OpenRouter, OmniRoute и шлюзы. Сравнение для России и частые ошибки.

Коротко: как Claude Code подключается к модели

У Claude Code три способа авторизации. Первый — вход в аккаунт с подпиской Pro, Max, Team или Enterprise через браузер (команда /login). Второй — API-ключ в переменной ANTHROPIC_API_KEY: он отправляется в заголовке x-api-key, и расход оплачивается по токенам. Третий — токен в переменной ANTHROPIC_AUTH_TOKEN: он уходит в заголовке Authorization: Bearer и предназначен для прокси и шлюзов.

Куда отправлять запросы, определяет переменная ANTHROPIC_BASE_URL. Если её нет, Claude Code обращается к api.anthropic.com. Если задать свой адрес, все запросы к модели пойдут туда — так Claude Code подключают к OpenRouter, к локальному роутеру OmniRoute или к Anthropic-совместимому шлюзу. Отдельного флага --base-url нет, только переменные окружения или блок env в settings.json.

Для России вопрос сводится к выбору: собственный аккаунт Anthropic плюс HTTP-прокси, агрегатор вроде OpenRouter, самостоятельно поднятый роутер или шлюз с оплатой в рублях. Ниже разберём каждый вариант и сравним их в таблице.

# общая схема подключения через свой base URL
export ANTHROPIC_BASE_URL="https://адрес-шлюза"      # без /v1 на конце
export ANTHROPIC_AUTH_TOKEN="токен-этого-сервиса"   # уходит как Authorization: Bearer
claude

Подробнее: Как запустить Claude Code из России без VPN

ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN и ANTHROPIC_BASE_URL: в чём разница

Путаница между двумя переменными с ключом — главная причина ошибки 401. Разница только в том, в каком HTTP-заголовке уходит значение. Если положить ключ не в ту переменную, сервер получит его в заголовке, который не читает, и ответит отказом.

Когда задано несколько способов сразу, Claude Code выбирает по приоритету: сначала облачные провайдеры (Bedrock, Vertex, Foundry), затем ANTHROPIC_AUTH_TOKEN, затем ANTHROPIC_API_KEY, затем скрипт apiKeyHelper, долгоживущий CLAUDE_CODE_OAUTH_TOKEN и в самом конце — вход по подписке. Поэтому, если у вас одновременно есть логин и ключ в окружении, работать будет ключ. ANTHROPIC_AUTH_TOKEN применяется сразу, а ANTHROPIC_API_KEY в интерактивном режиме требует один раз подтвердить его использование.

  • Если сервис не уточняет, какой заголовок читает, начните с ANTHROPIC_AUTH_TOKEN — так советует и документация Claude Code.
  • Проверить, какой способ авторизации реально активен, можно командой /status внутри сессии.
ПеременнаяЧто задаётЗаголовокКогда использовать
ANTHROPIC_BASE_URLАдрес API вместо api.anthropic.com—Любой прокси, шлюз или роутер
ANTHROPIC_AUTH_TOKENТокен доступаAuthorization: BearerШлюзы и сервисы, которые просят bearer-токен
ANTHROPIC_API_KEYAPI-ключx-api-keyПрямой ключ из Claude Console или сервис, который просит x-api-key
HTTPS_PROXYHTTP(S)-прокси для всего трафика—Свой аккаунт Anthropic через прокси

Где взять API-ключ для Claude Code

Официальный API-ключ выпускается в Claude Console (platform.claude.com) после пополнения баланса. Из России здесь две проблемы: регион не входит в список поддерживаемых Anthropic, а российские карты не принимаются. Ключи с маркетплейсов — это чужие аккаунты, которые Anthropic блокирует вместе с балансом, и агент встаёт посреди задачи.

Если вы используете сторонний сервис, ключ выпускается в его кабинете и работает только с его адресом. Ключ OpenRouter не подойдёт к api.anthropic.com, ключ Anthropic — к OpenRouter, а токен шлюза — к кому-либо, кроме этого шлюза. Пара «base URL + ключ» всегда должна быть от одного сервиса.

Отдельный случай — CLAUDE_CODE_OAUTH_TOKEN, который выдаёт команда claude setup-token. Это не API-ключ, а годовой токен вашей подписки для CI и скриптов: он работает только при активной подписке Pro, Max, Team или Enterprise.

Подробнее: Подписка или API: сколько стоит Claude Code

Вариант 1: свой аккаунт Anthropic через HTTP-прокси

Если у вас есть аккаунт Anthropic (подписка или Console с оплаченным балансом), Claude Code можно пустить через прокси-сервер в поддерживаемой стране. Он понимает стандартные переменные HTTPS_PROXY и HTTP_PROXY, а также NO_PROXY для исключений. SOCKS-прокси Claude Code не поддерживает — нужен именно HTTP(S)-прокси. Адрес обязательно указывается со схемой http:// или https://, иначе Claude Code не запустится и назовёт переменную с ошибкой.

Через прокси проходит весь трафик: вход по подписке, запросы к модели, проверки обновлений. Base URL при этом менять не нужно. Честный минус: вы по-прежнему пользуетесь аккаунтом из неподдерживаемого региона, и оплата российской картой всё равно невозможна. Нестабильный или общий прокси с «грязными» IP повышает риск блокировки аккаунта, а заблокированный аккаунт с оплаченной подпиской никто не вернёт.

  • Строка Proxy в /status показывает активный прокси и помечает адрес, который не удалось разобрать.
  • Переменные окружения читаются один раз при запуске — после изменения перезапустите claude.
# прокси с авторизацией; SOCKS не поддерживается
export HTTPS_PROXY="http://user:password@proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1"
claude

# то же самое в ~/.claude/settings.json
{
  "env": {
    "HTTPS_PROXY": "http://user:password@proxy.example.com:8080"
  }
}

Вариант 2: Claude Code через OpenRouter

OpenRouter — зарубежный агрегатор моделей разных провайдеров с единым балансом. У него есть Anthropic-совместимый endpoint, и Claude Code подключается к нему штатными переменными. Официальная инструкция OpenRouter требует явно обнулить ANTHROPIC_API_KEY, чтобы Claude Code не пытался авторизоваться напрямую в Anthropic, и один раз выполнить /logout, если вы раньше входили в аккаунт Anthropic, — иначе возможны конфликты авторизации и странные ошибки «модель не найдена».

Оплата: OpenRouter принимает банковские карты (российские не проходят) и криптовалюту USDC; минимальное пополнение — 5 долларов, крипто-платежи не возвращаются. Сам OpenRouter предупреждает, что Claude Code оптимизирован под модели Anthropic и с моделями других провайдеров может работать некорректно.

export ANTHROPIC_BASE_URL="https://openrouter.ai/api"
export ANTHROPIC_AUTH_TOKEN="ваш_ключ_OpenRouter"
export ANTHROPIC_API_KEY=""   # обязательно пустой
claude
# внутри сессии: /status — проверить base URL и источник токена

Вариант 3: OmniRoute — как установить и подключить к Claude Code

OmniRoute — это не сервис, а open-source программа под лицензией MIT, которую вы запускаете сами: локально или на своём сервере. Это роутер, который собирает за одним адресом много провайдеров (платные API-ключи, бесплатные тарифы, локальные модели), умеет автоматически переключаться между ними при исчерпании лимитов и отдаёт в том числе Anthropic-совместимый endpoint для Claude Code. Устанавливается через npm или Docker, панель управления по умолчанию открывается на http://localhost:20128.

Для Claude Code в документации OmniRoute указан корневой адрес без /v1 — в отличие от OpenAI-совместимых клиентов, которым нужен http://localhost:20128/v1. Токен вида oma_live_… создаётся в панели OmniRoute в разделе Endpoints. В свежих версиях есть команда omniroute launch, которая сама подставляет нужные переменные и запускает Claude Code.

Важные оговорки. Во-первых, OmniRoute сам по себе не даёт доступа к Claude: ему нужен источник — ваш ключ Anthropic, ключ OpenRouter или шлюза. Бесплатные провайдеры внутри обычно отдают не модели Claude, и Claude Code с ними работает хуже: например, документация OmniRoute отдельно предупреждает о несовпадении размера контекстного окна. Во-вторых, OmniRoute умеет подключать подписки через OAuth, но правила Anthropic прямо запрещают пропускать запросы через учётные данные подписок Free, Pro и Max в сторонних сервисах, а Anthropic оставляет за собой право применять меры без предупреждения. Использовать так свою подписку — прямой риск бана.

# установка и запуск роутера
npm install -g omniroute
omniroute            # панель: http://localhost:20128

# подключение Claude Code (токен — из Dashboard → Endpoints)
export ANTHROPIC_BASE_URL="http://localhost:20128"   # для Claude Code — без /v1
export ANTHROPIC_AUTH_TOKEN="oma_live_..."
claude

Вариант 4: Anthropic-совместимый шлюз с оплатой в рублях

Шлюз — это готовый сервис, который принимает запросы в формате Anthropic API и сам обеспечивает доступ к моделям. Вам не нужно ни аккаунт Anthropic, ни прокси, ни свой сервер: вы оплачиваете тариф, получаете токен в кабинете и задаёте две переменные. Идентификаторы моделей совпадают с официальными, поэтому /model claude-sonnet-5 или claude-opus-5-5 работают так же, как при прямом подключении.

Так устроен и наш шлюз: base URL https://claude-gateway.ru/api, токен из личного кабинета в ANTHROPIC_AUTH_TOKEN (шлюз принимает и заголовок x-api-key, то есть ANTHROPIC_API_KEY тоже сработает), сообщения идут на /api/v1/messages, остальные методы /api/v1/* проксируются. Оплата картой РФ или через СБП, есть пробный тариф на один день. Это независимый сервис, не аффилированный с Anthropic.

Минус любого шлюза — вы зависите от стабильности конкретного сервиса, а токены стоят дороже официального прайса, потому что в цену входят инфраструктура и рублёвый биллинг. Выбирая шлюз, смотрите, показывает ли он расход по каждому запросу и можно ли отозвать и перевыпустить ключ.

export ANTHROPIC_BASE_URL="https://claude-gateway.ru/api"
export ANTHROPIC_AUTH_TOKEN="ваш_токен_из_кабинета"
claude

Подробнее: Документация: endpoint, модели и переменные · Тарифы шлюза в рублях

Сравнение вариантов для России

Сведём четыре варианта по критериям, которые важны именно для пользователя из России. Задержку мы оцениваем качественно: она зависит от вашей сети и расположения серверов, а любой промежуточный узел добавляет свой прыжок.

КритерийСвой аккаунт + проксиOpenRouterOmniRouteШлюз в рублях
Оплата из РФНет: нужна зарубежная картаНет карты РФ; крипто USDCСам бесплатный, платите источникуКарта РФ, СБП
Риск бана аккаунтаЕсть: регион не поддерживаетсяНет аккаунта AnthropicВысокий, если подключать подпискуНет аккаунта Anthropic
Совместимость с Claude CodeПолная (прямой API)Хорошая на моделях ClaudeЗависит от провайдера и моделиФормат Anthropic API, те же ID моделей
ЗадержкаПлюс прыжок через проксиПлюс прыжок через агрегаторПлюс роутер и провайдерПлюс прыжок через шлюз
Что нужно настроитьHTTPS_PROXYBase URL, токен, пустой API_KEYСвой сервер и источникиBase URL и токен

Подробнее: Почему блокируют аккаунты Claude Code и как этого избежать

Где хранить ключ: settings.json и расширение VS Code

Переменные из export или $env: живут только в текущем окне терминала. Чтобы настройка работала всегда, в том числе в фоновых агентах, добавьте её в блок env файла ~/.claude/settings.json. Если одна и та же переменная задана и в оболочке, и в этом файле, приоритет у файла. Не кладите ключ в .claude/settings.json проекта — он коммитится в репозиторий; для одного проекта используйте .claude/settings.local.json и добавьте его в .gitignore.

В расширении Claude Code для VS Code ключ надёжнее всего задавать в пользовательских настройках самого VS Code — параметр claudeCode.environmentVariables (команда Preferences: Open User Settings (JSON)). Расширение проверяет авторизацию до запуска и читает именно этот параметр, а значения из ~/.claude/settings.json до этой проверки не доходят. Подробно про VS Code, Cursor и JetBrains — в отдельной статье.

// VS Code: settings.json пользователя
{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://claude-gateway.ru/api" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "ваш_токен" }
  ]
}

Подробнее: Claude Code в VS Code, Cursor и JetBrains: настройка · Установка Claude Code и переменные на Windows, macOS, Linux

Частые ошибки при подключении через API-ключ и прокси

Прежде чем разбираться с Claude Code, проверьте пару «адрес + ключ» одним запросом из терминала. Ответ с «id»:«msg_…» значит, что адрес и ключ в порядке. Ошибка про неизвестную модель тоже доказывает, что авторизация прошла. 401 — ключ отклонён или лежит не в той переменной.

  • Лишний /v1 в base URL. Claude Code сам дописывает /v1/messages, поэтому адрес вида https://claude-gateway.ru/api/v1 превращается в …/v1/v1/messages и даёт 404. Указывайте корень API без /v1.
  • Ключ от другого сервиса. Ключ Anthropic с адресом OpenRouter, токен OpenRouter с адресом шлюза и любые другие смешанные пары дают 401.
  • Не та переменная. Сервис ждёт Bearer, а ключ лежит в ANTHROPIC_API_KEY (или наоборот) — поменяйте переменную и перезапустите claude.
  • Старый логин мешает. Если при запуске появляется предупреждение о двух источниках авторизации, выполните /logout, чтобы остался только токен из переменной.
  • ANTHROPIC_API_KEY задан, но игнорируется. В интерактивном режиме ключ нужно один раз подтвердить; если вы когда-то отказались, включите его заново в /config.
  • SOCKS-прокси или адрес прокси без http://. Claude Code поддерживает только HTTP(S)-прокси и требует схему в адресе.
  • Переменные не подхватились. Они читаются при старте: после изменения перезапустите claude, а проверку делайте через /status — там видны base URL, прокси и источник ключа.
curl -sS "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "claude-haiku-4-5", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'

Что меняется в Claude Code при своём base URL

Основная работа агента — чтение и правка файлов, команды, streaming, инструменты, MCP-серверы, навыки — от смены адреса не зависит, если сервис корректно передаёт формат Anthropic API. Но несколько функций Claude Code, по официальной документации, ведут себя иначе, когда ANTHROPIC_BASE_URL указывает не на api.anthropic.com.

  • Поиск инструментов MCP (tool search) по умолчанию выключается. Если сервис пропускает блоки tool_reference, включите его переменной ENABLE_TOOL_SEARCH=true.
  • Remote Control, начиная с версии 2.1.196, отключён — как и при работе через Bedrock, Vertex и Foundry.
  • Проверка доступности быстрого режима (/fast) обращается напрямую к api.anthropic.com и с одним только bearer-токеном считает режим недоступным.
  • Подключения claude.ai (коннекторы) и /schedule завязаны на вход в аккаунт claude.ai, поэтому при работе через токен в переменной на них не стоит рассчитывать.

Подробнее: Скиллы, субагенты и MCP в Claude Code · Claude Code Desktop, Web и Remote Control

Частые вопросы

Как подключить Claude Code через API-ключ?

Задайте ANTHROPIC_BASE_URL с адресом сервиса (без /v1) и ключ в ANTHROPIC_AUTH_TOKEN или ANTHROPIC_API_KEY — в зависимости от того, какой заголовок читает сервис. Затем запустите claude и проверьте командой /status, что активен именно ваш ключ. Для прямого ключа Anthropic base URL менять не нужно.

Чем ANTHROPIC_AUTH_TOKEN отличается от ANTHROPIC_API_KEY?

Только заголовком: AUTH_TOKEN уходит как Authorization: Bearer, API_KEY — как x-api-key. AUTH_TOKEN имеет более высокий приоритет и применяется сразу, а API_KEY в интерактивном режиме нужно один раз подтвердить. Если сервис не уточняет, начинайте с AUTH_TOKEN.

Как настроить прокси для Claude Code?

Задайте HTTPS_PROXY в формате http://user:password@host:port в оболочке или в блоке env файла ~/.claude/settings.json и перезапустите claude. SOCKS-прокси не поддерживаются. Прокси решает сетевую доступность, но не оплату: аккаунт Anthropic всё равно нужно оплачивать зарубежной картой.

Можно ли использовать Claude Code с OpenRouter?

Да: ANTHROPIC_BASE_URL=https://openrouter.ai/api, ключ OpenRouter в ANTHROPIC_AUTH_TOKEN и пустой ANTHROPIC_API_KEY. Если раньше вы входили в аккаунт Anthropic, выполните /logout. Лучше всего Claude Code работает на моделях Claude, с моделями других провайдеров возможны сбои.

Что такое OmniRoute и нужен ли он для Claude Code?

OmniRoute — open-source роутер, который вы запускаете сами (npm install -g omniroute, панель на localhost:20128). Он объединяет много провайдеров за одним адресом, но доступа к Claude сам не даёт — нужен ключ-источник. Подключать через него подписку Claude нельзя: это нарушает правила Anthropic.

Почему Claude Code выдаёт 404 при своём base URL?

Чаще всего в адресе лишний /v1: Claude Code сам добавляет /v1/messages, и получается двойной путь. Уберите /v1 с конца ANTHROPIC_BASE_URL — например, для нашего шлюза правильно https://claude-gateway.ru/api.

Читайте также

Что дальше

Если планируете внедрять Claude API в продакшн, начните с понятной структуры тарифа и сразу настройте контроль расхода токенов в личном кабинете.