infergate
Модели и ценыЧатВопросыДокументация
Модели и ценыЧатВопросыДокументация
Документация
Обзор
Начало работыАутентификацияОшибки
Эндпоинты
GET/modelsPOST/chat/completionsPOST/cursor/chat/completionsPOST/embeddingsPOST/messagesPOST/responsesGET/images/modelsPOST/imagesGET/videos/modelsPOST/videosGET/videos/{id}GET/videos/{id}/content

Документация API

Публичный OpenAI-совместимый APIhttps://infergate.ru/api/v1

Начало работы

Infergate предоставляет единый OpenAI-совместимый API к каталогу моделей. Базовый адрес — https://infergate.ru/api/v1. Если ваш код уже работает с OpenAI SDK, достаточно поменять base_url и ключ.

Оплата — по факту использования с рублёвого баланса; цена запроса считается по токенам по опубликованным ценам каталога.

python
from openai import OpenAI

client = OpenAI(
    base_url="https://infergate.ru/api/v1",
    api_key="sk-...",
)

resp = client.chat.completions.create(
    model="openai/gpt-4o-mini",
    messages=[{"role": "user", "content": "Привет!"}],
)
print(resp.choices[0].message.content)

Аутентификация

Все запросы к /api/v1 авторизуются API-ключом в заголовке Authorization: Bearer. Ключи создаются в личном кабинете (раздел «API-ключи»); значение ключа показывается один раз при создании.

Повторную отправку одного и того же запроса можно сделать безопасной идемпотентным заголовком Idempotency-Key: повтор с тем же ключом и телом вернёт сохранённый ответ без повторного списания.

curl
curl https://infergate.ru/api/v1/models \
  -H "Authorization: Bearer sk-..."

Список моделей

GET/api/v1/models

Возвращает доступные модели в формате OpenAI (object=list). Идентификаторы моделей используются в поле model остальных эндпоинтов, например anthropic/claude-opus-4.8.

curl
curl https://infergate.ru/api/v1/models \
  -H "Authorization: Bearer sk-..."

Чат-комплишены

POST/api/v1/chat/completions

Основной эндпоинт генерации в формате OpenAI Chat Completions. Поддерживает стриминг (stream: true, ответ приходит как Server-Sent Events), инструменты (tools), мультимодальный ввод и ограничение ответа через max_tokens.

Если max_tokens не указан, применяется ограничение по умолчанию — оно же резервирует средства на балансе на время запроса; после ответа списывается фактическая стоимость по usage.

curl
curl https://infergate.ru/api/v1/chat/completions \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [{"role": "user", "content": "Hello!"}],
    "stream": false,
    "max_tokens": 500
  }'

Cursor IDE

POST/api/v1/cursor/chat/completions

Выделенная поверхность для редактора Cursor: она принимает запросы в формате Cursor (включая его плоский формат tools) и проксирует их через специальный нормализующий эндпоинт вышестоящего провайдера. Обычный /api/v1 для Cursor не подходит — на нём ломаются вызовы инструментов.

Настройка в Cursor: Settings → Models → API Keys → включите OpenAI API Key, вставьте ключ Infergate (sk-…) и укажите Override OpenAI Base URL: https://infergate.ru/api/v1/cursor — путь /chat/completions Cursor допишет сам. Модели добавляйте по точным идентификаторам каталога (например, openai/gpt-4o).

Биллинг, лимиты и стриминг — те же, что у /chat/completions; в статистике такие запросы помечаются endpoint = cursor.

cursor settings
OpenAI API Key:            sk-...            # ваш ключ Infergate / your Infergate key
Override OpenAI Base URL:  https://infergate.ru/api/v1/cursor

Эмбеддинги

POST/api/v1/embeddings

Векторные представления текста в формате OpenAI Embeddings. Модель должна быть эмбеддинговой (kind=embedding в каталоге); оплата считается по входным токенам.

curl
curl https://infergate.ru/api/v1/embeddings \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/text-embedding-3-small",
    "input": "Съешь ещё этих мягких французских булок"
  }'

Anthropic Messages

POST/api/v1/messages

Anthropic-совместимый эндпоинт: тот же формат, что у Anthropic Messages API, включая system, content-блоки и стриминг. Удобен, если ваш код написан под Anthropic SDK — поменяйте базовый адрес и ключ.

Поле max_tokens обязательно, как и в оригинальном API.

curl
curl https://infergate.ru/api/v1/messages \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-opus-4.8",
    "max_tokens": 500,
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

Responses API

POST/api/v1/responses

OpenAI Responses API — новый формат, на который переходят свежие OpenAI SDK (client.responses.create). Вход — строка или массив типизированных сообщений (input), ограничение ответа — max_output_tokens, стриминг — семантические SSE-события.

Эндпоинт stateless: состояние диалога не хранится, историю передавайте целиком в каждом запросе.

curl
curl https://infergate.ru/api/v1/responses \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "input": "Hello!",
    "max_output_tokens": 500
  }'
python
resp = client.responses.create(
    model="openai/gpt-4o-mini",
    input="Hello!",
    max_output_tokens=500,
)
print(resp.output_text)

Модели изображений

GET/api/v1/images/models

Возвращает модели, умеющие выводить изображения (image в output_modalities каталога) — ровно те, которые принимает POST /api/v1/images. Конверт тот же, что у /models (object=list); дополнительно у каждой модели есть input_modalities, output_modalities и supported_parameters — параметры, о поддержке которых сообщил вендор (aspect_ratio, size, n, seed, input_references и т. д.). Конкретные допустимые значения (например, список разрешений) каталог не хранит.

Цены — в рублях с вашей наценкой по текущему курсу: prompt/completion за 1M токенов, а для моделей с ручной ценой за единицу — блок media_price (₽ за изображение). Списывается фактическая стоимость генерации.

curl
curl https://infergate.ru/api/v1/images/models \
  -H "Authorization: Bearer sk-..."
json
{
  "object": "list",
  "data": [
    {
      "id": "google/gemini-2.5-flash-image",
      "object": "model",
      "owned_by": "google",
      "kind": "generative",
      "input_modalities": ["text", "image"],
      "output_modalities": ["image"],
      "supported_parameters": ["aspect_ratio", "n", "seed", "input_references"],
      "pricing": { "currency": "RUB", "prompt": "24.5", "completion": "196" }
    }
  ]
}

Генерация изображений

POST/api/v1/images

Синхронная генерация изображений. Обязательные поля — model и prompt; опционально aspect_ratio, size, quality, output_format, n (1–10), seed и input_references для редактирования по образцу. Модель должна поддерживать вывод изображений (image в output_modalities каталога).

Ответ приходит одним JSON: data — массив изображений в base64 (b64_json), usage.cost — фактическая стоимость запроса, которая и списывается с баланса (с учётом курса и наценки).

curl
curl https://infergate.ru/api/v1/images \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/gemini-2.5-flash-image",
    "prompt": "A watercolor fox in a snowy forest",
    "n": 1
  }'
json
{
  "created": 1727000000,
  "data": [{ "b64_json": "iVBORw0KGgo...", "media_type": "image/png" }],
  "usage": { "prompt_tokens": 11, "completion_tokens": 1290, "total_tokens": 1301, "cost": 0.039 }
}

Модели видео

GET/api/v1/videos/models

Возвращает модели, умеющие выводить видео (video в output_modalities каталога) — ровно те, которые принимает POST /api/v1/videos. Конверт тот же, что у /models (object=list); дополнительно — input_modalities, output_modalities и supported_parameters (duration, resolution, aspect_ratio, seed и т. д. — то, о чём сообщил вендор). Допустимые значения длительностей и разрешений каталог не хранит, поэтому в ответе их нет.

Если для модели заведена ручная цена за единицу, она приходит в media_price (например, ₽ за секунду) — это ориентир для оценки и размера резерва; списывается фактическая стоимость задачи.

curl
curl https://infergate.ru/api/v1/videos/models \
  -H "Authorization: Bearer sk-..."
json
{
  "object": "list",
  "data": [
    {
      "id": "google/veo-3",
      "object": "model",
      "owned_by": "google",
      "kind": "generative",
      "input_modalities": ["text", "image"],
      "output_modalities": ["video"],
      "supported_parameters": ["duration", "resolution", "aspect_ratio", "seed"],
      "pricing": { "currency": "RUB" },
      "media_price": { "currency": "RUB", "unit": "second", "per_unit": "55" }
    }
  ]
}

Генерация видео

POST/api/v1/videos

Асинхронная генерация видео. Запрос принимает model и prompt, а также необязательные duration (секунды), resolution, aspect_ratio, size, generate_audio, seed, frame_images (первый/последний кадр) и input_references — они передаются модели как есть.

Ответ — 202 Accepted с id задачи и polling_url. Видео генерируется в фоне: опрашивайте polling_url до статуса completed, затем скачайте файл по ссылке из unsigned_urls. На время генерации на балансе резервируется сумма по цене модели; после завершения списывается фактическая стоимость, при ошибке резерв возвращается полностью.

curl
curl https://infergate.ru/api/v1/videos \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/veo-3",
    "prompt": "A cat surfing a wave at sunset",
    "duration": 8
  }'
json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "polling_url": "https://infergate.ru/api/v1/videos/3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "status": "pending"
}

Статус видео

GET/api/v1/videos/{id}

Опрос задачи генерации по id из ответа на создание. Доступен только API-ключу, которым была создана задача. Возможные статусы: pending/processing — генерация идёт (повторите запрос через несколько секунд), completed — готово (в unsigned_urls появится ссылка на скачивание), failed/cancelled/expired — задача завершилась без результата (поле error содержит причину, средства не списываются).

Стоимость списывается один раз при первом опросе, увидевшем completed; повторные опросы безопасны.

curl
curl https://infergate.ru/api/v1/videos/3fa85f64-5717-4562-b3fc-2c963f66afa6 \
  -H "Authorization: Bearer sk-..."
json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "status": "completed",
  "unsigned_urls": ["https://infergate.ru/api/v1/videos/3fa85f64-5717-4562-b3fc-2c963f66afa6/content?index=0"]
}

Скачивание видео

GET/api/v1/videos/{id}/content

Скачивает готовый ролик (MP4) завершённой задачи. Параметр index выбирает файл, когда их несколько (по умолчанию 0). Доступен только ключу-владельцу задачи; ссылка возвращается в unsigned_urls при статусе completed.

curl
curl -o video.mp4 "https://infergate.ru/api/v1/videos/3fa85f64-5717-4562-b3fc-2c963f66afa6/content?index=0" \
  -H "Authorization: Bearer sk-..."

Ошибки

Ошибки возвращаются в OpenAI-совместимом конверте {"error": {"message", "type", "code"}}. Основные статусы: 401 — неверный или отключённый ключ; 402 — недостаточно средств или исчерпан лимит ключа (code=insufficient_balance); 403 — аккаунт деактивирован; 404 — неизвестная модель; 422 — некорректные параметры (например, max_tokens); 5xx — временная недоступность, повторите запрос.

json
{
  "error": {
    "message": "Insufficient balance or key limit to serve this request.",
    "type": "insufficient_quota",
    "code": "insufficient_balance"
  }
}
infergate

Облачный шлюз к большим языковым моделям с биллингом в рублях. AI-инфраструктура для команд и бизнеса.

Продукт

Модели и ценыЧатВопросыДокументация

Правовое

Пользовательское соглашениеПубличная офертаПолитика конфиденциальностиОбработка перс. данных

Аккаунт

ВойтиЗарегистрироваться
© 2026 InfergateOpenAI-совместимый API · цены за 1M токенов