Материал редакции Зерокодера. Мы каждый день гоняем через OpenRouter рекламную графику и текстовые задачи, поэтому в статье приведён вывод собственного прогона API со всеми кодами ответа. Обновлено: сентябрь 2026.
OpenRouter блокирует пользователей из России с мая 2026 года и делает это тремя слоями. 12 мая сервис перестал принимать платежи, связанные с Россией. В конце мая часть моделей начала отвечать ошибкой на запросы с российских IP-адресов. 27 июня закрылся доступ к моделям и API для российских аккаунтов и адресов. Официального заявления OpenRouter при этом не публиковал.
Главное:
- Ограничение ввёл сам сервис и сослался в письме на собственные compliance-политики: «under our compliance policies». Подтверждений того, что домен openrouter.ai попал в реестр Роскомнадзора, нет.
- Отказ по региону платёжного адреса закрывает модели трёх вендоров — OpenAI, Anthropic и Google. Остальной каталог остаётся: в нашем замере это 268 моделей из 431.
- Половина «блокировок», о которых пишут в чатах, блокировками не является: 402 — это пустой баланс, 404 — устаревшее имя модели, 429 — лимит частоты.
- VPN закрывает только сетевой слой. Регион считается ещё и по платёжному адресу аккаунта, поэтому смена IP часто ничего не меняет.
- Рабочие пути: BYOK со своим ключом провайдера, посредники с оплатой в рублях, российские облака, открытые модели. Что такое сам сервис и как устроен его кабинет — в разборе OpenRouter: что это, полный каталог замен — в аналогах OpenRouter.
Когда OpenRouter начал блокировать российских пользователей
Ограничения OpenRouter для России вводились в три приёма с мая по июнь 2026 года, и начались они с денег: сперва закрылись платежи, запросы держались ещё месяц.
11 мая 2026 года пользователи с российской географией получили письмо, дословный текст которого опубликован в новости Хабра от 12 мая: «OpenRouter does not support usage, billing, or payment methods associated with your geography» и «As a result, we will no longer support payment processing for your account under our compliance policies». Технически API продолжал работать: оставшиеся кредиты тратились, бесплатные модели отвечали, а неиспользованный остаток можно было вернуть через страницу Credits — возврат шёл через Stripe на исходный метод оплаты, криптовалютные пополнения возврату не подлежали.
Дальше по хронологии, которую приводит разбор ProxyAPI: в конце мая 2026 года часть моделей начала отвечать ошибкой на запросы с российских IP-адресов, а 27 июня 2026 года доступ к моделям и API закрылся для российских аккаунтов и адресов. Там же честно оговорено происхождение этих дат: «Официального заявления OpenRouter не публиковал — даты известны из писем, которые получали пользователи, и из сообщений в личном кабинете». Первичного подтверждения от самого OpenRouter ни у одной из этих дат нет: каждая восстановлена по письму пользователю или сообщению в кабинете.
Мини-вывод: единой даты «OpenRouter заблокирован» не существует, есть три разных события, и у вас могло сломаться любое из них.
Что именно блокирует OpenRouter: регион счёта, сеть или модель
OpenRouter блокирует не сервис целиком, а отдельные слои, и текст ошибки говорит, какой именно слой закрыт.
Уровень платёжного адреса. Сообщение сервиса, которое цитирует AInsider в материале от 15 мая 2026 года, звучит буквально так: «Your billing address is in a region that does not have access to models from OpenAI, Anthropic, and Google. All other models remain available». То есть закрывается тройка вендоров, а Llama, Mistral, DeepSeek, Qwen и прочие остаются на месте.
Уровень сети. Здесь ответ приходит не от API, а от фильтра на входе, и выглядит как HTML-страница: «Access denied by security policy», «Sorry, you have been blocked», «You are unable to access openrouter.ai» — эти формулировки собрал разбор на vc.ru от 6 августа 2026 года.
Уровень аккаунта. Служебные эндпоинты вроде GET /api/v1/key отвечают отказом на любой запрос, независимо от выбранной модели. Если ключ жив, а падает только одна модель, дело не в аккаунте.
Мини-вывод: прежде чем менять сервис, прочитайте текст отказа — он называет закрытый слой.
Какая ошибка OpenRouter что означает
Четыре из шести типовых отказов OpenRouter к региональной блокировке отношения не имеют вовсе. Ниже — разбор по официальной документации сервиса и по нашим собственным ответам API.
| Что видно | Код | Что сломано на самом деле | Что делать |
|---|---|---|---|
| HTML-страница «Sorry, you have been blocked» | 403 от фильтра, тело не JSON | Сеть: адрес отсекается до API | Сменить точку выхода в сеть |
| «Your billing address is in a region that does not have access to models from OpenAI, Anthropic, and Google» | 403 | Регион платёжного адреса аккаунта | Взять модель вне тройки или уйти на BYOK |
| «Forbidden (insufficient permissions, guardrail block, or moderation flag)» | 403 | Права ключа, guardrail или модерация | Проверить область действия ключа и текст запроса |
| «Your account or API key has insufficient credits» | 402 | Пустой баланс, регион ни при чём | Пополнить или подключить свой ключ провайдера |
| «No endpoints found for anthropic/claude-3.5-haiku» | 404 | Устаревший или снятый слаг модели | Взять актуальное имя из GET /api/v1/models |
| «You are being rate limited» | 429 | Лимит частоты | Сбавить темп либо поднять баланс |
Формулировки для 402, 403, 429 взяты дословно из справочника ошибок OpenRouter; там же описаны 502 («Your chosen model is down or we received an invalid response from it») и 503 («There is no available model provider that meets your routing requirements») — оба про состояние провайдера модели.
Ловушка с 404 стоит отдельного слова. В нашем прогоне 9 сентября 2026 года запрос к слагам anthropic/claude-3.5-haiku и google/gemini-2.0-flash-001 вернул {"error":{"message":"No endpoints found for anthropic/claude-3.5-haiku.","code":404}}. Это выглядит как «Anthropic и Google закрыли», хотя закрыто ровно ничего: имена моделей за полтора года сменились, и старый слаг просто не существует.
Мини-вывод: код ответа OpenRouter точнее любых слухов в чате — 402, 404 и 429 чинятся без всякой смены сервиса.
Как проверить, что именно закрыто у вашего ключа OpenRouter
Диагностику OpenRouter стоит делать кодом, потому что глазами шесть отказов не различаются. Мы написали для этого маленький скрипт or_check.py — стандартная библиотека Python, никаких зависимостей. Он опрашивает служебный эндпоинт ключа, каталог моделей и делает по одному запросу к модели из закрытой тройки и к модели вне неё, после чего печатает вердикт.
"""or_check.py - что именно закрыто у OpenRouter: сеть, ключ, деньги или регион счёта.
OPENROUTER_API_KEY=sk-or-v1-... python or_check.py
"""
import json, os, sys, urllib.error, urllib.request
KEY = os.environ.get("OPENROUTER_API_KEY", "")
BASE = "https://openrouter.ai/api/v1"
GATED = "openai/gpt-4o-mini" # модель из закрытой для РФ тройки OpenAI / Anthropic / Google
OPEN = "deepseek/deepseek-chat" # модель вне тройки
TRIO = ("openai/", "anthropic/", "google/")
def call(path, body=None):
"""Возвращает (код, тело как текст). Тело не разбирается: важен дословный ответ сервиса."""
req = urllib.request.Request(
BASE + path,
data=json.dumps(body).encode() if body else None,
headers={"Authorization": "Bearer " + KEY, "Content-Type": "application/json"},
method="POST" if body else "GET")
try:
with urllib.request.urlopen(req, timeout=60) as r:
return r.status, r.read().decode("utf-8", "replace")
except urllib.error.HTTPError as e:
return e.code, e.read().decode("utf-8", "replace")
except Exception as e:
return 0, repr(e)
def ping(model):
return call("/chat/completions", {"model": model,
"messages": [{"role": "user", "content": "ping"}],
"max_tokens": 1})
def main():
if not KEY:
sys.exit("нет OPENROUTER_API_KEY в переменных среды")
k_code, k_body = call("/key")
m_code, m_body = call("/models")
g_code, g_body = ping(GATED)
o_code, o_body = ping(OPEN)
print(f"GET /key -> {k_code}")
if k_code == 200:
d = json.loads(k_body)["data"]
print(f" остаток {d['limit_remaining']}, потрачено всего {d['usage']}, "
f"бесплатный тариф: {d['is_free_tier']}")
else:
print(" " + k_body[:300])
if m_code == 200:
ids = [m["id"] for m in json.loads(m_body)["data"]]
trio = [i for i in ids if i.startswith(TRIO)]
print(f"GET /models -> 200, моделей {len(ids)}: тройка OpenAI/Anthropic/Google - {len(trio)}, "
f"вне тройки - {len(ids) - len(trio)}")
else:
print(f"GET /models -> {m_code} {m_body[:200]}")
print(f"POST {GATED} -> {g_code} {g_body.strip()[:220]}")
print(f"POST {OPEN} -> {o_code} {o_body.strip()[:220]}")
if k_code == 0:
v = "СЕТЬ. Запрос не доходит до openrouter.ai: соединение рвётся до ответа сервиса."
elif k_code == 401:
v = "КЛЮЧ. Ключ отозван или недействителен - смотреть страницу Keys в кабинете."
elif k_code == 403:
v = "АККАУНТ. 403 на служебный запрос: закрыт аккаунт целиком, отдельная модель ни при чём."
elif 402 in (g_code, o_code):
v = "ДЕНЬГИ. Ключ жив, регион ни при чём: на балансе нет кредитов (402 Payment Required)."
elif g_code == 403 and o_code == 200:
v = "РЕГИОН СЧЁТА. Закрыта тройка OpenAI / Anthropic / Google, прочие модели работают."
elif g_code == 200 and o_code == 200:
v = "ОТКРЫТО. Обе модели ответили: на этом ключе и с этого адреса блокировки нет."
else:
v = f"РАЗБИРАТЬ РУКАМИ: тройка={g_code}, вне тройки={o_code} - смотреть тела ответов выше."
print("\nВЕРДИКТ: " + v)
if __name__ == "__main__":
main()
Вот что скрипт напечатал на нашем рабочем ключе 9 сентября 2026 года:
GET /key -> 200
остаток 138.45509466, потрачено всего 184.370388791, бесплатный тариф: False
GET /models -> 200, моделей 431: тройка OpenAI/Anthropic/Google - 163, вне тройки - 268
POST openai/gpt-4o-mini -> 200 {"id":"gen-1788940331-wyah9xtU1PElMKs73RBb","object":"chat.completion","created":1788940331,"model":"openai/gpt-4o-mini","provider":"Azure","system_fingerprint":"fp_369e662417","service_tier":null,"choices":[{"index":0,"
POST deepseek/deepseek-chat -> 200 {"id":"gen-1788940332-xYvbULlr74cr1RfPCNGy","object":"chat.completion","created":1788940332,"model":"deepseek/deepseek-chat","provider":"DeepInfra","system_fingerprint":null,"service_tier":null,"choices":[{"index":0,"log
ВЕРДИКТ: ОТКРЫТО. Обе модели ответили: на этом ключе и с этого адреса блокировки нет.
Тела ответов на POST скрипт печатает первыми 220 символами — этого хватает, чтобы увидеть, кто на самом деле обслужил запрос: openai/gpt-4o-mini в этом прогоне ушёл в Azure, deepseek/deepseek-chat — в DeepInfra.
Читается это так. В каталоге OpenRouter 431 модель, из них 163 приходятся на слаги openai/, anthropic/ и google/, и 268 моделей лежат вне закрытой тройки. Значит, ограничение по региону платёжного адреса отнимает примерно треть каталога. По нашему ключу израсходовано 184,37 кредита, месячный лимит 150, остаток на день прогона — 138,46.
Оговорка, без которой число врёт: прогон сделан с европейского адреса, сервер хостинга Fornex в Швеции. Он показывает состояние ключа, аккаунта и каталога, но проверкой доступности OpenRouter с российского IP не является. Запустите or_check.py со своего адреса — вердикт в последней строке и будет ответом про вашу ситуацию.
Мини-вывод: одна команда отвечает точнее, чем десять статей про блокировку, включая эту.
Помогает ли VPN, когда OpenRouter блокирует запросы
VPN снимает только сетевой слой блокировки OpenRouter, и этого хватает далеко не всегда. Разбор на botman.one от 8 июля 2026 года формулирует наблюдение прямо: «запросы с российских IP-адресов теперь возвращают ошибку, а в ряде случаев даже использование VPN не помогает».
Механика простая. Сеть определяется адресом запроса, и её меняет любая точка выхода за пределами страны. Регион аккаунта определяется платёжным адресом и историей платежей — это данные, которые лежат в профиле, и IP на них не влияет. Поэтому картина «сайт открылся, ключ живой, а модели OpenAI и Anthropic отвечают отказом» — штатный результат: сетевой слой вы прошли, платёжный остался прежним.
Отдельно: бесплатные модели OpenRouter живут по своим лимитам — 20 запросов в минуту всем, 50 запросов в сутки при закупке меньше 10 кредитов и 1000 запросов в сутки при закупке от 10 кредитов. Упереться в эти цифры легко, и выглядит это тоже как «заблокировали», хотя код ответа будет 429.
Мини-вывод: сначала определите слой скриптом, потом решайте, нужен ли вам вообще VPN.
Чем закрыть задачу, если OpenRouter недоступен
Замена OpenRouter выбирается по тому, чем вы платите и чьи модели вам нужны. Четыре рабочих пути, от самого дешёвого к самому автономному.
BYOK — свой ключ провайдера внутри OpenRouter. Сервис разрешает подключать собственные ключи OpenAI, Anthropic и других вендоров; в документации комиссия названа так: «The cost of using custom provider keys on OpenRouter is 5% of what the same model/provider would cost normally on OpenRouter». Инфраструктура и маршрутизация остаются, деньги идут напрямую провайдеру. Как получить собственный ключ, разобрано в гайде Как получить API ChatGPT.
Посредники с рублёвой оплатой. ProxyAPI отдаёт API OpenAI, Anthropic, Google Gemini и DeepSeek и обещает: «Оплачивайте за потребляемые услуги в рублях с карты любого российского банка», для юрлиц — расчётный счёт, закрывающие документы и ЭДО. AITunnel описывает себя как «агрегатор API нейросетей в России без VPN в рублях» с «единым API для 200+ моделей ИИ» и минимальным пополнением от 500 рублей. Похожую роль играет BotHub — про него у нас есть отдельный разбор.
Российские облака. Yandex AI Studio собирает модели Яндекса — Alice LLM, Alice AI Flash, YaGPT Pro, YaART, классификатор текстов и эмбеддинги — и выдаёт новым пользователям грант 4000 ₽. У Сбера это Evolution Foundation Models, у МТС с VK — MWS-GPT; полный список площадок разбирает статья на Хабре от 26 июля 2026 года, где кроме них названы router.ai, polza.ai, caila.io, provod.ai и aitunnel.ru.
Открытые модели своими силами. DeepSeek, Qwen, Mistral и Llama запускаются локально или в своём облаке, и региональные правила чужого агрегатора на них не действуют вовсе. Как поднять модель на своей машине, показано в инструкции Как локально запустить DeepSeek R1. Соседний по смыслу случай — оплата и доступ к Claude из России — разобран в материале Claude Code в России.
Сравнение самих сервисов-замен по моделям, ценам и способам оплаты мы вынесли в отдельный разбор аналогов OpenRouter, чтобы не превращать эту страницу в каталог.
Мини-вывод: если задача решается моделью вне тройки OpenAI, Anthropic и Google, менять сервис вообще не требуется.
Чек-лист: OpenRouter блокирует — порядок действий
- Прочитайте текст отказа целиком. HTML вместо JSON означает сеть, JSON с кодом означает API.
- Запустите
or_check.pyсо своего адреса и посмотрите последнюю строку вердикта. - Увидели 402 — пополните баланс, регион здесь ни при чём.
- Увидели 404 «No endpoints found» — возьмите актуальный слаг из GET /api/v1/models, модель просто переименовали.
- Увидели 429 — упритесь в лимит free-моделей: 20 запросов в минуту и 50 в сутки при закупке меньше 10 кредитов.
- Увидели отказ по billing address — переключите задачу на любую из 268 моделей вне тройки OpenAI, Anthropic и Google.
- Нужны именно GPT, Claude или Gemini — выбирайте между BYOK с комиссией 5% и посредником с оплатой в рублях.
- Задача критична для бизнеса — заложите в код слой абстракции над провайдером, чтобы следующая смена правил стоила одной строки конфигурации.