AI Gateway — это доступ к большим языковым моделям по подписке через OpenAI-совместимый API. Если у вас уже есть код под OpenAI, достаточно поменять base_url и ключ. Ниже — как начать пользоваться сервисом с нуля.
Путь от регистрации до первого ответа модели — пять шагов:
base_url в свой код (примеры ниже).Для регистрации нужны только email и пароль (минимум 8 символов); от спама защищает капча. Новый аккаунт заводится на PAYG (оплата по факту): доступ ко всем моделям, платите по токенам с баланса. Нужен предсказуемый бюджет — оформите подписку в кабинете.
Подтвердите email. После регистрации на указанный адрес приходит ссылка-подтверждение. Пока email не подтверждён, создание API-ключей недоступно — это защита аккаунта.
Тариф — это фиксированная подписка с месячной квотой токенови лимитами скорости. Квота обновляется каждый платёжный период. Управление — раздел «Подписка и оплата».
| Тариф | Цена / мес | Квота токенов | Запросов/мин | Параллельно | Перерасход |
|---|---|---|---|---|---|
| Go | 560 ₽ | 20 млн | 60 | 5 | — |
| Pro |
| 2 800 ₽ |
| 100 млн |
| 300 |
| 20 |
| до 5 000 ₽ |
| Max | 11 200 ₽ | 400 млн | 1000 | 50 | до 20 000 ₽ |
Ключ вида sk-aigate-… создаётся в кабинете (кнопка «Создать», можно задать название). Им вы и обращаетесь к API.
Подставьте свой ключ и base_url в привычный клиент OpenAI — менять остальной код не нужно:
from openai import OpenAI
client = OpenAI(
base_url="https://ai-gatewey.ru/v1",
api_key="sk-aigate-ваш_ключ",
)
resp = client.chat.completions.create(
model="deepseek/deepseek-v4-flash",
messages=[{"role": "user", "content": "Привет!"}],
)
print(resp.choices[0].message.content)POST /v1/chat/completions — основной: ответы в чате.GET /v1/models — список моделей, доступных вашему ключу.POST /v1/messages — формат Anthropic Messages: для SDK anthropic и Claude Code.POST /v1/responses — OpenAI Responses API, включая встроенные инструменты.POST /v1/images/generations — генерация изображений; доступность зависит от модели в каталоге./v1/chat/completions, отдельный путь не нужен.stream: true (ответ приходит частями, Server-Sent Events), как в OpenAI.API совместим с официальными OpenAI SDK (Python, Node.js и др.) и с любым инструментом, умеющим работать с OpenAI-совместимым endpoint. Ключ, тарификация и лимиты общие для всех эндпоинтов — меняется только формат запроса.
from openai import OpenAI
client = OpenAI(
base_url="https://ai-gatewey.ru/v1",
api_key="sk-aigate-ваш_ключ",
)
stream = client.chat.completions.create(
model="deepseek/deepseek-v4-flash",
messages=[{"role": "user", "content": "Расскажи про токены"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)В поле model — код из нашего каталога, а не имя модели Anthropic.
from anthropic import Anthropic
client = Anthropic(
base_url="https://ai-gatewey.ru",
api_key="sk-aigate-ваш_ключ",
)
msg = client.messages.create(
model="anthropic/claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Привет!"}],
)
print(msg.content[0].text)Модель выбирается параметром model (например deepseek/deepseek-v4-flash). Модели вашего тарифа оплачиваются из квоты; модели сверх тарифа доступны без апгрейда — оплачиваются по токенам с баланса. Если баланс исчерпан, сверх-тарифные модели ставятся на паузу (вернут 402), включённые в тариф работают.
Актуальный список с ценами и провайдерами — на странице «Модели»; программно доступные именно вашему ключу модели вернёт GET /v1/models.
429 до следующего периода; модели сверх тарифа продолжают работать за счёт баланса.В разделе «Расход» видны потреблённые токены и затраты по дням и по моделям. Сводка (тариф, токены за 30 дней, баланс) — на главной кабинета. Так можно заранее заметить приближение к квоте и при необходимости сменить тариф или пополнить баланс.
Чтобы не опрашивать API в цикле, подпишитесь на события в разделе «Вебхуки». Мы отправим POST с телом JSON на ваш адрес. Событий шесть:
payment.succeeded — платёж зачислен на баланс.balance.low — баланс опустился ниже вашего порога.key.quota_exceeded — ключ упёрся в потолок расхода.key.expired — истёк срок жизни ключа.subscription.renewed — подписка продлена на новый период.invoice.paid — счёт для юрлица оплачен.Каждая доставка подписана: X-AIGateway-Signature — это HMAC-SHA256 в hex от строки {timestamp}.{тело}, где секрет выдаётся при создании вебхука, а timestamp дублируется в заголовке X-AIGateway-Timestamp. Имя события — в X-AIGateway-Event.
Сравнивайте подписи функцией постоянного времени и отклоняйте доставки старше 5 минут — иначе перехваченный однажды запрос можно будет повторять сколько угодно.
import hmac, hashlib, time
def valid(secret: str, body: bytes, signature: str, timestamp: str) -> bool:
# Отклоняем старые доставки: подпись у повтора верная, но это не новое событие
if abs(time.time() - int(timestamp)) > 300:
return False
expected = hmac.new(
secret.encode(), f"{timestamp}.".encode() + body, hashlib.sha256
).hexdigest()
# Сравнение постоянного времени: обычное == подсказывает подбор по задержке
return hmac.compare_digest(expected, signature)2xx в течение 10 секунд. Ответы 408, 429 и 5xx — повторяем; остальные 4xx считаем окончательным отказом.https:// и только публичный: внутренние и служебные адреса отклоняются, редиректы не выполняются.В разделе «Команда» владелец аккаунта приглашает участников и выдаёт каждому свой ключ с потолком расхода. Участник видит только свои ключи и свой расход, владелец — расход по каждому. Ключ участника не расширяет тариф: ограничения только сужают доступ.
Запросы проходят через встроенную защиту (guardrail). Секреты (API-ключи, токены, приватные ключи) и номера банковских карт маскируются до отправки модели — в апстрим уходит [REDACTED], исходные данные модель не получает. Персональные данные (email, телефон, СНИЛС/ИНН и т.п.) защита распознаёт, но не маскирует: текст запроса уходит модели как есть. Для аудита по 152-ФЗ сохраняется только факт находки — тип и количество («email: 2»), без самих значений.
Защиту можно отключить переключателем в кабинете (на свой риск — тогда секреты и номера карт тоже уйдут провайдеру как есть). Учтите: модели размещены за пределами России, поэтому содержимое любого запроса — это трансграничная передача. Наши серверы, журналы и платежи — в РФ; ваши запросы мы не сохраняем. Подробнее — в политике конфиденциальности.
Формат и коды — как в OpenAI API:
401 — неверный или отсутствующий ключ. Проверьте заголовок Authorization: Bearer sk-aigate-….402 — нужна оплата: исчерпана месячная квота, пуст баланс либо модель не входит в тариф. Тип ошибки — insufficient_quota, в тексте сказано, что делать. Пополните баланс или смените тариф.429 — превышен лимит запросов в минуту. Снизьте темп.400 — некорректный запрос (например, неизвестное имя модели или неверный формат тела).5xx — временная проблема на стороне сервиса или провайдера модели; повторите запрос позже.Подойдёт ли мой код под OpenAI?
Да. AI Gateway OpenAI-совместим — меняются только base_url и ключ, остальной код остаётся прежним.
Как считается квота?
По суммарным токенам запроса и ответа. Остаток и расход видны в кабинете; квота обновляется каждый платёжный период.
Что будет при исчерпании квоты?
На тарифах с перерасходом расход продолжится за счёт баланса до жёсткого потолка. Без перерасхода запросы вернут 429 до следующего периода или повышения тарифа.
Можно ли сменить тариф в середине месяца?
Да, в разделе «Подписка и оплата». Неиспользованный остаток текущей подписки засчитывается при переходе.
Сколько можно создать ключей?
Несколько — удобно держать отдельный ключ на каждое приложение. Любой ключ можно отозвать независимо от других.
Где посмотреть доступные модели?
На странице «Модели» либо запросом GET /v1/models вашим ключом.