Claude API из России: что реально работает в 2026 году
России нет в списке регионов Anthropic, а OpenRouter закрыл доступ 27 июня 2026 года. Что осталось: рублёвые агрегаторы с наценкой на день проверки и открытая модель на своём VPS.
Что говорит Anthropic про Claude API из России
Claude API из России официально недоступен. России нет в списке поддерживаемых стран Anthropic, и это один список для двух продуктов: над ним написано «Commercial API access and Claude.ai», а разделы API и Claude.ai совпадают страна в страну. Я перепроверил страницу supported-countries 20 сентября 2026 года. России в ней нет.
Это не гайд по обходу. Здесь нет инструкций про VPN и про иностранные карты. Это карта того, что реально существует для разработчика из России в сентябре 2026 года: что закрылось, что работает в рублях, во сколько это обходится по сравнению со списочной ценой, и какой вариант вообще не зависит от чужих решений.
Короткий ответ на вопрос из заголовка. OpenRouter для российских аккаунтов закрыт с 27 июня 2026 года. Рублёвые агрегаторы (ProxyAPI, VseGPT и их аналоги) на день проверки живы и отдают модели Claude, но с наценкой в разы к цене Anthropic. Bedrock и Vertex частному лицу из России практически недоступны. Единственный вариант без посредника: открытая модель на своём VPS за шлюзом LiteLLM, который отвечает в формате Anthropic API.
Почему код под OpenRouter перестал работать
OpenRouter долго был для российских разработчиков главной дверью к Claude: одна карта и один ключ на десятки моделей за OpenAI-совместимым эндпоинтом. В 2026 году эта дверь закрылась поэтапно. Официального заявления OpenRouter не публиковал, поэтому даты ниже собраны из писем поддержки и сообщений пользователей на Хабре и в разборе Skillbox.
- 12 мая 2026 года: перестали проходить пополнения. При оплате пользователи видели «Payment unavailable due to U.S. sanctions compliance». Не работали ни банковские карты, ни криптовалюта через Coinbase. В письме поддержка сообщала, что сервис не обслуживает платежи, связанные с географией аккаунта, и предлагала либо потратить остаток, либо запросить возврат кнопкой на странице Credits.
- Конец мая 2026 года: аккаунты с российским платёжным адресом получили ошибку «Your billing address is in a region that does not have access to models from OpenAI, Anthropic, and Google». Открытые модели при этом ещё отвечали.
- 27 июня 2026 года: запросы с российских IP стали получать HTTP 403 с текстом «Not available in your region». К концу июля отказ получали и те аккаунты, которые первая волна не задела.
Для кода это значит простую вещь. Всё, что было написано против https://openrouter.ai/api/v1, сегодня из России получает 403 на каждый запрос, потому что блокировка идёт по адресу источника и по платёжному адресу, а ключ при этом остаётся формально действительным. Менять нужно базовый адрес и ключ, а заодно имена моделей, потому что каждый агрегатор именует модели по-своему.
Типичный код эпохи OpenRouter выглядел так:
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=OPENROUTER_KEY,
)
resp = client.chat.completions.create(
model="anthropic/claude-sonnet-4.5",
messages=[{"role": "user", "content": "Привет"}],
)Из России этот вызов сейчас заканчивается исключением openai.PermissionDeniedError, которое SDK поднимает на любой ответ с кодом 403. Дальше два пути. Первый: тот же OpenAI-совместимый код с другим base_url, об этом раздел про агрегаторы. Второй: перевод кода на Anthropic SDK и свой шлюз, об этом раздел про VPS. Второй путь длиннее, но после него следующая блокировка уже не ваша проблема.
Рублёвые агрегаторы: кто жив и сколько стоит
Русскоязычных агрегаторов десятки, и половина из них появилась после майских новостей. Я проверил два самых старых, ProxyAPI и VseGPT, 20 сентября 2026 года: оба отвечают, у обоих в каталоге есть актуальные модели Claude от Haiku 4.5 до Opus 5, оба берут оплату в рублях с российских карт. ProxyAPI пишет на странице цен, что все цены указаны с учётом НДС 5%, и работает через российское юридическое лицо. У VseGPT цены на странице моделей указаны за 1000 токенов, поэтому для сравнения я умножил их на тысячу.
Считать наценку нужно самому и на день покупки, потому что рублёвая цена агрегатора складывается из долларовой цены Anthropic, умноженной на курс, плюс комиссия агрегатора, и каждое слагаемое меняется. Списочные цены Anthropic на 20 сентября 2026 года:
The data behind this chart
[
{
"label": "Claude Opus 5",
"input_usd": 5,
"output_usd": 25
},
{
"label": "Claude Sonnet 5",
"input_usd": 2,
"output_usd": 10
},
{
"label": "Claude Haiku 4.5",
"input_usd": 1,
"output_usd": 5
}
]Курс ЦБ РФ на 19 сентября 2026 года: 84,1975 ₽ за доллар. Умножаем. Opus 5 по курсу стоит 421 ₽ за миллион входных токенов и 2105 ₽ за миллион выходных. Рядом цены агрегаторов, снятые с их публичных страниц в тот же день:
The data behind this chart
[
{
"label": "Anthropic \u043f\u043e \u043a\u0443\u0440\u0441\u0443 \u0426\u0411 / Opus 5",
"input_rub": 421,
"output_rub": 2105
},
{
"label": "ProxyAPI / Opus 5",
"input_rub": 1516,
"output_rub": 7579
},
{
"label": "VseGPT / Opus 5",
"input_rub": 1200,
"output_rub": 6700
},
{
"label": "Anthropic \u043f\u043e \u043a\u0443\u0440\u0441\u0443 \u0426\u0411 / Sonnet 5",
"input_rub": 168,
"output_rub": 842
},
{
"label": "ProxyAPI / Sonnet 5",
"input_rub": 600,
"output_rub": 3030
},
{
"label": "VseGPT / Sonnet 5",
"input_rub": 600,
"output_rub": 3000
},
{
"label": "Anthropic \u043f\u043e \u043a\u0443\u0440\u0441\u0443 \u0426\u0411 / Haiku 4.5",
"input_rub": 84,
"output_rub": 421
},
{
"label": "ProxyAPI / Haiku 4.5",
"input_rub": 295,
"output_rub": 1474
},
{
"label": "VseGPT / Haiku 4.5",
"input_rub": 140,
"output_rub": 700
}
]Наценка получается делением. Opus 5 через ProxyAPI стоит 1516 ₽ за миллион входных токенов, то есть в 3.6 раза дороже списочной цены по курсу ЦБ. Sonnet 5 у обоих агрегаторов стоит одинаково, 600 ₽ на входе, и это в 3.6 раза выше списка. А вот Haiku 4.5 у VseGPT стоит 140 ₽, всего в 1.7 раза выше списка. Множитель не одинаков ни между агрегаторами, ни между моделями у одного агрегатора, поэтому вопрос «у кого дешевле» имеет смысл только для конкретной модели и конкретной даты.
The data behind this chart
[
{
"label": "ProxyAPI / Opus 5",
"input_ratio": 3.6,
"output_ratio": 3.6
},
{
"label": "VseGPT / Opus 5",
"input_ratio": 2.9,
"output_ratio": 3.2
},
{
"label": "ProxyAPI / Sonnet 5",
"input_ratio": 3.6,
"output_ratio": 3.6
},
{
"label": "VseGPT / Sonnet 5",
"input_ratio": 3.6,
"output_ratio": 3.6
},
{
"label": "ProxyAPI / Haiku 4.5",
"input_ratio": 3.5,
"output_ratio": 3.5
},
{
"label": "VseGPT / Haiku 4.5",
"input_ratio": 1.7,
"output_ratio": 1.7
}
]Эти цифры верны на 20 сентября 2026 года и только на эту дату. Прайс агрегатора пересчитывается вслед за курсом и вслед за ценами Anthropic, так что перед покупкой откройте страницу цен и поделите сами. Во что множитель превращается в рублях за месяц, зависит от вашего объёма токенов, а не от множителя: как посчитать этот объём и сравнить с подпиской, разобрано в сравнении стоимости Claude API и подписки.
Код под агрегатор отличается от кода под OpenRouter двумя строками:
from openai import OpenAI
client = OpenAI(
base_url="https://api.vsegpt.ru/v1", # или https://api.proxyapi.ru/v1
api_key=AGGREGATOR_KEY,
)
resp = client.chat.completions.create(
model="anthropic/claude-sonnet-5", # имя берите из каталога агрегатора
messages=[{"role": "user", "content": "Привет"}],
)ProxyAPI также принимает запросы в формате Anthropic Messages API: в его документации по Claude Code базовый адрес задаётся как ANTHROPIC_BASE_URL=https://api.proxyapi.ru, а ключ идёт в ANTHROPIC_AUTH_TOKEN, то есть в заголовке Authorization: Bearer. В Anthropic SDK это параметр auth_token вместо api_key. Значит, код на Anthropic SDK туда переезжает без переписывания, только с другим base_url и другим способом передачи ключа. Это тот же приём, что и со своим шлюзом ниже, и именно поэтому стоит писать код против одного формата, а не против конкретного продавца. Чем x-api-key отличается от Authorization: Bearer, разобрано в заметке про аутентификацию в Claude API.
Почему Bedrock и Vertex не вариант для частного лица из России
Claude есть в Amazon Bedrock и Google Vertex AI, но обе площадки с марта 2022 года не регистрируют новых клиентов из России, карты российских банков за рубежом не работают с того же месяца, а доступ к моделям Claude включается отдельно внутри уже действующего платного аккаунта. Для компании с иностранным юрлицом это рабочий путь. Для частного лица из России это тот же список поддерживаемых регионов, только с другой вывеской.
Открытая модель на своём VPS за шлюзом LiteLLM
Единственный вариант в этой карте, который не зависит от чужого юрлица и чужого списка стран: открытая модель на сервере, который вы арендуете сами. Ключевая идея в том, что код не должен знать, что под ним больше не Claude. Anthropic SDK умеет ходить по любому адресу через параметр base_url или переменную окружения ANTHROPIC_BASE_URL, а значит нужен сервер, который отвечает на /v1/messages в формате Anthropic и переводит запрос в формат вашей модели.
Таких сервера два, и они дополняют друг друга. Ollama сам отдаёт /v1/messages: в его документации пример с Anthropic SDK использует base_url='http://localhost:11434' и ключ 'ollama', который обязателен по формату, но локально не проверяется. Для одного человека и одной модели этого достаточно. LiteLLM сверху нужен, когда моделей или приложений больше одного: он выдаёт каждому приложению свой виртуальный ключ, ставит лимит расходов, подменяет имя модели и умеет переключиться на резервный бэкенд. Установка обоих подробно разобрана в гайде по LiteLLM-шлюзу на VPS, а выбор модели под ваш объём памяти в разборе про открытую модель вместо плана Claude. Здесь только связка.
Минимальный config.yaml для LiteLLM, который прячет Qwen3 за именем claude-sonnet-5:
model_list:
- model_name: claude-sonnet-5
litellm_params:
model: ollama_chat/qwen3:8b
api_base: http://127.0.0.1:11434
general_settings:
master_key: os.environ/LITELLM_MASTER_KEYПрефикс ollama_chat/ документация LiteLLM рекомендует вместо ollama/: он ходит в chat-эндпоинт Ollama и лучше держит формат диалога. Имя claude-sonnet-5 слева произвольное: это alias, по которому шлюз ищет запись в model_list. Назовите его так же, как модель в вашем коде, и код менять не придётся.
Запуск и проверка:
export LITELLM_MASTER_KEY=sk-своя-длинная-случайная-строка
litellm --config config.yaml --port 4000curl -s http://127.0.0.1:4000/v1/messages \
-H "x-api-key: $LITELLM_MASTER_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":64,"messages":[{"role":"user","content":"Привет"}]}'Здоровый ответ: JSON с "type": "message" и текстом модели в content[0].text. Если в ответе ошибка с именем модели, значит alias в config.yaml не совпадает с полем model в запросе: список того, что шлюз реально знает, отдаёт curl -H "Authorization: Bearer $LITELLM_MASTER_KEY" http://127.0.0.1:4000/v1/models. Если первый запрос отвечает очень долго, это Ollama поднимает модель в память, и следующие запросы будут быстрее. Если ответ содержит ошибку про отсутствующую модель со стороны Ollama, модель ещё не скачана: ollama pull qwen3:8b и повторите.
Тот же запрос из кода:
import anthropic
client = anthropic.Anthropic(
base_url="http://127.0.0.1:4000",
api_key=LITELLM_KEY,
)
msg = client.messages.create(
model="claude-sonnet-5",
max_tokens=256,
messages=[{"role": "user", "content": "Привет"}],
)
print(msg.content[0].text)Один и тот же файл работает и с ProxyAPI (base_url="https://api.proxyapi.ru" и ключ в auth_token), и со своим шлюзом. Если однажды список стран изменится, уберите base_url, и SDK пойдёт на https://api.anthropic.com. В этом и смысл писать против формата, а не против продавца.
Наружу шлюз выставляйте только через HTTPS и с ключами. Порт 4000 на публичном IP без TLS (transport layer security, шифрование канала) означает, что ваш ключ и ваши промпты идут по сети открытым текстом. Как не дать агенту сжечь бюджет и во что обходится такой сервер по сравнению с оплатой за токены, разобрано в заметке про контроль расходов ИИ-агента на VPS.
Какие риски вы берёте на себя с посредником
Сформулирую их прямо.
- Посредник видит каждый промпт и каждый ответ. Агрегатор принимает ваш запрос, отправляет его дальше со своего ключа и возвращает ответ, поэтому текст проходит через его сервер в открытом виде. На страницах цен и в документации ProxyAPI и VseGPT я не нашёл описания того, хранятся ли запросы и кто имеет к ним доступ. Пока вам не ответили письменно, считайте, что хранятся.
- Условия и ключи меняются за недели. OpenRouter прошёл путь от «платежи не проходят» до 403 за полтора месяца, без официального объявления. Код, который берёт
base_urlиз переменной окружения, переживает это за минуту. Код с зашитым адресом переживает это через новую выкладку. - Гарантий доступности вам никто не даёт. Агрегатор зависит от аккаунта, который сам не контролирует, и когда этот аккаунт отключат, отключат сразу всех его клиентов. Рублёвый остаток на балансе при этом становится вопросом к агрегатору, а не к Anthropic.
- Условия Anthropic продолжают действовать для того, кто держит аккаунт. Коммерческие условия говорят: «Customer is responsible for all activity under its account», разрешают пользоваться сервисом только «in compliance with ... our policy on the countries and regions Anthropic currently supports» и запрещают «resell the Services except as expressly approved by Anthropic». Есть ли у конкретного агрегатора такое разрешение, он публично не пишет.
Ещё один риск, о котором редко пишут: рублёвая цена привязана к курсу. При росте доллара агрегатор пересчитывает прайс, а ваш бюджет в рублях остаётся прежним, так что закладывайте запас.
Что с подпиской Claude Pro, а не с API
Здесь речь про API. Подписки claude.ai и Claude Pro упираются в тот же список стран, но решаются другими способами и с другими рисками, и это отдельный разговор. Если вы вообще не уверены, что вам нужен именно API, а не подписка, начните с разбора, какой план Claude вам нужен, а цену и лимиты Pro посмотрите в заметке про стоимость и лимиты Claude Pro.
FAQ: частые вопросы
Можно ли легально купить Claude API из России в 2026 году?
Напрямую у Anthropic нет: России нет в списке поддерживаемых стран, и он общий для API и claude.ai (проверено 20 сентября 2026 года). Рублёвые агрегаторы продают доступ к моделям Claude через свои аккаунты, и вопрос «легально ли это» упирается в условия Anthropic, которые запрещают перепродажу без явного разрешения. Владелец аккаунта отвечает за всю активность в нём, а покупатель у агрегатора рискует остаться без доступа, если этот аккаунт отключат.
Почему OpenRouter перестал работать из России и вернётся ли он?
С 12 мая 2026 года OpenRouter перестал принимать оплату из России со ссылкой на «U.S. sanctions compliance», в конце мая закрыл модели OpenAI, Anthropic и Google для аккаунтов с российским платёжным адресом, а с 27 июня отдаёт HTTP 403 «Not available in your region» на запросы с российских IP. Официального заявления не было, сроков возврата тоже. Код, зашитый на openrouter.ai, нужно переводить на другой base_url.
Насколько дороже Claude через рублёвый агрегатор?
На 20 сентября 2026 года Sonnet 5 у ProxyAPI и VseGPT стоил 600 ₽ за миллион входных токенов, в 3.6 раза выше списочной цены Anthropic по курсу ЦБ, а Haiku 4.5 у VseGPT в 1.7 раза. Множитель отличается по моделям и по агрегаторам, поэтому считайте его сами на день покупки: цена Anthropic в долларах, умноженная на курс ЦБ, против рублёвой цены в каталоге.
Видит ли агрегатор мои запросы?
Да. Агрегатор принимает ваш запрос, отправляет его дальше со своего ключа и возвращает ответ, поэтому и промпт, и ответ проходят через его сервер в открытом виде. Хранит ли он их и как долго, публичные страницы ProxyAPI и VseGPT не говорят. Данные клиентов и любые документы под NDA через посредника отправлять не стоит, пока у вас нет письменного ответа на этот вопрос.
Как заставить код на Anthropic SDK работать с локальной моделью?
Поднимите Ollama с нужной моделью и LiteLLM с записью в model_list, где model_name совпадает с именем модели в вашем коде, а model указывает на ollama_chat/<модель>. Затем задайте ANTHROPIC_BASE_URL=http://127.0.0.1:4000 и ключ шлюза в ANTHROPIC_API_KEY. SDK отправит запрос на /v1/messages шлюза, LiteLLM переведёт его в формат Ollama и вернёт ответ в формате Anthropic. Сам код при этом не меняется.