Перейти к содержимому

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

AI Router полностью совместим с форматом OpenAI API. Используйте любой SDK или HTTP-клиент — достаточно изменить base_url и API-ключ.

Быстрый старт

Запустите AI Router менее чем за 2 минуты. Если вы уже используете OpenAI SDK — достаточно изменить два параметра.

Python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.airouter.kz/api/v1",
    api_key="air_live_your_key_here"
)

response = client.chat.completions.create(
    model="openai/gpt-5.4",
    messages=[
        {"role": "user", "content": "Summarize the OpenAI Chat Completions schema in one sentence."}
    ]
)

print(response.choices[0].message.content)
JavaScript / TypeScript
import OpenAI from "openai";

const client = new OpenAI({
    baseURL: "https://api.airouter.kz/api/v1",
    apiKey: "air_live_your_key_here"
});

const response = await client.chat.completions.create({
    model: "anthropic/claude-opus-4-7",
    messages: [
        { role: "user", content: "Summarize the OpenAI Chat Completions schema in one sentence." }
    ]
});

console.log(response.choices[0].message.content);
cURL
curl https://api.airouter.kz/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer air_live_your_key_here" \
  -d '{
    "model": "google/gemini-3-pro",
    "messages": [
      {"role": "user", "content": "Summarize the OpenAI Chat Completions schema in one sentence."}
    ]
  }'

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

Все API-запросы требуют API-ключ в заголовке Authorization как Bearer-токен.

Формат API-ключа

API-ключи AI Router имеют префикс air_live_ и 43 символа base64url. Пример:

air_live_abc123def456ghi789jkl012mno345pqr678stu

Формат заголовка

Authorization: Bearer air_live_your_key_here

Создавайте и управляйте ключами в панели или через эндпоинты управления ключами.

Базовый URL

$https://api.airouter.kz/api/v1

Все эндпоинты относительны этого базового URL. API полностью совместим с путями OpenRouter и OpenAI.

SDK и библиотеки

AI Router работает с любым SDK, поддерживающим кастомный base URL. Специальный SDK не нужен — используйте имеющийся.

OpenAI Python SDK

pip install openai

Установите base_url в https://api.airouter.kz/api/v1

OpenAI Node.js SDK

npm install openai

Установите baseURL в https://api.airouter.kz/api/v1

LangChain

pip install langchain-openai

Используйте ChatOpenAI с параметром openai_api_base

LlamaIndex

pip install llama-index-llms-openai

Установите api_base в классе OpenAI LLM

Эндпоинты

AI Router реализует те же пути эндпоинтов, что и OpenRouter и OpenAI. Схемы запросов и ответов идентичны.

МетодПутьОписание
POST/api/v1/chat/completionsСоздать чат-комплишен
POST/api/v1/images/generationsСгенерировать изображения
POST/api/v1/audio/speechСинтез речи
POST/api/v1/audio/transcriptionsРаспознавание речи
GET/api/v1/modelsСписок доступных моделей
GET/api/v1/generation?id=Детали генерации
GET/api/v1/creditsПроверить баланс
GET/api/v1/keysСписок API-ключей
POST/api/v1/keysСоздать новый API-ключ
PATCH/api/v1/keys/:idОбновить API-ключ
DELETE/api/v1/keys/:idУдалить API-ключ

POST /api/v1/chat/completions

Создайте чат-комплишен. Основной эндпоинт для взаимодействия с любой AI-моделью через AI Router. Формат запроса и ответа идентичен OpenAI Chat Completions API.

Тело запроса
{
  "model": "openai/gpt-5.4",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "user",
      "content": "Explain quantum computing in simple terms."
    }
  ],
  "temperature": 0.7,
  "max_tokens": 1000,
  "stream": false
}
Ответ
{
  "id": "gen-abc123",
  "object": "chat.completion",
  "created": 1713200000,
  "model": "openai/gpt-5.4",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Quantum computing uses quantum mechanics..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 150,
    "total_tokens": 175
  }
}

Формат ID модели

ID моделей имеют формат provider/model-name. Примеры:

  • openai/gpt-5.4
  • anthropic/claude-opus-4-7
  • google/gemini-3-pro
  • deepseek/deepseek-v3.2
  • mistral/mistral-large-3
  • xai/grok-4

Стриминг

Установите "stream": true для получения Server-Sent Events (SSE). Формат ответа соответствует OpenAI streaming-спецификации, с data: [DONE] в конце.

POST /api/v1/images/generations

Генерация изображений моделями GPT-Image-1, Imagen 4, FLUX 1.1 Pro и другими frontier-моделями. Формат запроса соответствует OpenAI Images API.

cURL
curl https://api.airouter.kz/api/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer air_live_your_key_here" \
  -d '{
    "model": "openai/gpt-image-1",
    "prompt": "a white siamese cat",
    "n": 1,
    "size": "1024x1024"
  }'
Ответ
{
  "created": 1713200000,
  "data": [
    {
      "url": "https://...",
      "revised_prompt": "A white Siamese cat with blue eyes..."
    }
  ]
}

Поддерживаемые размеры

  • 1024x1024
  • 1792x1024
  • 1024x1792

POST /api/v1/audio/speech

Конвертация текста в естественную речь. Возвращает сырые аудио-байты с Content-Type: audio/mpeg по умолчанию.

cURL
curl https://api.airouter.kz/api/v1/audio/speech \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer air_live_your_key_here" \
  -d '{
    "model": "openai/gpt-4o-mini-tts",
    "input": "Hello, welcome to AI Router!",
    "voice": "alloy"
  }' \
  --output speech.mp3

Доступные голоса

alloyechofableonyxnovashimmer

Формат ответа

Ответ — сырые аудио-байты (не JSON). По умолчанию content type — audio/mpeg. Можно запросить другие форматы через response_format: opus, aac или flac.

POST /api/v1/audio/transcriptions

Распознавание речи моделями GPT-4o Transcribe и другими. Принимает multipart/form-data запросы.

cURL
curl https://api.airouter.kz/api/v1/audio/transcriptions \
  -H "Authorization: Bearer air_live_your_key_here" \
  -F file="@audio.mp3" \
  -F model="openai/gpt-4o-transcribe"
Ответ
{
  "text": "Hello, welcome to AI Router!"
}

Поддерживаемые аудио-форматы

.mp3.mp4.mpeg.mpga.m4a.wav.webm

Максимальный размер файла: 25 МБ

GET /api/v1/models

Список всех доступных моделей. Возвращает ID, цены, длины контекста и возможности. Аутентификация не требуется.

cURL
curl https://api.airouter.kz/api/v1/models
Ответ (сокращён)
{
  "object": "list",
  "data": [
    {
      "id": "openai/gpt-5.4",
      "object": "model",
      "created": 1713200000,
      "owned_by": "openai",
      "pricing": {
        "prompt": "0.0000025",
        "completion": "0.000020"
      },
      "context_length": 1048576,
      "top_provider": {
        "max_completion_tokens": 131072
      }
    }
  ]
}

GET /api/v1/generation?id=

Получить детали конкретной генерации: счётчики токенов, стоимость, задержку и провайдера, который обработал запрос.

cURL
curl "https://api.airouter.kz/api/v1/generation?id=gen-abc123" \
  -H "Authorization: Bearer air_live_your_key_here"
Ответ
{
  "id": "gen-abc123",
  "model": "openai/gpt-5.4",
  "created_at": "2026-04-15T10:30:00Z",
  "tokens_prompt": 25,
  "tokens_completion": 150,
  "total_cost": 0.003062,
  "latency_ms": 1250,
  "provider": "openai",
  "status": "completed"
}

GET /api/v1/credits

Проверить текущий баланс. Возвращает значение в USD как число с плавающей точкой для совместимости с OpenRouter.

cURL
curl https://api.airouter.kz/api/v1/credits \
  -H "Authorization: Bearer air_live_your_key_here"
Ответ
{
  "data": {
    "total_credits": 100.00,
    "total_usage": 23.45,
    "remaining": 76.55
  }
}

Управление API-ключами

Создание, листинг, обновление и удаление API-ключей программно. Требует session-аутентификации (вход в панель) или management API-ключа.

Создать новый API-ключ
curl -X POST https://api.airouter.kz/api/v1/keys \
  -H "Authorization: Bearer air_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "production-backend",
    "rate_limit": 100
  }'
Получить список ключей
curl https://api.airouter.kz/api/v1/keys \
  -H "Authorization: Bearer air_live_your_key_here"
Удалить ключ
curl -X DELETE https://api.airouter.kz/api/v1/keys/key_id_here \
  -H "Authorization: Bearer air_live_your_key_here"

Self-hosted модели

AI Router запускает 20 популярных open-weight моделей на собственной GPU-инфраструктуре с оптимизированным inference-стеком. Эти модели используют тот же API — без особой конфигурации.

Формат ID модели

ID self-hosted моделей имеют префикс airouter-cloud/. Примеры:

  • airouter-cloud/llama-4-maverick
  • airouter-cloud/qwen-3-235b
  • airouter-cloud/deepseek-v3.2
  • airouter-cloud/gemma-3-27b
  • airouter-cloud/mistral-large-3
Python — использование self-hosted модели
from openai import OpenAI

client = OpenAI(
    base_url="https://api.airouter.kz/api/v1",
    api_key="air_live_your_key_here"
)

response = client.chat.completions.create(
    model="airouter-cloud/llama-4-maverick",
    messages=[
        {"role": "user", "content": "Write a quicksort in Python"}
    ]
)

print(response.choices[0].message.content)

Данные остаются локально

Ваши данные не покидают наши серверы. Без сторонних маршрутов для self-hosted моделей.

Выделенные GPU

Модели работают на выделенных NVIDIA GPU с гарантированной мощностью.

Кастомный деплой

Нужна конкретная модель? Развернём любую HuggingFace-модель за 24 часа.

Все доступные self-hosted модели — на странице Self-Hosted.

Обработка ошибок

AI Router возвращает стандартные HTTP-коды и JSON-ошибки, совместимые с форматом ошибок OpenAI.

СтатусЗначение
400Bad request — невалидный JSON или отсутствуют обязательные поля
401Unauthorized — невалидный или отсутствующий API-ключ
402Payment required — недостаточно средств на балансе
404Not found — неизвестная модель или эндпоинт
429Rate limited — слишком много запросов в секунду
500Internal error — непредвиденная серверная ошибка
502Provider error — upstream-провайдер вернул ошибку
503Provider unavailable — upstream-провайдер недоступен
Формат ответа при ошибке
{
  "error": {
    "message": "Insufficient credits. Please add funds to your account.",
    "type": "insufficient_credits",
    "code": 402
  }
}

Rate limits

Rate limits применяются к каждому API-ключу. Лимиты по умолчанию можно настроить через панель или API.

Лимиты по умолчанию

  • 60 запросов/мин на ключ (настраивается)
  • Rate limit заголовки в каждом ответе: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
  • Статус 429 при превышении, с заголовком Retry-After

Нужны более высокие лимиты? Откройте форму обратной связи для индивидуальных настроек.

Готовы интегрировать?

Создайте аккаунт и начните делать API-вызовы за минуты.