Материал редакции Зерокодера. Мы каждый день гоняем через 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 блокирует — порядок действий

  1. Прочитайте текст отказа целиком. HTML вместо JSON означает сеть, JSON с кодом означает API.
  2. Запустите or_check.py со своего адреса и посмотрите последнюю строку вердикта.
  3. Увидели 402 — пополните баланс, регион здесь ни при чём.
  4. Увидели 404 «No endpoints found» — возьмите актуальный слаг из GET /api/v1/models, модель просто переименовали.
  5. Увидели 429 — упритесь в лимит free-моделей: 20 запросов в минуту и 50 в сутки при закупке меньше 10 кредитов.
  6. Увидели отказ по billing address — переключите задачу на любую из 268 моделей вне тройки OpenAI, Anthropic и Google.
  7. Нужны именно GPT, Claude или Gemini — выбирайте между BYOK с комиссией 5% и посредником с оплатой в рублях.
  8. Задача критична для бизнеса — заложите в код слой абстракции над провайдером, чтобы следующая смена правил стоила одной строки конфигурации.