Skip to content

Latest commit

 

History

History
441 lines (327 loc) · 20.5 KB

File metadata and controls

441 lines (327 loc) · 20.5 KB

API Reference

🌐 Languages: 🇺🇸 English | 🇧🇷 Português (Brasil) | 🇪🇸 Español | 🇫🇷 Français | 🇮🇹 Italiano | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 Deutsch | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 العربية | 🇯🇵 日本語 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 Dansk | 🇫🇮 Suomi | 🇮🇱 עברית | 🇭🇺 Magyar | 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어 | 🇲🇾 Bahasa Melayu | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇵🇹 Português (Portugal) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 Slovenčina | 🇸🇪 Svenska | 🇵🇭 Filipino

Повний довідник для всіх кінцевих точок OmniRoute API.


Зміст


Завершення чату

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 Запит Ключ дедуплювання (5-секундне вікно)
X-Request-Id Запит Альтернативний ключ дедуплювання
X-OmniRoute-Cache Відповідь HIT або MISS (не потоковий)
X-OmniRoute-Idempotent Відповідь true якщо дедупліковано
X-OmniRoute-Progress Відповідь enabled, якщо відстеження прогресу на

Вбудовування

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.

# List all embedding models
GET /v1/embeddings

Генерація зображень

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.

# List all image models
GET /v1/images/generations

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

GET /v1/models
Authorization: Bearer your-api-key

→ Returns all chat, embedding, and image models + combos in OpenAI format

Кінцеві точки сумісності

Метод Шлях Формат
Опублікувати /v1/chat/completions OpenAI
Опублікувати /v1/messages Антропний
Опублікувати /v1/responses Відповіді OpenAI
Опублікувати /v1/embeddings OpenAI
Опублікувати /v1/images/generations OpenAI
ОТРИМАТИ /v1/models OpenAI
Опублікувати /v1/messages/count_tokens Антропний
ОТРИМАТИ /v1beta/models Близнюки
Опублікувати /v1beta/models/{...path} Gemini generateContent
Опублікувати /v1/api/chat Оллама

Виділені маршрути постачальників

POST /v1/providers/{provider}/chat/completions
POST /v1/providers/{provider}/embeddings
POST /v1/providers/{provider}/images/generations

Префікс провайдера додається автоматично, якщо його немає. Невідповідні моделі повертають 400.


Семантичний кеш

# Get cache stats
GET /api/cache

# Clear all caches
DELETE /api/cache

Приклад відповіді:

{
  "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 GET/PUT Перемкнути необхідний вхід

Керування провайдером

Кінцева точка Метод Опис
/api/providers GET/POST Список / створення постачальників
/api/providers/[id] GET/PUT/DELETE Керувати постачальником
/api/providers/[id]/test Опублікувати Перевірте підключення провайдера
/api/providers/[id]/models ОТРИМАТИ Список моделей провайдерів
/api/providers/validate Опублікувати Перевірте конфігурацію постачальника
/api/provider-nodes* Різні Керування вузлом провайдера
/api/provider-models GET/POST/DELETE Індивідуальні моделі

Потоки OAuth

Кінцева точка Метод Опис
/api/oauth/[provider]/[action] Різні OAuth для постачальника

Маршрутизація та конфігурація

Кінцева точка Метод Опис
/api/models/alias GET/POST Псевдоніми моделей
/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 GET/PUT Загальні налаштування
/api/settings/proxy GET/PUT Конфігурація мережевого проксі
/api/settings/proxy/test Опублікувати Тест проксі-з'єднання
/api/settings/ip-filter GET/PUT Список дозволених/чорних IP
/api/settings/thinking-budget GET/PUT Обґрунтування жетонного бюджету
/api/settings/system-prompt GET/PUT Глобальна системна підказка

Моніторинг

Кінцева точка Метод Опис
/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 ОТРИМАТИ Codex CLI status
/api/cli-tools/droid-settings ОТРИМАТИ Droid CLI status
/api/cli-tools/openclaw-settings ОТРИМАТИ Статус OpenClaw CLI
/api/cli-tools/runtime/[toolId] ОТРИМАТИ Загальне середовище виконання CLI

Відповіді CLI включають: installed, runnable, command, commandPath, runtimeMode, reason.

Стійкість і обмеження швидкості

Кінцева точка Метод Опис
/api/resilience GET/PUT Отримати/оновити профілі стійкості
/api/resilience/reset Опублікувати Скидання автоматичних вимикачів
/api/rate-limits ОТРИМАТИ Статус обмеження ставки на обліковий запис
/api/rate-limit ОТРИМАТИ Конфігурація глобального обмеження швидкості

Оцінки

Кінцева точка Метод Опис
/api/evals GET/POST Створити список eval suites / запустити оцінку

Політика

Кінцева точка Метод Опис
/api/policies GET/POST/DELETE Керування політикою маршрутизації

Відповідність

Кінцева точка Метод Опис
/api/compliance/audit-log ОТРИМАТИ Журнал аудиту відповідності (останній N)

v1beta (сумісний із Gemini)

Кінцева точка Метод Опис
/v1beta/models ОТРИМАТИ Список моделей у форматі Gemini
/v1beta/models/{...path} Опублікувати Кінцева точка Gemini generateContent

Ці кінцеві точки відображають формат API Gemini для клієнтів, які очікують нативної сумісності з Gemini SDK.

Внутрішні/системні API

Кінцева точка Метод Опис
/api/init ОТРИМАТИ Перевірка ініціалізації програми (використовується під час першого запуску)
/api/tags ОТРИМАТИ Сумісні з Ollama теги моделей (для клієнтів Ollama)
/api/restart Опублікувати Ініціювати плавний перезапуск сервера
/api/shutdown Опублікувати Ініціювати плавне завершення роботи сервера

Примітка. Ці кінцеві точки використовуються внутрішньо системою або для сумісності клієнта Ollama. Зазвичай вони не викликаються кінцевими користувачами.


Транскрипція аудіо

POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data

Транскрибуйте аудіофайли за допомогою Deepgram або AssemblyAI.

Запит:

curl -X POST http://localhost:20128/v1/audio/transcriptions \
  -H "Authorization: Bearer your-api-key" \
  -F "file=@recording.mp3" \
  -F "model=deepgram/nova-3"

Відповідь:

{
  "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.


Сумісність Ollama

Для клієнтів, які використовують формат API Ollama:

# Chat endpoint (Ollama format)
POST /v1/api/chat

# Model listing (Ollama format)
GET /api/tags

Запити автоматично перекладаються між Ollama та внутрішніми форматами.


Телеметрія

# Get latency telemetry summary (p50/p95/p99 per provider)
GET /api/telemetry/summary

Відповідь:

{
  "providers": {
    "claudeCode": { "p50": 245, "p95": 890, "p99": 1200, "count": 150 },
    "github": { "p50": 180, "p95": 620, "p99": 950, "count": 320 }
  }
}

Бюджет

# 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"
}

Наявність моделі

# 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


Автентифікація

  • Маршрути інформаційної панелі (/dashboard/*) використовують auth_token cookie
  • Вхід використовує збережений хеш пароля; повернутися до INITIAL_PASSWORD
  • requireLogin можна перемикати через /api/settings/require-login
  • Маршрути /v1/* додатково вимагають ключ API носія, коли REQUIRE_API_KEY=true