# Справочник по API 🌐 **Languages:** 🇺🇸 [English](../../API_REFERENCE.md) | 🇧🇷 [Português (Brasil)](../pt-BR/API_REFERENCE.md) | 🇪🇸 [Español](../es/API_REFERENCE.md) | 🇫🇷 [Français](../fr/API_REFERENCE.md) | 🇮🇹 [Italiano](../it/API_REFERENCE.md) | 🇷🇺 [Русский](../ru/API_REFERENCE.md) | 🇨🇳 [中文 (简体)](../zh-CN/API_REFERENCE.md) | 🇩🇪 [Deutsch](../de/API_REFERENCE.md) | 🇮🇳 [हिन्दी](../in/API_REFERENCE.md) | 🇹🇭 [ไทย](../th/API_REFERENCE.md) | 🇺🇦 [Українська](../uk-UA/API_REFERENCE.md) | 🇸🇦 [العربية](../ar/API_REFERENCE.md) | 🇯🇵 [日本語](../ja/API_REFERENCE.md) | 🇻🇳 [Tiếng Việt](../vi/API_REFERENCE.md) | 🇧🇬 [Български](../bg/API_REFERENCE.md) | 🇩🇰 [Dansk](../da/API_REFERENCE.md) | 🇫🇮 [Suomi](../fi/API_REFERENCE.md) | 🇮🇱 [עברית](../he/API_REFERENCE.md) | 🇭🇺 [Magyar](../hu/API_REFERENCE.md) | 🇮🇩 [Bahasa Indonesia](../id/API_REFERENCE.md) | 🇰🇷 [한국어](../ko/API_REFERENCE.md) | 🇲🇾 [Bahasa Melayu](../ms/API_REFERENCE.md) | 🇳🇱 [Nederlands](../nl/API_REFERENCE.md) | 🇳🇴 [Norsk](../no/API_REFERENCE.md) | 🇵🇹 [Português (Portugal)](../pt/API_REFERENCE.md) | 🇷🇴 [Română](../ro/API_REFERENCE.md) | 🇵🇱 [Polski](../pl/API_REFERENCE.md) | 🇸🇰 [Slovenčina](../sk/API_REFERENCE.md) | 🇸🇪 [Svenska](../sv/API_REFERENCE.md) | 🇵🇭 [Filipino](../phi/API_REFERENCE.md) Полный справочник по всем конечным точкам API OmniRoute. --- ## Содержание - [Chat Completions](#chat-completions) - [Embeddings](#embeddings) - [Image Generation](#image-generation) - [List Models](#list-models) - [Compatibility Endpoints](#compatibility-endpoints) - [Semantic Cache](#semantic-cache) - [Dashboard & Management](#dashboard--management) - [Request Processing](#request-processing) - [Authentication](#authentication) --- ## Завершения чата ```bash POST /v1/chat/completions Authorization: Bearer your-api-key Content-Type: application/json { "model": "cc/claude-opus-4-6", "messages": [ {"role": "user", "content": "Write a function to..."} ], "stream": true } ``` ### Пользовательские заголовки | Заголовок | Направление | Описание | | ------------------------ | ----------- | ------------------------------------------------ | | `X-OmniRoute-No-Cache` | Запрос | Установите значение `true` для обхода кеша | | `X-OmniRoute-Progress` | Запрос | Установите значение `true` для событий прогресса | | `Idempotency-Key` | Запрос | Ключ дедупликации (окно 5s) | | `X-Request-Id` | Запрос | Альтернативный ключ дедупликации | | `X-OmniRoute-Cache` | Ответ | `HIT` или `MISS` (без потоковой передачи) | | `X-OmniRoute-Idempotent` | Ответ | `true` при дедупликации | | `X-OmniRoute-Progress` | Ответ | `enabled`, если отслеживание прогресса включено | --- ## Вложения ```bash POST /v1/embeddings Authorization: Bearer your-api-key Content-Type: application/json { "model": "nebius/Qwen/Qwen3-Embedding-8B", "input": "The food was delicious" } ``` Доступные провайдеры: Nebius, OpenAI, Mistral, Together AI, Fireworks, NVIDIA. ```bash # List all embedding models GET /v1/embeddings ``` --- ## Генерация изображений ```bash POST /v1/images/generations Authorization: Bearer your-api-key Content-Type: application/json { "model": "openai/dall-e-3", "prompt": "A beautiful sunset over mountains", "size": "1024x1024" } ``` Доступные провайдеры: OpenAI (DALL-E), xAI (Grok Image), Together AI (FLUX), Fireworks AI. ```bash # List all image models GET /v1/images/generations ``` --- ## Список моделей ```bash GET /v1/models Authorization: Bearer your-api-key → Returns all chat, embedding, and image models + combos in OpenAI format ``` --- ## Конечные точки совместимости | Метод | Путь | Формат | | -------- | --------------------------- | ------------------------ | | ПОСТ | `/v1/chat/completions` | ОпенАИ | | ПОСТ | `/v1/messages` | Антропный | | ПОСТ | `/v1/responses` | Ответы OpenAI | | ПОСТ | `/v1/embeddings` | ОпенАИ | | ПОСТ | `/v1/images/generations` | ОпенАИ | | ПОЛУЧИТЬ | `/v1/models` | ОпенАИ | | ПОСТ | `/v1/messages/count_tokens` | Антропный | | ПОЛУЧИТЬ | `/v1beta/models` | Близнецы | | ПОСТ | `/v1beta/models/{...path}` | Близнецы создают контент | | ПОСТ | `/v1/api/chat` | Оллама | ### Маршруты выделенного провайдера ```bash POST /v1/providers/{provider}/chat/completions POST /v1/providers/{provider}/embeddings POST /v1/providers/{provider}/images/generations ``` Префикс провайдера добавляется автоматически, если он отсутствует. Несовпадающие модели возвращают `400`. --- ## Семантический кеш ```bash # Get cache stats GET /api/cache # Clear all caches DELETE /api/cache ``` Пример ответа: ```json { "semanticCache": { "memorySize": 42, "memoryMaxSize": 500, "dbSize": 128, "hitRate": 0.65 }, "idempotency": { "activeKeys": 3, "windowMs": 5000 } } ``` --- ## Панель управления и управление ### Аутентификация | Конечная точка | Метод | Описание | | ----------------------------- | ------------------ | -------------------------- | | `/api/auth/login` | ПОСТ | Войти | | `/api/auth/logout` | ПОСТ | Выйти | | `/api/settings/require-login` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Переключить требуется вход | ### Управление поставщиками | Конечная точка | Метод | Описание | | ---------------------------- | -------------------------- | --------------------------------- | | `/api/providers` | ПОЛУЧИТЬ/ОТПРАВИТЬ | Список/создание поставщиков | | `/api/providers/[id]` | ПОЛУЧИТЬ/ПОСТАВИТЬ/УДАЛИТЬ | Управление провайдером | | `/api/providers/[id]/test` | ПОСТ | Проверка подключения к провайдеру | | `/api/providers/[id]/models` | ПОЛУЧИТЬ | Список моделей поставщиков | | `/api/providers/validate` | ПОСТ | Проверка конфигурации провайдера | | `/api/provider-nodes*` | Разное | Управление узлами провайдера | | `/api/provider-models` | ПОЛУЧИТЬ/ОТПРАВИТЬ/УДАЛИТЬ | Нестандартные модели | ### Потоки OAuth | Конечная точка | Метод | Описание | | -------------------------------- | ------ | -------------------------------- | | `/api/oauth/[provider]/[action]` | Разное | OAuth для конкретного поставщика | ### Маршрутизация и конфигурация | Конечная точка | Метод | Описание | | --------------------- | ------------------ | ------------------------------- | | `/api/models/alias` | ПОЛУЧИТЬ/ОТПРАВИТЬ | Псевдонимы моделей | | `/api/models/catalog` | ПОЛУЧИТЬ | Все модели по поставщику + типу | | `/api/combos*` | Разное | Комбинированное управление | | `/api/keys*` | Разное | Управление ключами API | | `/api/pricing` | ПОЛУЧИТЬ | Цены на модели | ### Использование и аналитика | Конечная точка | Метод | Описание | | --------------------------- | -------- | ------------------------------------ | | `/api/usage/history` | ПОЛУЧИТЬ | История использования | | `/api/usage/logs` | ПОЛУЧИТЬ | Журналы использования | | `/api/usage/request-logs` | ПОЛУЧИТЬ | Журналы уровня запроса | | `/api/usage/[connectionId]` | ПОЛУЧИТЬ | Использование для каждого соединения | ### Настройки | Конечная точка | Метод | Описание | | ------------------------------- | ------------------ | ------------------------------------------- | | `/api/settings` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Общие настройки | | `/api/settings/proxy` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Конфигурация сетевого прокси | | `/api/settings/proxy/test` | ПОСТ | Проверить прокси-соединение | | `/api/settings/ip-filter` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Список разрешенных/блокированных IP-адресов | | `/api/settings/thinking-budget` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Обоснование бюджета жетона | | `/api/settings/system-prompt` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Глобальная системная подсказка | ### Мониторинг | Конечная точка | Метод | Описание | | ------------------------ | ---------------- | --------------------------------------- | | `/api/sessions` | ПОЛУЧИТЬ | Отслеживание активных сессий | | `/api/rate-limits` | ПОЛУЧИТЬ | Ограничения ставок для каждого аккаунта | | `/api/monitoring/health` | ПОЛУЧИТЬ | Проверка здоровья | | `/api/cache` | ПОЛУЧИТЬ/УДАЛИТЬ | Статистика кэша / очистить | ### Резервное копирование и экспорт/импорт | Конечная точка | Метод | Описание | | --------------------------- | -------- | ------------------------------------------------------ | | `/api/db-backups` | ПОЛУЧИТЬ | Список доступных резервных копий | | `/api/db-backups` | ПУТЬ | Создайте резервную копию вручную | | `/api/db-backups` | ПОСТ | Восстановление из определенной резервной копии | | `/api/db-backups/export` | ПОЛУЧИТЬ | Загрузить базу данных в виде файла .sqlite | | `/api/db-backups/import` | ПОСТ | Загрузите файл .sqlite для замены базы данных | | `/api/db-backups/exportAll` | ПОЛУЧИТЬ | Загрузите полную резервную копию в виде архива .tar.gz | ### Облачная синхронизация | Конечная точка | Метод | Описание | | ---------------------- | ------ | ------------------------------- | | `/api/sync/cloud` | Разное | Операции облачной синхронизации | | `/api/sync/initialize` | ПОСТ | Инициализировать синхронизацию | | `/api/cloud/*` | Разное | Облачное управление | ### Инструменты CLI | Конечная точка | Метод | Описание | | ---------------------------------- | -------- | -------------------------- | | `/api/cli-tools/claude-settings` | ПОЛУЧИТЬ | Статус Клода CLI | | `/api/cli-tools/codex-settings` | ПОЛУЧИТЬ | Статус CLI Кодекса | | `/api/cli-tools/droid-settings` | ПОЛУЧИТЬ | Статус Droid CLI | | `/api/cli-tools/openclaw-settings` | ПОЛУЧИТЬ | Статус OpenClaw CLI | | `/api/cli-tools/runtime/[toolId]` | ПОЛУЧИТЬ | Общая среда выполнения CLI | Ответы CLI включают: `installed`, `runnable`, `command`, `commandPath`, `runtimeMode`, `reason`. ### Устойчивость и ограничения скорости | Конечная точка | Метод | Описание | | ----------------------- | ------------------ | ---------------------------------------------- | | `/api/resilience` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Получить/обновить профили устойчивости | | `/api/resilience/reset` | ПОСТ | Сброс автоматических выключателей | | `/api/rate-limits` | ПОЛУЧИТЬ | Статус ограничения ставки для каждого аккаунта | | `/api/rate-limit` | ПОЛУЧИТЬ | Конфигурация глобального ограничения скорости | ### Оценки | Конечная точка | Метод | Описание | | -------------- | ------------------ | ----------------------------------------------- | | `/api/evals` | ПОЛУЧИТЬ/ОТПРАВИТЬ | Получение списка пакетов оценки / запуск оценки | ### Политики | Конечная точка | Метод | Описание | | --------------- | -------------------------- | ----------------------------------- | | `/api/policies` | ПОЛУЧИТЬ/ОТПРАВИТЬ/УДАЛИТЬ | Управление политиками маршрутизации | ### Соответствие | Конечная точка | Метод | Описание | | --------------------------- | -------- | ---------------------------------------- | | `/api/compliance/audit-log` | ПОЛУЧИТЬ | Журнал аудита соответствия (последний N) | ### v1beta (совместимость с Близнецами) | Конечная точка | Метод | Описание | | -------------------------- | -------- | --------------------------------------- | | `/v1beta/models` | ПОЛУЧИТЬ | Список моделей в формате Gemini | | `/v1beta/models/{...path}` | ПОСТ | Конечная точка Gemini `generateContent` | Эти конечные точки отражают формат API Gemini для клиентов, которым требуется встроенная совместимость с Gemini SDK. ### Внутренние/системные API | Конечная точка | Метод | Описание | | --------------- | -------- | ------------------------------------------------------------------- | | `/api/init` | ПОЛУЧИТЬ | Проверка инициализации приложения (используется при первом запуске) | | `/api/tags` | ПОЛУЧИТЬ | Теги моделей, совместимые с Ollama (для клиентов Ollama) | | `/api/restart` | ПОСТ | Запустить плавный перезапуск сервера | | `/api/shutdown` | ПОСТ | Запустить корректное завершение работы сервера | > **Примечание.** Эти конечные точки используются внутри системы или для совместимости с клиентом Ollama. Обычно они не вызываются конечными пользователями. --- ## Аудио транскрипция ```bash POST /v1/audio/transcriptions Authorization: Bearer your-api-key Content-Type: multipart/form-data ``` Транскрибируйте аудиофайлы с помощью Deepgram или AssemblyAI. **Запрос:** ```bash curl -X POST http://localhost:20128/v1/audio/transcriptions \ -H "Authorization: Bearer your-api-key" \ -F "file=@recording.mp3" \ -F "model=deepgram/nova-3" ``` **Ответ:** ```json { "text": "Hello, this is the transcribed audio content.", "task": "transcribe", "language": "en", "duration": 12.5 } ``` **Поддерживаемые поставщики:** `deepgram/nova-3`, `assemblyai/best`. **Поддерживаемые форматы:** `mp3`, `wav`, `m4a`, `flac`, `ogg`, `webm`. --- ## Совместимость с Олламой Для клиентов, использующих формат API Ollama: ```bash # Chat endpoint (Ollama format) POST /v1/api/chat # Model listing (Ollama format) GET /api/tags ``` Запросы автоматически переводятся между Олламой и внутренними форматами. --- ## Телеметрия ```bash # Get latency telemetry summary (p50/p95/p99 per provider) GET /api/telemetry/summary ``` **Ответ:** ```json { "providers": { "claudeCode": { "p50": 245, "p95": 890, "p99": 1200, "count": 150 }, "github": { "p50": 180, "p95": 620, "p99": 950, "count": 320 } } } ``` --- ## Бюджет ```bash # Get budget status for all API keys GET /api/usage/budget # Set or update a budget POST /api/usage/budget Content-Type: application/json { "keyId": "key-123", "limit": 50.00, "period": "monthly" } ``` --- ## Доступность модели ```bash # Get real-time model availability across all providers GET /api/models/availability # Check availability for a specific model POST /api/models/availability Content-Type: application/json { "model": "claude-sonnet-4-5-20250929" } ``` --- ## Обработка запроса 1. Клиент отправляет запрос на `/v1/*`. 2. Обработчик маршрута вызывает `handleChat`, `handleEmbedding`, `handleAudioTranscription` или `handleImageGeneration`. 3. Модель разрешена (прямой поставщик/модель или псевдоним/комбо) 4. Учетные данные, выбранные из локальной базы данных с фильтрацией доступности учетной записи. 5. Для чата: `handleChatCore` — определение формата, трансляция, проверка кеша, проверка идемпотентности 6. Исполнитель провайдера отправляет восходящий запрос. 7. Ответ переводится обратно в формат клиента (чат) или возвращается в исходном виде (встраивания/изображения/аудио). 8. Запись использования/регистрации 9. Резервный вариант применяется при ошибках в соответствии с правилами комбо. Полная ссылка на архитектуру: [link](ARCHITECTURE.md). --- ## Аутентификация - Маршруты информационной панели (`/dashboard/*`) используют файл cookie `auth_token`. - Для входа используется сохраненный хеш пароля; возврат к `INITIAL_PASSWORD` - `requireLogin` переключается через `/api/settings/require-login` - Маршруты `/v1/*` дополнительно требуют ключ API носителя, когда `REQUIRE_API_KEY=true`