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

Быстрый старт с AI API Hub

Подключите OpenAI-compatible API, создайте ключ в кабинете и отправьте первый запрос. Эта страница закрывает базовую интеграцию, заголовки, ошибки и контроль расходов.

Node.jsQuick Start
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.AI_HUB_API_KEY,
  baseURL: "https://api.example.ru/v1"
});

const response = await client.chat.completions.create({
  model: "claude-best",
  messages: [{ role: "user", content: "Сделай краткое резюме" }]
});

console.log(response.choices[0].message.content);

Авторизация

Передавайте API-ключ в заголовке Authorization: Bearer. Ключи создаются и ограничиваются в кабинете.

Совместимость

Формат запросов совместим с OpenAI SDK: обычно достаточно заменить baseURL и ключ.

Биллинг

Стоимость фиксируется по версии тарифа на момент запроса, списания отображаются в истории расходов.

Надёжность

Используйте идемпотентность, лимиты стоимости и обработку retryable-ошибок для production-сценариев.

Интеграции

Готовые подключения к редакторам и агентам

Настройте AI API Hub как кастомный провайдер в популярных инструментах разработки.

API Reference

Основные endpoints

Базовый URL: https://api.example.ru/v1. Для локальной разработки используйте URL из окружения.

GET /v1/models

Возвращает список доступных моделей, их capabilities, публичные slug и сведения о тарификации.

POST /v1/chat/completions

Создаёт chat completion в OpenAI-compatible формате. Поддерживает стандартные messages и model slug.

POST /v1/embeddings

Создаёт vector embeddings для моделей с prefix embedding-. Используйте публичный slug AI API Hub, а не upstream model id провайдера.

POST /v1/responses

Endpoint для response-ориентированных сценариев, когда выбранная модель поддерживает этот capability.

Headers

Заголовки для production-интеграций

AuthorizationBearer API-ключ из кабинета.
Idempotency-KeyЗащита от повторного списания при ретраях.
X-Routing-ModeРежим маршрутизации: auto или fixed, если доступно политикой.
X-Max-Cost-RUBМаксимальная допустимая стоимость запроса.
X-Request-ProjectПривязка расхода к проекту в кабинете.
cURLchat completions
curl https://api.example.ru/v1/chat/completions \
  -H "Authorization: Bearer $AI_HUB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: request-123" \
  -d '{
    "model": "claude-best",
    "messages": [{"role": "user", "content": "Привет"}]
  }'
Errors

Ошибки возвращаются в совместимом формате.

Ответ не раскрывает внутренние URL, ключи, stack trace или детали инфраструктуры. Для повторяемых ошибок используйте request_id при обращении в поддержку.

JSONretryable error
{
  "error": {
    "message": "The selected model is temporarily unavailable",
    "type": "provider_unavailable",
    "code": "model_temporarily_unavailable",
    "request_id": "req_...",
    "retryable": true
  }
}
Embeddings

Embedding models for vector search and RAG

Use embedding-text-3-small, embedding-text-3-large or embedding-ada-002. Public model slugs always use the embedding- prefix; provider upstream IDs are internal routing details.

Node.jsembeddings
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.AI_HUB_API_KEY,
  baseURL: "https://api.example.ru/v1"
});

const response = await client.embeddings.create({
  model: "embedding-text-3-small",
  input: "Документ для поиска"
});

console.log(response.data[0].embedding);
cURLembeddings
curl https://api.example.ru/v1/embeddings \
  -H "Authorization: Bearer $AI_HUB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: embedding-request-123" \
  -d '{
    "model": "embedding-text-3-small",
    "input": "Документ для поиска"
  }'
Models

Группы моделей и сценарии

Используйте публичный slug из каталога. Внутренние маршруты поставщиков не раскрываются в API-ответах и документации.

Chat / Responses

Текстовые модели используют OpenAI-compatible messages, стабильный model slug и списание по токенам.

claude-best, claude-sonnet, claude-haiku, gpt-coding, gpt-fast, gpt-reasoning, codex-pro, gemini-fast, gemini-pro, gemini-flash

Image generation / edit

Image-модели создают, редактируют, улучшают и масштабируют изображения через task-friendly workflow.

image-best, gpt-image, seedream-image, imagen-pro, flux-pro, nano-banana, qwen-image

Embedding models

Embedding-модели возвращают векторы для поиска, кластеризации, RAG и семантического сравнения. Публичные slug всегда начинаются с embedding-.

embedding-text-3-small, embedding-text-3-large, embedding-ada-002

Video generation

Video-модели запускают долгие задачи, поэтому интеграция должна поддерживать polling и webhooks.

video-budget, kling-video, veo-video, wan-video, runway-video, hailuo-video

Music / Audio

Audio-маршруты подходят для генерации музыки, голоса и озвучки с оплатой по минутам или задаче.

suno-music, elevenlabs-voice
Tasks

Polling и webhooks для долгих генераций

Image, video и audio задачи могут выполняться асинхронно. Создайте задачу, сохраните task id, проверяйте статус через GET /v1/tasks/:id или настройте webhook в кабинете.

cURLtask status
curl https://api.example.ru/v1/tasks/task_123 \
  -H "Authorization: Bearer $AI_HUB_API_KEY"
Media Storage

Временное хранение изображений и видео

Сгенерированные медиафайлы сохраняются в S3 Beget и доступны 12 часов с момента создания задачи. После истечения срока файлы автоматически удаляются из S3 и ссылки перестают работать.

POST /v1/images/generations и /v1/videos/generations

Создают задачу и сохраняют результат в S3. В ответе приходит result_url и retention_expires_at.

GET /v1/tasks/:id/content

Возвращает 307 Temporary Redirect на временный presigned URL S3. После истечения срока — 410 Gone.

cURLgenerate image
curl https://api.example.ru/v1/images/generations \
  -H "Authorization: Bearer $AI_HUB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "image-best", "prompt": "a cat"}'
cURLdownload result
curl https://api.example.ru/v1/tasks/task_123/content \
  -H "Authorization: Bearer $AI_HUB_API_KEY" \
  -L
JSONtask response
{
  "object": "task",
  "id": "task_123",
  "status": "succeeded",
  "type": "image",
  "result_url": "https://api.example.ru/v1/tasks/task_123/content",
  "result_content_type": "image/png",
  "result_size_bytes": 95,
  "retention_expires_at": "2026-07-05T09:00:00.000Z"
}
Не используйте presigned URL как постоянную ссылку.Он действителен ограниченное время и предназначен только для скачивания.
Скачивайте результаты сразу.Через 12 часов файлы удаляются без возможности восстановления.
Используйте /v1/tasks/:id/content.Прямой доступ к S3-домену не гарантируется; ссылки выдаются только через API.

SDK

Используйте официальный OpenAI SDK для Node.js, Python или любого клиента с совместимым HTTP API.

Модели

Смотрите capabilities и цены в публичном каталоге, затем используйте стабильный model slug.

Расходы

Лимиты, баланс, история запросов и документы доступны в кабинете организации.