Как начать работать с OpenRouter: ключ, первый запрос и оплата из России

Как начать работать с OpenRouter: ключ, первый запрос и оплата из России

 

Чтобы понять, как начать работать с OpenRouter, хватит одного вечера и небольшого баланса. OpenRouter это единый OpenAI-совместимый роутер, где одним ключом доступны десятки моделей от разных провайдеров. В статье мы пройдём весь путь от регистрации до первого живого ответа модели. Отдельно и без прикрас разберём оплату из России. Именно она чаще всего сбивает новичков. Весь код ниже прогнан на реальном стенде, а числа в выводах настоящие.

 

 

Как устроен OpenRouter и зачем один ключ

Идея OpenRouter сводится к одному адресу и одному ключу. Вы обращаетесь к базовому URL https://openrouter.ai/api/v1, а нужную модель задаёте строкой вроде openai/gpt-4o-mini. Роутер сам находит провайдера, отправляет запрос и возвращает ответ в привычном формате OpenAI. Значит, почти любой код под библиотеку openai заводится сменой двух строк: базового адреса и ключа.

Такой подход снимает главную головную боль интеграций. Не нужно держать отдельный SDK под каждого поставщика и отдельный счёт у каждого. Один ключ, один формат, общий баланс. Если хочется энциклопедического разбора самого термина, есть отдельная вики-статья про OpenRouter, а здесь мы держим курс на практику.

Смена модели это правка одной строки. Идентификатор модели устроен как провайдер и название через слэш, например openai/gpt-4o-mini или anthropic/claude-3.5-sonnet. Полный список моделей с их идентификаторами и ценой за миллион токенов лежит в каталоге OpenRouter, причём вход и выход там считаются отдельно.

Весь стартовый путь укладывается в пять шагов, от регистрации до ответа модели.

Простой алгоритм как зарегистрировать и начать использовать OpenRouter - практическая инструкция в статьях цикла "Школа Больших Данных"

Дальше идём по этим шагам по порядку, каждый с проверкой результата.

 

Регистрация и выпуск API-ключа

Регистрация обычная: аккаунт на openrouter.ai через почту или Google. После входа ключ выпускается в разделе Keys. Нажимаете создание ключа, задаёте имя и по желанию лимит расхода. Ключ показывается один раз, поэтому сразу копируете его в надёжное место.

Как начать работать с OpenRouter -практическое пособие для начинающих

 

Дальше важное правило гигиены. Ключ это доступ к деньгам на вашем балансе, поэтому в код его не вписывают. Мы держим ключ в переменной окружения OPENROUTER_API_KEY и читаем оттуда. На стенде статьи ключ лежит в защищённом окружении сервера, а в примерах кода подставляется через переменную и нигде не светится.

Задать переменную окружения несложно. В Linux и macOS хватает одной команды в терминале, а значение вы подставляете своё из раздела Keys.

# протестировано на EU-ноде 2026-08-04, bash, OpenRouter API
export OPENROUTER_API_KEY="sk-or-v1-ваш_ключ"

Команда действует в текущей сессии терминала. Чтобы значение переживало перезапуск, допишите эту строку в файл профиля оболочки, например в .bashrc или .zshrc. После этого ключ будет виден любому скрипту, который вы запускаете из этой оболочки.

 

Оплата из России без боли

Почему карта РФ не проходит

Здесь начинается то, чего вики обычно не объясняет. OpenRouter принимает оплату картой и криптовалютой, но российские карты при пополнении баланса как правило отклоняются. Дело не в самом OpenRouter, а в платёжном контуре и ограничениях эквайринга. Поэтому надёжный путь для пользователя из России один: пополнение криптовалютой.

 

Пополнение криптой и расчёт комиссий

OpenRouter умеет принимать USDC через собственный чекаут. Вы выбираете сумму, платите в USDC, и баланс растёт в кредитах OpenRouter. У способов оплаты разная комиссия, и на мелких суммах она ощущается сильнее.

Само пополнение делается в дашборде, в разделе Credits. Нажимаете добавление кредитов, выбираете оплату криптой, вводите сумму в долларах и подтверждаете перевод USDC. Через пару минут баланс обновляется, и его уже видно запросом к эндпоинту /credits, который разберём ниже.

Способ оплаты Комиссия Минимум Особенности
Криптовалюта USDC, чекаут OpenRouter 5.0% нет минимума покупка невозвратна
Банковская карта 5.5% 0.80$ за транзакцию карты РФ обычно отклоняются

Вывод простой: платите криптой и пополняйтесь заметными суммами. Крипто-комиссия ниже и без минимума, а на карте минимум 0.80$ бьёт по мелким платежам. Пополнение на 5$ картой стоило бы около 0.80$ сверху, это почти 16% комиссии. А на 50$ те же 0.80$ размываются до пары процентов.

С криптой картина ровнее, потому что процент одинаков на любой сумме. На 10$ комиссия около 0.50$, на 100$ около 5$, минимального порога нет вовсе. Курс USDC к доллару стабилен, так что сюрпризов по итоговой сумме не будет. Единственный момент: крипто-платёж невозвратный, поэтому сумму выбираете осознанно.

 

Где запускать код

Есть ещё сетевой нюанс. OpenRouter стоит за Cloudflare, и запросы с части российских адресов упираются в блокировку. Код серии прогоняется на зарубежной ноде, где трафик к openrouter.ai идёт напрямую. Числа в статье сняты именно там. Для читателя из России практичный вариант это машина в Yandex Cloud на Ubuntu 24. С неё удобно запускать примеры и хранить ключ в окружении. Тонкости настройки обхода гео мы вынесем в отдельную статью серии, чтобы не растекаться в стартовом материале. Здесь считаем, что доступ к openrouter.ai у вас уже есть.

 

ИИ-агенты для оптимизации бизнес-процессов

Код курса
AGENT
Ближайшая дата курса
26 октября, 2026
Продолжительность
24 ак.часов
Стоимость обучения
66 000

 

Первый запрос к модели

Баланс есть, ключ в окружении, можно стучаться к модели. Сначала быстрый способ проверить связь, потом рабочий вариант на Python.

Для первых проб берём дешёвую и быструю модель, в примерах это openai/gpt-4o-mini. Она отвечает почти мгновенно и стоит копейки, что удобно, пока вы проверяете саму связку. Когда всё заработает, модель меняется одной строкой без переделки остального кода.

 

Проверка в curl

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

# протестировано на EU-ноде 2026-08-04, curl 8.5.0, OpenRouter API
curl -s https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Скажи одним словом: работает?"}]}'

В ответ приходит JSON с текстом модели и блоком usage. Главное здесь поле content с ответом и cost с реальной стоимостью запроса.

# реальный ответ, сокращён до сути
{"model":"openai/gpt-4o-mini","provider":"OpenAI",
 "choices":[{"message":{"role":"assistant","content":"Да."}}],
 "usage":{"prompt_tokens":16,"completion_tokens":2,"total_tokens":18,"cost":0.0000036}}

 

Запрос в Python через openai SDK

Для приложения удобнее официальная библиотека openai. Меняем базовый адрес на OpenRouter, ключ читаем из окружения, дальше как в обычном коде OpenAI. Полный сценарий лежит в файле first_request.py в репозитории кода статьи.

# протестировано на EU-ноде (AWS Stockholm) 2026-08-04: Python 3.12.3, openai 2.53.0, OpenRouter API
import os
from openai import OpenAI

# Ключ читаем из окружения, в код и в вывод его не вставляем.
client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key=os.environ["OPENROUTER_API_KEY"],
)

resp = client.chat.completions.create(
    model="openai/gpt-4o-mini",
    messages=[
        {"role": "user", "content": "Поздоровайся одной короткой фразой и подтверди, что доступ к модели работает."}
    ],
)

print("Ответ модели:")
print(resp.choices[0].message.content)
print("---")
print("model:", resp.model)
print("prompt_tokens:", resp.usage.prompt_tokens)
print("completion_tokens:", resp.usage.completion_tokens)
print("total_tokens:", resp.usage.total_tokens)

На стенде скрипт выдал живой ответ и счётчик токенов.

Ответ модели:
Привет! Доступ к модели работает.
---
model: openai/gpt-4o-mini
prompt_tokens: 28
completion_tokens: 9
total_tokens: 37

 

Проверка баланса и расхода

После первых запросов полезно видеть, сколько денег ушло. Баланс отдаёт эндпоинт /credits: он возвращает купленные кредиты и суммарный расход. Быстро глянуть можно тем же curl.

# протестировано на EU-ноде 2026-08-04, curl 8.5.0, OpenRouter API
curl -s https://openrouter.ai/api/v1/credits \
  -H "Authorization: Bearer $OPENROUTER_API_KEY"
{"data":{"total_credits":10,"total_usage":0.0000354}}

Для скриптов удобнее сразу считать остаток. Файл check_credits.py делает GET на /credits и печатает баланс, расход и остаток.

# протестировано на EU-ноде (AWS Stockholm) 2026-08-04: Python 3.12.3, httpx 0.28.1, OpenRouter API
import os
import httpx

key = os.environ["OPENROUTER_API_KEY"]

r = httpx.get(
    "https://openrouter.ai/api/v1/credits",
    headers={"Authorization": f"Bearer {key}"},
    timeout=15,
)
r.raise_for_status()

data = r.json()["data"]
total = data["total_credits"]
used = data["total_usage"]

print(f"total_credits: {total:.4f}")
print(f"total_usage: {used:.6f}")
print(f"remaining: {total - used:.6f}")
total_credits: 10.0000
total_usage: 0.000035
remaining: 9.999965

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

Иногда полезно проверить сам ключ: его лимит и расход за день, неделю и месяц. Для этого есть эндпоинт /auth/key, он отдаёт метку ключа и расход в нескольких разрезах.

# протестировано на EU-ноде 2026-08-04, curl 8.5.0, OpenRouter API
curl -s https://openrouter.ai/api/v1/auth/key \
  -H "Authorization: Bearer $OPENROUTER_API_KEY"
# реальный ответ, поля сокращены
{"data":{"label":"sk-or-v1-e2e...c48","limit":null,"limit_remaining":null,
 "usage":0.000045,"usage_daily":0.0000096,
 "usage_weekly":0.000045,"usage_monthly":0.000045,"is_free_tier":false}}

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

 

Типовые ошибки первого запуска

Пара граблей встречается почти у всех, и лучше знать их заранее.

  • 401 User not found. Ключ не распознан: опечатка, лишний пробел или переменная окружения не подхватилась. Проверьте, что OPENROUTER_API_KEY реально виден процессу.
  • 402 Insufficient credits. На балансе не хватает средств на запрос. Пополните баланс или возьмите модель дешевле.
  • 403 или таймаут на Cloudflare. Запрос идёт с адреса, который OpenRouter не пропускает. Смените точку выхода на разрешённую, к этому вернёмся в статье про обход гео.

Первую ошибку легко воспроизвести. Подставьте заведомо неверный ключ, и сервер честно ответит кодом 401 и телом с сообщением User not found. Это нормальный способ убедиться, что обработка ошибок в вашем коде работает.

 

ИИ-агенты для оптимизации бизнес-процессов

Код курса
AGENT
Ближайшая дата курса
26 октября, 2026
Продолжительность
24 ак.часов
Стоимость обучения
66 000

 

Что дальше в серии

Итог простой. Вы завели ключ, разобрались с оплатой через крипту, отправили первый запрос в curl и на Python и научились смотреть баланс. Этого достаточно, чтобы начать работать с OpenRouter в своих проектах уже сегодня. Дальше начинается интересное: у одной модели бывает несколько провайдеров с разной ценой и скоростью, и этим выбором можно управлять. В следующей статье серии разберём маршрутизацию провайдеров и фолбэк, чтобы запросы шли туда, где выгоднее и надёжнее.

 

Референсные ссылки