altrouter.ai
← Блог

OpenRouter заблокирован: что делать российскому разработчику

· 8 минут чтения

Коротко

OpenRouter не заблокирован в России. По сообщениям пользователей и независимым замерам разработчиков, openrouter.ai отвечает из России без VPN. Отключено другое: приём платежей с аккаунтов, у которых указана российская география — пополнить баланс нечем.

Практически это значит вот что: ваша интеграция работает ровно до того момента, пока на балансе есть деньги. Не «завтра сломается», а «сломается тогда, когда кончатся кредиты» — то есть, скорее всего, посреди рабочего дня и без предупреждения.

Ниже — что означает каждая конкретная ошибка, которую вы можете видеть, чек-лист на ближайший час и как перенести код, если решите переезжать.

Какие именно ошибки вы видите

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

402 или «insufficient credits»

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

Если вы читаете эту статью после того, как в проде что-то встало, — начните с проверки баланса в кабинете OpenRouter. В девяти случаях из десяти дело в нём, а не в блокировке.

403 Forbidden

403 — это «доступ запрещён», и у него минимум три разные причины, которые важно не перепутать:

  • Ключ отозван или удалён. Проверяется в кабинете за десять секунд.
  • Модель недоступна вашему аккаунту. Часть моделей у OpenRouter требует отдельного согласия или уровня аккаунта; запрос к такой модели вернёт 403, хотя все остальные будут работать.
  • Вас режет защитный слой перед сервисом, а не сам сервис. Тогда вы обычно видите не JSON API, а HTML-страницу — см. следующий пункт.

Отличить просто: посмотрите на тело ответа. Если это JSON в формате ошибки OpenAI — отвечает приложение, и причина в ключе или модели. Если это HTML — до приложения вы не дошли.

access denied by security policy и «Sorry, you have been blocked»

Это формулировки защитного слоя (обычно CDN-фильтра), а не самого OpenRouter. Их характерная примета — HTML-страница вместо JSON и, как правило, 403 в коде ответа.

Что чаще всего их вызывает:

  • VPN и прокси. Парадоксально, но факт: выходной узел популярного VPN — это адрес, с которого ходят тысячи людей и ботов, и репутация у него соответствующая. Запрос из России напрямую часто проходит там, где запрос через VPN блокируется.
  • Хостинг и облако. Адреса дата-центров фильтруют жёстче, чем домашние. Если ошибка воспроизводится на сервере, но не на вашем ноутбуке — вероятно, дело в этом.
  • Автоматика. Много запросов в секунду с одного адреса выглядят как то, от чего защитный слой и стоит.

Практический тест на две минуты: сделайте один и тот же запрос с домашнего интернета без VPN и с продакшен-сервера. Если дома работает, а на сервере нет — проблема в адресе сервера, и она решается сменой адреса, а не сменой сервиса.

«openrouter не работает» — а на самом деле упал апстрим

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

Что изменилось на самом деле

Летом 2026 года пользователи из России начали получать письма о том, что сервис не поддерживает биллинг и платёжные методы, связанные с географией аккаунта, и предлагает либо потратить оставшиеся кредиты, либо запросить возврат. Эту историю разбирали на Хабре и в профильных блогах; там же независимые разработчики выкладывали замеры доступности API из России.

Что из этого следует, если убрать пересказы:

  • Отключены платежи и пополнение, а не доступ. Это принципиально разные вещи.
  • API продолжает отвечать, пока на балансе есть деньги. Замеры латентности из России без VPN это подтверждают.
  • «OpenRouter заблокировали» — неточная формулировка, которая мешает чинить проблему: человек ищет обход блокировки, ставит VPN и получает вдобавок ошибки защитного слоя, которых без VPN бы не было.

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

Что делать прямо сейчас: чек-лист

Если у вас прямо сейчас лежит прод, по порядку:

  1. Посмотрите баланс. Если он в нуле — вы нашли причину, и это не блокировка. Сколько осталось и на сколько дней хватит при вашем расходе?
  2. Проверьте, что именно вы видите. JSON-ошибка от API или HTML-страница защитного слоя — по разделу выше. От этого зависит, что чинить.
  3. Выключите VPN и попробуйте напрямую. Если ошибка ушла — она была вызвана VPN, а не географией.
  4. Оцените запас времени. Средний дневной расход за последнюю неделю против остатка — это ваш дедлайн. Планировать миграцию лучше по нему, а не по ощущению.
  5. Решите с остатком кредитов. Если пополнение недоступно, а остаток заметный, — либо потратить, либо запросить возврат. Возврат не мгновенный, начинать стоит раньше, чем баланс кончится.
  6. Подготовьте запасной маршрут. Даже если вы остаётесь на OpenRouter, второй провайдер за фича-флагом — это час работы, который однажды окупится.

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

Как оплатить, если вы остаётесь

Это законный вариант, и он для многих правильный: если у вас на OpenRouter завязаны модели, которых больше нигде нет, — проще решить вопрос платежа, чем переезжать.

Рабочие способы сводятся к трём: зарубежная карта (в том числе выпущенная сервисами вроде «Плати по миру»), платёжный посредник и криптовалюта. У каждого своя комиссия и свой риск, что способ перестанет работать. Считать нужно на своих суммах: комиссия в 10–15% на пополнении в 5 000 ₽ — это одна история, на пополнении в 100 000 ₽ — другая.

Общее правило: чем длиннее цепочка посредников, тем больше в ней мест, где всё сломается, и тем выше суммарная комиссия.

Миграция: одна строка

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

Вот как это выглядит на altrouter:

from openai import OpenAI

client = OpenAI(
    base_url="https://api.altrouter.ai/v1",   # было: https://openrouter.ai/api/v1
    api_key="ar-...",                          # было: sk-or-v1-...
)

r = client.chat.completions.create(
    model="claude-opus-4-8",
    messages=[{"role": "user", "content": "Привет"}],
)
print(r.choices[0].message.content)

Всё остальное — роли сообщений, стриминг, max_tokens, разбор ответа, обработка ошибок — остаётся как было. Формат ответа тот же самый.

Единственное, что нужно сверить руками, — названия моделей. У OpenRouter они с префиксом вендора (anthropic/claude-opus-4-8), у нас короткие (claude-opus-4-8). Список — в каталоге или через GET /v1/models.

Оплата у нас идёт картой РФ, по СБП или криптой — трансграничного платежа в цепочке нет, поэтому и ломаться там нечему. Как передавать ключ и какие есть параметры — в документации: аутентификация, параметры, ошибки.

Что не переедет

Здесь важно сказать прямо, чтобы вы не потратили вечер.

Claude Code и всё, что ходит в Anthropic-совместимый /v1/messages, к нам не подключится. У нас есть OpenAI-совместимый /v1/chat/completions и нет Anthropic-формата. Ключ ar-... вы в Claude Code вставите, и он не заработает. То же касается Cursor и других инструментов, которые жёстко ходят в формат Anthropic.

Каталог у нас уже. 44 отобранные модели против нескольких сотен у OpenRouter. Нет DeepSeek, нет текстового Qwen, почти нет моделей с открытыми весами. Если ваш сценарий завязан на конкретную модель — сначала проверьте, есть ли она в каталоге, и только потом планируйте переезд.

Нет эмбеддингов, реранка, TTS/STT, batch и файлового API. Если пайплайн стоит на них, переносить придётся не одну строку.

Правило простое: если инструмент позволяет задать base_url и ключ — он заработает. Если он жёстко ходит в Anthropic-формат — нет.

FAQ

Заблокирован ли OpenRouter в России?

Сам сервис не заблокирован: по сообщениям пользователей и замерам разработчиков, API отвечает из России без VPN. Отключены платежи и пополнение баланса для аккаунтов с российской географией — сервис предлагает потратить остаток кредитов или запросить возврат. Интеграция продолжает работать до тех пор, пока на балансе есть деньги.

Что означает ошибка 403 у OpenRouter?

У неё три типичные причины: отозванный ключ, модель, недоступная вашему аккаунту, или срабатывание защитного слоя перед сервисом. Отличить можно по телу ответа: JSON в формате ошибки OpenAI означает, что ответило приложение и дело в ключе или модели; HTML-страница означает, что до приложения запрос не дошёл.

Почему появляется access denied by security policy?

Это сообщение защитного фильтра, а не самого OpenRouter. Чаще всего его вызывают выходные узлы VPN и адреса дата-центров: у них плохая репутация из-за автоматического трафика. Проверяется за две минуты — сделайте тот же запрос без VPN с домашнего интернета и с продакшен-сервера и сравните.

Поможет ли VPN, если OpenRouter не работает?

Обычно нет, а часто делает хуже. API и так отвечает из России, а вот трафик через популярный VPN как раз и попадает под фильтры защитного слоя. Если ошибка появилась после включения VPN — выключите его и повторите запрос.

Как перенести код с OpenRouter на другой сервис?

Если вы ходите через библиотеку openai или совместимый клиент, меняются два поля: base_url и api_key. Логика запросов, стриминг и разбор ответа остаются прежними. Сверить нужно только названия моделей — у OpenRouter они с префиксом вендора, у большинства российских шлюзов короткие.

Можно ли вернуть деньги с баланса OpenRouter?

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