Документация
Подключите OpenAI, Anthropic и Google через единый шлюз. Меняете только base URL и ключ.
Введение
AI Proxy — единый API-шлюз к зарубежным AI-провайдерам (OpenAI, Anthropic, Google) для разработчиков из России. Мы держим зарубежный egress и принимаем оплату российскими картами в рублях.
Протокол полностью совместим с оригинальными провайдерами: в своём коде вы меняете только base URL и API-ключ, остальной код остаётся прежним. Списания происходят по фактическим токенам.
Быстрый старт
Три шага, чтобы сделать первый запрос:
- Войдите в личный кабинет и создайте API-ключ в разделе «API-ключи». Ключ показывается один раз — сохраните его.
- Пополните баланс в рублях: списания идут с предоплаченного баланса по фактическому расходу токенов.
- Укажите base URL нужного провайдера и свой ключ в SDK или curl — и отправьте первый запрос.
Первый запрос
from openai import OpenAI
client = OpenAI(
base_url="https://api.ai-proxy.xn--d1acaxq.xn--p1ai/openai/v1",
api_key="sk-aip-ВАШ_КЛЮЧ",
)
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)Аутентификация
AI Proxy выдаёт вам персональный ключ (sk-aip-…) в кабинете — это ваш ключ доступа, а не ключ провайдера. Указывайте его в SDK там, где обычно передаётся ключ провайдера; настоящие ключи OpenAI, Anthropic и Google хранятся у нас и подставляются автоматически — вам они не нужны. Способ передачи ключа — как у выбранного провайдера:
- Заголовок Authorization: Bearer <ключ> — для OpenAI SDK.
- Заголовок x-api-key: <ключ> — для Anthropic SDK.
- Query-параметр ?key=<ключ> — для Google (Gemini) API.
Храните ключ в секрете. Скомпрометированный ключ можно отозвать в кабинете и создать новый.
Базовые URL
Каждому провайдеру соответствует свой префикс на нашем домене:
| Провайдер | Base URL |
|---|---|
| OpenAI | https://api.ai-proxy.xn--d1acaxq.xn--p1ai/openaiДля OpenAI SDK добавляйте /v1. |
| Anthropic | https://api.ai-proxy.xn--d1acaxq.xn--p1ai/anthropicEndpoint сообщений: /anthropic/v1/messages. |
https://api.ai-proxy.xn--d1acaxq.xn--p1ai/googleФормат Gemini: /google/v1beta/models/{model}:generateContent. |
Примеры
Готовые примеры для каждого провайдера. Подставьте свой ключ.
OpenAI
from openai import OpenAI
client = OpenAI(
base_url="https://api.ai-proxy.xn--d1acaxq.xn--p1ai/openai/v1",
api_key="sk-aip-ВАШ_КЛЮЧ",
)
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)Anthropic
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.ai-proxy.xn--d1acaxq.xn--p1ai/anthropic",
api_key="sk-aip-ВАШ_КЛЮЧ",
)
msg = client.messages.create(
model="claude-3-5-sonnet-latest",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}],
)
print(msg.content[0].text)Google (Gemini)
import requests
resp = requests.post(
"https://api.ai-proxy.xn--d1acaxq.xn--p1ai/google/v1beta/models/gemini-1.5-flash:generateContent",
params={"key": "sk-aip-ВАШ_КЛЮЧ"},
json={"contents": [{"parts": [{"text": "Hello!"}]}]},
)
data = resp.json()
print(data["candidates"][0]["content"]["parts"][0]["text"])Стриминг
Передайте stream: true, чтобы получать ответ по мере генерации (Server-Sent Events).
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Hello!"}],
stream=True,
stream_options={"include_usage": True},
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")Тарификация
Стоимость запроса = цена провайдера + 10%. Списание идёт с предоплаченного баланса в рублях по фактическому числу токенов (ввод + вывод).
Актуальные цены по каждой модели, курс USD/RUB и размер наценки указаны в каталоге.
Открыть каталог и цены →Ошибки
API возвращает стандартные HTTP-коды. Основные ошибки:
| Код | Когда | Что делать |
|---|---|---|
| 401 | Неверный или отозванный API-ключ. | Проверьте ключ или создайте новый в кабинете. |
| 402 | Недостаточно средств на балансе. | Пополните баланс в рублях в личном кабинете. |
| 400 | Неизвестная модель или некорректный запрос. | Сверьте slug модели с каталогом и формат тела запроса. |
FAQ
- Нужен ли VPN?
- Нет. Мы держим зарубежный egress — запросы идут на наш российский домен, а мы проксируем их к провайдеру.
- Можно ли использовать официальные SDK?
- Да. Меняете только base URL и ключ в конфигурации клиента — остальной код SDK работает без изменений.
- В какой валюте списания?
- Баланс и списания — в рублях. Цена привязана к цене провайдера в долларах и текущему курсу USD/RUB плюс наценка.
- Как отозвать ключ?
- В разделе «API-ключи» личного кабинета нажмите «Отозвать». Действие необратимо; создайте новый ключ при необходимости.