DEV Community

Promptra Team for Promptra

Posted on

Claude Code в России на своём API-ключе

Схема запуска Claude Code из России на собственном API-ключе: слева окно терминала с курсором, в центре прокси-слой в виде многогранника-маршрутизатора, справа облако языковой модели, между ними плавные соединительные линии потока запроса, тёплая палитра терракота и кремовый

Claude Code — это агентный CLI от Anthropic: ты пишешь задачу в терминале, а инструмент сам читает файлы, правит код, гоняет тесты и коммитит. Работает он на тех же моделях Claude, что и API. Проблема для России одна: оформить подписку Claude Pro/Max или платить за API напрямую через карту иностранного банка из РФ сложно и нестабильно. Решение, которое не нарушает лицензию Anthropic: запустить Claude Code на своём оплаченном API-ключе через сторонний endpoint (base_url), который принимает оплату в рублях. По состоянию на 2026-05-28 это рабочая схема — Claude Code официально поддерживает переменную окружения для смены endpoint.

Ниже — что именно настраивать, какие переменные окружения за что отвечают (с точными именами из официальной документации Claude Code), как проверить, что всё поднялось, и как держать под контролем расход токенов. Цены приводим в рублях по курсу ЦБ. Тон — для разработчика, который хочет за десять минут получить работающий claude в терминале и не разбираться потом, почему он внезапно лёг.

Что такое Claude Code и почему в России с ним заминка

Claude Code устанавливается как npm-пакет (@anthropic-ai/claude-code) и запускается командой claude прямо в директории проекта. В отличие от чата в браузере, это агент: он видит файловую систему, выполняет shell-команды (с твоего разрешения), умеет планировать многошаговые задачи и работать с git. По сути это тот же движок Claude, обёрнутый в инструмент, который живёт в терминале и редакторе. Подробнее — пошаговая инструкция миграции с OpenAI на Promptra на Python.

Запитать его можно двумя способами. Первый — подписка Claude (Pro, Max, Team, Enterprise): тогда Claude Code авторизуется через твой аккаунт, а лимиты считаются по тарифу подписки. Второй — собственный API-ключ с оплатой по факту использования (pay-as-you-go): тогда каждый запрос тарифицируется по числу токенов.

Для разработчика из России обе двери прикрыты на этапе оплаты. Подписку Anthropic не оформить российской картой — платёжный процессор отбивает карты с российским BIN. Pay-as-you-go API тоже требует привязки зарубежной карты и пополнения в долларах. Сам Claude Code при этом не заблокирован технически — нет geo-фильтра по IP на уровне CLI, как нет его и у большинства dev-инструментов. Заминка ровно в платеже: нечем легально и стабильно пополнить баланс в Anthropic из РФ.

Важно сразу разделить два разных вопроса, которые часто путают:

  • Лицензия на Claude Code — сам инструмент бесплатный, его можно ставить и запускать откуда угодно.
  • Доступ к моделям — за каждый токен надо платить, и вот тут нужен живой, оплаченный API-ключ.

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

Подписка против собственного API-ключа: в чём разница для России

Прежде чем настраивать, стоит понять, какую именно модель оплаты ты выбираешь. Это влияет на то, как считаются деньги и насколько предсказуем счёт.

Подписка (Pro/Max) — фиксированная месячная плата с лимитами по использованию. Удобно, если гоняешь Claude Code много и каждый день. Минус для РФ — её нечем оплатить напрямую, и привязать подписку к стороннему endpoint нельзя: подписочная авторизация идёт через аккаунт Anthropic, а не через base_url.

Собственный API-ключ (pay-as-you-go) — оплата за фактические токены: ноль активности — ноль расходов. Это и есть та модель, которую можно перенаправить на сторонний endpoint, потому что Claude Code разрешает заменить адрес API и токен авторизации переменными окружения.

Сравнение двух способов оплаты Claude Code в виде двух вертикальных дорожек: левая дорожка с подпиской упирается в перечёркнутый барьер карты, правая дорожка на собственном API-ключе проходит через прокси-узел и доходит до облака модели, контраст красного тупика и зелёного сквозного пути

Для команды из России практический вывод простой: рабочий путь — собственный API-ключ через endpoint, который принимает рубли. Дальше Claude Code не отличает «настоящий» Anthropic от прокси-слоя — он шлёт стандартные запросы в формате Messages API на тот адрес, который ты ему назвал, и подставляет тот токен, который ты дал.

Как это работает: свой ключ + свой base_url

Архитектура простая. Claude Code общается с моделью по HTTP — отправляет запросы в формате Anthropic Messages API на endpoint api.anthropic.com. Этот адрес зашит не намертво: и его, и токен авторизации можно переопределить переменными окружения. Когда ты подставляешь endpoint агрегатора, происходит вот что:

  1. Claude Code формирует обычный запрос Messages API (POST /v1/messages) с твоим промптом, контекстом файлов и списком инструментов.
  2. Запрос уходит не в Anthropic напрямую, а на endpoint агрегатора, указанный в ANTHROPIC_BASE_URL.
  3. Агрегатор проксирует запрос в настоящий Anthropic со своего юр.лица в поддерживаемой стране, получает ответ и возвращает его обратно Claude Code.
  4. С точки зрения Anthropic это легальный API-клиент с зарубежным billing. С точки зрения тебя — сервис с рублёвой оплатой, договором и закрывающими документами.

Диаграмма потока запроса через агрегатор: терминал с Claude Code отправляет пакет данных, стрелка ведёт к промежуточному узлу-ромбу с подписью-маркером маршрутизации, оттуда стрелка к большому облаку провайдера модели и обратный пунктир ответа, всё в чистом техническом стиле без подписей

Ключевой момент — Claude Code не знает и ему всё равно, что между ним и Anthropic стоит прокси. Для него это просто другой адрес и другой токен. Никаких патчей, форков или модификаций самого CLI: всё делается штатными переменными окружения, которые Anthropic документирует именно для маршрутизации через прокси и шлюзы.

Шаг 1. Установить Claude Code

Claude Code распространяется как npm-пакет. Нужен Node.js версии 18 или новее. Установка глобальная:

npm install -g @anthropic-ai/claude-code
Enter fullscreen mode Exit fullscreen mode

Проверка, что бинарь встал:

claude --version
Enter fullscreen mode Exit fullscreen mode

Если команда отдаёт номер версии — инструмент на месте. Запускать его пока не нужно: без настроенного endpoint он попытается авторизоваться через аккаунт Anthropic, а это нам не подходит. Сначала — переменные окружения.

Альтернатива для тех, кто не хочет глобальный npm-пакет: Anthropic также распространяет нативный установщик. Актуальные способы установки всегда в официальном гайде по установке Claude Code — там же системные требования и варианты под Windows/macOS/Linux.

Если ты работаешь не в терминале, а в IDE-редакторе, та же логика «свой ключ + свой base_url» применима и к Cursor — разбор настройки в гайде Cursor на своём API-ключе из России.

Шаг 2. Получить API-ключ

Тебе нужен API-ключ от endpoint, который принимает рубли и проксирует в Anthropic. У Promptra это ключ вида prm-..., который выдаётся после оформления договора-оферты на юр.лицо. Оплата проходит на юр.лицо с полным пакетом закрывающих документов через ЭДО (Диадок/СБИС) — счёт, акт, счёт-фактура, УПД. Цена за токены — 1-в-1 с официальным прайсом Anthropic по курсу ЦБ, без наценки на сами токены; сервисная комиссия 5% берётся только при пополнении баланса.

Получить ключ и обсудить подключение можно у команды напрямую в Telegram: promptra.ru. Backend-онбординга с автоматической регистрацией пока нет — это сделано осознанно: договор и реквизиты согласует живой человек, а не форма.

Что важно проверить в ключе до настройки:

  • К каким моделям он даёт доступ. Для Claude Code нужны как минимум Opus и Sonnet — это рабочая пара для агентных задач (Opus для сложного reasoning, Sonnet для основной массы кода).
  • Endpoint совместим с Anthropic Messages API. Claude Code шлёт запросы в формате Anthropic (/v1/messages), а не в формате OpenAI. Это другой формат, чем для OpenAI SDK — endpoint должен принимать именно Anthropic-схему.

Концепт получения и хранения API-ключа: стилизованный ключ-токен на переднем плане, за ним контур терминала и файл конфигурации, тонкая линия связывает ключ с окружением запуска, аккуратная геометрия без надписей в тёплых тонах

Шаг 3. Настроить переменные окружения

Здесь — сердце настройки. Claude Code читает несколько переменных окружения, которыми переопределяется и адрес API, и авторизация. Имена ниже — точные, из официальной документации Claude Code по переменным окружения.

Переменная Что делает
ANTHROPIC_BASE_URL Переопределяет endpoint API — направляет запросы через прокси или шлюз вместо api.anthropic.com
ANTHROPIC_AUTH_TOKEN Значение для заголовка Authorization — Claude Code сам добавит к нему префикс Bearer
ANTHROPIC_API_KEY Ключ, который уходит в заголовок X-Api-Key — это путь для прямого ключа Anthropic

Для работы через сторонний endpoint нужна пара ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN. Логика такая: ANTHROPIC_BASE_URL говорит, куда слать запрос, а ANTHROPIC_AUTH_TOKENчем авторизоваться (он попадёт в заголовок Authorization: Bearer <твой-токен>). Это ровно тот заголовок, который ждёт прокси-слой агрегатора.

Тонкий момент: ANTHROPIC_API_KEY и ANTHROPIC_AUTH_TOKEN — это разные заголовки. ANTHROPIC_API_KEY уходит в X-Api-Key (формат прямого Anthropic), а ANTHROPIC_AUTH_TOKEN — в Authorization: Bearer. Большинство сторонних endpoint'ов ждут именно Authorization: Bearer, поэтому для агрегатора используем ANTHROPIC_AUTH_TOKEN. Какой именно заголовок ждёт конкретный endpoint — уточни в его документации; если не уверен — спроси у команды при выдаче ключа.

Вариант A: через профиль шелла

Самый прямой способ — прописать export в профиль шелла (~/.zshrc для zsh, ~/.bashrc для bash). Так переменные подхватятся в каждой новой сессии терминала:

# ~/.zshrc или ~/.bashrc
export ANTHROPIC_BASE_URL="https://api.promptra.ru"
export ANTHROPIC_AUTH_TOKEN="prm-xxxxxxxxxxxxxxxx"
Enter fullscreen mode Exit fullscreen mode

После правки профиля перезапусти терминал или примени изменения в текущей сессии:

source ~/.zshrc
Enter fullscreen mode Exit fullscreen mode

Один нюанс: если у тебя ранее был задан ANTHROPIC_API_KEY (например, остался от попыток с прямым Anthropic), его лучше снять — иначе он может перебить логику авторизации. В документации Anthropic прямо отмечено: при работе через подписку держать ANTHROPIC_API_KEY неустановленным, чтобы избежать неожиданных списаний. По той же причине при работе через сторонний ANTHROPIC_AUTH_TOKEN лишний ANTHROPIC_API_KEY лучше убрать:

unset ANTHROPIC_API_KEY
Enter fullscreen mode Exit fullscreen mode

Вариант B: через settings.json

Claude Code читает конфиг из ~/.claude/settings.json (глобально) или .claude/settings.json в корне проекта. Переменные окружения можно задать в блоке env — удобно, если не хочешь засорять профиль шелла или нужна разная конфигурация под разные проекты:

{
 "env": {
 "ANTHROPIC_BASE_URL": "https://api.promptra.ru",
 "ANTHROPIC_AUTH_TOKEN": "prm-xxxxxxxxxxxxxxxx"
 }
}
Enter fullscreen mode Exit fullscreen mode

Проектный .claude/settings.json в корне репозитория — хороший способ зафиксировать endpoint для всей команды (но сам токен в git не коммить — выноси его в переменную окружения или в локальный .claude/settings.local.json, который добавлен в .gitignore).

Поведение, которое экономит полчаса дебага: Claude Code читает ANTHROPIC_BASE_URL один раз при старте процесса и больше не перечитывает. Если поменять переменную, пока claude уже запущен — ничего не произойдёт, и ошибки тоже не будет. Меняешь endpoint — перезапускай сессию.

Шаг 4. Выбрать модель

Claude Code оперирует не голыми именами моделей, а алиасами. Это удобно: не надо помнить точные версии. Основные алиасы (из документации по конфигурации модели):

Алиас Назначение
opus Самая мощная модель — сложный reasoning, архитектура, тяжёлые агентные задачи
sonnet Повседневный кодинг — основная рабочая лошадка
haiku Быстрые и дешёвые мелкие задачи
opusplan Гибрид: opus в режиме планирования, sonnet на исполнении

Переключить модель внутри сессии — команда /model:

/model opus
/model sonnet
Enter fullscreen mode Exit fullscreen mode

Запустить сразу на нужной модели:

claude --model opus
Enter fullscreen mode Exit fullscreen mode

Если ты работаешь через сторонний endpoint, есть нюанс: алиасы opus/sonnet/haiku резолвятся в конкретные версии моделей на стороне Anthropic, и эти соответствия со временем обновляются. Чтобы зафиксировать точную версию (например, чтобы счёт был предсказуем по конкретной модели), задай её полным именем через переменные ANTHROPIC_DEFAULT_OPUS_MODEL и ANTHROPIC_DEFAULT_SONNET_MODEL:

export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-4-7"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-4-6"
Enter fullscreen mode Exit fullscreen mode

Точные идентификаторы моделей, которые принимает endpoint, уточни в его каталоге — у разных агрегаторов набор может отличаться. Если endpoint поддерживает discovery моделей, Claude Code умеет подтягивать список из шлюза; если нет — добавляй модель явно через переменные выше.

Историческая деталь: переменная ANTHROPIC_SMALL_FAST_MODEL (для фоновых задач) сейчас deprecated — её заменил ANTHROPIC_DEFAULT_HAIKU_MODEL. Если в старых гайдах встретишь первую — используй вторую.

Шаг 5. Проверить, что всё работает

Перед тем как кидать Claude Code на реальный проект, убедись, что endpoint отвечает. Два уровня проверки.

Уровень 1 — endpoint живой (curl). Прежде чем запускать сам CLI, проверь, что адрес и токен в принципе работают. Запрос в формате Anthropic Messages API:

curl https://api.promptra.ru/v1/messages \
 -H "Authorization: Bearer prm-xxxxxxxxxxxxxxxx" \
 -H "anthropic-version: 2023-06-01" \
 -H "content-type: application/json" \
 -d '{
 "model": "claude-sonnet-4-6",
 "max_tokens": 64,
 "messages": [{"role": "user", "content": "Ответь одним словом: работает?"}]
 }'
Enter fullscreen mode Exit fullscreen mode

Если в ответе пришёл JSON с полем content и текстом — endpoint и токен в порядке. Если 401 — проблема с токеном или заголовком авторизации. Если 404 по модели — этой модели нет в каталоге endpoint'а, проверь идентификатор.

Уровень 2 — Claude Code видит endpoint. Теперь запусти сам CLI в любой директории:

claude
Enter fullscreen mode Exit fullscreen mode

Дай простую задачу, чтобы проверить полный цикл, например: «покажи структуру текущей директории». Если Claude Code ответил, прочитал файлы и не запросил логин в аккаунт Anthropic — значит, переменные подхватились и запросы идут через твой endpoint. Проверить текущую модель и статус можно командой /status внутри сессии.

Двухступенчатая проверка работоспособности в виде вертикального флоу: сверху узел curl-запроса с галочкой-индикатором ответа, ниже узел запущенного терминала Claude Code с галочкой, между ними соединение, всё в спокойной геометрии без текста, акцент терракотой на успешных узлах

Если на втором уровне Claude Code всё-таки просит логин — почти всегда причина в том, что переменные не подхватились в той сессии терминала, откуда ты его запустил. Проверь:

echo $ANTHROPIC_BASE_URL
echo $ANTHROPIC_AUTH_TOKEN
Enter fullscreen mode Exit fullscreen mode

Пусто? Значит, source ~/.zshrc не выполнен или export ушёл не в тот файл профиля. Перезапусти терминал начисто и повтори.

Шаг 6. Контролировать расход токенов

Главное отличие pay-as-you-go от подписки: ты платишь за токены, и счёт зависит от того, сколько контекста гоняешь. Claude Code — агент прожорливый: он подгружает файлы в контекст, ведёт длинные диалоги, делает много шагов. Без контроля можно за активный день сжечь заметную сумму. Разберём цены и как их держать в узде.

Актуальные цены на флагманские модели Claude (из нашего каталога, курс ЦБ 71.668 ₽/$ на 2026-05-27):

Модель Input ($/1M) Output ($/1M) Input (₽/1M) Output (₽/1M) Контекст
Claude Opus 4.7 $5 $25 350 ₽ 1790 ₽ до 1M
Claude Sonnet 4.6 $3 $15 210 ₽ 1070 ₽ до 1M
Claude Haiku 4.5 по каталогу по каталогу до 200K

Цены 1-в-1 с официальным прайсом Anthropic по курсу ЦБ. Output-токены дороже input-токенов примерно в 5 раз — а именно их генерация (код, объяснения, диффы) составляет основную часть счёта в агентной работе.

Один нюанс именно по Opus 4.7: у него новый токенайзер, который на одном и том же тексте может потратить до 35% больше токенов, чем предыдущие версии. То есть на бумаге цена за токен та же, но фактический расход на ту же задачу может оказаться выше. Для тяжёлых агентных сессий это ощутимо — закладывай поправку. Подробный разбор флагмана, бенчмарки и расчёт стоимости — в материале Claude Opus 4.7 API за рубли.

Практические приёмы, чтобы счёт не разлетелся:

  • Держи Sonnet по умолчанию, Opus включай точечно. На 80-90% задач Sonnet 4.6 справляется не хуже, а по output стоит в 1.67 раза дешевле. Opus оставь для сложного reasoning через /model opus, потом возвращайся. Когда Sonnet достаточно — в гайде Claude Sonnet API за рубли.
  • Используй opusplan. Режим сам гоняет Opus на планировании и переключается на Sonnet на исполнении — хороший дефолт для крупных задач.
  • Чисти контекст между задачами. Каждый новый запрос перечитывает всю историю сессии целиком — это input-токены, за которые ты платишь. Команда /clear сбрасывает контекст; новую несвязанную задачу начинай с чистого листа.
  • Не отключай prompt caching. Claude Code по умолчанию кэширует неизменные части промпта (системные инструкции, контекст) — это серьёзно режет стоимость input на длинных сессиях.
  • Следи за счётчиком. /cost внутри сессии показывает потраченное; на стороне endpoint обычно есть дашборд с балансом — заглядывай туда в первые дни.

Концепт счётчика расхода токенов: стилизованный измерительный прибор со шкалой-дугой и стрелкой, рядом два потока разной толщины — тонкий входящий и более широкий исходящий, символизирующие разную цену input и output токенов, чистая инфографика без цифр в тёплой палитре

Грубый ориентир: активная сессия на Sonnet 4.6 с подгрузкой среднего проекта и серией правок — это десятки тысяч input-токенов и тысячи output-токенов на задачу. Один насыщенный рабочий день на Sonnet чаще укладывается в несколько сотен рублей; на Opus с его токенайзером — заметно выше. Точные цифры зависят от размера кодабейза и стиля работы, поэтому первую неделю просто наблюдай за /cost и балансом.

Это легально: ты платишь за свой ключ, а не обходишь лицензию

Вокруг темы много путаницы, поэтому проговорим прямо. Схема «свой API-ключ + сторонний base_url» — это не обход лицензирования Claude Code и не взлом подписки:

  • Claude Code — бесплатный инструмент. Anthropic не берёт денег за сам CLI, и установка из России ничего не нарушает.
  • Ты платишь за реальные токены. Каждый запрос оплачивается настоящими деньгами в Anthropic — агрегатор проксирует его со своего юр.лица и billing в поддерживаемой стране. Никаких «бесплатных» или ворованных токенов.
  • ANTHROPIC_BASE_URL — штатная переменная. Anthropic сам документирует её для маршрутизации через прокси и корпоративные шлюзы. Ты используешь инструмент ровно так, как задумано — просто твой «шлюз» это российский агрегатор.

Граница, которую переходить не надо: не выдавай pay-as-you-go за подписку, не торгуй чужими credentials, не подсовывай чужой подписочный токен. Оплата же собственных токенов через легального посредника с договором — нормальная B2B-схема, как закупка любого зарубежного SaaS через российского реселлера. Юридическая сторона оплаты на компанию (договор, ЭДО, учёт расходов) — отдельная тема; разбор в материале Закрывающие документы на оплату нейросетей.

Частые ошибки при настройке

Соберём грабли, на которые наступают чаще всего.

Claude Code просит логин в аккаунт. Переменные не подхватились в текущей сессии. Проверь echo $ANTHROPIC_BASE_URL — если пусто, перезапусти терминал после правки профиля или проверь блок env в settings.json.

401 Unauthorized от endpoint. Токен невалиден или попал не в тот заголовок. Убедись, что используешь ANTHROPIC_AUTH_TOKEN (он идёт в Authorization: Bearer), а не ANTHROPIC_API_KEY (который идёт в X-Api-Key). Проверь, что в самом токене нет лишних кавычек или пробелов при копировании.

Меняю base_url — ничего не меняется. Claude Code читает endpoint один раз при старте процесса. Перезапусти сессию claude целиком после смены переменной.

404 или ошибка по модели. Алиас или полное имя модели не совпадает с тем, что есть в каталоге endpoint'а. Проверь точный идентификатор модели у своего endpoint и при необходимости задай его через ANTHROPIC_DEFAULT_OPUS_MODEL / ANTHROPIC_DEFAULT_SONNET_MODEL.

Старый ANTHROPIC_API_KEY мешает. Если когда-то экспериментировал с прямым Anthropic, переменная могла остаться в профиле и перебивать логику. Сними её через unset ANTHROPIC_API_KEY и проверь профиль шелла на дубли.

Внезапно дорого. Скорее всего работаешь на Opus и/или не чистишь контекст. Переключись на Sonnet через /model sonnet, чисти историю /clear между задачами и следи за /cost.


Promptra — Russian LLM API aggregator. One OpenAI-compatible endpoint to all flagship models: OpenAI (GPT-5.5, GPT-5.4), Anthropic (Claude Opus 4.7, Sonnet 4.6), Google (Gemini 3.1 Pro, 3.5 Flash), DeepSeek V4 Pro, Qwen 3.6 Plus.

Provider prices 1-to-1 at CBR rate — no markup on tokens. Ruble billing per contract, full closing documents through EDI. No VPN — legal B2B service in Russia.

Try: promptra.ru · model catalog · docs

Top comments (0)