Batch 3 (last) of the locale-expansion plan: ha, yo, ig, am, uz, ka, hy on every surface — dashboard catalog, docs mirror (22-file core + llm.txt + CHANGELOG), CLI catalog, README flag block, locale tables and 🌐 language bars. Also closes the key gap the batch-1 (43 keys) and batch-2 (10 keys) catalogs carried since their base merges, fixes the Igbo "Model" copy and allowlists the Uzbek cognate. Translation-ratio baseline covers 65 locales. ⚠️ base-red inherited: #12732
128 KiB
API_REFERENCE (Oʻzbekcha)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
title: "API maʼlumotnomasi" version: 3.8.51 lastUpdated: 2026-08-31
API maʼlumotnomasi
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
OmniRoute API uchun asosiy maʼlumotnoma. Unda ommaviy /v1 interfeysi va eng koʻp ishlatiladigan boshqaruv endpointlari yoritilgan; mashina oʻqiy oladigan docs/openapi.yaml fayli hamda src/app/api/ ichidagi marshrutlar daraxti toʻliq manbalar hisoblanadi.
Mundarija
- Chat yakunlashlari
- Eksklyuziv boshqariladigan sessiya ijaralari
- Embeddinglar
- Tasvir yaratish
- Hujjat OCR
- Modellar roʻyxati
- Provayder plagini manifesti
- Moslik endpointlari
- Fayllar API
- Paketlar API
- Qidiruv API
- WebSocket orqali oqim uzatish
- Kvotalar va muammolar haqida xabar berish
- Semantik kesh
- Boshqaruv paneli va boshqarish
- Kombinatsiyalarni boshqarish
- Vebhuklar
- Roʻyxatdan oʻtkazilgan kalitlar (avtomatik boshqaruv)
- Agentlar protokoli
- Boshqaruv proksilari
- Barqarorlik (kengaytirilgan)
- Koʻnikmalar
- Xotira
- MCP serveri
- A2A serveri
- Bulut, baholashlar va tahlil
- Soʻrovlarni qayta ishlash
- Autentifikatsiya
Chat yakunlashlari
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
}
Maxsus sarlavhalar
| Sarlavha | Yoʻnalish | Tavsif |
|---|---|---|
X-OmniRoute-No-Cache |
Soʻrov | Keshni chetlab oʻtish uchun true qilib belgilang |
x-omniroute-no-memory |
Soʻrov | Ushbu soʻrov uchun xotira va koʻnikmalar kiritilishini oʻtkazib yuborish maqsadida true qilib belgilang (no-cache xatti-harakatini takrorlaydi; har bir chaqiruvdagi token/xarajat yukini kamaytiradi) |
X-OmniRoute-Progress |
Soʻrov | Jarayon hodisalarini olish uchun true qilib belgilang |
X-Session-Id |
Soʻrov | Tashqi sessiya yaqinligi uchun biriktirilgan sessiya kaliti |
x_session_id |
Soʻrov | Pastki chiziqli variant ham qabul qilinadi (toʻgʻridan-toʻgʻri HTTP) |
X-OmniRoute-Session-Id |
Soʻrov | Chaqiruvchi taqdim etgan sessiya/suhbat tegi (xotiraga ham uzatiladi). Mavjud boʻlganda, har bir sessiya boʻyicha xarajatlarni aniqlash uchun call_logs.session_tag maydoniga aynan oʻz holicha saqlanadi (#8249) — mavjud boʻlmaganda hech qachon sunʼiy yaratilmaydi |
Idempotency-Key |
Soʻrov | Takrorlarni bartaraf etish kaliti (5 soniyalik oyna) |
X-Request-Id |
Soʻrov | Muqobil takrorlarni bartaraf etish kaliti |
X-OmniRoute-Cache |
Javob | HIT yoki MISS (oqimsiz rejimda) |
X-OmniRoute-Idempotent |
Javob | Takror bartaraf etilgan boʻlsa, true |
X-OmniRoute-Progress |
Javob | Jarayon kuzatuvi yoqilgan boʻlsa, enabled |
X-OmniRoute-Session-Id |
Javob | OmniRoute tomonidan foydalanilgan amaldagi sessiya IDsi |
X-OmniRoute-Request-Id |
Javob | Soʻrovlarni bogʻlash IDsi (maʼlum boʻlganda) |
X-OmniRoute-Version |
Javob | OmniRoute yigʻilmasi versiyasi (har doim mavjud) |
X-OmniRoute-Cost-Saved |
Javob | HIT holatida kesh tufayli tejalgan USD miqdori (faqat keshdan topilgan holatlarda) |
X-OmniRoute-Decision |
Javob | Marshrutlash izi: strategy=<name>; provider=<alias>; latency_ms=<n> (<name> — kombinatsiya strategiyasi yoki kombinatsiyasiz soʻrov uchun single) — yakunlash javoblarida har doim mavjud |
Nginx eslatmasi: agar pastki chiziqli sarlavhalarga (masalan,
x_session_id) tayansangiz,underscores_in_headers on;sozlamasini yoqing.
Xarajat telemetriyasi sarlavhalari: oqimsiz muvaffaqiyatli javoblarda
X-OmniRoute-*xarajat telemetriyasi toʻplami ham mavjud —X-OmniRoute-Response-Cost(USD, verguldan keyin qatʼiy 10 ta raqam; bepul/narxi belgilanmagan holatlar uchun0.0000000000),X-OmniRoute-Tokens-In/X-OmniRoute-Tokens-Out,X-OmniRoute-Model,X-OmniRoute-Provider,X-OmniRoute-Latency-Ms,X-OmniRoute-Cache-HitvaX-OmniRoute-Fallback-Attempts(faqat > 0 boʻlganda), shuningdek,X-OmniRoute-Request-IdvaX-OmniRoute-Version. Bular chat yakunlashlari,/v1/responses,/v1/messagesva media endpointlari —/v1/embeddings,/v1/images/generations,/v1/audio/speech,/v1/audio/transcriptions,/v1/rerank,/v1/videos/generations,/v1/music/generationsva/v1/moderations(xarajati har doim0) tomonidan chiqariladi. Narxlash mavjud boʻlsa, media xarajati har bir modallik boʻyicha (har bir rasm, soniya, belgi yoki qidiruv birligi uchun) hisoblanadi, aks holda0boʻladi (xatoda davom etish).
Keshga tegish xarajati semantikasi: semantik keshga TEGISH yuz berganda (
X-OmniRoute-Cache-Hit: true) yuqori oqimga hech qanday chaqiruv amalga oshirilmaydi, shuning uchunX-OmniRoute-Response-Costqiymati0.0000000000boʻladi (keshdagi natijani taqdim etishning qoʻshimcha xarajati). Dastlabki/yuzaga kelishi mumkin boʻlgan xarajatX-OmniRoute-Cost-Savedorqali alohida koʻrsatiladi. Hisob-kitob isteʼmolchilariX-OmniRoute-Response-Costqiymatlarini jamlashi kerak (keshga tegishlar hech qanday xarajat qilmaydi); kesh tahlillari esaX-OmniRoute-Cost-Savedqiymatlarini umumlashtirishi mumkin.
Eksklyuziv boshqariladigan seans ijaralari
Eksklyuziv boshqariladigan seans ijarasi ixtiyoriy, mijozga bogʻliq boʻlmagan marshrutlash kelishuvidir: bitta faol egasi bitta mos OmniRoute ulanishini egallaydi. U modelni ijaraga bermaydi, OAuth talab qilmaydi, muayyan mijozni aniqlamaydi va muayyan provayderni talab qilmaydi.
Autentifikatsiya qiluvchi API kaliti lease:exclusive doirasiga va aniq koʻrsatilgan, boʻsh boʻlmagan
allowedConnections roʻyxatiga ega boʻlishi kerak. Maʼlumotlar bazasidagi oʻzgartirish chegarasi kalit
yaratilganda va qisman yangilanganda ikkala maydonning birgalikda mavjud boʻlishini taʼminlaydi.
POST /api/v1/session-leases
Authorization: Bearer <managed-api-key>
Content-Type: application/json
X-OmniRoute-Lease-Owner: vlo_<43-base64url-characters>
{"action":"acquire","model":"glm/glm-4.6"}
Muvaffaqiyatli egallash, yangilash va boʻshatish javoblarida vaqt belgilari, state va aniq musbat
generation koʻrsatiladi, ammo tanlangan ulanish yoki hisob maʼlumotlari hech qachon oshkor qilinmaydi. Yangilash va boʻshatishda
avlod JSON tanasida beriladi:
{ "action": "renew", "generation": 1 }
{ "action": "release", "generation": 1, "reason": "OWNER_EXIT" }
Faol ijara egasi oʻzining joriy bogʻlanishi uchun maxfiylikni saqlovchi koʻrsatish metamaʼlumotlarini aniq soʻrashi mumkin:
{ "action": "status", "generation": 1 }
{
"state": "ACTIVE",
"generation": 1,
"acquiredAt": "2026-08-28T12:00:00.000Z",
"renewedAt": "2026-08-28T12:00:30.000Z",
"expiresAt": "2026-08-28T12:02:30.000Z",
"connection": {
"displayName": "Primary Codex",
"provider": "codex"
}
}
Bu ixtiyoriy holat amali bitta maʼlumotlar bazasi tranzaksiyasi ichida shaffof boʻlmagan egasi, autentifikatsiya qilingan boshqariladigan API kaliti va aniq
faol avlod bilan himoyalanadi. displayName faqat sozlangan ulanish nomining chetlari kesilgan
koʻrinishidir; xavfsiz sozlangan nom mavjud boʻlmaganda u null boʻladi. OmniRoute hech qachon uning oʻrniga
elektron pochta manzili yoki yaratilgan hisob identifikatorini qoʻymaydi. Provayder qiymati maxfiy boʻlmagan koʻrsatish yorligʻi boʻlib, hech qachon
yaratilgan mos provayder identifikatori boʻlmaydi. Hisob maʼlumotlari, tokenlar, cookie fayllari, xom ulanish yoki API
kaliti identifikatorlari, egasi xeshlari, himoyalash sirlari va ichki marshrutlash maʼlumotlari chiqarib tashlanadi.
Notoʻgʻri kalit, notoʻgʻri egasi, eskirgan avlod, mavjud boʻlmagan, muddati tugagan, boʻshatilgan va bekor qilingan qidiruvlarning barchasi
ulanish metamaʼlumotlarisiz bir xil 409 LEASE_FENCE_STALE xatosini qaytaradi. Sigʻimni kutish javobini olgan mijozda tekshirish uchun faol bogʻlanish boʻlmaydi. Marshrutlash faol ijarani boshqa ulanishga oʻtkazganda,
oʻsha avlod haqiqiyligicha qoladi va holat atomar tarzda eski bogʻlanishni emas, yangi bogʻlanishni qaytaradi.
Mavjud mijozlar oʻzgarishsiz qoladi, chunki egallash, yangilash, boʻshatish va kutish javoblari
avvalgi shakllarini saqlab qoladi.
Bu server kelishuvi standart OpenAI Codex /status xatti-harakatini oʻzgartirmaydi. Standart Codex hozirda oʻzining
model provayderi va ichki autentifikatsiya/hisob holatini bildiradi, ammo ixtiyoriy maxsus
provayder hisobi metamaʼlumotlarini koʻrsatmaydi; keyingi mijoz integratsiyasi ushbu amalni chaqirishi va
connection.displayName qanday koʻrsatilishini hal qilishi kerak.
Shundan soʻng har bir boshqariladigan inferensiya soʻrovi ikkala boshqaruv sarlavhasini ham yuboradi:
X-OmniRoute-Lease-Owner: vlo_<43-base64url-characters>
X-OmniRoute-Lease-Generation: 1
Aniq egasi, avlod, faol ulanish va autentifikatsiya qilingan API kaliti har bir qoʻllab-quvvatlanadigan yuqori oqim urinishidan bevosita oldin himoyalanadi. Egasi va avlodni boshqa kalit bilan takroran ishlatish, hatto ushbu kalit ayni ulanishga ruxsat bersa ham, muvaffaqiyatsiz tugaydi. Xom egalar saqlanmaydi, jurnalga yozilmaydi, soʻrov oniy nusxasida saqlab qolinmaydi va yuqori oqimga uzatilmaydi.
Vaqtinchalik toʻqnashuv HTTP 429 javobini Retry-After bilan va quyidagicha qaytaradi:
{
"state": "WAITING_FOR_CAPACITY",
"error": { "type": "lease_error", "code": "LEASE_CAPACITY_UNAVAILABLE" },
"reason": "NO_FREE_ELIGIBLE_CONNECTION",
"retryAfter": 30
}
Bu javob faqat oddiy mos ulanishlar toʻplami boʻsh boʻlmaganini va har bir boʻsh nomzod boshqa egaga tegishli faol ijara tomonidan egallanganini anglatadi. Qoʻllab-quvvatlanmaydigan modellar/provayderlar, siyosat nomuvofiqligi, kutish davri, kvota, sogʻliq holati va boshqa odatiy moslik xatolari mavjud OmniRoute javoblarini saqlab qoladi.
x-omniroute-compression
Har bir soʻrov uchun siqish rejasini qayta belgilash. Eng yuqori ustuvorlikka ega — marshrutlash kombinatsiyasi qayta belgilashidan, faol profildan, avtomatik ishga tushirishdan va paneldagi Default qiymatidan ustun turadi. Qiymatlar:
| Qiymat | Taʼsiri |
|---|---|
off |
Ushbu soʻrov uchun siqish qoʻllanmaydi. |
default |
Paneldan olingan Default profil (faol profilni eʼtiborsiz qoldiradi). |
engine:<id> |
Yoqilganida bitta mexanizm, masalan, engine:rtk. |
<combo> |
Avval nomi (harf registriga bogʻliq boʻlmagan holda), soʻng identifikatori boʻyicha moslashtiriladigan nomlangan kombinatsiya. |
Izohlar:
- Nomaʼlum qiymatlar eʼtiborsiz qoldiriladi (soʻrov hech qachon rad etilmaydi); aniqlash odatiy operator ustuvorligi boʻyicha davom etadi.
- Agar bir nechta kombinatsiya bir xil nomga ega boʻlsa, deterministik moslik uchun kombinatsiya id qiymatini yuboring.
- Nomi
offyokidefaultboʻlgan kombinatsiyani nomi orqali tanlab boʻlmaydi (bu kalit soʻzlar avval talqin qilinadi); bunday kombinatsiyaga uning identifikatori orqali murojaat qiling. - Asosiy siqish kaliti qatʼiy toʻsiqdir: siqish global miqyosda oʻchirilgan boʻlsa, bu sarlavha uni yoqa olmaydi.
Qoʻllangan reja javob sarlavhasida qaytariladi:
X-OmniRoute-Compression: <mode>; source=<source>
bu yerda <source> quyidagilardan biri: request-header, routing-override, active-profile, auto-trigger, default yoki off.
Embeddinglar
POST /v1/embeddings
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "nebius/Qwen/Qwen3-Embedding-8B",
"input": "The food was delicious"
}
Mavjud provayderlar: Nebius, OpenAI, Mistral, Together AI, Fireworks, NVIDIA, OpenRouter, Jina AI.
Katalog identifikatorlari provider/model formatida (misol: jina-ai/jina-embeddings-v5-omni-small). Roʻyxatga olish reyestrida mavjud boʻlgan prefikssiz Jina model identifikatorlari (masalan, jina-embeddings-v5-text-small, jina-reranker-v3.5) ham aniqlanadi. Jina embed/rerank/classify/segment avval boshqaruv panelidagi jina-ai hisob maʼlumotlaridan foydalanadi; JINA_AI_API_KEY faqat boshqaruv paneli kaliti mavjud boʻlmaganda zaxira variant hisoblanadi. jina-reader kartasi faqat Reader / r.jina.ai uchun (POST /v1/web/fetch) moʻljallangan va hech qachon embedding yoki qayta tartiblash xizmatini koʻrsatmaydi.
Multimodal qoʻllab-quvvatlashni eʼlon qilgan reyestr modellari provayderga bogʻliq boʻlmagan 32 tagacha tuzilmaviy elementni ham qabul qiladi. Media element turlari: text, image, audio, video va document. Ularning media source maydoni {"type":"url","url":"https://..."} yoki {"type":"base64","data":"...","media_type":"..."} koʻrinishida boʻladi.
Jina v5 Omni (jina-ai/jina-embeddings-v5-omni-small, jina-ai/jina-embeddings-v5-omni-nano va jina-ai/jina-embeddings-v5-omni → omni-small oilaviy taxallusi) Jinaʼning mahalliy EmbeddingsV5Request hujjatlarini ham qabul qiladi va ularni https://api.jina.ai/v1/embeddings manziliga oʻzgartirmasdan uzatadi:
{
"model": "jina-ai/jina-embeddings-v5-omni-small",
"task": "retrieval.query",
"normalized": true,
"input": [
{ "text": "a red bicycle" },
{ "image": "https://example.com/bike.png" },
{
"content": [{ "text": "caption" }, { "image": "data:image/png;base64,..." }]
}
]
}
Mahalliy { image | audio | video | pdf } qiymatlari ochiq HTTPS URL, data: URI yoki xom base64 boʻlishi mumkin. OmniRoute bu obyektlarni satrga aylantirmaydi yoki mahalliy tasvir URL manzillarini yuklab olmaydi — ochiq mediani Jina oʻzi oladi. Qoʻshimcha Jina maydonlari (task, normalized, truncate, embedding_type) uzatiladi. Faqat matn bilan ishlaydigan Jina SKUʼlari matn boʻlmagan hujjatlarni hamon rad etadi.
Xavfsizlik va uzatish cheklovlari:
- Masofaviy media URL manzillari ochiq HTTPS boʻlishi shart. Kanonik
{type,source:url}elementlari server tomonida yuklab olinadi (yoʻnaltirishlarni qayta tekshirish, vaqt chegarasi, hajm cheklovlari, ochiq DNS, ulanishni mahkamlash) va provayder chaqiruvidan oldin ichki maʼlumot sifatida joylashtiriladi. Jinaʼga xos{image:"https://..."}elementlari xuddi shu ochiq HTTPS tekshiruvidan soʻng oʻzgartirmasdan uzatiladi; URL manzilini Jina yuklab oladi. - Ichki base64 media hajmi har bir element uchun dekodlanganda 8 MiB va butun soʻrov boʻyicha dekodlanganda 16 MiB bilan cheklangan.
Provayder uchun tarjima (kanonik elementlar hech qachon oʻzgartirmasdan uzatilmaydi):
- Jina multimodal modellari: har bir yuqori darajadagi element ichki media uchun data URIʼlardan foydalangan holda modal kalitli bitta obyektga (
text/image/audio/video/pdf) aylanadi; har bir yuqori darajadagi element uchun bitta vektor. - Gemini Embedding 2 oilasi: yuqori darajadagi bitta massiv
content.parts(textyokiinline_data) bilan yagona mahalliymodels/{model}:embedContentsoʻroviga aylanadi. - Aniq modallik metamaʼlumotlarisiz nomaʼlum/dinamik modellar tuzilmaviy kiritishni HTTP 400 bilan rad etadi.
{
"model": "jina-ai/jina-embeddings-v5-omni-small",
"input": [
{ "type": "text", "text": "A red bicycle" },
{
"type": "image",
"source": { "type": "url", "url": "https://example.com/bicycle.png" }
}
],
"dimensions": 512,
"encoding_format": "float"
}
Qoʻllab-quvvatlanmaydigan model/modallik kombinatsiyalari elementni majburan oʻzgartirish oʻrniga HTTP 400 qaytaradi. Eski satr/token soʻrovlaridagi kiritishga aloqador boʻlmagan kengaytma maydonlari oʻzgartirmasdan uzatilishda davom etadi.
# Barcha embedding modellarini roʻyxatlash
GET /v1/embeddings
Tasvir yaratish
POST /v1/images/generations
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "openai/gpt-image-2",
"prompt": "Togʻlar uzra goʻzal quyosh botishi",
"size": "1024x1024"
}
Mavjud provayderlar: OpenAI (GPT Image 2), xAI (Grok Image), Together AI (FLUX), Fireworks AI, Nebius (FLUX), Hyperbolic, NanoBanana, OpenRouter, SD WebUI (lokal), ComfyUI (lokal).
# Barcha tasvir modellarini roʻyxatlash
GET /v1/images/generations
Hujjat OCR'i
POST /v1/ocr
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "mistral/mistral-ocr-latest",
"document": {
"type": "document_url",
"document_url": "https://example.com/invoice.pdf"
}
}
model OCR provayderini provider/model prefiksi orqali tanlaydi; faqat model identifikatori (masalan,
mistral-ocr-latest) uning roʻyxatdan oʻtgan provayderiga moslashtiriladi, model koʻrsatilmasa esa sukut boʻyicha
Mistral (mistral-ocr-latest) ishlatiladi. Roʻyxatdan oʻtgan provayderlar (open-sse/config/ocrRegistry.ts):
| Provayder identifikatori | Model identifikatori | model qiymati |
Izohlar |
|---|---|---|---|
mistral |
mistral-ocr-latest |
mistral/mistral-ocr-latest (yoki faqat mistral-ocr-latest) |
Sinxron — javob yagona yuqori oqim chaqiruvidan bevosita qaytariladi. |
azure-document-intelligence |
prebuilt-read |
azure-document-intelligence/prebuilt-read |
Asinxron yuqori oqim (analyze + soʻrovnoma) — quyiga qarang. |
vertex-deepseek-ocr |
deepseek-ocr-maas |
vertex-deepseek-ocr/deepseek-ocr-maas |
Sinxron, Vertex AI'ning openapi/chat/completions hamkor soʻnggi nuqtasi orqali — autentifikatsiya/URL uchun quyiga qarang. |
Har uchala provayder ham bir xil Mistral shaklidagi tanada javob beradi:
{
"pages": [{ "index": 0, "markdown": "# Ajratib olingan matn..." }],
"model": "mistral-ocr-latest",
"usage_info": { "pages_processed": 1 }
}
Azure Document Intelligence soʻrovnoma oqimi
Azure Document Intelligence'ning analyze API'si asinxron: dastlabki soʻrov tana oʻrniga
Operation-Location sarlavhasini qaytaradi va natijani soʻrovnoma orqali tekshirish kerak. Ishlov beruvchi
(open-sse/handlers/ocr.ts) ushbu URL'ni har soniyada, koʻpi bilan 30 marta tekshiradi, ok boʻlmagan
soʻrovnoma javobi yoki "failed" holatida darhol xatolik bilan yakunlanadi (tekshirishda davom etmaydi) va
urinishlar limiti tugagach, operatsiya hali ham bajarilayotgan boʻlsa, 504 qaytaradi. Yakuniy Azure javobi
chaqiruvchiga qaytarilishidan oldin Mistral ishlatadigan xuddi shu pages/markdown shakliga
normallashtiriladi, shu sababli mijoz kodi provayder uchun alohida holatni koʻrib chiqishi shart emas.
Vertex AI DeepSeek OCR autentifikatsiyasi va soʻnggi nuqtani aniqlash
vertex-deepseek-ocr OmniRoute chat/tasvir trafigi uchun allaqachon qoʻllab-quvvatlaydigan ayni Vertex AI
autentifikatsiyasidan qayta foydalanadi (open-sse/executors/vertex.ts): ulanishning API kaliti Service
Account JSON hisob maʼlumotlari (JWT-bearer oqimi orqali qisqa muddatli OAuth kirish tokeniga almashtiriladi)
yoki oʻz holicha ishlatiladigan, avvaldan yaratilgan OAuth kirish tokeni boʻlishi mumkin. Yuqori oqimdagi
soʻnggi nuqta URL'i ulanish loyihasi va hududi asosida yaratiladigan Vertex'ning umumiy
openapi/chat/completions hamkor soʻnggi nuqtasidir — aniq koʻrsatilgan providerSpecificData.project/providerSpecificData.region
har doim ustunlikka ega; aks holda loyiha Service Account JSON'ining project_id qiymatidan olinadi va hudud
sukut boʻyicha us-central1 boʻladi. Har ikkala aniqlash jarayoni ham open-sse/handlers/ocr.ts ichida
(resolveVertexOcrAccessToken, resolveVertexOcrBaseUrl) bajariladi va handleOcr'ga yuborilishidan oldin
src/app/api/v1/ocr/route.ts tomonidan ishlatiladi.
Modellar roʻyxati
GET /v1/models
Authorization: Bearer your-api-key
→ Barcha chat, embedding va tasvir modellari hamda kombinatsiyalarini OpenAI formatida qaytaradi
Model identifikatori prefikslari (?prefix=)
Aksariyat modellar provayder prefiksi ostida taqdim etiladi. Qaysi prefiks olinishi
MODELS_CATALOG_PREFIX_MODE funksional bayrogʻi orqali boshqariladi va soʻrov parametri yordamida
har bir soʻrov uchun alohida qayta belgilanishi mumkin — bu server miqyosidagi sozlamani
boshqalar uchun oʻzgartirmasdan toza roʻyxat olishni istaydigan mijoz uchun foydalidir:
GET /v1/models?prefix=alias # har bir model uchun bitta id — qisqa taxallus prefiksi
GET /v1/models?prefix=dual # ikkala shakl (server standarti)
GET /v1/models?prefix=canonical # faqat toʻliq provayder-id prefiksi
| Rejim | Chiqaradi | Izohlar |
|---|---|---|
dual |
cc/claude-sonnet-4-6 va claude/claude-sonnet-4-6 |
Standart. Har ikkala id ham bir xil modelga yoʻnaltiriladi; shakllardan birini kod ichida qatʼiy belgilagan mijoz konfiguratsiyalari ishlashda davom etishi uchun saqlangan. Katalog hajmini taxminan ikki baravar oshiradi. |
alias |
cc/claude-sonnet-4-6 |
Har bir model uchun bitta yozuv. Alohida taxallusi boʻlmagan provayderlar ham oʻz yozuvini chiqaradi, shuning uchun hech narsa yoʻqolmaydi. |
canonical |
claude/claude-sonnet-4-6 |
Har bir model uchun toʻliq provayder-id prefiksi ostida bitta yozuv. Alohida taxallusi boʻlmagan provayderlar (masalan, antigravity/…, agy/…) ham bu yerda yagona id sini chiqaradi, shuning uchun hech narsa yoʻqolmaydi. |
dual rejimidagi nusxani soʻrov parametrisiz ham aniqlash mumkin: unda asosiy id ga ishora qiluvchi parent
maydoni mavjud.
Model tanlagichini koʻrsatadigan mijozlar ?prefix=alias parametrini soʻrashi kerak —
OmniCopilot VS Code kengaytmasi aynan shunday qiladi.
Fikrlashsiz model variantlari
Fikrlash imkoniyatiga ega Claude modellari uchun /v1/models, shuningdek, id si claude-3-omniroute-no-thinking/ prefiksi bilan boshlanadigan fikrlashsiz variantni ham taqdim etadi:
claude-3-omniroute-no-thinking/<provider>/<model>
Ushbu id ni tanlash (masalan, doimo thinking blokini biriktiradigan Claude Code konfiguratsiyasida) mulohaza yuritish oʻchirilgan holda haqiqiy <provider>/<model> modeliga qayta yoʻnaltiriladi — /v1/messages yoʻlida thinking:{type:"disabled"} qoʻllanadi yoki /v1/chat/completions yoʻlida reasoning/reasoning_effort maydonlari olib tashlanadi. Variant faqat fikrlashni qoʻllab-quvvatlaydigan va disabled qiymatini qabul qiladigan Claude oilasidagi modellar uchun roʻyxatga kiritiladi (shu sababli, masalan, disabled qiymatini rad etadigan faqat adaptiv modellar chiqarib tashlanadi). Operatorlar ModelSpec.noThinkingAlias orqali har bir model uchun variantni majburan yoqishi yoki oʻchirishi mumkin.
Provayder plagini manifesti
GET /api/v1/provider-plugin-manifest
Bifrost, CLIProxyAPI va kelajakdagi sidecar routerlari ishlatadigan JSON uchun xavfsiz provayder plagini manifestini qaytaradi. Javob TypeScript provayderlari reyestridan yaratiladi va ataylab OAuth mijoz sirlarini, ish vaqti muhiti qiymatlarini aniqlashni, ijrochi funksiyalarni, soʻrov sarlavhalarini hamda hisob maʼlumotlarini oʻz ichiga olmaydi.
Sidecar jarayondan tashqarida ishlaganda va open-sse/config/providerPluginManifestRegistry.ts faylini bevosita import qila olmaganda ushbu endpointdan foydalaning.
Moslik endpointlari
| Metod | Yoʻl | Format |
|---|---|---|
| POST | /v1/chat/completions |
OpenAI |
| POST | /v1/messages |
Anthropic |
| POST | /v1/responses |
OpenAI Responses |
| POST | /v1/embeddings |
OpenAI |
| POST | /v1/images/generations |
OpenAI Images |
| POST | /v1/images/edits |
OpenAI Images (tahrirlash/inpaint) |
| POST | /v1/videos/generations |
OpenAI uslubidagi video yaratish |
| POST | /v1/music/generations |
OpenAI uslubidagi musiqa yaratish |
| POST | /v1/audio/transcriptions |
OpenAI Audio (STT) |
| POST | /v1/audio/speech |
OpenAI TTS (audio tanasini qaytaradi) |
| POST | /v1/rerank |
Cohere/Voyage uslubida qayta tartiblash |
| POST | /v1/classify |
Jina tasniflash (api.jina.ai) |
| POST | /v1/segment |
Jina segmentatori (segment.jina.ai) |
| POST | /v1/moderations |
OpenAI Moderations |
| GET | /v1/models |
OpenAI |
| POST | /v1/messages/count_tokens |
Anthropic |
| GET | /v1beta/models |
Gemini |
| POST | /v1beta/models/{...path} |
Gemini generateContent |
| POST | /v1/api/chat |
Ollama |
| GET | /api/v1/vscode/{token}/ |
OpenAI katalog taxallusi |
| GET | /api/v1/vscode/{token}/models |
OpenAI modellar taxallusi |
| POST | /api/v1/vscode/{token}/chat/completions |
OpenAI tokenlashtirilgan taxallusi |
| POST | /api/v1/vscode/{token}/responses |
OpenAI Responses tokenlashtirilgan taxallusi |
| POST | /api/v1/vscode/{token}/api/chat |
Ollama tokenlashtirilgan taxallusi |
| GET | /api/v1/vscode/{token}/api/tags |
Ollama teglarining tokenlashtirilgan taxallusi |
Barcha POST yoʻnalishlari bir xil tuzilishga ega: Bearer your-api-key + Zod orqali tekshirilgan JSON tanasi (v1RerankSchema, v1ModerationSchema, v1AudioSpeechSchema va boshqalar; src/shared/validation/schemas.ts fayliga qarang). Sxema tekshiruvi muvaffaqiyatsiz boʻlsa, 4xx qaytariladi.
Authorization: Bearer ... sarlavhasini biriktira olmaydigan mijozlar uchun OmniRoute API kalitlarini URL orqali ham qabul qiladi: soʻrov satri mosligi (?token=..., ?apiKey=..., ?api_key=..., ?key=...) yoki quyida hujjatlashtirilgan maxsus /api/v1/vscode/{token}/... endpointlari orqali.
# Qayta tartiblash
POST /v1/rerank { "model": "jina-ai/jina-reranker-v3.5", "query": "...", "documents": ["..."] }
# Jina tasniflash (Foundation API hisob maʼlumotlari)
POST /v1/classify { "model": "jina-embeddings-v5-text-small", "input": ["..."], "labels": ["a", "b"] }
# Jina segmentatori
POST /v1/segment { "content": "...", "return_chunks": true }
# Jina qidiruvi (s.jina.ai; provayder taxalluslari: jina-search, jina-ai, jina)
POST /v1/search { "query": "...", "provider": "jina-search" }
# Moderatsiyalar
POST /v1/moderations { "model": "omni-moderation-latest", "input": "..." }
# TTS — audio/mpeg (yoki soʻralgan formatdagi) tanani qaytaradi
POST /v1/audio/speech { "model": "openai/tts-1", "input": "Hello", "voice": "alloy" }
# Rasmni tahrirlash (multipart)
POST /v1/images/edits -F image=@input.png -F prompt="..." -F mask=@mask.png
# Video / musiqa yaratish (provayder prefiksli model identifikatori)
POST /v1/videos/generations { "model": "runway/gen-3", "prompt": "..." }
POST /v1/music/generations { "model": "suno/v3.5", "prompt": "..." }
Maxsus provayder yoʻnalishlari
POST /v1/providers/{provider}/chat/completions
POST /v1/providers/{provider}/embeddings
POST /v1/providers/{provider}/images/generations
Agar provayder prefiksi mavjud boʻlmasa, u avtomatik ravishda qoʻshiladi. Mos kelmaydigan modellar 400 qaytaradi.
Files API
Paketli kiritish/chiqarish va fayl maqsadiga ko‘ra yuklash uchun OpenAI bilan mos keluvchi fayllar endpointi.
| Metod | Yo‘l | Tavsif |
|---|---|---|
| POST | /v1/files |
Faylni yuklash (multipart: file, purpose, expires_after[anchor], expires_after[seconds]) — maksimal hajm 512 MiB |
| GET | /v1/files |
Autentifikatsiya qilingan API kaliti uchun fayllar ro‘yxatini olish |
| GET | /v1/files/[id] |
Fayl metama’lumotlarini olish |
| DELETE | /v1/files/[id] |
Faylni o‘chirish |
| GET | /v1/files/[id]/content |
Faylning xom mazmunini oqim tarzida qaytarish |
Autentifikatsiya: Bearer API kaliti — fayllar getApiKeyRequestScope orqali har bir API kaliti doirasida ajratiladi.
Batches API
OpenAI bilan mos keluvchi paketli qayta ishlash.
| Metod | Yo‘l | Tavsif |
|---|---|---|
| POST | /v1/batches |
Paket yaratish — so‘rov tanasi v1BatchCreateSchema orqali tekshiriladi (input_file_id, endpoint, completion_window) |
| GET | /v1/batches |
Paketlar ro‘yxatini olish |
| GET | /v1/batches/[id] |
Paket holati va request_countsni olish |
| DELETE | /v1/batches/[id] |
Yakunlangan/muvaffaqiyatsiz paketni o‘chirish |
| POST | /v1/batches/[id]/cancel |
Jarayondagi paketni bekor qilish |
Autentifikatsiya: Bearer API kaliti. Paketlar har bir API kaliti doirasida ajratiladi.
Search API
Veb/qidiruv provayderlari uchun abstraksiya (Tavily, Brave, Exa, Serper va boshqalar).
| Metod | Yo‘l | Tavsif |
|---|---|---|
| GET | /v1/search |
Sozlangan qidiruv provayderlari va ularning imkoniyatlari ro‘yxatini olish |
| POST | /v1/search |
Qidiruv so‘rovini bajarish — so‘rov tanasi v1SearchSchema orqali tekshiriladi, keshlash/birlashtirishni qo‘llab-quvvatlaydi |
| GET | /v1/search/analytics |
Har bir provayder bo‘yicha murojaatlar/kechikish/kesh statistikasi |
Autentifikatsiya: Bearer API kaliti (extractApiKey + isValidApiKey). Qidiruv siyosati enforceApiKeyPolicy orqali qo‘llanadi.
Web Fetch API
Sozlangan web-fetch provayderi (Firecrawl, Jina Reader, Tavily Extract, TinyFish Fetch, Nimble Extract) orqali URL manzilidan kontentni ajratib oling.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| POST | /v1/web/fetch |
URL manzilini olish/qirib chiqish — soʻrov tanasi v1WebFetchSchema orqali tekshiriladi |
Autentifikatsiya: Bearer API kaliti (extractApiKey + isValidApiKey). Siyosat enforceApiKeyPolicy orqali qoʻllanadi.
Kvotani hisobga oluvchi zaxira mexanizmi (#8297): aniq provider berilmaganida, pul
(firecrawl → jina-reader → tavily-search → tinyfish → nimble-search)
qatʼiy ustuvorlik tartibida (birinchisini toʻldirish) koʻrib chiqiladi — tezlik chekloviga uchragan, ammo sozlangan provayder
soʻrovni darhol toʻxtatish oʻrniga oʻtkazib yuboriladi va qayta urinish mumkin boʻlgan/kvota bilan bogʻliq yuqori oqim xatosi
(HTTP 429 har doim; Firecrawl/Tavily/TinyFish kvota turidagi bepul tariflari uchun 402/403 —
Jina Reader uchun emas va oddiy 400 notoʻgʻri soʻrovi uchun hech qachon emas) soʻrov vaqtida
hali sinab koʻrilmagan, hisob maʼlumotlari mavjud keyingi provayderga oʻtadi. Puldagi barcha provayderlar
tugagach, endpoint avvalgi umumiy 400 oʻrniga yagona 429 javobini (Retry-After
sarlavhasi bilan) qaytaradi. Aniq provider soʻralganda, yashirin zaxira mexanizmi mavjud emas — tezlik chekloviga uchragan yoki ishlamay qolgan aniq
provayder oʻz xatosini qaytaradi (tezlik cheklangan boʻlsa 429, aks holda yuqori oqim
statusi).
WebSocket orqali oqimli uzatish
GET /v1/ws?handshake=1
WebSocket ulanishini yangilash uchun qoʻl siqish jarayonini tekshiradi va simli protokolning namunaviy xabarlarini (request, cancel) qaytaradi. Haqiqiy WS freymlari Next.js marshrutlar jadvalidan tashqaridagi biriktirilgan WS serveri tomonidan qayta ishlanadi.
Autentifikatsiya: Qoʻl siqish vaqtida Bearer API kaliti.
WebSocket orqali Responses API (faqat codex)
# HTTP API bilan bir xil host:port (standart 20128); ulanishni yangilang:
wscat -c "ws://localhost:20128/v1/responses?api_key=<OMNIROUTE_API_KEY>"
# (yoki: -H "Authorization: Bearer <OMNIROUTE_API_KEY>")
# Birinchi freym response.create BOʻLISHI SHART:
{ "type": "response.create", "model": "gpt-5.5", "input": [ { "role": "user", "content": "hi" } ] }
Responses-API-over-WebSocket proksisi faqat codex bilan ishlash uchun ulangan (ChatGPT
bekendi). U API/boshqaruv paneli bilan bir xil portda /v1/responses,
/responses va /api/v1/responses yoʻllarini tinglaydi. Birinchi response.create freymida u
ichki codex-responses-ws koʻprigi orqali autentifikatsiya qiladi va tayyorlaydi, codex OAuth ulanishini
tanlaydi hamda wreq-js transporti orqali wss://chatgpt.com/backend-api/codex/responses
manziliga tunnel hosil qiladi. codex boʻlmagan modellar rad etiladi (codex_ws_provider_required).
Kvota ulushiga asoslangan marshrutlash uchun model: "qtSd/<group>/codex/<model>" dan foydalaning. Quyidagi fayllarda amalga oshirilgan:
app/server-ws.mjs + scripts/dev/responses-ws-proxy.mjs + src/app/api/internal/codex-responses-ws/route.ts.
Autentifikatsiya: Qoʻl siqish vaqtida Bearer API kaliti. Biriktirilgan HTTP server (server-ws.mjs)
faol kirish nuqtasi boʻlishi kerak (app/server-ws.mjs mavjud boʻlsa, sukut boʻyicha shunday boʻladi).
Model identifikatori: oddiy ChatGPT identifikatoridan foydalaning (codex/ prefiksisiz)
OpenAI Codex CLI supports_websockets = true boʻlganda model nomini mijoz tomonida tekshiradi va
codex/gpt-5.5 kabi provayder prefiksli identifikatorlarni rad etadi
(The 'codex/gpt-5.5' model is not supported when using Codex with a ChatGPT account).
Oddiy identifikatorni yuboring (masalan, gpt-5.5). OmniRoute koʻprigi faqat codex bilan ishlaydi,
shuning uchun yuqori oqimga tunnel hosil qilishdan oldin oddiy identifikatorni codex modeli sifatida qayta aniqlaydi
(resolveCodexWsModelInfo) — garchi oddiy gpt-5.5 HTTP orqali boshqa provayderga
marshrutlanishi mumkin boʻlsa ham.
OpenAI Codex CLIʼni sozlash
~/.codex/config.toml fayliga WebSocket qoʻllab-quvvatlanadigan maxsus provayderni qoʻshish orqali
Codex CLIʼni OmniRouteʼga yoʻnaltiring (mavjud konfiguratsiyaga tegmaslik uchun alohida CODEX_HOME dan foydalaning):
model = "gpt-5.5" # oddiy identifikator — "codex/gpt-5.5" EMAS
model_provider = "omniroute"
[model_providers.omniroute]
name = "OmniRoute (WS)"
base_url = "http://localhost:20128/v1" # oxirida qiya chiziq boʻlmasin; WS URL avtomatik hosil qilinadi (ishlab chiqarishda https/wss dan foydalaning)
wire_api = "responses" # 2026-yil fevralidan beri qoʻllab-quvvatlanadigan yagona qiymat
supports_websockets = true # Responses-over-WS transportini yoqadi
env_key = "OMNIROUTE_API_KEY" # OmniRoute API kalitini saqlaydi (Bearer)
export OMNIROUTE_API_KEY=sk-... # OmniRoute API kaliti (REQUIRE_API_KEY=false boʻlsa, istalgan kalit)
codex exec "Responda apenas: PONG"
CLI base_url + /responses ulanishini WebSocketʼga yangilaydi va OmniRoute uni
tanlangan codex OAuth ulanishiga tunnellaydi. Mahalliy server bilan boshidan oxirigacha tekshirilgan:
ChatGPT codex.rate_limits + response.created qaytaradi va yakuniy natijani oqim tarzida uzatadi.
Kvotalar va muammolar haqida xabar berish
| Metod | Yo‘l | Tavsif |
|---|---|---|
| GET | /v1/quotas/check |
Ro‘yxatdan o‘tgan kalitni berishdan oldin provider + accountId uchun kvotani dastlabki tekshirish |
| POST | /v1/issues/report |
Kvota/kalit berishdagi xatolik haqida GitHub’ga xabar berish (GITHUB_ISSUES_REPO + token talab qilinadi) |
Autentifikatsiya: Bearer API kaliti (isAuthenticated).
Mustaqil foydalanish (/api/usage/om-usage)
Har qanday API kaliti o‘zining foydalanish ma’lumotlari va kvotalarini boshqaruv autentifikatsiyasisiz o‘qiy oladi. Bu mijoz (CLI, OmniCopilot paneli) kalit egasiga uning xarajatlarini ko‘rsatish uchun foydalanadigan endpointdir.
# Matnli ko‘rinish (tarixiy shartnoma — terminal uchun oddiy matn)
curl -H "Authorization: Bearer <your-api-key>" \
http://localhost:20128/api/usage/om-usage
# Tuzilmaviy ko‘rinish — UI foydalanadigan format
curl -H "Authorization: Bearer <your-api-key>" \
"http://localhost:20128/api/usage/om-usage?format=json"
Kalitda allowUsageCommand yoqilgan bo‘lishi kerak (standart holatda o‘chiq — boshqaruv panelidagi API kalitlari menejeri uni har bir kalit uchun alohida yoqadi). U yoqilmagan bo‘lsa, endpoint 403 javobini qaytaradi.
?format=json farqlanuvchi tuzilmani qaytaradi, shuning uchun chaqiruvchi rad etish javobidan hech qachon ma’lumot maydonini o‘qimaydi. Muvaffaqiyatli holatda:
{
"allowed": true,
// faqat kalit har bir kalit uchun foydalanish limitlarini (kunlik/haftalik USD) yoqqanida mavjud bo‘ladi:
"personal": {
"dailySpentUsd": 1.25,
"dailyLimitUsd": 5,
"dailyResetAtIso": "…",
"weeklySpentUsd": 8,
"weeklyLimitUsd": 20,
"weeklyResetAtIso": "…" /* … */,
},
// tanlangan provayder kvotasi surati yoki hali hech narsa keshlanmagan bo‘lsa null:
"provider": {
"connectionId": "…",
"provider": "claude",
"plan": "…",
"quotas": {/* … */},
},
// UI bir nechta provayderni yonma-yon ko‘rsatishi uchun har bir ulanishning surati:
"providers": [
{ "connectionId": "…", "provider": "claude" /* … */ },
{ "provider": "codex" /* … */ },
],
}
Rad etilganda (401 noto‘g‘ri kalit / 403 ruxsat berilmagan) ayni marshrut
{ "allowed": false, "error": { "message": "…" } } javobini qaytaradi — mavjud, ammo bo‘sh personal/provider
(kalitga ruxsat berilgan, ammo hali hech qanday ma’lumot olinmagan) rad etishdan farqli holat bo‘lib, ularni faqat JSON ko‘rinishi
farqlaydi.
Autentifikatsiya: chaqiruvchining isValidApiKey bilan tekshirilgan o‘z Bearer API kaliti — bu requireManagementAuth ortida qoladigan boshqaruv interfeysi (/api/keys/…) emas.
Semantik kesh
# Kesh statistikasini olish
GET /api/cache/stats
# Barcha keshlarni tozalash
DELETE /api/cache/stats
Javob namunasi:
{
"semanticCache": {
"memorySize": 42,
"memoryMaxSize": 500,
"dbSize": 128,
"hitRate": 0.65
},
"idempotency": {
"activeKeys": 3,
"windowMs": 5000
}
}
Kechikishga ta’siri
Semantik keshdagi HIT javobni yuqori oqimdagi chaqiruvsiz keshdan uzatadi, shuning uchun xabar qilingan X-OmniRoute-Response-Latency deyarli nolga teng bo‘ladi (yuqori oqimdagi dastlabki kechikishdan qat’i nazar). Kechikishga sezgir mijozlar (unumdorlikni sinash, p50/p99 monitoringi) X-OmniRoute-Cache-Latency javob sarlavhasini tekshirishi kerak:
| Qiymat | Ma’nosi |
|---|---|
synthetic |
Javob keshdan uzatildi; kechikish yuqori oqimdagi haqiqiy vaqt emas |
| (mavjud emas) | Javob yuqori oqimdagi haqiqiy chaqiruvdan olindi |
Har bir kalit uchun keshni chetlab o‘tish
API kalitlari cacheDefaultMode orqali semantik keshdan o‘qishni o‘chirishi mumkin:
| Qiymat | Xatti-harakat |
|---|---|
legacy |
Keshning odatiy xatti-harakati (standart) |
bypass |
Keshdan qidirishni butunlay o‘tkazib yuborish; har doim yuqori oqimga murojaat qilish |
Kalit yaratishda (POST /api/keys) o‘rnating yoki (PATCH /api/keys/[id]) orqali yangilang:
{ "cacheDefaultMode": "bypass" }
Har bir so‘rov uchun chetlab o‘tish
Har qanday so‘rov kalit sozlamalaridan qat’i nazar keshni chetlab o‘tishi mumkin:
X-OmniRoute-No-Cache: true
Boshqaruv paneli va boshqarish
Boshqaruv yoʻnalishlari (/api/*, ommaviy autentifikatsiya/kirish bundan mustasno) oddiy inferens API kalitlari orqali avtorizatsiya qilinmaydi. Hisob maʼlumotlari oilalari, qamrovlar va curl misollari:
Boshqaruv autentifikatsiyasi.
Autentifikatsiya
| Soʻnggi nuqta | Metod | Tavsif |
|---|---|---|
/api/auth/login |
POST | Kirish |
/api/auth/logout |
POST | Chiqish |
/api/settings/require-login |
GET/PUT | Kirish talabini yoqish/oʻchirish |
Provayderlarni boshqarish
| Soʻnggi nuqta | Metod | Tavsif |
|---|---|---|
/api/providers |
GET/POST | Provayderlarni roʻyxatlash / yaratish |
/api/providers/[id] |
GET/PUT/DELETE | Provayderni boshqarish |
/api/providers/[id]/test |
POST | Provayder ulanishini sinash |
/api/providers/[id]/models |
GET | Provayder modellarini roʻyxatlash |
/api/providers/validate |
POST | Provayder konfiguratsiyasini tekshirish |
/api/providers/bulk |
POST | BITTA provayder uchun API kalitlarini ommaviy qoʻshish |
/api/providers/import |
POST | Tahlil qilingan CSV/JSON faylidan turli provayderlar ROʻYXATINI import qilish (#6836); har bir qator boʻyicha qisman xatolik natijalari |
/api/provider-nodes* |
Turli | Provayder tugunlarini boshqarish |
/api/provider-models |
GET/POST/PATCH/DELETE | Maxsus modellar (qoʻshish, yangilash, yashirish/koʻrsatish, oʻchirish) |
OAuth jarayonlari
| Soʻnggi nuqta | Metod | Tavsif |
|---|---|---|
/api/oauth/[provider]/[action] |
Turli | Provayderga xos OAuth jarayoni |
Yoʻnaltirish va konfiguratsiya
| Soʻnggi nuqta | Metod | Tavsif |
|---|---|---|
/api/models/alias |
GET/POST | Model taxalluslari |
/api/models/catalog |
GET | Provayder va tur boʻyicha barcha modellar |
/api/combos* |
Turli | Kombinatsiyalarni boshqarish |
/api/keys* |
Turli | API kalitlarini boshqarish |
/api/pricing |
GET | Modellar narxlari |
Foydalanish va tahlil
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/usage/history |
GET | Foydalanish tarixi |
/api/usage/logs |
GET | Foydalanish jurnallari |
/api/usage/request-logs |
GET | Soʻrov darajasidagi jurnallar |
/api/usage/[connectionId] |
GET | Har bir ulanish boʻyicha foydalanish |
/api/usage/token-limits |
GET/POST/DELETE | Har bir API kaliti uchun token cheklovi byudjetlari |
/api/usage/model-latency-stats |
GET | Har bir provayder/model boʻyicha sirgʻaluvchi kechikish agregati (oʻrtacha/p50/p95/p99, muvaffaqiyat darajasi); filtrlar: windowHours/minSamples/maxRows/provider/model (#6873) |
/api/usage/cache-health |
GET | call_logs asosidagi prompt keshi holati xulosasi — yozish/oʻqish nisbati, yozish hajmining p50/p90/p99 taqsimoti, katta hajmli yozuvlar konsentratsiyasi, modellar boʻyicha taqsimot va healthy/degraded/thrash/no-data xulosasi; soʻrov parametrlari: range (1h|24h|7d|30d, standart 24h) va ixtiyoriy model (#8827) |
Sozlamalar
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/settings |
GET/PUT/PATCH | Umumiy sozlamalar |
/api/settings/proxy |
GET/PUT | Tarmoq proksi konfiguratsiyasi |
/api/settings/proxy/test |
POST | Proksi ulanishini sinash |
/api/settings/ip-filter |
GET/PUT | Ruxsat etilgan/bloklangan IP manzillar roʻyxati |
/api/settings/thinking-budget |
GET/PUT | Fikrlash/mulohaza yuritish soʻrovini qayta yozish rejimi (oʻzgarishsiz uzatish / avtomatik olib tashlash / maxsus / moslashuvchan). Siqishdan mustaqil. THINKING_BUDGET.md fayliga qarang. |
/api/settings/system-prompt |
GET/PUT | Global tizim prompti |
/api/settings/compression |
GET/PUT | Global siqish konfiguratsiyasi |
/api/settings/purge-request-history |
POST | Soʻrov jurnali qatorlari va lokal chaqiruv jurnali artefaktlarini tozalash |
Kontekst va siqish
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/compression/preview |
POST | off/lite/standard/aggressive/ultra/RTK/stacked siqishni oldindan ko‘rish |
/api/compression/language-packs |
GET | Mavjud Caveman til paketlarini ro‘yxatlash |
/api/compression/rules |
GET | Caveman qoidalari metama’lumotlarini ro‘yxatlash |
/api/context/caveman/config |
GET/PUT | Caveman’ga xos sozlamalar taxallusi |
/api/context/rtk/config |
GET/PUT | RTK’ga xos sozlamalar, jumladan maxsus filtrlar va xom chiqishni saqlash |
/api/context/rtk/filters |
GET | RTK filtrlar katalogi va maxsus filtr diagnostikasi |
/api/context/rtk/test |
POST | Matnli yuklama bilan RTK oldindan ko‘rish/sinovini bajarish |
/api/context/rtk/raw-output/[id] |
GET | Ko‘rsatkich identifikatori bo‘yicha saqlangan, tahrirlangan xom chiqishni o‘qish |
/api/context/combos |
GET/POST | Siqish kombinatsiyalari ro‘yxati/yaratish |
/api/context/combos/[id] |
GET/PUT/DELETE | Siqish kombinatsiyasi tafsilotlari/yangilash/o‘chirish |
/api/context/combos/[id]/assignments |
GET/PUT | Siqish kombinatsiyalarini marshrutlash kombinatsiyalariga tayinlash |
/api/context/analytics |
GET | Siqish tahlili taxallusi |
Monitoring
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/sessions |
GET | Faol seanslarni kuzatish |
/api/rate-limits |
GET | Har bir hisob uchun so‘rovlar tezligi cheklovlari |
/api/monitoring/health |
GET | Holat tekshiruvi + provayder xulosasi (catalogCount, configuredCount, activeCount, monitoredCount). Boshqaruv ko‘rinishi credentialHealthni o‘z ichiga oladi: sinov keshi skalyarlari, failed>0 bo‘lganda failedConnections va staleDbNonOkCount (SQLite’dagi yopishqoq test_status, o‘lchov emas). MONITORING_GUIDE.mdga qarang. |
/api/cache/stats |
GET/DELETE | Kesh statistikasi / tozalash |
/api/modality-bridge/stats |
GET | Xotiradagi attempts, muvaffaqiyatlar/bridged, muvaffaqiyatsizliklar, keshga tushishlar, totalLatencyMs, latencySamples, namuna soniga asoslangan averageLatencyMs va oxirgi foydalanish vaqti (qayta ishga tushirilganda nolga tushadi; boshqaruv autentifikatsiyasi) |
/api/modality-bridge/video/runtime |
GET | Boshqaruv autentifikatsiyasi/sinovidan oldin qat’iy ishonchli loopback tekshiruvi; tozalangan FFmpeg/ffprobe mavjudligi va versiyalari (saqlanmaydi) |
/api/modality-bridge/video/extract |
POST | Ichki autentifikatsiyalangan ishonchli loopback bayt brokeri; 50 MiB kirish, cheklangan navbat/32 MiB chiqish, sig‘im uchun 503, uzilish uchun 499, muddat tugashi uchun 504; ommaviy fayl yuklash API’si emas |
Zaxiralash va eksport/import qilish
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/db-backups |
GET | Mavjud zaxira nusxalarini roʻyxatlash |
/api/db-backups |
PUT | Qoʻlda zaxira nusxasini yaratish |
/api/db-backups |
POST | Muayyan zaxira nusxasidan tiklash |
/api/db-backups/export |
GET | Maʼlumotlar bazasini .sqlite fayli sifatida yuklab olish |
/api/db-backups/import |
POST | Maʼlumotlar bazasini almashtirish uchun .sqlite faylini yuklash |
/api/db-backups/exportAll |
GET | Toʻliq zaxira nusxasini .tar.gz arxivi sifatida yuklab olish |
Bulut bilan sinxronlash
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/sync/cloud |
Turli | Bulut bilan sinxronlash amallari |
/api/sync/initialize |
POST | Sinxronlashni ishga tushirish |
/api/cloud/* |
Turli | Bulutni boshqarish |
Tunnellar
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/tunnels/cloudflared |
GET | Boshqaruv paneli uchun Cloudflare Quick Tunnel oʻrnatilishi/ish holatini oʻqish |
/api/tunnels/cloudflared |
POST | Cloudflare Quick Tunnelʼni yoqish yoki oʻchirish (action=enable/disable) |
/api/tunnels/ngrok |
GET | Boshqaruv paneli uchun ngrok Tunnel ish holatini oʻqish |
/api/tunnels/ngrok |
POST | ngrok Tunnelʼni yoqish yoki oʻchirish (action=enable/disable) |
CLI vositalari
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/cli-tools/claude-settings |
GET | Claude CLI holati |
/api/cli-tools/codex-settings |
GET | Codex CLI holati |
/api/cli-tools/droid-settings |
GET | Droid CLI holati |
/api/cli-tools/openclaw-settings |
GET | OpenClaw CLI holati |
/api/cli-tools/runtime/[toolId] |
GET | Umumiy CLI ish muhiti |
CLI javoblari quyidagilarni oʻz ichiga oladi: installed, runnable, command, commandPath, runtimeMode, reason.
ACP agentlari
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/acp/agents |
GET | Holati bilan barcha aniqlangan agentlarni (ichki + maxsus) roʻyxatlash |
/api/acp/agents |
POST | Maxsus agent qoʻshish yoki aniqlash keshini yangilash |
/api/acp/agents |
DELETE | id soʻrov parametri boʻyicha maxsus agentni olib tashlash |
GET javobi agents[] (id, nomi, ikkilik fayli, versiyasi, oʻrnatilganligi, protokoli, maxsusligi) va summary (jami, oʻrnatilgan, topilmagan, ichki, maxsus) maʼlumotlarini oʻz ichiga oladi.
Barqarorlik va tezlik cheklovlari
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/resilience |
GET/PATCH | Soʻrovlar navbati, ulanishning sovish davri, provayder uzgichi va kutish sozlamalarini olish/yangilash |
/api/resilience/reset |
POST | Provayder zanjir uzgichlarini qayta tiklash |
/api/resilience/model-cooldowns |
GET | Qolgan vaqt boʻyicha saralangan faol (provayder, ulanish, model) blokirovkalarini roʻyxatlash |
/api/resilience/model-cooldowns |
DELETE | Model blokirovkasini tozalash — tana: {provider, model} yoki barchasini tozalash uchun {all: true} |
/api/rate-limits |
GET | Har bir hisob uchun tezlik cheklovi holati |
/api/rate-limit |
GET | Global tezlik cheklovi konfiguratsiyasi |
Barcha toʻrtta
/api/resilience/*marshruti boshqaruv autentifikatsiyasini (requireManagementAuth) talab qiladi. Provayder uzgichi, ulanishning sovish davri va model blokirovkasi oʻrtasidagi farqlarning toʻliq tavsifi uchun Barqarorlik (kengaytirilgan) boʻlimiga qarang.
Baholashlar
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/evals |
GET/POST | Baholash toʻplamlarini roʻyxatlash/baholashni ishga tushirish |
Siyosatlar
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/policies |
GET/POST/DELETE | Yoʻnaltirish siyosatlarini boshqarish |
Muvofiqlik
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/compliance/audit-log |
GET | Muvofiqlik audit jurnali (oxirgi N ta) |
v1beta (Gemini bilan mos)
| Endpoint | Metod | Tavsif |
|---|---|---|
/v1beta/models |
GET | Modellarni Gemini formatida roʻyxatlash |
/v1beta/models/{...path} |
POST | Gemini generateContent endpointi |
Bu endpointlar mahalliy Gemini SDK mosligini kutadigan mijozlar uchun Gemini API formatini takrorlaydi.
Ichki / tizim APIʼlari
| Endpoint | Metod | Tavsif |
|---|---|---|
/api/init |
GET | Ilovani ishga tushirish tekshiruvi (birinchi ishga tushirishda ishlatiladi) |
/api/tags |
GET | Ollama bilan mos model teglari (Ollama mijozlari uchun) |
/api/restart |
POST | Serverni toʻgʻri qayta ishga tushirishni boshlash |
/api/shutdown |
POST | Serverni toʻgʻri oʻchirishni boshlash |
/api/system/env/repair |
POST | OAuth provayderining muhit oʻzgaruvchilarini tiklash |
Eslatma: Bu endpointlar tizim tomonidan ichki tarzda yoki Ollama mijozlari bilan moslik uchun ishlatiladi. Odatda ular oxirgi foydalanuvchilar tomonidan chaqirilmaydi.
OAuth muhiti oʻzgaruvchilarini tiklash (v3.6.1+)
POST /api/system/env/repair
Content-Type: application/json
{
"provider": "claude-code"
}
Muayyan provayder uchun yetishmayotgan yoki buzilgan OAuth muhiti oʻzgaruvchilarini tiklaydi. Quyidagini qaytaradi:
{
"success": true,
"repaired": ["CLAUDE_CODE_OAUTH_CLIENT_ID", "CLAUDE_CODE_OAUTH_CLIENT_SECRET"],
"backupPath": "/home/user/.omniroute/backups/env-repair-2026-04-11.bak"
}
Audio transkripsiyasi
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
Sozlangan istalgan STT provayderi yordamida audio fayllarni transkripsiya qiling. Yoʻlning birinchi
segmenti bevosita provayderni tanlaydi (openai/…, deepgram/…). Boshqa yetkazib
beruvchining modelini qayta eksport qiluvchi shlyuzlar toʻliq identifikatordan foydalanadi
(openrouter/deepgram/nova-3).
Soʻrov:
curl -X POST http://localhost:20128/v1/audio/transcriptions \
-H "Authorization: Bearer your-api-key" \
-F "file=@recording.mp3" \
-F "model=openai/whisper-1"
Javob:
{
"text": "Salom, bu transkripsiya qilingan audio kontent.",
"task": "transcribe",
"language": "en",
"duration": 12.5
}
Model identifikatorlariga misollar: openai/whisper-1 (OpenAI kalitini talab qiladi),
openrouter/deepgram/nova-3 (OpenRouter kalitini talab qiladi),
deepgram/nova-3 (bevosita Deepgram kalitini talab qiladi). Oddiy
deepgram/nova-3 soʻrovi OpenRouter’dan foydalanmaydi.
Qoʻllab-quvvatlanadigan formatlar: mp3, wav, m4a, flac, ogg, webm.
Ollama bilan moslik
Ollama API formatidan foydalanadigan mijozlar uchun:
# Chat soʻnggi nuqtasi (Ollama formati)
POST /v1/api/chat
# Modellar roʻyxati (Ollama formati)
GET /api/tags
Soʻrovlar Ollama va ichki formatlar oʻrtasida avtomatik ravishda oʻgiriladi.
Tokenli VS Code / Sarlavhasiz taxalluslar
Integratsiya Authorization sarlavhasini kirita olmasa va API kaliti asosiy URL ichiga joylashtirilishi kerak boʻlsa, ushbu taxalluslardan foydalaning.
# OpenAI uslubidagi katalog taxallusi
GET /api/v1/vscode/{token}/
GET /api/v1/vscode/{token}/models
# OpenAI uslubidagi chat taxalluslari
POST /api/v1/vscode/{token}/chat/completions
POST /api/v1/vscode/{token}/responses
# Ollama uslubidagi taxalluslar
POST /api/v1/vscode/{token}/api/chat
GET /api/v1/vscode/{token}/api/tags
Misol:
curl https://your-host.example/api/v1/vscode/YOUR_API_KEY/models
curl -X POST https://your-host.example/api/v1/vscode/YOUR_API_KEY/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"salom"}]}'
Izohlar:
- Tokenli taxalluslar
/v1/*va/api/tagsbilan bir xil ishlov beruvchilardan qayta foydalanadi; javob tuzilmalari bir xil boʻlib qoladi. - Mijoz maxsus sarlavhalarni qoʻllab-quvvatlaganda,
Authorization: Bearer ...dan foydalanish afzal. - URL asosidagi tokenlar teskari proksi jurnallarida, brauzer tarixida va OmniRoute’dan tashqaridagi telemetriyada koʻrinishi mumkin. Ularga standart autentifikatsiya usuli sifatida emas, balki moslik varianti sifatida qarang.
Telemetriya
# Kechikish telemetriyasi xulosasini olish (har bir provayder uchun p50/p95/p99)
GET /api/telemetry/summary
Javob:
{
"providers": {
"claudeCode": { "p50": 245, "p95": 890, "p99": 1200, "count": 150 },
"github": { "p50": 180, "p95": 620, "p99": 950, "count": 320 }
}
}
Budjet
# Barcha API kalitlari uchun budjet holatini olish
GET /api/usage/budget
# Budjetni belgilash yoki yangilash
POST /api/usage/budget
Content-Type: application/json
{
"apiKeyId": "key-123",
"dailyLimitUsd": 5.00,
"weeklyLimitUsd": 30.00,
"monthlyLimitUsd": 100.00,
"warningThreshold": 0.8,
"resetInterval": "monthly"
}
Sxema izohlari (
setBudgetSchema):apiKeyIdmajburiy;dailyLimitUsd,weeklyLimitUsdyokimonthlyLimitUsdqiymatlaridan kamida bittasi noldan katta boʻlishi kerak. Ixtiyoriy maydonlar:warningThreshold(0–1),resetInterval(daily|weekly|monthly),resetTime(HH:MM). Eski{keyId, limit, period}tuzilmasi400 Bad Requestjavobini qaytaradi.
Token limitlari
Har bir API kaliti uchun token budjetlari (yuqoridagi USD asosidagi budjetdan farqli). Soʻrov yoʻlida bevosita nazorat qilinadi: kalitning joriy davrdagi sarfi limitga yetganda, soʻrovlar 429 Too Many Requests bilan rad etiladi. Limitlar muayyan model, provider doirasida yoki kalit boʻylab global tarzda qoʻllanishi mumkin; agar soʻrovga bir nechta limit mos kelsa, eng qatʼiy limit ustun keladi.
# Kalitning token limitlarini roʻyxatlash (joriy davrdagi sarfni ham oʻz ichiga oladi)
GET /api/usage/token-limits?apiKeyId=key-123
# Token limitini yaratish yoki yangilash
POST /api/usage/token-limits
Content-Type: application/json
{
"apiKeyId": "key-123",
"scopeType": "model",
"scopeValue": "openai/gpt-4o",
"tokenLimit": 1000000,
"resetInterval": "monthly",
"enabled": true
}
# Token limitini id boʻyicha oʻchirish
DELETE /api/usage/token-limits?id=tl-abc
Sxema izohlari (
setTokenLimitSchema):apiKeyIdvascopeType(model|provider|global) majburiy.scopeTypeqiymatiglobalboʻlmasa,scopeValuemajburiy (masalan,modeldoirasi uchun model identifikatori,providerdoirasi uchun provayder identifikatori).tokenLimitmusbat butun son boʻlishi kerak (satrdan o‘giriladi). Ixtiyoriy:id(yaratish uchun koʻrsatmang, yangilash uchun kiriting),resetInterval(daily|weekly|monthly, standart qiymatimonthly),resetTime(HH:MM),enabled(standart qiymatitrue).GETjavoblari har bir limitnitokensUsed,remaining,windowStart,periodStartAtvanextResetAtbilan boyitadi. Bu boshqaruv toifasidagi endpoint hisoblanadi (autentifikatsiyaauthzkonveyeri tomonidan markazlashgan holda taʼminlanadi).
Soʻrovni qayta ishlash
- Mijoz
/v1/*manziliga soʻrov yuboradi - Marshrut ishlov beruvchisi
handleChat,handleEmbedding,handleAudioTranscriptionyokihandleImageGenerationfunksiyasini chaqiradi - Model aniqlanadi (toʻgʻridan-toʻgʻri provayder/model yoki taxallus/kombo)
- Hisob mavjudligini filtrlash orqali mahalliy maʼlumotlar bazasidan hisob maʼlumotlari tanlanadi
- Chat uchun:
handleChatCoresemantik/imzo keshini tekshiradi va kombo siqish sozlamalarini aniqlaydi - Faollashtirilgan boʻlsa, provayder formatiga oʻgirishdan oldin proaktiv siqish (
lite, Caveman, RTK yoki ketma-ket birlashtirilgan usullar) bajariladi - Provayder ijrochisi yuqori oqimdagi soʻrovni yuboradi
- Javob mijoz formatiga qayta oʻgiriladi (chat) yoki oʻz holicha qaytariladi (embeddinglar/rasmlar/audio)
- Foydalanish, siqish tahlillari va soʻrov jurnallari qayd etiladi
- Xatolar yuz berganda kombo qoidalariga muvofiq zaxira variant qoʻllanadi
Arxitektura boʻyicha toʻliq maʼlumotnoma: ARCHITECTURE.md
Kombolarni boshqarish
Yuqori darajali marshrutlash kombolari (/api/combos* boʻlimida allaqachon umumlashtirilgan) model identifikatori andozasidan 1:1 nisbatda xaritalanishi ham mumkin, bu OpenAI uslubidagi model identifikatorini komboga shaffof tarzda qayta yoʻnaltirish imkonini beradi.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/model-combo-mappings |
Barcha model→kombo xaritalashlarini roʻyxatlash |
| POST | /api/model-combo-mappings |
Xaritalash yaratish — tana: {pattern, comboId, priority?, enabled?, description?} |
| GET | /api/model-combo-mappings/[id] |
Bitta xaritalashni olish |
| PUT | /api/model-combo-mappings/[id] |
Mavjud xaritalash maydonlarini yangilash |
| DELETE | /api/model-combo-mappings/[id] |
Xaritalashni olib tashlash |
Autentifikatsiya: boshqaruv sessiyasi/API kaliti (requireManagementAuth).
Vebhuklar
OmniRoute hodisalari (soʻrov yakunlanishi, kvota tugashi, kalit rotatsiyasi va boshqalar) uchun chiquvchi vebhuk obunalari.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/webhooks |
Vebhuklar roʻyxatini olish (sirlar <prefix>... koʻrinishida niqoblanadi) |
| POST | /api/webhooks |
Vebhuk yaratish — tana: {url, events?: ["*"], secret?, description?} |
| GET | /api/webhooks/[id] |
Vebhukni olish |
| PUT | /api/webhooks/[id] |
url/events/secret/description qiymatlarini yangilash |
| DELETE | /api/webhooks/[id] |
Vebhukni oʻchirish |
| POST | /api/webhooks/[id]/test |
Vebhuk URL manziliga sinov maʼlumotlarini yuborish va yetkazish holatini qaytarish |
Autentifikatsiya: boshqaruv sessiyasi/API kaliti (requireManagementAuth).
Roʻyxatdan oʻtkazilgan kalitlar (avtomatik boshqaruv)
Avtomatik kalit boshqaruvi quyi tizimi tomonidan asosiy provayder/hisob orqali kunlik/soatlik kvotalarga ega API kalitlarini chiqarish va rotatsiya qilish uchun ishlatiladi.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/v1/registered-keys |
Roʻyxatdan oʻtkazilgan kalitlar roʻyxatini olish (faqat niqoblangan prefiks) |
| POST | /api/v1/registered-keys |
Yangi roʻyxatdan oʻtkazilgan kalitni chiqarish — tana: {name, provider?, accountId?, idempotencyKey?, expiresAt?, dailyBudget?, hourlyBudget?}. Xom kalitni faqat bir marta qaytaradi. Kvota rad etilganda 429 qaytaradi. |
| GET | /api/v1/registered-keys/[id] |
Roʻyxatdan oʻtkazilgan kalit metamaʼlumotlarini olish (xom maʼlumotlarsiz) |
| DELETE | /api/v1/registered-keys/[id] |
Roʻyxatdan oʻtkazilgan kalitni bekor qilish |
| POST | /api/v1/registered-keys/[id]/revoke |
Bevosita bekor qilish endpointi (DELETE bilan bir xil taʼsirga ega) |
Autentifikatsiya: Bearer API kaliti (isAuthenticated). Shuningdek, /v1/quotas/check va /v1/issues/reportga qarang.
Agentlar protokoli
OmniRoute foydalanuvchilari nomidan masofadan bajariladigan bulut agenti vazifalari (Claude Code, Codex Cloud, OpenHands va boshqalar).
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/v1/agents/tasks |
Vazifalar roʻyxati — ixtiyoriy ?provider=, ?status=, ?limit= (1–500, standart qiymat 50) |
| POST | /api/v1/agents/tasks |
Vazifa yaratish — soʻrov tanasi CreateCloudAgentTaskSchema orqali tekshiriladi (providerId, prompt, source, options?). Vazifa konverti bilan 201 qaytaradi |
| DELETE | /api/v1/agents/tasks?id=... |
Vazifani oʻchirish |
| GET | /api/v1/agents/tasks/[id] |
Vazifani oʻqish — external_id oʻrnatilgan boʻlsa, yuqori darajadagi bulut agentidan holatni sinxron ravishda yangilaydi |
| POST | /api/v1/agents/tasks/[id] |
Ajratilgan amal: {action: "approve"}, {action: "message", message} yoki {action: "cancel"} |
| DELETE | /api/v1/agents/tasks/[id] |
Muayyan vazifani id boʻyicha oʻchirish |
Autentifikatsiya: har bir metod uchun boshqaruv autentifikatsiyasi talab qilinadi (
requireCloudAgentManagementAuth). v3.8.0 versiyasigacha ular autentifikatsiyasiz edi — moslikni buzuvchi oʻzgarish uchun588a0333commitiga qarang.
# Claude Code bulut vazifasini yaratish
curl -X POST http://localhost:20128/api/v1/agents/tasks \
-H "Authorization: Bearer your-management-key" \
-H "Content-Type: application/json" \
-d '{"providerId":"claude-code-cloud","prompt":"Fix the failing test","source":{"repo":"...","branch":"..."}}'
Boshqaruv proksilari
Provayderlar, hisoblar yoki global miqyosda tayinlanishi mumkin boʻlgan chiquvchi HTTP(S)/SOCKS proksilari.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/v1/management/proxies |
Proksilar roʻyxati (?id= bilan bittasini qaytaradi; ?id=&where_used=1 bilan tayinlashlar grafigini qaytaradi) |
| POST | /api/v1/management/proxies |
Proksi yaratish — soʻrov tanasi createProxyRegistrySchema orqali tekshiriladi |
| PATCH | /api/v1/management/proxies |
Proksini yangilash — soʻrov tanasi updateProxyRegistrySchema orqali tekshiriladi (id talab qilinadi) |
| DELETE | /api/v1/management/proxies?id=...&force=1 |
Proksini oʻchirish (tayinlashlarni ajratish uchun force=1 dan foydalaning) |
| GET | /api/v1/management/proxies/assignments |
Tayinlashlar roʻyxati — proxy_id, scope, scope_id boʻyicha filtrlash mumkin; ulanish uchun faol proksini aniqlash maqsadida resolve_connection_id=<id> ni uzating |
| PUT | /api/v1/management/proxies/assignments |
Tayinlash — soʻrov tanasi proxyAssignmentSchema orqali tekshiriladi ({scope, scopeId?, proxyId?}). Dispatcher keshini tozalaydi |
| PUT | /api/v1/management/proxies/bulk-assign |
Ommaviy tayinlash — soʻrov tanasi bulkProxyAssignmentSchema orqali tekshiriladi ({scope, scopeIds[], proxyId?}) |
| GET | /api/v1/management/proxies/health?hours=24 |
Muayyan vaqt oraligʻidagi umumlashtirilgan proksi holati (muvaffaqiyatli/muvaffaqiyatsiz urinishlar soni, kechikish) |
Autentifikatsiya: har bir marshrutda boshqaruv sessiyasi/API kaliti talab qilinadi (requireManagementAuth).
Vazifa tavsifidagi
POST /api/v1/management/proxies/[id]/assignmentsvaPOST /api/v1/management/proxies/[id]/healthyuqorida koʻrsatilgan yassi/assignmentsva/healthmarshrutlari orqali xizmat koʻrsatiladi — kod bazasida har bir id uchun alohida quyi marshrutlar mavjud emas.
Barqarorlik (kengaytirilgan)
OmniRoute vaqtinchalik nosozliklarni boshqarish uchun uchta mustaqil mexanizmni taqdim etadi; quyidagi boshqaruv endpointlari operatorlarga ularni ko‘rish va qayta sozlash imkonini beradi:
| Qamrov | Holat saqlanadigan joy | Ko‘rish | Tiklash / tozalash |
|---|---|---|---|
| Provayder uzgichi | domain_circuit_breakers + operativ xotira |
/api/monitoring/health |
POST /api/resilience/reset |
| Ulanish tanaffusi | Provayder ulanishlaridagi rateLimitedUntil |
/api/rate-limits, /api/providers/[id] |
(zarurat tug‘ilganda qayta yoqiladi; provayderni PUT orqali tozalang) |
| Model blokirovkasi | Xotiradagi model mavjudligi reyestri | GET /api/resilience/model-cooldowns |
DELETE /api/resilience/model-cooldowns |
PATCH /api/resilience providerBreaker.oauth va providerBreaker.apikey ostidagi provayder uzgichi sozlamalarini qabul qiladi. Har bir profil degradationThreshold, failureThreshold va resetTimeoutMs parametrlarini qo‘llab-quvvatlaydi; ayni maydonlar Boshqaruv paneli → Sozlamalar → Barqarorlik bo‘limida ham mavjud.
# Bitta model blokirovkasini olib tashlash
curl -X DELETE http://localhost:20128/api/resilience/model-cooldowns \
-H "Cookie: auth_token=..." \
-H "Content-Type: application/json" \
-d '{"provider":"openai","model":"gpt-4o-mini"}'
# Barcha blokirovkalarni olib tashlash
curl -X DELETE http://localhost:20128/api/resilience/model-cooldowns \
-H "Cookie: auth_token=..." \
-d '{"all":true}'
To‘liq konseptual ma’lumotnoma va uzgichning standart qiymatlari: CLAUDE.md → "Barqarorlikning ish vaqtidagi holati" bo‘limiga qarang.
Ko‘nikmalar
OmniRoute imkoniyatlarini maxsus bajariluvchi ishlov beruvchilar bilan kengaytirish uchun ko‘nikmalar platformasi, shuningdek marketpleys integratsiyalari.
| Metod | Yo‘l | Tavsif |
|---|---|---|
| GET | /api/skills |
O‘rnatilgan ko‘nikmalar ro‘yxati — ?q=, ?mode=on|off|auto, ?source=skillsmp|skillssh|local bo‘yicha filtrlanadi, sahifalarga bo‘linadi |
| GET | /api/skills/[id] |
Bitta ko‘nikmani olish |
| PUT | /api/skills/[id] |
Ko‘nikmani yangilash (nomi, tavsifi, rejimi, sxemasi, ishlov beruvchisi, teglari) |
| DELETE | /api/skills/[id] |
Ko‘nikmani o‘chirish |
| POST | /api/skills/install |
Ko‘nikmani xom manifestdan o‘rnatish — so‘rov tanasi: {name, version, description, schema:{input, output}, handlerCode, apiKeyId?} |
| GET | /api/skills/executions |
Ko‘nikmalarning so‘nggi bajarilishlari ro‘yxati (kirishlar/chiqishlar/davomiylikni o‘z ichiga olgan audit jurnali) |
| GET | /api/skills/marketplace?q=... |
SkillsMP marketpleysidan qidiruv/ommabop ro‘yxat (skillsmpApiKey sozlamasini talab qiladi) |
| POST | /api/skills/marketplace/install |
Ko‘nikmani SkillsMP orqali id bo‘yicha o‘rnatish |
| GET | /api/skills/skillssh?q=&limit= |
skills.sh reyestrida qidirish |
| POST | /api/skills/skillssh/install |
Ko‘nikmani skills.sh orqali id bo‘yicha o‘rnatish |
Autentifikatsiya: boshqaruv seansi/API kaliti. Marketpleys qidiruv yo‘nalishlari boshqaruv autentifikatsiyasi yoki Bearer API kalitini (isAuthenticated) qabul qiladi.
Xotira
Har bir API kaliti / sessiya doirasida ajratilgan doimiy suhbat/faktlar xotirasi ombori.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/memory |
Xotiralar roʻyxati — ?apiKeyId=, ?type=, ?sessionId=, ?q=, offset/limit yoki page/limit sahifalash bilan |
| POST | /api/memory |
Xotira yaratish — soʻrov tanasi Zod orqali tekshiriladi: {content, key, type?, sessionId?, apiKeyId?, metadata?, expiresAt?} |
| GET | /api/memory/[id] |
Bitta xotirani olish |
| DELETE | /api/memory/[id] |
Xotirani oʻchirish |
| GET | /api/memory/health |
Xotira quyi tizimi holati (DB ulanishi, embeddinglar bekendi, vektor indeksi holati) |
Autentifikatsiya: boshqaruv sessiyasi/API kaliti (requireManagementAuth). type enum qiymatlari: FACTUAL, EPISODIC, SEMANTIC, PROCEDURAL (src/lib/memory/types.ts ichidagi MemoryTypega qarang).
MCP serveri
OmniRoute 3 ta transport (stdio, SSE, streamable-http) va doirasi cheklangan vositalarga ega ichki Model Context Protocol serveri bilan taqdim etiladi. Quyidagi boshqaruv paneli endpointlari holat/audit maʼlumotlarini oʻqiydi va HTTP transportlarini proksi qiladi.
| Metod | Yoʻl | Tavsif | |
|---|---|---|---|
| GET | /api/mcp/status |
Faollik signali, transport, onlayn holat, soʻnggi chaqiruv, eng koʻp ishlatilgan vositalar, 24 soatlik muvaffaqiyat darajasi | |
| GET | /api/mcp/tools |
name, description, scopes, phase, auditLevel, sourceEndpoints maydonlariga ega MCP vositalari roʻyxati |
|
| GET | /api/mcp/sse |
SSE transporti uchun SSE oqimini ochish (MCP oʻchirilgan yoki transport mos kelmasa, 503 qaytaradi) |
|
| POST | /api/mcp/sse |
SSE transportida JSON-RPC freymini yuborish | |
| GET | /api/mcp/stream |
Streamable HTTP transportining SSE tomonini ochish (server tashabbusi bilan yuboriladigan xabarlar) | |
| POST | /api/mcp/stream |
Streamable HTTP transportida JSON-RPC freymini yuborish | |
| DELETE | /api/mcp/stream |
Streamable HTTP sessiyasini yakunlash | |
| GET | /api/mcp/audit |
Audit jurnalini soʻrash — ?limit=, ?offset=, ?tool=, `?success=true |
false, ?apiKeyId=` |
| GET | /api/mcp/audit/stats |
Umumlashtirilgan audit statistikasi (jami koʻrsatkichlar, muvaffaqiyat darajasi, oʻrtacha davomiylik, eng koʻp ishlatilgan vositalar) |
Autentifikatsiya: sse/stream transportlari MCPga xos autentifikatsiya mexanizmidan foydalanadi (mcp doirasiga ega Bearer API kaliti); status/tools/audit* yoʻnalishlarini boshqaruv panelidan oʻqish mumkin (boshqaruv paneli xostiga kirishdan tashqari qoʻshimcha autentifikatsiya talab qilinmaydi).
Har ikkala HTTP transporti
settings.mcpEnabledvasettings.mcpTransportbilan boshqariladi — transport mos kelmasa400, MCP oʻchirilgan holatda esa503qaytariladi.
A2A serveri
OmniRoute tekshirish/boshqaruv panelida foydalanish uchun A2A (Agent-to-Agent) JSON-RPC 2.0 endpointini hamda REST o‘ramini taqdim etadi.
JSON-RPC
POST /a2a
Authorization: Bearer your-api-key # OMNIROUTE_API_KEY o‘rnatilmagan bo‘lsa, ixtiyoriy
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "message/send",
"params": {
"skill": "smart-routing",
"messages": [{"role": "user", "content": "Ushbu dasturlash vazifasini yo‘naltir"}]
}
}
Qo‘llab-quvvatlanadigan metodlar (barchasi settings.a2aEnabled orqali boshqariladi):
| Metod | Tavsif |
|---|---|
message/send |
Ko‘nikmani sinxron bajaradi; {task, artifacts, metadata} qaytaradi |
message/stream |
Xuddi shu ko‘nikmalar to‘plamini oqimli SSE orqali bajaradi |
tasks/get |
Vazifani taskId bo‘yicha oladi |
tasks/cancel |
Vazifani taskId bo‘yicha bekor qiladi |
Ichki ko‘nikmalar: smart-routing, quota-management, provider-discovery, cost-analysis, health-report.
Agent kartasi
GET /.well-known/agent.json
Ommaviy A2A agent kartasini (nomi, tavsifi, imkoniyatlari, ko‘nikmalar katalogi, autentifikatsiya sxemasi) qaytaradi — ommaviy tarzda 1 soatga keshlanadi. Autentifikatsiya talab qilinmaydi.
REST yordamchilari
| Metod | Yo‘l | Tavsif |
|---|---|---|
| GET | /api/a2a/status |
A2A yoqilganligi + vazifa statistikasi + keshlangan agent kartasi xulosasi |
| GET | /api/a2a/tasks |
Vazifalar ro‘yxati — ?state=submitted|working|completed|failed|cancelled, ?skill=, ?limit= (≤200), ?offset= |
| POST | /api/a2a/tasks |
(REST yordamchisi sifatida amalga oshirilmagan — JSON-RPC message/send orqali yarating) |
| GET | /api/a2a/tasks/[id] |
Bitta vazifani olish |
| POST | /api/a2a/tasks/[id]/cancel |
Vazifani bekor qilish |
Autentifikatsiya: REST yordamchilari boshqaruv autentifikatsiyasisiz ishlaydi (boshqaruv panelidan o‘qish mumkin); JSON-RPC /a2a marshruti sozlangan bo‘lsa, Bearer OMNIROUTE_API_KEY kalitidan foydalanadi.
Bulut, baholashlar va tahlil
| Metod | Yo‘l | Tavsif | ||
|---|---|---|---|---|
| POST | /api/cloud/auth |
Bearer kalitini tekshirish va bulut bilan sinxronlash mijozlari uchun niqoblangan provayder ulanishlari + model taxalluslarini qaytarish | ||
| POST | /api/cloud/credentials/update |
Bulut bilan sinxronlangan provayderning shifrlangan hisob ma’lumotlarini yangilash | ||
| POST | /api/cloud/model/resolve |
Mahalliy marshrutlash jadvali yordamida mantiqiy model identifikatorini aniq provayder/modelga moslashtirish | ||
| GET | /api/cloud/models/alias |
Bulut bilan sinxronlashga taqdim etilgan model taxalluslari ro‘yxati | ||
| GET | /api/assess |
Eng so‘nggi tahlil toifalarini o‘qish (har bir provayder/model bo‘yicha) | ||
| POST | /api/assess |
Tahlilni ishga tushirish — tana: `{scope: {type:"all"} | {type:"provider", providerId} | {type:"model", modelId}, trigger?}` |
| GET | /api/evals |
Ichki baholash to‘plamlari + eng so‘nggi ishga tushirishlar ro‘yxati | ||
| POST | /api/evals |
Baholashni ishga tushirish | ||
| POST | /api/evals/suites |
Maxsus baholash to‘plamini yaratish — tana evalSuiteSaveSchema orqali tekshiriladi |
||
| GET | /api/evals/suites/[id] |
Maxsus baholash to‘plamini olish |
Autentifikatsiya: /api/cloud/auth Bearer kalitini bevosita tekshiradi; boshqa /api/cloud/*, /api/evals/* va /api/assess marshrutlari boshqaruv seansi/API kalitini talab qiladi. /api/assess POST diskriminatsiyalangan birlashma doirasi sxemasi bilan validateBody dan foydalanadi.
ACP (Agent Client Protocol) boshqaruvi
quyi jarayonlar sifatida. Ushbu endpointlar ACP agentlarini aniqlash va maxsus agentlarni roʻyxatdan oʻtkazishni boshqaradi.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/acp/agents |
Oʻrnatilish holati, versiyasi va bajariluvchi fayli bilan barcha maʼlum CLI agentlarini (ichki + maxsus) roʻyxatlash |
| POST | /api/acp/agents |
Maxsus ACP agentini roʻyxatdan oʻtkazish yoki keshni yangilash — soʻrov tanasi: {id, name, binary, versionCommand, providerAlias, spawnArgs, protocol} yoki {action: "refresh"} |
| DELETE | /api/acp/agents |
Maxsus ACP agentini olib tashlash — soʻrov parametri: ?id=<agentId> |
Javob namunasi (GET /api/acp/agents):
{
"agents": [
{
"id": "claude",
"name": "Claude Code CLI",
"binary": "claude",
"version": "1.0.45",
"installed": true,
"protocol": "stdio",
"providerAlias": "claude",
"isCustom": false
},
{
"id": "my-custom-cli",
"name": "My Custom CLI",
"installed": false,
"protocol": "stdio",
"providerAlias": "my-provider",
"isCustom": true
}
],
"cacheTtlMs": 60000,
"cacheAge": 1234
}
Autentifikatsiya: Boshqaruv sessiyasi (boshqaruv panelidagi auth_token cookie fayli) yoki
boshqaruv doirasidagi API kaliti talab qilinadi.
Toʻliq maʼlumot uchun ACP Framework sahifasiga qarang.
Tahlil va kuzatuvchanlik
Marshrutlash, siqish va provayderlar xilma-xilligini kuzatish uchun real vaqt rejimidagi
tahlil endpointlari. Ular /dashboard/analytics/* sahifalarini maʼlumot bilan taʼminlaydi.
Avtomatik marshrutlash tahlili
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/analytics/auto-routing |
Avtomatik marshrutlashning jamlangan statistikasi: jami chaqiruvlar, strategiyalar taqsimoti, darajalar taqsimoti, yetakchi provayderlar |
| GET | /api/analytics/auto-routing?days=7 |
Vaqt oraligʻi boʻyicha statistika (standart qiymat — 24 soat) |
Javob namunasi:
{
"window": "24h",
"totalCalls": 1234,
"strategyBreakdown": {
"rules": 800,
"cost": 200,
"latency": 150,
"sla-aware": 50,
"lkgp": 34
},
"tierBreakdown": {
"ultra": 100,
"pro": 500,
"standard": 400,
"free": 234
},
"topProviders": [
{ "provider": "openai", "calls": 500, "avgLatencyMs": 850 },
{ "provider": "anthropic", "calls": 300, "avgLatencyMs": 1200 }
]
}
Siqish tahlili
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/analytics/compression |
Siqishning jamlangan statistikasi: tejalgan tokenlar, tejash foizi, rejimlar taqsimoti, mexanizmlardan foydalanish |
Javob namunasi:
{
"window": "24h",
"totalOriginalTokens": 5000000,
"totalCompressedTokens": 3500000,
"totalSavings": 1500000,
"savingsPct": 30.0,
"modeBreakdown": {
"lite": 400,
"standard": 600,
"aggressive": 100,
"ultra": 50,
"rtk": 84
},
"engineBreakdown": {
"caveman": 800,
"rtk": 434
}
}
Provayderlar xilma-xilligini kuzatish
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/analytics/diversity |
Shannon entropiyasiga asoslangan xilma-xillik kuzatuvi: provayderlar taqsimotini oʻlchash orqali yagona nosozlik nuqtalarining oldini oladi |
Javob namunasi:
{
"window": "24h",
"shannonEntropy": 2.45,
"maxEntropy": 3.17,
"diversityRatio": 0.77,
"providerUsage": {
"openai": 0.4,
"anthropic": 0.25,
"google": 0.2,
"kiro": 0.15
},
"warnings": ["OpenAI accounts for 40% of traffic — consider diversifying"]
}
Autentifikatsiya: Boshqaruv sessiyasi yoki boshqaruv doirasidagi API kaliti talab qilinadi.
Administrator operatsiyalari
Operatsion boshqaruv uchun faqat administratorlarga moʻljallangan endpointlar.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/admin/concurrency |
Joriy parallellik cheklovlarini oʻqish (global + har bir provayder uchun) |
| POST | /api/admin/concurrency |
Parallellik cheklovlarini yangilash — tana: {global?: number, perProvider?: Record<string, number>} |
Autentifikatsiya: Administrator doirasiga ega boshqaruv seansi talab qilinadi.
CLI vositalarini boshqarish
OmniRoute bilan integratsiyalashadigan CLI vositalarini (antigravity, chipotle, commandCode, devin-cli va boshqalar) boshqaring. Toʻliq roʻyxat uchun Provayder maʼlumotnomasiga qarang.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/cli-tools/all-statuses |
Barcha CLI vositalarining holati (oʻrnatilganligi, versiyasi, oxirgi faollik vaqti) |
| GET | /api/cli-tools/status |
Bitta CLI vositasi holati tafsilotlari (?tool= soʻrovi) |
| POST | /api/cli-tools/apply |
Vosita uchun yaratilgan konfiguratsiyani yozish (dryRun oldindan koʻrsatadi; konteynerlashtirilganda 422 + containerEphemeralTarget; migration eski Codex YAML haqida qayd etadi) |
| GET | /api/cli-tools/backups |
CLI vositalari konfiguratsiyasi zaxira nusxalarini roʻyxatlash |
| POST | /api/cli-tools/backups |
Barcha CLI vositalari konfiguratsiyalarining zaxira nusxasini yaratish |
| POST | /api/cli-tools/backups |
Tiklash: tanada {tool, backupId} bilan ayni endpoint ushbu zaxira nusxasini tiklaydi |
| GET | /api/cli-tools/antigravity-mitm |
Antigravity MITM proksi holati (antigravity-mitm CLI vositasi) |
| POST | /api/cli-tools/antigravity-mitm/alias |
antigravity-mitm taxalluslarini sozlash |
Autentifikatsiya: Boshqaruv seansi talab qilinadi.
Agent koʻnikmalari
AI agent koʻnikmalarini boshqaring (OpenAI maxsus GPTlariga oʻxshash, ammo agentlar uchun).
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/agent-skills |
Barcha agent koʻnikmalarini roʻyxatlash (ichki + maxsus) |
| GET | /api/agent-skills/[id] |
Muayyan agent koʻnikmasini olish |
| POST | /api/agent-skills |
Maxsus agent koʻnikmasini yaratish — tana: {name, description, prompt, model?, temperature?} |
| PUT | /api/agent-skills/[id] |
Maxsus agent koʻnikmasini yangilash |
| DELETE | /api/agent-skills/[id] |
Maxsus agent koʻnikmasini oʻchirish |
| GET | /api/agent-skills/[id]/raw |
Xom prompt + metamaʼlumotlarni olish (bajarilmasdan) |
| POST | /api/agent-skills/generate |
Tabiiy tildagi tavsifdan AI yordamida yangi koʻnikma yaratish |
Autentifikatsiya: Boshqaruv seansi yoki boshqaruv doirasidagi API kaliti talab qilinadi.
Keshni boshqarish
Semantik kesh va mulohaza yuritish keshini boshqaring.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/cache |
Kesh haqida umumiy maʼlumot: jami yozuvlar, topilish darajasi, diskdagi hajmi |
| GET | /api/cache/entries |
Keshlangan yozuvlar roʻyxati (sahifalash bilan) |
| DELETE | /api/cache/entries |
Kesh yozuvlarini oʻchirish (soʻrov parametrlari boʻyicha filtrlash) |
| GET | /api/cache/stats |
Batafsil kesh statistikasi (har bir provayder va model boʻyicha) |
| GET | /api/cache/reasoning |
Mulohaza yuritish keshining holati (mulohazalarni qayta ijro etish uchun) |
| DELETE | /api/cache/reasoning |
Mulohaza yuritish keshini tozalash — soʻrov parametrlari: ?toolCallId=<id> (bitta), ?provider=<p> yoki parametrsiz (barchasi) |
Autentifikatsiya: Boshqaruv seansi talab etiladi.
Xotira tizimi
Doimiy xotirani (FTS5 + vektorli embeddinglar) boshqaring.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/memory |
Xotira yozuvlari roʻyxati (qamrov, tur va qidiruv soʻrovi boʻyicha filtrlash) |
| POST | /api/memory |
Yangi xotira yozuvini yaratish — soʻrov tanasi: {scope, type, content, metadata?} |
| GET | /api/memory/[id] |
Muayyan xotira yozuvini olish |
| PUT | /api/memory/[id] |
Xotira yozuvini yangilash |
| DELETE | /api/memory/[id] |
Xotira yozuvini oʻchirish |
| GET | /api/memory?q= |
Xotiradan qidirish (FTS5 + vektor) — statistika shu javobning oʻziga kiritiladi |
Autentifikatsiya: Boshqaruv seansi yoki boshqaruv doirasidagi API kaliti talab etiladi.
Vebhuklar
Hodisalar uchun vebhuk obunalarini boshqaring.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/webhooks |
Barcha vebhuk obunalari roʻyxati |
| POST | /api/webhooks |
Vebhuk obunasini yaratish — soʻrov tanasi: {url, events[], secret?, active?} |
| GET | /api/webhooks/[id] |
Muayyan vebhuk obunasini olish |
| PUT | /api/webhooks/[id] |
Vebhuk obunasini yangilash |
| DELETE | /api/webhooks/[id] |
Vebhuk obunasini oʻchirish |
| GET | /api/webhooks/[id]/deliveries |
Vebhuk uchun yetkazib berishlar tarixini koʻrish (muvaffaqiyat/xatolik jurnali) |
| POST | /api/webhooks/[id]/test |
Vebhukka sinov hodisasini yuborish |
Autentifikatsiya: Boshqaruv seansi talab etiladi.
Barcha hodisa turlari uchun Vebhuklar freymvorkiga qarang.
Koʻnikmalar freymvorki
Koʻnikmalarni (agent kengaytmalari freymvorkini) boshqaring.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/skills |
Barcha oʻrnatilgan koʻnikmalarni (ichki + maxsus) roʻyxatlash |
| POST | /api/skills/install |
Mahalliy yoʻl yoki URL manzilidan koʻnikma oʻrnatish |
| DELETE | /api/skills/[id] |
Koʻnikmani oʻchirish |
| PUT | /api/skills/[id] |
Koʻnikmani yoqish yoki oʻchirish — tana: {enabled?: boolean, mode?: "on" | "off" | "auto"} |
| POST | /api/skills/executions |
Koʻnikmani bajarish — tana: {skillName, apiKeyId, input?, sessionId?} |
| GET | /api/skills/executions |
Barcha koʻnikmalar uchun bajarilish tarixini roʻyxatlash (?apiKeyId= boʻyicha filtrlash) |
Autentifikatsiya: Boshqaruv seansi yoki boshqaruv doirasidagi API kaliti talab qilinadi.
Toʻliq maʼlumot uchun Koʻnikmalar freymvorki boʻlimiga qarang.
Plaginlar
OmniRoute plaginlarini (uchinchi tomon kengaytmalarini) boshqaring.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/plugins |
Oʻrnatilgan plaginlarni roʻyxatlash |
| POST | /api/plugins/marketplace/install |
Marketpleysdan plagin oʻrnatish |
| DELETE | /api/plugins/[name] |
Plaginni oʻchirish |
| POST | /api/plugins/[name]/activate |
Plaginni faollashtirish |
| POST | /api/plugins/[name]/deactivate |
Plaginni faolsizlantirish |
| GET | /api/plugins/[name]/config |
Plagin konfiguratsiyasini olish |
| PUT | /api/plugins/[name]/config |
Plagin konfiguratsiyasini yangilash |
Autentifikatsiya: Boshqaruv seansi talab qilinadi.
Toʻliq maʼlumot uchun Plaginlar freymvorki boʻlimiga qarang.
Soyali marshrutlash
Provayderlarni soyali / A-B usulida taqqoslash mustaqil REST interfeysi emas — u kombinatsiyalangan marshrutlash orqali sozlanadi (Avtomatik kombinatsiya boʻlimiga qarang). Har bir kombinatsiya boʻyicha taqqoslash koʻrsatkichlari GET /api/combos/metrics orqali taqdim etiladi.
Himoya cheklovlari
Ish vaqtidagi himoya cheklovlarini (shaxsni aniqlash mumkin boʻlgan maʼlumotlarni aniqlash, prompt inyeksiyasini aniqlash, koʻrish vositachiligi) tekshiring. Himoya cheklovlari har bir soʻrovda ishlaydi; har bir chaqiruv uchun ulardan voz kechish x-omniroute-disabled-guardrails soʻrov sarlavhasi orqali amalga oshiriladi — yoqish/oʻchirish holatini doimiy saqlash interfeysi mavjud emas.
| Metod | Yoʻl | Tavsif |
|---|---|---|
| GET | /api/guardrails |
Roʻyxatdan oʻtgan himoya cheklovlari va ularning holatini roʻyxatlash (nomi / yoqilganligi / ustuvorligi) |
| POST | /api/guardrails/test |
Chaqiruvdan oldingi konveyerni namunaviy kirish maʼlumotida sinov tariqasida ishga tushirish — tana: {input, disabledGuardrails?} |
Autentifikatsiya: Boshqaruv seansi talab qilinadi.
Toʻliq maʼlumot uchun Xavfsizlik > Himoya cheklovlari boʻlimiga qarang.
Autentifikatsiya
Toʻrtta hisob maʼlumotlari oilasi (boshqaruv paneli seansi, mahalliy CLI tokeni, oma_live_… kirish tokeni, boshqaruv doirasidagi API kaliti) va ularning inferensiya kalitlaridan farqi haqida Boshqaruv autentifikatsiyasi qoʻllanmasiga qarang.
- Boshqaruv paneli marshrutlari (
/dashboard/*)auth_tokencookie faylidan foydalanadi - Tizimga kirishda saqlangan parol xeshidan foydalaniladi; zaxira variant sifatida
INITIAL_PASSWORDishlatiladi requireLoginsozlamasini/api/settings/require-loginorqali yoqish yoki oʻchirish mumkinREQUIRE_API_KEY=trueboʻlganda,/v1/*marshrutlari ixtiyoriy ravishda Bearer API kalitini talab qiladi- Ushbu maʼlumotnomadagi «boshqaruv tokeni» / «boshqaruv doirasidagi API kaliti» yuqoridagi qoʻllanmada keltirilgan oilalardan birini anglatadi — bu taʼriflanmagan qoʻshimcha maxfiy maʼlumot turi emas
Orqaga mos kelmaydigan oʻzgarish (v3.8.0) —
/api/v1/agents/tasks/*va kutish muddatini boshqarish endpointlari endi boshqaruv autentifikatsiyasini (boshqaruv paneliningauth_tokencookie fayli yoki boshqaruv doirasidagi API kaliti) talab qiladi. Avval ushbu marshrutlarni autentifikatsiyasiz chaqirgan mijozlar401 Unauthorizedjavobini oladi.588a0333(fix(auth): agent va kutish muddati API'lari uchun boshqaruv autentifikatsiyasi talab qilinsin) commitiga qarang.