Batch 1 of the locale expansion: Greek, Croatian, Serbian, Lithuanian, Estonian, Latvian, Slovenian, Maltese and Irish across the dashboard catalog, docs mirrors, CLI catalog, README, locale index and the site. 42 → 51 locales. Also fixes the ICU literal escape the translation backend dropped around angle placeholders, four translations that invented or renamed a placeholder, the language bars that linked to mirrors that do not exist, and the migration count drift (171 → 172). ⚠️ base-red inherited: #12732 — the four unit shards and Fast Quality Gates fail identically on unrelated PRs cut from the same base.
120 KiB
API_REFERENCE (Latviešu)
🌐 Languages: 🇺🇸 English · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇮🇩 id · 🇮🇹 it · 🇯🇵 ja · 🇰🇷 ko · 🇱🇹 lt · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇳🇱 nl · 🇳🇴 no · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇻🇳 vi · 🇨🇳 zh-CN · 🇹🇼 zh-TW
title: "API Reference" version: 3.8.51 lastUpdated: 2026-08-31
API Atsauce
🌐 Languages: 🇺🇸 English · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇮🇩 id · 🇮🇹 it · 🇯🇵 ja · 🇰🇷 ko · 🇱🇹 lt · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇳🇱 nl · 🇳🇴 no · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇻🇳 vi · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Galvenā atsauce OmniRoute API. Tā apraksta publisko /v1 virsmu un visbiežāk izmantotos pārvaldības galapunktus; mašīnlasāms docs/openapi.yaml un ceļkoku koks zem src/app/api/ ir visaptveroši avoti.
Satura rādītājs
- Tērzēšanas pabeigšanas
- Ekskluzīvas pārvaldītas sesijas nomas
- Embeddings
- Attēlu ģenerēšana
- Dokumentu OCR
- Modeļu saraksts
- Piegādātāja spraudņa manifests
- Savietojamības gala punkti
- Failu API
- Partiju API
- Meklēšanas API
- WebSocket straumēšana
- Kvotas & problēmu ziņošana
- Semantiskā kešatmiņa
- Informācijas panelis & pārvaldība
- Kombo pārvaldība
- Tīmekļa āķi
- Reģistrētās atslēgas (automātiskā pārvaldība)
- Aģentu protokols
- Pārvaldības starpnieki
- Noturība (paplašināta)
- Prasmes
- Atmiņa
- MCP serveris
- A2A serveris
- Mākoņa, vērtēšanas & novērtēšana
- Pieprasījumu apstrāde
- Autentifikācija
Tērzēšanas pabeigšanas
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
}
Pielāgotas galvenes
| Galvene | Virziens | Apraksts |
|---|---|---|
X-OmniRoute-No-Cache |
Pieprasījums | Iestatiet true, lai apietu kešatmiņu |
x-omniroute-no-memory |
Pieprasījums | Iestatiet true, lai izlaistu atmiņu + prasmju injicēšanu šim pieprasījumam (atspoguļo bez kešatmiņas; izvairās no zvana tokena/izmaksu papildu slodzes) |
X-OmniRoute-Progress |
Pieprasījums | Iestatiet true, lai saņemtu norises notikumus |
X-Session-Id |
Pieprasījums | Lipīga sesijas atslēga ārējai sesijas saistībai |
x_session_id |
Pieprasījums | Ar pasvītrojumu variants arī pieņemts (tiešais HTTP) |
X-OmniRoute-Session-Id |
Pieprasījums | Izsaucēja nodrošināts sesijas/tērzēšanas tags (arī baro atmiņu). Ja klāt, saglabāts burtiski call_logs.session_tag katrai sesijai piesaistītām izmaksām (#8249) — nekad netiek sintezēts, ja nav klāt |
Idempotency-Key |
Pieprasījums | Dedup atslēga (5s logs) |
X-Request-Id |
Pieprasījums | Alternatīva dedup atslēga |
X-OmniRoute-Cache |
Atbilde | HIT vai MISS (nestraumēts) |
X-OmniRoute-Idempotent |
Atbilde | true, ja deduplicēts |
X-OmniRoute-Progress |
Atbilde | enabled, ja norises izsekošana ir ieslēgta |
X-OmniRoute-Session-Id |
Atbilde | Efektīvais sesijas ID, ko izmanto OmniRoute |
X-OmniRoute-Request-Id |
Atbilde | Pieprasījuma korelācijas id (ja zināms) |
X-OmniRoute-Version |
Atbilde | OmniRoute būvējuma versija (vienmēr klāt) |
X-OmniRoute-Cost-Saved |
Atbilde | ASV dolāri, ko kešatmiņa ietaupīja HIT gadījumā (tikai kešatmiņas trāpījumi) |
X-OmniRoute-Decision |
Atbilde | Maršrutēšanas izsekošana: strategy=<name>; provider=<alias>; latency_ms=<n> (<name> ir kombo stratēģija vai single ne-kombo pieprasījumam) — vienmēr klāt pabeigtajām atbildēm |
Nginz piezīme: ja paļaujaties uz pasvītrotajām galvenēm (piemēram,
x_session_id), iespējojietunderscores_in_headers on;.
Izsmaksu telemetrijas galvenes: nestraumētas veiksmīgas atbildes satur arī
X-OmniRoute-*izmaksu telemetrijas kopu —X-OmniRoute-Response-Cost(ASV dolāri, fiksētas 10 decimāls;0.0000000000bezmaksas/necenstai),X-OmniRoute-Tokens-In/X-OmniRoute-Tokens-Out,X-OmniRoute-Model,X-OmniRoute-Provider,X-OmniRoute-Latency-Ms,X-OmniRoute-Cache-HitunX-OmniRoute-Fallback-Attempts(tikai kad > 0), kā arīX-OmniRoute-Request-IdunX-OmniRoute-Version. Šie tiek izdoti tērzēšanas pabeigšanām,/v1/responses,/v1/messages, un multivides gala punktiem —/v1/embeddings,/v1/images/generations,/v1/audio/speech,/v1/audio/transcriptions,/v1/rerank,/v1/videos/generations,/v1/music/generationsun/v1/moderations(vienmēr izmaksas0). Multivides izmaksas tiek aprēķinātas katrai modalitātei (katram attēlam, katram sekundei, katram rakstzīmei, katram meklēšanas vienībai), kad pieejama cenu noteikšana, citādi0(neveiksme-atvērt).
Kešatmiņas trāpījumu izmaksu semantika: semantiskās kešatmiņas trāpījuma gadījumā (
X-OmniRoute-Cache-Hit: true) augšupejas zvans netiek veikts, tāpēcX-OmniRoute-Response-Costir0.0000000000(trāpījuma papildu izmaksas). Sākotnējā/būtu bijusī izmaksas tiek ziņotas atsevišķiX-OmniRoute-Cost-Saved. Norēķinu patērētājiem jāsumēX-OmniRoute-Response-Cost(trāpījumi maksā neko); kešatmiņas analītika var apkopotX-OmniRoute-Cost-Saved.
Ekskluzīvas pārvaldītas sesijas nomas
Ekskluzīva pārvaldīta sesijas noma ir piedalīšanās, klienta neitrāls maršrutēšanas līgums: viens aktīvs īpašnieks tur vienu derīgu OmniRoute savienojumu. Tas nenomā modeli, neprasa OAuth, neidentificē konkrētu klientu un neprasa konkrētu pakalpojumu sniedzēju.
Autentificētajai API atslēgai ir jābūt ar scope lease:exclusive un skaidru nepukstu
allowedConnections sarakstu. Datubāzes mutācijas robeža abus laukus piemēro kopā atslēgas
izveidošanas un daļēju atjauninājumu laikā.
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"}
Veiksmīgas iegūšanas, atjaunošanas un izlaišanas atbildes parāda laika zīmogus, state un precīzu pozitīvu
generation, bet nekad izvēlēto savienojumu vai akreditācijas datus. Atjaunošana un izlaišana nodrošina
generāciju JSON ķermenī:
{ "action": "renew", "generation": 1 }
{ "action": "release", "generation": 1, "reason": "OWNER_EXIT" }
Aktīvās nomas īpašnieks var skaidri pieprasīt privātumu drošu displeja metadatus savai pašreizējai saitei:
{ "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"
}
}
Šo piedalīšanās statusa darbību ierobežo neredzamais īpašnieks, autentificētā pārvaldītā API atslēga un precīza
aktīvā generācija vienā datubāzes transakcijā. displayName ir tikai iztīrīts konfigurēts
savienojuma nosaukums; tas ir null, kad nav droša konfigurēta nosaukuma. OmniRoute nekad neaizstāj
e-pastu vai ģenerētu konta identitāti. Pakalpojumu sniedzēja vērtība ir nejutīgs displeja iezīme un nekad
nav ģenerēts saderīgs pakalpojumu sniedzēja identifikators. Akreditācijas dati, marķieri, sīkfaili, izejas savienojuma vai API
atslēgu id, īpašnieka haši, aizsardzības noslēpumi un iekšējie maršrutēšanas dati tiek izslēgti.
Nepareizas atslēgas, nepareiza īpašnieka, novecojušas generācijas, trūkstošas, beigušās, izlaistas un anulētas meklēšanas visas
atgriež to pašu 409 LEASE_FENCE_STALE kļūdu bez savienojuma metadatiem. Klients, kas saņēma capacities-gaida atbildi, nav
aktīva saite, kas jāpārbauda. Kad maršrutēšana pārejina aktīvu nomu,
tā pati generācija paliek derīga un statuss atomiski atgriež jauno saiti, nekad veco.
Esošie klienti paliek nemainīti, jo iegūšanas, atjaunošanas, izlaišanas un gaida atbildes saglabā
to iepriekšējos formātus.
Šis servera līgums nemaina parasto OpenAI Codex /status. Parastais Codex pašlaik ziņo savu
pakalpojumu sniedzēja modeli un iebūvēto autentifikācijas/konta stāvokli, bet neizveido patvaļīgus pielāgotus
pakalpojumu sniedzēja konta metadatus; vēlākai klienta integrācijai jāizsauc šī darbība un jāizlemj, kā
parādīt connection.displayName.
Katra pārvaldītā inference pieprasījuma piegādā abus kontrolparametru galvenes:
X-OmniRoute-Lease-Owner: vlo_<43-base64url-characters>
X-OmniRoute-Lease-Generation: 1
Precīzs īpašnieks, generācija, aktīvais savienojums un autentificētā API atslēga tiek aizsargāti nekavējoties pirms katra atbalstītā augšupējā mēģinājuma. Atkārtojot īpašnieku un generāciju ar citu atslēgu, tas neizdodas pat tad, kad atī slēpj atļauj to pašu savienojumu. Neapstrādāti īpašnieki netiek saglabāti, reģistrēti, saglabāti pieprasījuma momentuzņēmumā vai nosūtīti augšupējā līmenī.
Īslaicīga konkurence atgriež HTTP 429 ar Retry-After un:
{
"state": "WAITING_FOR_CAPACITY",
"error": { "type": "lease_error", "code": "LEASE_CAPACITY_UNAVAILABLE" },
"reason": "NO_FREE_ELIGIBLE_CONNECTION",
"retryAfter": 30
}
Šī atilde nozīmē tikai to, ka parastais derīgo kopa bija nepuksta un ikviens brīvais kandidāts bija turēts ar ārēju aktīvu nomu. neatbalstīti modeļi/pakalpojumu sniedzēji, politikas neatbilstība, atdzesēšana, kvota, veselība un citas parastās derīguma kļūdas saglabā to pašreizējās OmniRoute atbildes.
x-omniroute-compression
Pieprasījuma līmeņa pārsniegums saspiešanas plānam. Augstākā priekšrocība — pārspēj maršrutēšanas-kombinācijas pārsniegumu, aktīvo profilu, automātisko aktivizēšanu un paneļa noklusējumu. Vērtības:
| Vērtība | Efekts |
|---|---|
off |
Nav saspiešanas šim pieprasījumam. |
default |
No paneļa atvasinātais noklusējuma profils (ignorē aktīvo profilu). |
engine:<id> |
Vērtīga dzinēja, kad iespējots, piemēram, engine:rtk. |
<combo> |
Nosaukta kombinācija, vispirms atbilst pēc nosaukuma (bez lielo/mazo burtu atšķirības), pēc tam pēc id. |
Piezīmes:
- Nezināmas vērtības tiek ignorētas (pieprasījums nekad netiek noraidīts); risinājums nonāk pie parastā operatora prioritātes.
- Ja vairākas kombinācijas dala nosaukumu, izmantojiet kombinācijas id noteiktai atbilstībai.
- Kombinācija, kuras nosaukums ir
offvaidefault, nevar tikt izvēlēta pēc nosaukuma (šie atslēgvārdi tiek interpretēti vispirms); atsaucieties uz šādu kombināciju pēc tās id. - Galvenais saspiešanas slēdzis ir stingra vārti: kad saspiešana ir atspējota globāli, šī galvene to nevar iespējot.
Lietotais plāns tiek atbildēts atpakaļ atbildes galvenē:
X-OmniRoute-Compression: <mode>; source=<source>
kur <source> ir viens no request-header, routing-override, active-profile, auto-trigger, default vai off.
Iegultie ievadi
POST /v1/embeddings
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "nebius/Qwen/Qwen3-Embedding-8B",
"input": "The food was delicious"
}
Pieejamie pakalpojumu sniedzēji: Nebius, OpenAI, Mistral, Together AI, Fireworks, NVIDIA, OpenRouter, Jina AI.
Kataloga identifikatori ir provider/model (piemērs: jina-ai/jina-embeddings-v5-omni-small). Tīrais Jina modeļa identifikatori, kas parādās reģistrā (piemēram, jina-embedlings-v5-text-small, jina-reranker-v3.5), arī tiek atpazīti. Jina embed/rerank/classify/segment vispirms izmanto informācijas paneļa jina-ai akreditācijas datus; JINA_AI_API_KEY ir tikai aizstājējs, kad nav informācijas paneļa atslēgas. jina-reader karte ir Reader / r.jina.ai tikai (POST /v1/web/fetch) un nekad nepiedāvā iegultos ievadus vai pārvērtēšanu.
Reģistra modeļi, kas piedāvā vairāku modalitāšu atbalstu, arī pieņem līdz 32 pakalpojumu sniedzēju neitrālas strukturētas
vienības. Mediju viību tips ir text, image, audio, video un document. To mediju source
ir vai nu {"type":"url","url":"https://..."}, vai
{"type":"base64","data":"...","media_type":"..."}.
Jina v5 Omni (jina-ai/jina-embeddings-v5-omni-small, jina-ai/jina-embeddings-v5-omni-nano
un ģimenes aizstājvārds jina-ai/jina-embeddings-v5-omni → omni-small) arī pieņem Jina vietējos
EmbeddingsV5Request dokumentus un nesagrozītus tos pārsūta uz https://api.jina.ai/v1/embeddings:
{
"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,..." }]
}
]
}
Vietējās { image | audio | video | pdf } vērtības var būt publisks HTTPS URL, data: URI vai neapstrādāts
base64. OmniRoute nepārvērš šos objektus par virkni un neizvelk vietējos attēlu URL — Jina izvelk
publiskos medijus pati. Papildu Jina lauki (task, normalized, truncate, embedding_type) tiek
pārsūtīti. Tikai teksta Jina nomenklatūras vienības joprojām noraida ne-teksta dokumentus.
Drošības un transporta robežas:
- Attālajiem mediju URL jābūt publiskiem HTTPS. Kanoniskās
{type,source:url}viības tiek izvilktas servera pusē (pāradresēšanas pārbaude, noildze, lieluma ierobežojumi, publiskais DNS, savienojuma fiksācija) un iekļautas pirms pakalpojumu sniedzēja izsaukuma. Jina vietējās{image:"https://..."}viības tiek pārsūtītas kā ir pēc tās pašas publiskās HTTPS pārbaudes; Jina izvelk URL. - Iekļautie base64 mediji ir ierobežoti līdz 8 MiB dekodēti vienai vienībai un 16 MiB dekodēti visam pieprasījumam.
Pakalpojumu sniedzēja tulkojums (kanoniskās viības nekad netiek pārsūtītas nemainītas):
- Jina vairāku modalitāšu modeļi: katra augstākā līmeņa viība kļūst par vienu modalitātes atslēgu objektu
(
text/image/audio/video/pdf), izmantojot datu URI iekļautajiem medijiem; viens vektors par augstākā līmeņa vienību. - Gemini Embedding 2 ģimene: viens augstākā līmeņa masīvs kļūst par vienu vietējo
models/{model}:embedContentpieprasījumu arcontent.parts(textvaiinline_data). - Nezināmi/dinamiski modeļi bez skaidras modalitātes metadatiem noraida strukturētu ievadu ar HTTP 400.
{
"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"
}
Neatbalstītas modeļa/modalitātes kombinācijas atgriež HTTP 400, nevis piespiež vienību. Neievades paplašinājuma lauki veco virkņu/žetonu pieprasījumos joprojām tiek pārsūtīti nemainīgi.
# Sarakstīt visus iegulušos ievadu modeļus
GET /v1/embeddings
Attēlu ģenerēšana
POST /v1/images/generations
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "openai/gpt-image-2",
"prompt": "A beautiful sunset over mountains",
"size": "1024x1024"
}
Pieejamie pakalpojumu sniedzēji: OpenAI (GPT Image 2), xAI (Grok Image), Together AI (FLUX), Fireworks AI, Nebius (FLUX), Hyperbolic, NanoBanana, OpenRouter, SD WebUI (local), ComfyUI (local).
# Uzskaitīt visus attēlu modeļus
GET /v1/images/generations
Dokumenta OCR
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 izvēlas OCR pakalpojumu sniedzēju, izmantojot provider/model prefiksu; tīrs modeļa identifikators (piem., mistral-ocr-latest) tiek novirzīts uz tā reģistrēto pakalpojumu sniedzēju, bet izlaistais model pēc noklusējuma ir Mistral (mistral-ocr-latest). Reģistrētie pakalpojumu sniedzēji (open-sse/config/ocrRegistry.ts):
| Pakalpojumu sniedzēja ID | Modeļa ID | model vērtība |
Piezīmes |
|---|---|---|---|
mistral |
mistral-ocr-latest |
mistral/mistral-ocr-latest (vai tīrs mistral-ocr-latest) |
Sinhrons — atbilde tiek atgriezta tieši no viena augšupējā izsaukuma. |
azure-document-intelligence |
prebuilt-read |
azure-document-intelligence/prebuilt-read |
Asinhrons augšupējais process (analyze + izjautāšana) — skatīt zemāk. |
vertex-deepseek-ocr |
deepseek-ocr-maas |
vertex-deepseek-ocr/deepseek-ocr-maas |
Sinhrons, izmantojot Vertex AI openapi/chat/completions partnera galapunktu — skatīt zemāk autentifikāciju/URL. |
Visi trīs pakalpojumu sniedzēji atbild vienā Mistral formātā:
{
"pages": [{ "index": 0, "markdown": "# Extracted text..." }],
"model": "mistral-ocr-latest",
"usage_info": { "pages_processed": 1 }
}
Azure Document Intelligence izjautāšanas plūsma
Azure Document Intelligence analyze API ir asinhrone: sākotnējais pieprasījums atgriež Operation-Location galveni tā vietā, lai atgrieztu saturu, un rezultāts ir jāizjautā. Apstrādātājs (open-sse/handlers/ocr.ts) izjautā šo URL katru sekundi līdz 30 mēģinājumiem, ātri neizdodas (nepatur izjautāšanu) nepareizas izjautāšanas atbildes vai "failed" statusa gadījumā, un atgriež 504, ja operācija joprojām tiek izpildīta pēc mēģinājumu budžeta izsīkuma. Galīgā Azure atbilde tiek normalizēta tajā pašā pages/markdown formātā, ko izmanto Mistral, pirms tā tiek atgriezta izsaucējam, tāpēc klienta kodam nav jāparedz īpašs apstrāde pakalpojumu sniedzējam.
Vertex AI DeepSeek OCR autentifikācija un galapunkta noskaidrošana
vertex-deepseek-ocr izmanto to pašu Vertex AI autentifikāciju, ko OmniRoute jau atbalsta tērzēšanas/attēlu plūsmām (open-sse/executors/vertex.ts): savienojuma API atslēga ir vai nu Dienesta konta JSON akreditācijas dati (apmaiņā pret īslaicīgu OAuth piekļuves žetonu, izmantojot JWT-nesēja plūsmu), vai jau izdots OAuth piekļuves žetons, ko izmanto kā tādu. Augšupējā galapunkta URL ir Vertex vispārīgais openapi/chat/completions partnera galapunkts, kas veidots no savienojuma projekta un reģiona — skaidrs providerSpecificData.project/providerSpecificData.region vienmēr uzvar; pretējā gadījumā projekts tiek atvasināts no Dienesta konta JSON project_id un reģions pēc noklusējuma ir us-central1. Abas noskaidrošanas notiek open-sse/handlers/ocr.ts (resolveVertexOcrAccessToken, resolveVertexOcrBaseUrl), ko patērē src/app/api/v1/ocr/route.ts pirms nosūtīšanas uz handleOcr.
Modeļu saraksts
GET /v1/models
Authorization: Bearer your-api-key
→ Atgriež visus tērzēšanas, iegulstēšanas un attēlu modeļus + kombinācijas OpenAI formātā
Modeļu ID prefiksi (?prefix=)
Lielākā daļa modeļu tiek reklamēti ar piegādātāja prefiksu. Kuru prefiksu saņemat, nosaka karodziņš MODELS_CATALOG_PREFIX_MODE, un to var pārrakstīt katram pieprasījumam ar vaicājuma parametru — tas ir noderīgi klientam, kuram vajadzīgs tīrs saraksts, nemainot servera globālos iestatījumus visiem lietotājiem:
GET /v1/models?prefix=alias # viens ID uz modeli — īsais aizstājvārda prefikss
GET /v1/models?prefix=dual # abas formas (servera noklusējums)
GET /v1/models?prefix=canonical # tikai pilnais piegādātāja-ID prefikss
| Režīms | Izdod | Piezīdes |
|---|---|---|
dual |
cc/claude-sonnet-4-6 un claude/claude-sonnet-4-6 |
Noklusējums. Abi ID vada uz to pašu modeli; saglabāti, lai klienta konfigurācijām, kas ir iekodētas jebkurā formā, turpinātu darboties. Apmēram divkāršo katalogu. |
alias |
cc/claude-sonnet-4-6 |
Viena ieraksta uz modeli. Piegādātājiem bez atsevišķa aizstāvārda joprojām tiek izdots savs ieraksts, tāpēk nekas nav zaudēts. |
canonical |
claude/claude-sonnet-4-6 |
Viena ieraksta uz modeli zem pilnā piegādātāja-ID prefiksa. Piegādātājiem bez atsevišķa aizstāvārda (piem., antigravity/…, agy/…) tiek izdots arī šeit viens ID, tāpēk nekas nav zaudēts. |
dual režīma atspoguli var atpazīt arī bez vaicājuma parametra: tam ir parent lauks, kas norāda uz primāro ID.
Klienti, kas izveido modeļu izvēlni, vajadzētu pieprasīt ?prefix=alias — to dara OmniCopilot VS Code paplašinājums.
Domāšanas variants bez domāšanas
Domāšanas spējīgiem Claude modeļiem /v1/models arī reklamē domāšanas variantu bez domāšanas, kura ID ir ar prefiksu claude-3-omniroute-no-thinking/:
claude-3-omniroute-no-thinking/<piegādātājs>/<modelis>
Šo ID izvēloties (piem., Claude Code konfigurācijā, kas vienmēr pievieno thinking bloku), tas tiek atpakaļ novirzīts uz reālo <piegādātājs>/<modelis> ar aizspriedumu nomākts — thinking:{type:"disabled"} ceļā /v1/messages, vai reasoning/reasoning_effort laukiem izņemti ceļā /v1/chat/completions. variants tiek uzskaitīts tikai Claude modeļu saimei, kas atbalsta domāšanu un ievēro disabled (tātad, piem., tikai adaptīvie modeļi, kas noraida disabled, tiek izslēgti). Operatori variants var piespēst ieslēgt vai atslēgt katram modelim izmantojot ModelSpec.noThinkingAlias.
Pakalpojumu spraudņa manifests
GET /api/v1/provider-plugin-manifest
Atgriež JSON drošo pakalpojumu spraudņa manifestu, ko izmanto Bifrost, CLIProxyAPI un nākotnes sānu maršrutētāji. Atbilde tiek ģenerēta no TypeScript pakalpojumu reģistra un apzināti izslēdz OAuth klientu noslēpumus, izpildlaika vides risinājumu, izpildītāju funkcijas, pieprasījuma galvenes un konta datus.
Šo galapunktu izmantojiet, kad sānu maršrutētājs darbojas ārpus procesa un nevar tieši importēt open-sse/config/providerPluginManifestRegistry.ts.
Saderības galapunkti
| Metode | Ceļš | Formāts |
|---|---|---|
| POST | /v1/chat/completions |
OpenAI |
| POST | /v1/messages |
Anthropic |
| POST | /v1/responses |
OpenAI Responses |
| POST | /v1/embeddings |
OpenAI |
| POST | /v1/images/generations |
OpenAI attēli |
| POST | /v1/images/edits |
OpenAI attēli (rediģēšana/aizpildīšana) |
| POST | /v1/videos/generations |
OpenAI stila video ģenerēšana |
| POST | /v1/music/generations |
OpenAI stila mūzikas ģenerēšana |
| POST | /v1/audio/transcriptions |
OpenAI Audio (STT) |
| POST | /v1/audio/speech |
OpenAI TTS (atgriež audio ķermeni) |
| POST | /v1/rerank |
Cohere/Voyage stila pārkārtošana |
| POST | /v1/classify |
Jina klasifikācija (api.jina.ai) |
| POST | /v1/segment |
Jina segmentācija (segment.jina.ai) |
| POST | /v1/moderations |
OpenAI moderēšana |
| 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 kataloga aliass |
| GET | /api/v1/vscode/{token}/models |
OpenAI modeļu aliass |
| POST | /api/v1/vscode/{token}/chat/completions |
OpenAI tokenizētais aliass |
| POST | /api/v1/vscode/{token}/responses |
OpenAI Responses tokenizētais aliass |
| POST | /api/v1/vscode/{token}/api/chat |
Ollama tokenizētais aliass |
| GET | /api/v1/vscode/{token}/api/tags |
Ollama tags tokenizētais aliass |
Visi POST maršruti seko vienādai formai: Bearer your-api-key + Zod validēts JSON ķermenis (v1RerankSchema, v1ModerationSchema, v1AudioSpeechSchema u.c., sk. src/shared/validation/schemas.ts). Pie schema kļūdas tiek atgriezts 4xx.
Klientiem, kas nevar pievienot Authorization: Bearer ..., OmniRoute arī pieņem API atslēgas URL vai nu caur vaicājuma strites saderību (?token=..., ?apiKey=..., ?api_key=..., ?key=...), vai arī ar tālāk dokumentētajiem īpašajiem /api/v1/vscode/{token}/... galapunktiem.
# Pārkārtošana
POST /v1/rerank { "model": "jina-ai/jina-reranker-v3.5", "query": "...", "documents": ["..."] }
# Jina klasifikācija (Foundation API akreditācijas dati)
POST /v1/classify { "model": "jina-embeddings-v5-text-small", "input": ["..."], "labels": ["a", "b"] }
# Jina segmentācija
POST /v1/segment { "content": "...", "return_chunks": true }
# Jina meklēšana (s.jina.ai; pakalpojumu aliāsi: jina-search, jina-ai, jina)
POST /v1/search { "query": "...", "provider": "jina-search" }
# Moderēšana
POST /v1/moderations { "model": "omni-moderation-latest", "input": "..." }
# TTS — atgriež audio/mpeg (vai pieprasītā formāta) ķermeni
POST /v1/audio/speech { "model": "openai/tts-1", "input": "Hello", "voice": "alloy" }
# Attēlu rediģēšana (daudzdaļīga)
POST /v1/images/edits -F image=@input.png -F prompt="..." -F mask=@mask.png
# Video / mūzikas ģenerēšana (pakalpojumu prefiksā iekļauts modeļa id)
POST /v1/videos/generations { "model": "runway/gen-3", "prompt": "..." }
POST /v1/music/generations { "model": "suno/v3.5", "prompt": "..." }
Īpašie pakalpojumu maršruti
POST /v1/providers/{provider}/chat/completions
POST /v1/providers/{provider}/embeddings
POST /v1/providers/{provider}/images/generations
Pakalpojuma prefikss tiek automātiski pievienots, ja trūkst. Nepareizi modeļi atgriež 400.
Failu API
OpenAI saderīgs failu galapunkts ieplūdes/izplūdes partijai un failu mērķa augšupielādēšanai.
| Metods | Ceļš | Apraksts |
|---|---|---|
| POST | /v1/files |
Augšupielādēt failu (multipart: file, purpose, expires_after[anchor], expires_after[seconds]) — maks. 512 MiB |
| GET | /v1/files |
Uzskaitīt autentificētai API atslēgai piederošos failus |
| GET | /v1/files/[id] |
Iegūt faila metadatus |
| DELETE | /v1/files/[id] |
Dzēst failu |
| GET | /v1/files/[id]/content |
Strautos sūtīt neapstrādātā faila saturu |
Autentifikācija: Nesošā API atslēga — faili tiek ierobežoti ar katru API atslēgu, izmantojot getApiKeyRequestScope.
Partiju API
OpenAI saderīga partiju apstrāde.
| Metods | Ceļš | Apraksts |
|---|---|---|
| POST | /v1/batches |
Izveidot partiju — ķermenis validēts ar v1BatchCreateSchema (input_file_id, endpoint, completion_window) |
| GET | /v1/batches |
Uzskaitīt partijas |
| GET | /v1/batches/[id] |
Iegūt partijas statusu + request_counts |
| DELETE | /v1/batches/[id] |
Dzēst pabeigtu/neizdevušos partiju |
| POST | /v1/batches/[id]/cancel |
Atcelt notiekošu partiju |
Autentifikācija: Nesošā API atslēga. Partijas tiek ierobežotas ar katru API atslēgu.
Meklēšanas API
Tīmekļa/meklētāja pakalpojuma abstrakcija (Tavily, Brave, Exa, Serper u.c.).
| Metods | Ceļš | Apraksts |
|---|---|---|
| GET | /v1/search |
Uzskaitīt konfigurētos meklētāja pakalpojumus un iespējas |
| POST | /v1/search |
Palaist meklēšanas vaicājumu — ķermenis validēts ar v1SearchSchema, atbalsta kešošanu/apvienošanu |
| GET | /v1/search/analytics |
Statistika par trāpījumiem/latentumu/kešatmiņu katram pakalpojumam |
Autentifikācija: Nesošā API atslēga (extractApiKey + isValidApiKey). Meklēšanas politika tiek piemērota, izmantojot enforceApiKeyPolicy.
Web Fetch API
Iegūstiet saturu no URL, izmantojot konfigurētu web-fetch sniedzēju (Firecrawl, Jina Reader, Tavily Extract, TinyFish Fetch, Nimble Extract).
| Metode | Ceļš | Apraksts |
|---|---|---|
| POST | /v1/web/fetch |
Iegūt/skrapeļot URL — ķermeni validē v1WebFetchSchema |
Autentifikācija: Bearer API atslēga (extractApiKey + isValidApiKey). Politika piemērota ar enforceApiKeyPolicy.
Kvotu apzināts rezerves risinājums (#8297): kad nav norādīts skaidrs provider, pūls
(firecrawl → jina-reader → tavily-search → tinyfish → nimble-search) tiek
parietas fiksētā
prioritātes kārtībā (aizpildīt-pirmais) — tarifikācijai ierobežots, bet konfigurēts
sniedzējs tiek izlaists, nevis pieprasījums tiek pārtraukts, un atkārtojams/kvotas
augšteces kļūme (HTTP 429 vienmēr; 402/403 Firecrawl/Tavily/TinyFish kvotu tipa
bezmaksas līmeņiem — ne Jina Reader, un nekad parasts 400 nepareizs pieprasījums)
tiek nodots nākamajam neizmēģinātajam akreditētajam sniedzējam pieprasījuma laikā.
Kad pūlā visi sniedzēji ir izsmelti, gala punkts atgriež vienu 429 (ar Retry-After
galveni) iepriekšējā vispārīgā 400 vietā. Kad tiek pieprasīts skaidrs provider, nav
klusā rezerves risinājuma — tarifikācijai ierobežots vai neveiksmīgs skaidrs
sniedzējs parāda savu kļūdu (429, ja tarifikācijai ierobežots, citādi augšteces
statuss).
WebSocket straumēšana
GET /v1/ws?handshake=1
Validē WebSocket jaunināšanas rokasspiedienu un atgriež tīkla protokola parauga ziņojumus (request, cancel). Faktiskie WS kadri tiek apstrādāti ar iekļauto WS serveri ārpus Next.js maršrutu tabulas.
Autentifikācija: Bearer API atslēga rokasspiediena laikā.
Responses API pār WebSocket (tikai codex)
# Tāds pats host:port kā HTTP API (noklusējuma 20128); jauniniet savienojumu:
wscat -c "ws://localhost:20128/v1/responses?api_key=<OMNIROUTE_API_KEY>"
# (vai: -H "Authorization: Bearer <OMNIROUTE_API_KEY>")
# Pirmais kads OBLIGĀTI jābūt response.create:
{ "type": "response.create", "model": "gpt-5.5", "input": [ { "role": "user", "content": "hi" } ] }
Responses-API-pār-WebSocket starpnieks ir savienots ekskluzīvi ar codex (ChatGPT
aizmugure). Tas klausās tajā pašā portā kā API/dashboards ceļos /v1/responses,
/responses, un /api/v1/responses. Pirmajā response.create kadā tas
autentificē + sagatavo, izmantojot iekšējo codex-responses-ws tiltu, izvēlas
codex OAuth savienojumu un tuneles uz wss://chatgpt.com/backend-api/codex/responses
caur wreq-js transportu. Ne-codex modeļi tiek noraidīti (codex_ws_provider_required).
Kvotas koplietošanas maršrutēšanai izmantojiet model: "qtSd/<group>/codex/<model>". Implementēts
app/server-ws.mjs + scripts/dev/responses-ws-proxy.mjs + src/app/api/internal/codex-responses-ws/route.ts.
Autentifikācija: Bearer API atslēga rokasspiediena laikā. Iekļautais HTTP serveris (server-ws.mjs)
jābūt aktīvajam ievadam (tas ir pēc noklusējuma, kad app/server-ws.mms pastāv).
Modeļa id: izmantojiet tīru ChatGPT id (bez codex/ prefiksa)
OpenAI Codex CLI validē modeļa nosaukumu klienta pusē, kad
supports_websockets = true un noraida sniedzēja prefiksus kā
codex/gpt-5.5 (The 'codex/gpt-5.5' model is not supported when using Codex with a ChatGPT account). Nosūtīt tīru id (piem. gpt-5.5). OmniRoute tilts ir
tikai codex, tāpēc tas atkārtoti izšķiro tīru id kā codex modeli
(resolveCodexWsModelInfo) pirms tuneles uz augšteci — pat ja tīrs
gpt-5.5 citādi tiktu maršruts uz citu sniedzēju caur HTTP.
OpenAI Codex CLI konfigurēšana
Norādiet Codex CLI uz OmniRoute, pievienojot pielāgotu sniedzēju ar WebSocket
atbalstu ~/.codex/config.toml (izmantojiet atsevišķu CODEX_HOME, lai nesaskartos
ar esošu konfigurāciju):
model = "gpt-5.5" # tīrs id — NE "codex/gpt-5.5"
model_provider = "omniroute"
[model_providers.omniroute]
name = "OmniRoute (WS)"
base_url = "http://localhost:20128/v1" # bez slīpa svītra; WS URL tiek atvasināts (izmantojiet https/wss ražošanā)
wire_api = "responses" # atbalstītā vērtība kopš 2026. gada februāra
supports_websockets = true # iespējojot Responses-over-WS transportu
env_key = "OMNIROUTE_API_KEY" # satur OmniRoute API atslēgu (Bearer)
export OMNIROUTE_API_KEY=sk-... # OmniRoute API atslēga (jebkura atslēga, ja REQUIRE_API_KEY=false)
codex exec "Responda apenas: PONG"
CLI jaunina base_url + /responses uz WebSocket un OmniRoute to tuneles
uz izvēlēto codex OAuth savienojumu. Validēts end-to-end pret lokālo
serveri: ChatGPT atgriež codex.rate_limits + response.created un straumē
pabeigšanu.
Kvotas un problēmu pārskatīšana
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /v1/quotas/check |
Iepriekšēja kvotas pārbaude provider + accountId pirms reģistrētas atslēgas izsniegšanas |
| POST | /v1/issues/report |
Ziņot par kvotas/atslēgas izsniegšanas kļūdu GitHub (nepieciešams GITHUB_ISSUES_REPO + tokens) |
Autentifikācija: Bearer API atslēga (isAuthenticated).
Pašapkalpošanās lietošana (/api/usage/om-usage)
Jebkura API atslēga var lasīt sava izmantošanu un kvotas — bez pārvaldības autentifikācijas. Šis ir galapunkts, ko klients (CLI, OmniCopilot panelis) izmanto, lai parādītu atslēgas turētājam viņa tēriņus.
# Teksta forma (vēsturiskais līgums — vienkāršs tekstam terminalī)
curl -H "Authorization: Bearer <your-api-key>" \
http://localhost:20128/api/usage/om-usage
# Strukturēta forma — ko UI izmanto
curl -H "Authorization: Bearer <your-api-key>" \
"http://localhost:20128/api/usage/om-aste?format=json"
Atslēgai jābūt ar allowCommandUsage iespējotu (pēc noklusējuma izslēgts — dashboard API atslēgu
pārvaldītājs to pārslēdz katrai atslēgai atsevišķi). Bez tā galapunkts atbild ar 403.
?format=json atgriež diskriminējošu formu, lai izsaucošais nekad nelasītu datu lauku no
noraidījuma. Veiksmīgā gadījumā:
{
"allowed": true,
// atrodas tikai tad, ja atslēga ir pievienojusies atslēgu lietošanas ierobežojumiem (dienas/nedēļas USD):
"personal": {
"dailySpentUsd": 1.25,
"dailyLimitUsd": 5,
"dailyResetAtIso": "…",
"weeklySpentUsd": 8,
"weeklyLimitUsd": 20,
"weeklyResetAtIso": "…" /* … */,
},
// izvēlētā pakalpojumu sniedzēja kvotas kopija, vai null, kad vēl nav nekas kešots:
"provider": {
"connectionId": "…",
"provider": "claude",
"plan": "…",
"quotas": {/* … */},
},
// katras savienojuma kopija, lai UI varētu parādīt vairākus pakalpojumu sniedzējus blakus:
"providers": [
{ "connectionId": "…", "provider": "claude" /* … */ },
{ "provider": "codex" /* … */ },
],
}
Noraidījuma gadījumā (401 nepareiza atslēga / 403 nav atļauts) tas pats maršruts atgriež
{ "allowed": false, "error": { "message": "…" } } — klāt esošs, bet tukšs personal/provider
(atslēga atļauta, vēl nekas nav noskaidrots) ir atšķirīgs stāvoklis no noraidījuma, un to atšķir tikai JSON forma.
Autentifikācija: izsaucošā sava Bearer API atslēga, validēta ar isValidApiKey — tā nav
pārvaldības virsmas (/api/keys/…), kas paliek aiz requireManagementAuth.
Semantiskā kešatmiņa
# Iegūt kešatmiņas statistiku
GET /api/cache/stats
# Notīrīt visas kešatmiņas
DELETE /api/cache/stats
Atbildes piemērs:
{
"semanticCache": {
"memorySize": 42,
"memoryMaxSize": 500,
"dbSize": 128,
"hitRate": 0.65
},
"idempotency": {
"activeKeys": 3,
"windowMs": 5000
}
}
Aiztures ietekme
Semantiskā kešatmiņas trāpījums apkalpo atbildi no kešatmiņas bez augšupēja izsaukuma, tāpēc ziņotais X-OmniRoute-Response-Latency ir tuvu nullei (neatkarīgi no sākotnējās augšupējas aiztures). Aizturīgi klienti (novērtējumi, p50/p99 monitorings) jāpārbauda X-OmniRoute-Cache-Latency atbildes galvene:
| Vērtība | Nozīme |
|---|---|
synthetic |
Atbilde apkalpota no kešatmiņas; aizture nav reālā augšupēja laika |
| (nav) | Atbilde no reālā augšupēja izsaukuma |
Atslēgas kešatmiņas apiešana
API atslēgas var atteikties no semantiskās kešatmiņas nolasīšanas, izmantojot cacheDefaultMode:
| Vērtība | Uzvedība |
|---|---|
legacy |
Normāla kešatmiņas uzvedība (noklusējuma) |
bypass |
Pilnībā izlaist kešatmiņas meklēšanu; vienmēr trāpīt augšupē |
Iestatīts atslēgas izveidošanas laikā (POST /api/keys) vai atjaunināšanas laikā (PATCH /api/keys/[id]):
{ "cacheDefaultMode": "bypass" }
Pieprasījuma apiešana
Jebkurš pieprasījums var apiet kešatmiņu neatkarīgi no atslēgas iestatījumiem:
X-OmniRoute-No-Cache: true
Pārvaldības panelis un vadība
Pārvaldības maršrutus (/api/*, izņemot publisko autentifikāciju/pieteikšanos) neautorizē parastas piekļuves atslēgas. Pārvaldības autentifikāciju, pierakstu lomas un curl piemērus meklē: Pārvaldības autentifikācija.
Autentifikācija
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/auth/login |
POST | Pieteikšanās |
/api/auth/logout |
POST | Iziet |
/api/settings/require-login |
GET/PUT | Pārslēgt prasīto pieteikšanos |
Pakalpojumu sniedzēju pārvaldība
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/providers |
GET/POST | Sarakstīt / izveidot pakalpojumu sniedzējus |
/api/providers/[id] |
GET/PUT/DELETE | Pārvaldīt pakalpojumu sniedzēju |
/api/providers/[id]/test |
POST | Testēt pakalpojumu sniedzēja savienojumu |
/api/providers/[id]/models |
GET | Sarakstīt pakalpojumu sniedzēja modeļus |
/api/providers/validate |
POST | Validēt pakalpojumu sniedzēja konfigurāciju |
/api/providers/bulk |
POST | Masveidā pievienot API atslēgas VIENAM pakalpojumu sniedzējam |
/api/providers/import |
POST | Importēt nevienotu pakalpojumu sniedzēju sarakstu no parsēta CSV/JSON faila (#6836); rindiņu daļējas kļūdas rezultāti |
/api/provider-nodes* |
Dažādas | Pakalpojumu sniedzēju mezglu pārvaldība |
/api/provider-models |
GET/POST/PATCH/DELETE | Pielāgoti modeļi (pievienot, atjaunināt, paslēpt/rādīt, dzēst) |
OAuth plūsmas
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/oauth/[provider]/[action] |
Dažādas | Pakalpojumu sniedzējam specifiskā OAuth |
Maršrutizēšana un konfigurācija
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/models/alias |
GET/POST | Modeļu aizstājvārdi |
/api/models/catalog |
GET | Visi modeļi pēc sniedzēja + tipa |
/api/combos* |
Dažādas | Kombo pārvaldība |
/api/keys* |
Dažādas | API atslēgu pārvaldība |
/api/pricing |
GET | Modeļu cenu noteikšana |
Lietošana un analītika
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/usage/history |
GET | Lietošanas vēsture |
/api/usage/logs |
GET | Lietošanas žurnāli |
/api/usage/request-logs |
GET | Pieprasījumu līmeņa žurnāli |
/api/usage/[connectionId] |
GET | Lietošana pa savienojumu |
/api/usage/token-limits |
GET/POST/DELETE | Pa API atslēgu žetonu robežbudžeti |
/api/usage/model-latency-stats |
GET | Slīdošā pakalpojumu sniedzēja/modeļa aizture (vid/p50/p95/p99, panākumu līmenis); filtrēšana: windowHours/minSamples/maxRows/provider/model (#6873) |
/api/usage/cache-performance |
GET | Ātrā kešatmiņas veselības kopsavilkums call_logs — rakstīšanas/lasīšanas attiecība, p50/p90/p99 rakstīšanas izmēru sadalījums, intensīvas rakstīšanas koncentrācija, pa modeļiem sadalījums, un healthy/degraded/thrash/no-data spriedums; vaicājuma parametri range (1h|24h|7d|30d, noklusējuma 24h) un izvēles model (#8827) |
Iestatījumi
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/settings |
GET/PUT/PATCH | Vispārīgie iestatījumi |
/api/settings/proxy |
GET/PUT | Tīkla starpnieka konfigurācija |
/api/settings/proxy/test |
POST | Testēt starpnieka savienojumu |
/api/settings/ip-filter |
GET/PUT | IP atļauto/blokēto sarakstu filtrs |
/api/settings/thinking-budget |
GET/PUT | Domāšanas/prātošanas pieprasījuma režīma pārrakstīšana (caurlaide / automātiskā noņemšana / pielāgota / adaptīva). Neatkarīga no saspiešanas. Sk. THINKING_BUDGET.md. |
/api/settings/system-prompt |
GET/PUT | Globālais sistēmas piedāvājums |
/api/settings/compression |
GET/PUT | Globālā saspiešanas konfigurācija |
/api/settings/purge-request-history |
POST | Notīrīt pieprasījumu žurnāla rindas un vietējos zvanu žurnāla artefaktus |
Konteksts un saspiešana
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/compression/preview |
POST | Priekšskatīt off/lite/standard/aggressive/ultra/RTK/stacked saspiešanu |
/api/compression/language-packs |
GET | Sarakstīt pieejamās Caveman valodu pakotnes |
/api/compression/rules |
GET | Sarakstīt Caveman noteikumu metadatus |
/api/context/caveman/config |
GET/PUT | Caveman specifisko iestatījumu aizstājvārds |
/api/context/rtk/config |
GET/PUT | RTK specifiskie iestatījumi, ieskaitot pielāotos filtrus un neapstrādātā izvades saglabāšanu |
/api/context/rtk/filters |
GET | RT filtru katalogs un pielāgoto filtru diagnostika |
/api/context/rtk/test |
POST | Veikt RT priekšskatījumu/testu pret teksta ievadi |
/api/context/rtk/raw-output/[id] |
GET | Lasīt saglabātu rediģētu neapstrādāto izvadi pēc指针 id |
/api/context/combos |
GET/POST | Saspiešanas kombo saraksts/izveide |
/api/context/combos/[id] |
GET/PUT/DELETE | Saspiešanas kombo detaļas/atjaunināšana/dzēšana |
/api/context/combos/[id]/assignments |
GET/PUT | Piešķirt saspiešanas kombo maršrutēšanas kombo |
/api/context/analytics |
GET | Saspiešanas analītikas aizstājvārds |
Uzraudzība
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/sessions |
GET | Aktīvo sesiju izsekošana |
/api/rate-limits |
GET | Pa kontam ātruma ierobežojumi |
/api/monitoring/health |
GET | Veselības pārbaude + pakalpojumu sniedzēja kopsavilkums (catalogCount, configuredCount, activeCount, monitoredCount) |
/api/cache/stats |
GET/DELETE | Kešatmiņas statistika / notīrīt |
/api/modality-bridge/stats |
GET | Atmiņā esošie attempts, panākumi/bridged, kļūdas, kešatmiņas trāpījumi, totalLatencyMs, latencySamples, vidējā aizture (aprēķināta pēc paraugiem) averageLatencyMs, un pēdējās lietošanas laiks (tiek atiestatīta restartējot; pārvaldības autentifikācija) |
/api/modality-bridge/video/runtime |
GET | Stingra uzticama atpakaļcikla pārbaude pirms pārvaldības autentifikācijas/probes; sanitizēta FFmpeg/ffprobe pieejamība un versijas (nesaglabājas) |
/api/modality-bridge/video/extract |
POST | Iekšējais autentificētais uzticamā atpakaļcikla baitu starpnieks; 50 MiB ievade, ierobežota rinda/32 MiB izvade, 503 kapacitāte, 499 atvienošana, 504 termiņš; nav publiska augšupielādes API |
Rezerves kopēšana un eksportēšana/importēšana
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/db-backups |
GET | Sarakstīt pieejamās rezerves kopijas |
/api/db-backups |
PUT | Izveidot manuālu rezerves kopiju |
/api/db-backups |
POST | Atjaunot no konkrētas rezerves kopijas |
/api/db-backups/export |
GET | Lejupielādēt datubāzi kā .sqlite failu |
/api/db-backups/import |
POST | Augšupielādēt .sqlite failu, lai aizstātu datubāzi |
/api/db-backups/exportAll |
GET | Lejupielādēt pilnu rezerves kopiju kā .tar.gz arhīvu |
Mākoņa sinhronizācija
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/sync/cloud |
Dažādas | Mākoņa sinhronizācijas darbības |
/api/sync/initialize |
POST | Inicializēt sinhronizāciju |
/api/cloud/* |
Dažādas | Mākoņa pārvaldība |
Tuneļi
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/tunnels/cloudflared |
GET | Nolasīt Cloudflare Quick Tunnel uzstādīšanas/darbības statusu pārvaldības panelim |
/api/tunnels/cloudflared |
POST | Iespējot vai atspējot Cloudflare Quick Tunnel (action=enable/disable) |
/api/tunnels/ngrok |
GET | Nolasīt ngrok tuneļa darbības statusu pārvaldības panelim |
/api/tunnels/ngrok |
POST | Iespējot vai atspējot ngrok Tuneļu (action=enable/disable) |
CLI rīki
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/cli-tools/claude-settings |
GET | Claude CLI statuss |
/api/cli-tools/codex-settings |
GET | Codex CLI statuss |
/api/cli-tools/droid-settings |
GET | Droid CLI statuss |
/api/cli-tools/openclaw-settings |
GET | OpenClaw CLI statuss |
/api/cli-tools/runtime/[toolId] |
GET | Vispārīgais CLI izpildlaiks |
CLI atbildēs iekļauts: installed, runnable, command, commandPath, runtimeMode, reason.
ACP aģenti
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/acp/agents |
GET | Sarakstīt visus konstatētos aģentus (iestatītos + pielāgotos) ar statusu |
/api/acp/agents |
POST | Pievienot pielāgotu aģentu vai atsvaidzināt konstatēšanas kešatmiņu |
/api/acp/agents |
DELETE | Noņemt pielāgoto aģentu pēc id vaicājuma parametra |
GET atbildē iekļauts agents[] (id, nosaukums, binārais, versija, instalēts, protokols, isCustom) un summary (kopā, instalēts, nav atrasts, iebūvēts, pielāgots).
Noturība un ātruma ierobežojumi
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/resilience |
GET/PATCH | Iegūt/atjaunināt pieprasījumu rindu, savienojuma atdzišanu, pakalpojumu sniedzēja pārtraucēju un gaidīšanas iestatījumus |
/api/resilience/reset |
POST | Atiestatīt pakalpojumu sniedzēju ķēžu pārtraucējus |
/api/resilience/model-cooldowns |
GET | Sarakstīt aktīvos ierobežojumus pa (sniedzējs, savienojums, modelis), šķirot pēc atlikušā laika |
/api/resilience/model-cooldowns |
DELETE | Notīrīt modeļa ierobežojumu — ķermeņa {provider, model} vai {all: true}, lai izdzēstu visu |
/api/rate-limits |
GET | Pa kontam ātruma ierobežojuma statuss |
/api/rate-limit |
GET | Globālā ātruma ierobežojuma konfigurācija |
Visi četri
/api/resilience/*maršruti prasa pārvaldības autentifikāciju (requireManagementAuth). Sk. Noturība (paplašināta) pilnam pārtraucēja vs atdzišanas laika vs modeļa ierobežojuma salīdzinājumam.
Vērtējumi
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/evals |
GET/POST | Sarakstīt vērtēšanas kopas / palaist vērtēšanu |
Politikas
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/policies |
GET/POST/DELETE | Pārvaldīt maršrutēšanas politikas |
Atbilstība
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/compliance/audit-log |
GET | Atbilstības audita žurnāls (pēdējie N) |
v1beta (saderīgs ar Gemini)
| Galapunkts | Metode | Apraksts |
|---|---|---|
/v1beta/models |
GET | Sarakstīt modeļus Gemini formātā |
/v1beta/models/{...path} |
POST | Gemini generateContent galapunkts |
Šie galapunkti atdarina Gemini API formātu klientiem, kas sagaida natīvu Gemini SDK savietojamību.
Iekšējās / Sistēmas API
| Galapunkts | Metode | Apraksts |
|---|---|---|
/api/init |
GET | Lietojumprogrammas inicializācijas pārbaude (izmantota pirmajā palaišanā) |
/api/tags |
GET | Ar Ollama saderīgas modeļa birkas (Ollama klientiem) |
/api/restart |
POST | Izraisīt elegantu servera restartēšanu |
/api/shutdown |
POST | Izraisīt elegantu servera izslēgšanu |
/api/system/env/repair |
POST | Labot OAuth pakalpojumu sniedzēja vides mainīgos |
Piezīme: Šos galapunktus izmanto sistēma iekšēji vai Ollama klientu savietojamībai. Tie parasti nav paredzēti galotnes lietotāju izsaukšanai.
OAuth vides labošana (v3.6.1+)
POST /api/system/env/repair
Content-Type: application/json
{
"provider": "claude-code"
}
Labo trūkstošus vai bojātus OAuth vides mainīgos konkrētam pakalpojumu sniedzējam. Atgriež:
{
"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 Transcription
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
Translē audio failus, izmantojot jebkuru konfigurētu STT pakalpojumu sniedzēju. Pirmais ceļa segments izvēlas nātīvo pakalpojumu sniedzēju (openai/…, deepgram/…). Vārtejas, kas atkārtoti eksportē citas piegādātāja modeli, izmanto kvalificētu identifikatoru (openrouter/deepgram/nova-3).
Pieprasījums:
curl -X POST http://localhost:20128/v1/audio/transcriptions \
-H "Authorization: Bearer your-api-key" \
-F "file=@recording.mp3" \
-F "model=openai/whisper-1"
Atbilde:
{
"text": "Hello, this is the transcribed audio content.",
"task": "transcribe",
"language": "en",
"duration": 12.5
}
Modeļu identifikatoru piemēri: openai/whisper-1 (nepieciešama OpenAI atslēga), openrouter/deepgram/nova-3 (nepieciešama OpenRouter atslēga), deepgram/nova-3 (nepieciešama nātīvā Deepgram atslēga). Tīrs deepgram/nova-3 pieprasījums neizmanto OpenRouter.
Atbalstītie formāti: mp3, wav, m4a, flac, ogg, webm.
Ollama Saderība
Klientiem, kas izmanto Ollama API formātu:
# Tērzēšanas galapunkts (Ollama formāts)
POST /v1/api/chat
# Modeļu uzskaitījums (Ollama formāts)
GET /api/tags
Pieprasījumi automātiski tiek tulki starp Ollama un iekšējiem formātiem.
Tokenizēti VS Code / Bezgalvenes Aliasi
Izmantojiet šos aliasus, kad integrācija nevar ievadīt Authorization galveni un nepieciešams API atslēgu iegult pamatvietnē.
# OpenAI stila kataloga aliass
GET /api/v1/vscode/{token}/
GET /api/v1/vscode/{token}/models
# OpenAI stila tērzēšanas aliass
POST /api/v1/vscode/{token}/chat/completions
POST /api/v1/vscode/{token}/responses
# Ollama stila aliass
POST /api/v1/vscode/{token}/api/chat
GET /api/v1/vscode/{token}/api/tags
Piemērs:
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":"hello"}]}'
Piezīmes:
- Tokenizētie aliasi izmanto tos pašus apstrādātājus kā
/v1/*un/api/tags; atbilžu struktūras paliek identiskas. - Dodiet priekšroku
Authorization: Bearer ..., kad klients atbalsta pielāgotas galvenes. - URL bāzētas atslēgas var parādīties reverso starpnieku žurnālos, pārlūka vēsturē un telemetrijā ārpus OmniRoute. Uztveriet tās kā saderības iespēju, nevis noklusējuma autentifikācijas režīmu.
Telemetrija
# Iegūt aiztures telemetrijas kopsavilkumu (p50/p95/p99 katram pakalpojumu sniedzējam)
GET /api/telemetry/summary
Atbilde:
{
"providers": {
"claudeCode": { "p50": 245, "p95": 890, "p99": 1200, "count": 150 },
"github": { "p50": 180, "p95": 620, "p99": 950, "count": 320 }
}
}
Budžets
# Iegūt budžeta statusu visām API atslēgām
GET /api/usage/budget
# Iestatīt vai atjaunināt budžetu
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"
}
Shēmas piezīmes (
setBudgetSchema):apiKeyIdir obligāts; vismaz vienam nodailyLimitUsd,weeklyLimitUsdvaimonthlyLimitUsdjābūt lielākam par nulli. Fakultatīvie lauki:warningThreshold(0–1),resetInterval(daily|weekly|monthly),resetTime(HH:MM). Mantotā{keyId, limit, period}struktūra atgriež400 Bad Request.
Token limiti
Katras API atslēgas token budžeti (atšķirīgi no iepriekš minētā USD bāzētā Budžeta). Tie tiek piemēroti pieprasījuma ceļā: kad atslēgas pašreizējais loga lietojums sasniedz limitu, pieprasījumi tiek noraidīti ar 429 Too Many Requests. Limiti var būt noteikti konkrētam model, provider vai piemēroti global atslēgai; ja vairāki limiti atbilst pieprasījumam, tiek piemērots visierobežojošākais.
# Uzskaitīt atslēgas token limitus (ietver aktīvo loga lietojumu)
GET /api/usage/token-limits?apiKeyId=key-123
# Izveidot vai atjaunināt token limitu
POST /api/usage/token-limits
Content-Type: application/json
{
"apiKeyId": "key-123",
"scopeType": "model",
"scopeValue": "openai/gpt-4o",
"tokenLimit": 1000000,
"resetInterval": "monthly",
"enabled": true
}
# Dzēst token limitu pēc id
DELETE /api/usage/token-limits?id=tl-abc
Shēmas piezīmes (
setTokenLimitSchema):apiKeyIdunscopeType(model|provider|global) ir obligāti.scopeValueir obligāts, jascopeTypenavglobal(piemēram, modeļa idmodelmērogam, pakalpojuma sniedzēja idprovidermērogam).tokenLimitjābūt pozitīvam veselam skaitlim (piespiests no virknes). Fakultatīvi:id(izlaidiet, lai izveidotu; norādiet, lai atjauninātu),resetInterval(daily|weekly|monthly, noklusējumsmonthly),resetTime(HH:MM),enabled(noklusējumstrue).GETatbildes papildina katru limitu artokensUsed,remaining,windowStart,periodStartAtunnextResetAt. Šis ir pārvaldības klases galapunkts (autentifikācija tiek centralizēti piemērota ar autentifikācijas cauruļvadu).
Pieprasījumu apstrāde
- Klients sūta pieprasījumu uz
/v1/* - Maršruta apstrādātājs izsauc
handleChat,handleEmbedding,handleAudioTranscriptionvaihandleImageGeneration - Tiek atrisināts modelis (tiešais pakalpojuma sniedzējs/ modelis vai aizstājējs/kombinācija)
- No lokālās datubāzes tiek izvēlētas akreditācijas dati ar konta pieejamības filtrēšanu
- Tērzēšanai:
handleChatCorepārbauda semantisko/paraksta kešatmiņu un atrisina kombinācijas saspiešanas iestatījumus - Iepriekšējā saspiešana notiek pirms pakalpojuma sniedzēja tulkošanas, kad tā ir iespējota (
lite, Caveman, RTK vai sakārtota) - Pakalpojuma sniedzēja izpildītājs sūta augšupejošu pieprasījumu
- Atbilde tiek atulkta atpakaļ klienta formātā (tērzēšanai) vai atgriezta kā tāda (iekļaušanas attēli/audio)
- Tiekt reģistrēts lietojums, saspiešanas analītika un pieprasījumu žurnāli
- Kļūdu gadījumā tiek piemērots atkāpšanās plāns saskaņā ar kombinācijas noteikumiem
Pilna arhitektūras atsauce: ARCHITECTURE.md
Kombināciju pārvaldība
Augstāka līmeņa maršrutēšanas kombinācijas (jau kopsavilkots zem /api/combos*) var arī kartēt 1:1 no modeļa id modeļa, ļaujot pāredzēt OpenAI stila modeļa id pārvirzīšanu uz kombināciju.
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/model-combo-mappings |
Uzskaitīt visas modelis→kombinācija kartēšanas |
| POST | /api/model-combo-mappings |
Izveidot kartēšanu — korpuss: {pattern, comboId, priority?, enabled?, description?} |
| GET | /api/model-combo-mappings/[id] |
Iegūt vienu kartēšanu |
| PUT | /api/model-combo-mappings/[id] |
Atjaunināt esošas kartēšanas laukus |
| DELETE | /api/model-combo-mappings/[id] |
Noņemt kartēšanu |
Autentifikācija: pārvaldības sesija/ API atslēga (requireManagementAuth).
Webhooks
Izejošo webhook abonementu apraksti OmniRoute notikumiem (pieprasījuma pabeigšana, kvotu izsīkšana, atslēgu rotācija utt.).
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/webhooks |
Uzskaitīt webhooks (noslēpumi ir maskēti kā <prefix>...) |
| POST | /api/webhooks |
Izveidot webhook — pamatteksts: {url, events?: ["*"], secret?, description?} |
| GET | /api/webhooks/[id] |
Iegūt webhook |
| PUT | /api/webhooks/[id] |
Atjaunināt url/events/secret/description |
| DELETE | /api/webhooks/[id] |
Noņemt webhook |
| POST | /api/webhooks/[id]/test |
Nosūtīt testa datu kopu uz webhook URL un atgriezt piegādes statusu |
Autentifikācija: pārvaldības sesija/API atslēga (requireManagementAuth).
Reģistrētās atslēgas (Automātiskā pārvaldība)
Izmanto automātiskās atslēgu pārvaldības apakšsistēma, lai izsniegtu un rotētu API atslēgas pret atbalsta pakalpojumu sniedzēju/kontu, ar dienas/stundas kvotām.
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/v1/registered-keys |
Uzskaitīt reģistrētās atslēgas (tikai maskēts prefikss) |
| POST | /api/v1/registered-keys |
Izsniegt jaunu reģistrētu atslēgu — pamatteksts: {name, provider?, accountId?, idempotencyKey?, expiresAt?, dailyBudget?, hourlyBudget?}. Atgriež neapstrādāto atslēgu vienu reizi. Atgriež 429, ja kvota tiek atteikta. |
| GET | /api/v1/registered-keys/[id] |
Iegūt reģistrētas atslēgas metadatus (bez neapstrādāta materiāla) |
| DELETE | /api/v1/registered-keys/[id] |
Atsaukt reģistrētu atslēgu |
| POST | /api/v1/registered-keys/[id]/revoke |
Skaidrs atsaukšanas galapunkts (tāds pats efekts kā DELETE) |
Autentifikācija: Bearer API atslēga (isAuthenticated). Skatīt arī /v1/quotas/check un /v1/issues/report.
Aģentu protokols
Mākoņa aģentu uzdevumi (Claude Code, Codex Cloud, OpenHands utt.), kas izpildīti attālināti OmniRoute lietotāju vārdā.
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/v1/agents/tasks |
Uzdevumu saraksts — fakultatīvi ?provider=, ?status=, ?limit= (1–500, noklusējums 50) |
| POST | /api/v1/agents/tasks |
Izveidot uzdevumu — ķermenis validēts ar CreateCloudAgentTaskSchema (providerId, prompt, source, options?). Atgriež 201 ar uzdevuma apvalku |
| DELETE | /api/v1/agents/tasks?id=... |
Dzēst uzdevumu |
| GET | /api/v1/agents/tasks/[id] |
Nolasīt uzdevumu — sinhroni atsvaidzina statusu no augšējā līmeņa mākoņa aģenta, kad iestatīts external_id |
| POST | /api/v1/agents/tasks/[id] |
Diskriminēta darbība: {action: "approve"}, {action: "message", message} vai {action: "cancel"} |
| DELETE | /api/v1/agents/tasks/[id] |
Dzēst konkrētu uzdevumu pēc id |
Autentifikācija: katrā metodē nepieciešama pārvaldības autentifikācija (
requireCloudAgentManagementAuth). Pirms v3.8.0 tie bija bez autentifikācijas — skatiet commit588a0333par izmaiņām, kas pārtrauca darbību.
# Izveidot Claude Code mākoņa uzdevumu
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":"..."}}'
Pārvaldības starpnieki
Izejošie HTTP(S)/SOCKS starpnieki, kurus var piešķirt pakalpojumu sniedzējiem, kontiem vai globāli.
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/v1/management/proxies |
Starpnieku saraksts (ar ?id= atgriež vienu; ar ?id=&where_used=1 atgriež piešķīrumu grafiku) |
| POST | /api/v1/management/proxies |
Izveidot starpnieku — ķermenis validēts ar createProxyRegistrySchema |
| PATCH | /api/v1/management/proxies |
Atjaunināt starpnieku — ķermenis validēts ar updateProxyRegistrySchema (nepieciešams id) |
| DELETE | /api/v1/management/proxies?id=...&force=1 |
Dzēst starpnieku (izmantojiet force=1, lai atvienotu piešķīrumus) |
| GET | /api/v1/management/proxies/assignments |
Piešķīrumu saraksts — filtrējams pēc proxy_id, scope, scope_id; padod resolve_connection_id=<id>, lai atrisinātu aktīvo starpnieku savienojumam |
| PUT | /api/v1/management/proxies/assignments |
Piešķirt — ķermenis validēts ar proxyAssignmentSchema ({scope, scopeId?, proxyId?}). Notīra dispečera kešatmiņu |
| PUT | /api/v1/management/proxies/bulk-assign |
Masveida piešķiršana — ķermenis validēts ar bulkProxyAssignmentSchema ({scope, scopeIds[], proxyId?}) |
| GET | /api/v1/management/proxies/health?hours=24 |
Agregēts starpņiku veselības stāvoklis (veiksmes/neveiksmju skaitītāji, latentums) pār logu |
Autentifikācija: pārvaldības sesija/API atslēga katrā maršrutā (requireManagementAuth).
Uzdevuma aprakstā esošie
POST /api/v1/management/proxies/[id]/assignmentsunPOST /api/v1/management/proxies/[id]/healthtiek apkalpoti ar plakanajiem/assignmentsun/healthmaršrutiem, kas parādīti iepriekš — kodu bāzē nav nekādu apakšmaršrutu ar id.
Izturība (paplašināta)
OmniRoute piedāvā tr neatkarīgas īslaicīgas kļūdas mehānismus; zemāk esošās pārvaldības gala punkti ļauj operatoriem tos lasīt un pārrakstīt:
| Apjoms | Stāvokļa glabātuve | Lasīt | Atiestatīt / notīrīt |
|---|---|---|---|
| Pakalpojuma avota pārtraucējs | domain_circuit_breakers + atmiņā |
/api/monitoring/health |
POST /api/resilience/reset |
| Savienojuma atdzesēšana | rateLimitedUntil pakalpojuma avota savienojumos |
/api/rate-limits, /api/providers/[id] |
(atsāknējas slinki; notīrīt caur provider PUT) |
| Modeļa bloķēšana | Atmiņā reģistrētā modeļa pieejamība | GET /api/resilience/model-cooldowns |
DELETE /api/resilience/model-cooldowns |
PATCH /api/resilience pieņem pakalpojuma avota pārtraucēja pārrakstījumus sadaļās providerBreaker.oauth un providerBreaker.apikey. Katrs profils atbalsta degradationThreshold, failureThreshold un resetTimeoutMs; tie paši lauki ir redzami Dashboard → Settings → Resilience.
# Notīrīt vienu modeļa bloķēšanu
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"}'
# Notīrīt visas bloķēšanas
curl -X DELETE http://localhost:20128/api/resilience/model-cooldowns \
-H "Cookie: auth_token=..." \
-d '{"all":true}'
Pilna konceptuālā atsauce un pārtraucēja noklusējuma vērtības: skatīt CLAUDE.md → "Resilience Runtime State".
Prasmes
Prasmju ietvars OmniRoute paplašināšanai ar pielāgotiem izpildāmiem apstrādātājiem, kā arī tirgus integrācijām.
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/skills |
Uzstādīto prasmju saraksts — filtrējams pēc ?q=, ?mode=on|off|auto, ?source=skillsmp|skillssh|local, lapots |
| GET | /api/skills/[id] |
Iegūt vienu prasmi |
| PUT | /api/skills/[id] |
Atjaunināt prasmi (nosaukums, apraksts, režīms, shēma, apstrādātājs, tagi) |
| DELETE | /api/skills/[id] |
Atinstalēt prasmi |
| POST | /api/skills/install |
Instalēt prasmi no neapstrādāta manifesta — ķermenis: {name, version, description, schema:{input, output}, handlerCode, apiKeyId?} |
| GET | /api/skills/executions |
Uzskaitīt nesenās prasmju izpildes (revīzijas pēda ar ievadiem/izvadēm/ilgumu) |
| GET | /api/skills/marketplace?q=... |
Meklēt/populāro sarakstu no SkillsMP tirgus (nepieciešams skillsmpApiKey iestatījums) |
| POST | /api/skills/marketplace/install |
Instalēt prasmi pēc ID no SkillsMP |
| GET | /api/skills/skillssh?q=&limit= |
Meklēt skills.sh reģistrā |
| POST | /api/skills/skillssh/install |
Instalēt prasmi pēc ID no skills.sh |
Autentifikācija: pārvaldības sesija/API atslēga. Tirgus meklēšanas maršruti pieņem vai nu pārvaldības autentifikāciju, vai Bearer API atslēgu (isAuthenticated).
Atmiņa
Pastāvīga sarunu faktisko atmiņu krātuve, kas ir ierobežota ar API atslēgas / sesijas mērogu.
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/memory |
Atmiņu saraksts — ?apiKeyId=, ?type=, ?sessionId=, ?q=, ar offset/limit vai page/limit lapošanu |
| POST | /api/memory |
Izveidot atmiņu — ķermenis validēts ar Zod: {content, key, type?, sessionId?, apiKeyId?, metadata?, expiresAt?} |
| GET | /api/memory/[id] |
Iegūt vienu atmiņu |
| DELETE | /api/memory/[id] |
Izdzēst atmiņu |
| GET | /api/memory/health |
Atmiņu apakšsistēmas veselība (DB savienojamības, ieguldījumu aizmugures, vektoru indeksa statuss) |
Autentifikācija: pārvaldības sesija / API atslēga (requireManagementAuth). type uzskaitījums: FACTUAL, EPISODIC, SEMANTIC, PROCEDURAL (skatīt MemoryType failā src/lib/memory/types.ts).
MCP Serveris
OmniRoute piegādā iebūvētu Model Context Protocol serveri ar 3 transportiem (stdio, SSE, streamable-http) un pielāgotiem rīkiem. Zemāk esošie informācijas panela galapunkti nolasa statusa/audita datus un pievada HTTP transportus.
| Metode | Ceļš | Apraksts | |
|---|---|---|---|
| GET | /api/mcp/status |
Impulss, transports, tiešsaistes stāvoklis, pēdējais izsaukums, labākie rīki, 24h panākumu līmenis | |
| GET | /api/mcp/tools |
MCP rīku saraksts ar name, description, scopes, phase, auditLevel, sourceEndpoints |
|
| GET | /api/mcp/sse |
Atvērt SSE straumi SSE transportam (atgriež 503, ja MCP ir atspējots vai transports neatbilst) |
|
| POST | /api/mcp/sse |
Sūtīt JSON-RPC kadru SSE transportā | |
| GET | /api/mcp/stream |
Atvērt Streamable HTTP transporta SSE pusi (servera uzsāktas ziņas) | |
| POST | /api/mcp/stream |
Sūtīt JSON-RPC kadru Streamable HTTP transportā | |
| DELETE | /api/mcp/stream |
Beigt Streamable HTTP sesiju | |
| GET | /api/mcp/audit |
Vaicāt auditā žurnālu — ?limit=, ?offset=, ?tool=, `?success=true |
false, ?apiKeyId=` |
| GET | /api/mcp/audit/stats |
Agregēti audita statistika (kopsummas, panākumu līmenis, vidējais ilgums, labākie rīki) |
Autentifikācija: sse/stream transporti ievēro MCP specifisko autentifikācijas virsmu (Bearer API atslēga ar mcp apjomu); status/tools/audit* maršrutus var nolasīt no informācijas paneļa (nav nepieciešama papildu autentifikācija, izņemot piekļušanu informācijas paneļa resursdatoram).
Abi HTTP transporti ir aizsargāti ar
settings.mcpEnabledunsettings.mcpTransport— neatbilstība transportam atgriež400, MCP atspējotais stāvoklis atgriež503.
A2A serveris
OmniRoute nodrošina A2A (Agent-to-Agent) JSON-RPC 2.0 galapunktu plus REST apvalku pārbaudes/darbības paneļa lietošanai.
JSON-RPC
POST /a2a
Authorization: Bearer your-api-key # nav obligāti, ja OMNIROUTE_API_KEY nav iestatīts
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "message/send",
"params": {
"skill": "smart-routing",
"messages": [{"role": "user", "content": "Route this coding task"}]
}
}
Atbalstītās metodes (visas tiek kontrolētas ar settings.a2aEnabled):
| Metode | Apraksts |
|---|---|
message/send |
Sinhrona prasmes izpilde; atgriež {task, artifacts, metadata} |
message/stream |
Straumēšanas SSE izpilde tai pašai prasmju kopai |
tasks/get |
Iegūt uzdevumu pēc taskId |
tasks/cancel |
Atcelt uzdevumu pēc taskId |
Iebūvētās prasmes: smart-routing, quota-management, provider-discovery, cost-analysis, health-report.
Aģenta karte
GET /.well-known/agent.json
Atgriež publisko A2A aģenta karti (nosaukums, apraksts, iespējas, prasmju katalogs, autentifikācijas shēma) — publiski kešota 1 stundu. Nav nepieciešama autentifikācija.
REST palīgrīki
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/a2a/status |
A2A iespējots + uzdevumu statistika + kešotās aģenta kartes kopsavilkums |
| GET | /api/a2a/tasks |
Uzdevumu saraksts — ?state=submitted|working|completed|failed|cancelled, ?skill=, ?limit= (≤200), ?offset= |
| POST | /api/a2a/tasks |
(Nav īstenots kā REST palīgrīks — izveidojiet caur JSON-RPC message/send) |
| GET | /api/a2a/tasks/[id] |
Iegūt vienu uzdevumu |
| POST | /api/a2a/tasks/[id]/cancel |
Atcelt uzdevumu |
Autentifikācija: REST palīgrīki darbojas bez pārvaldības autentifikācijas (pieejami lasīšanai no paneļa); JSON-RPC /a2a maršruts izmanto Bearer OMNIROUTE_API_KEY, ja tas ir konfigurēts.
Mākoņi, Vērtēšana un Novērtēšana
| Metode | Ceļš | Apraksts |
|---|---|---|
| POST | /api/cloud/auth |
Verificēt Bearer atslēgu un atgriezt maskētus pakalpojumu sniedzēju savienojumus + modeļu alosijas mākoņa sinhronizācijas klientiem |
| POST | /api/cloud/credentials/update |
Atjaunināt šifrētos akreditācijas datus mākoņa sinhronizētam pakalpojumu sniedzējam |
| POST | /api/cloud/model/resolve |
Atrisināt loģisko modeļa ID uz konkrētu pakalpojumu sniedzēju/modeli, izmantojot lokālo maršrutēšanas tabulu |
| GET | /api/cloud/models/alias |
Uzskaitīt modeļu alosijas, kādas tiek rādītas mākoņa sinhronizācijai |
| GET | /api/assess |
Lasīt jaunākās novērtēšanas kategorizācijas (katram pakalpojumu sniedzējam/modelim) |
| POST | /api/assess |
Veikt novērtēšanu — ķermenis: `{scope: {type:"all"} |
| GET | /api/evals |
Uzskaitīt iebūvētos vērtēšanas komplektus + jaunākos palaišanas |
| POST | /api/evals |
Sākt vērtēšanas palaišanu |
| POST | /api/evals/suites |
Izveidot pielāgotu vērtēšanas komplektu — ķermenis validēts ar evalSuiteSaveSchema |
| GET | /api/evals/suites/[id] |
Iegūt pielāgotu vērtēšanas komplektu |
Autentifikācija: /api/cloud/auth verificē Bearer atslēgu tieši; citi /api/cloud/*, /api/evals/* un /api/assess maršruti prasa pārvaldības sesiju/API atslēgu. /api/assess POST izmanto validateBody ar diskriminējošas kopas shēmu.
ACP (Agent Client Protocol) pārvaldība
kā bērnu procesus. Šie galapunkti pārvalda ACP aģentu noteikšanu un pielāgoto aģentu reģistrāciju.
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/acp/agents |
Uzskaitīt visus zināmos CLI aģentus (iebūvētos + pielāgoto) ar instalācijas statusu, versiju, bināro failu |
| POST | /api/acp/agents |
Reģistrēt pielāgoto ACP aģentu vai atsvaidzināt kešatmiņu — korpuss: {id, name, binary, versionCommand, providerAlias, spawnArgs, protocol} vai {action: "refresh"} |
| DELETE | /api/acp/agents |
Noņemt pielāgoto ACP aģentu — vaicājuma parametrs: ?id=<agentId> |
Atbildes piemērs (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
}
Autentifikācija: Nepieciešama pārvaldības sesija (paneļa auth_token sīkfailu) vai
pārvaldības mēroga API atslēga.
Skatiet ACP Framework pilnīgai informācijai.
Analītika un novērošana
Reāllaika analītikas galapunkti maršrutēšanas, saspiešanas un sniedzēju
daudzveidības monitoringam. Tie nodrošina /dashboard/analytics/* lapas.
Automātiskās maršrutēšanas analītika
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/analytics/auto-routing |
Agregētā automātiskās maršrutēšanas statistika: kopējie zvani, stratēģiju sadalījums, līmeņu sadalījums, vadošie sniedzēji |
| GET | /api/analytics/auto-routing?days=7 |
Laika loga statistika (noklusējums 24 stundas) |
Atbildes piemērs:
{
"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 }
]
}
Saspiešanas analītika
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/analytics/compression |
Agregētā saspiešanas statistika: ietaupītie tokeni, ietaupījumu %, režīmu sadalījums, dzinēju lietojums |
Atbildes piemērs:
{
"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
}
}
Sniedzēju daudzveidības izsekošana
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/analytics/diversity |
Daudzveidības izsekošana, kura pamatā ir Šenona entropija: novērš vienīgus kļūmes avotus, mērot sniedzēju sadalījumu |
Atbildes piemērs:
{
"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 veido 40% datplūsmas — apsveriet daudzveidību"]
}
Autentifikācija: Nepieciešama pārvaldības sesija vai pārvaldības mēroga API atslēga.
Administrēšanas darbības
Tikai administratoriem pieejamie galapunkti operatīvai pārvaldībai.
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/admin/concurrency |
Nolasīt pašreizējos konkurējošo pieprasījumu ierobežojumus (globālus + katram pakalpojumu sniedzējam) |
| POST | /api/admin/concurrency |
Atjaunināt konkurences ierobežojumus — ķermenis: {global?: number, perProvider?: Record<string, number>} |
Autentifikācija: Nepieciešama vadības sesija ar administratora piekļuvi.
CLI rīku pārvaldība
Pārvaldīt CLI rīkus, kas integrējas ar OmniRoute (antigravity, chipotle, commandCode, devin-cli u.c.). Pilnu sarakstu skatiet Pakalpojumu sniedzēju atsauces.
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/cli-tools/all-statuses |
Visu CLI rīku statuss (instalēts, versija, pēdējoreiz redzēts) |
| GET | /api/cli-tools/status |
Viena CLI rīka statusa detaļas (?tool= vaicājums) |
| POST | /api/cli-tools/apply |
Ierakstīt rīka ģenerēto konfigurāciju (dryRun priekšskatījums; 422 + containerEphemeralTarget, ja iepakots; migration norāda veco Codex YAML) |
| GET | /api/cli-tools/backups |
Uzskaitīt CLI rīku konfigurāciju dublējumkopijas |
| POST | /api/cli-tools/backups |
Izveidot dublējumkopiju no visām CLI rīku konfigurācijām |
| POST | /api/cli-tools/backups |
Atjaunot: tas pats galapunkts ar {tool, backupId} ķermenī atjauno šo dublējumkopiju |
| GET | /api/cli-tools/antigravity-mitm |
Antigravity MITM starpniekservera statuss (CLI rīks "antigravity-mitm") |
| POST | /api/cli-tools/antigravity-mitm/alias |
Konfigurēt antigravity-mitm aliases |
Autentifikācija: Nepieciešama vadības sesija.
Aģentu prasmes
Pārvaldīt AI aģentu prasmes (līdzīgas OpenAI pielāgotajiem GPT, bet aģentiem).
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/agent-skills |
Uzskaitīt visas aģentu prasmes (iestrādātās + pielāgotās) |
| GET | /api/agent-skills/[id] |
Iegūt konkrētu aģenta prasmi |
| POST | /api/agent-skills |
Izveidot pielāgotu aģenta prasmi — ķermenis: {name, description, prompt, model?, temperature?} |
| PUT | /api/agent-skills/[id] |
Atjaunināt pielāgotu aģenta prasmi |
| DELETE | /api/agent-skills/[id] |
Dzēst pielāgotu aģenta prasmi |
| GET | /api/agent-skills/[id]/raw |
Iegūt neapstrādātu uzvedni + metadatus (bez izpildes) |
| POST | /api/agent-skills/generate |
AI ģenerēt jaunu prasmi no dabiskās valodas apraksta |
Autentifikācija: Nepieciešama vadības sesija vai ar vadības jomu saistīta API atslēga.
Cache pārvaldība
Pārvaldiet semantisko kešatmiņu un racionālo kešatmiņu.
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/cache |
Kešatmiņas pārskats: kopējais ierakstu skaits, trāpījumu līmenis, lielums diskā |
| GET | /api/cache/entries |
Uzskaitīt kešatmiņas ierakstus (ar lapošanu) |
| DELETE | /api/cache/entries |
Dzēst kešatmiņas ierakstus (filtrēt pēc vaicājuma parametriem) |
| GET | /api/cache/stats |
Detalizēta kešatmiņas statistika (pēc pakalpojuma sniedzēja, pēc modeļa) |
| GET | /api/cache/reasoning |
Racionālās kešatmiņas statuss (racionālās atskaņošanai) |
| DELETE | /api/cache/reasoning |
Notīrīt racionālo kešatmiņu — vaicājuma parametri: ?toolCallId=<id> (viens) vai ?provider=<p> vai bez parametriem (visi) |
Autentifikācija: Nepieciešama pārvaldības sesija.
Atmiņas sistēma
Pārvaldiet pastāvīgo atmiņu (FTS5 + vektoru iegulšana).
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/memory |
Uzskaitīt atmiņas ierakstus (filtrēt pēc tvēruma, tipa, meklēšanas vaicājuma) |
| POST | /api/memory |
Izveidot jaunu atmiņas ierakstu — ķermenis: {scope, type, content, metadata?} |
| GET | /api/memory/[id] |
Iegūt konkrētu atmiņas ierakstu |
| PUT | /api/memory/[id] |
Atjaunināt atmiņas ierakstu |
| DELETE | /api/memory/[id] |
Dzēst atmiņas ierakstu |
| GET | /api/memory?q= |
Meklēt atmiņā (FTS5 + vektori) — statistika iekļauta tajā pašā atbildē |
Autentifikācija: Nepieciešama pārvaldības sesija vai pārvaldības tvēruma API atslēga.
Tīmekļa āķi
Pārvaldiet tīmekļa āķu abonementus notikumiem.
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/webhooks |
Uzskaitīt visus tīmekļa āķu abonementus |
| POST | /api/webhooks |
Izveidot tīmekļa āķa abonementu — ķermenis: {url, events[], secret?, active?} |
| GET | /api/webhooks/[id] |
Iegūt konkrētu tīmekļa āķa abonementu |
| PUT | /api/webhooks/[id] |
Atjaunināt tīmekļa āķa abonementu |
| DELETE | /api/webhooks/[id] |
Dzēst tīmekļa āķa abonementu |
| GET | /api/webhooks/[id]/deliveries |
Uzskaitīt tīmekļa āķa piegādes vēsturi (veiksmes/neveiksmes žurnāls) |
| POST | /api/webhooks/[id]/test |
Sūtīt testa notikumu uz tīmekļa āķu |
Autentifikācija: Nepieciešama pārvaldības sesija.
Skatiet Tīmekļa āķu framework pilnotiem notikumu tipiem.
Prasmju ietvars
Pārvaldiet prasmes (aģentu paplašinājumu ietvars).
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/skills |
Uzskaitīt visas instalētās prasmes (iebūvētas + pielāgotas) |
| POST | /api/skills/install |
Instalēt prasmi no lokālā ceļa vai URL |
| DELETE | /api/skills/[id] |
Atinstalēt prasmi |
| PUT | /api/skills/[id] |
Iespējot vai atspējot prasmi — ķermenis: {enabled?: boolean, mode?: "on" | "off" | "auto"} |
| POST | /api/skills/executions |
Izpildīt prasmi — ķermenis: {skillName, apiKeyId, input?, sessionId?} |
| GET | /api/skills/executions |
Uzskaitīt izpildes vēsturi visām prasmēm (filtrēt pēc ?apiKeyId=) |
Autentifikācija: Nepieciešama pārvaldības sesija vai pārvaldības mērogā API atslēga.
Skatiet Prasmju ietvars pilnai informācijai.
Spraudņi
Pārvaldiet OmniRoute spraudņus (trešo pušu paplašinājumus).
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/plugins |
Uzskaitīt instalētos spraudņus |
| POST | /api/plugins/marketplace/install |
Instalēt spraudni no tirgus |
| DELETE | /api/plugins/[name] |
Atinstalēt spraudni |
| POST | /api/plugins/[name]/activate |
Aktivizēt spraudni |
| POST | /api/plugins/[name]/deactivate |
Deaktivizēt spraudni |
| GET | /api/plugins/[name]/config |
Iegūt spraudņa konfigurāciju |
| PUT | /api/plugins/[name]/config |
Atjaunināt spraudņa konfigurāciju |
Autentifikācija: Nepieciešama pārvaldības sesija.
Skatiet Spraudņu ietvars pilnai informācijai.
Ēnu maršrutēšana
Ēnu / A-B pakalpojumu sniedzēju salīdzināšana nav patstāvīga REST saskarne — tā tiek konfigurēta, izmantojot kombinēto maršrutēšanu (sk. Auto-Kombo). Katras kombinācijas salīdzināšanas metriku dati tiek nodrošināti ar GET /api/combos/metrics.
Aizsargmehānismi
Inspektējiet izpildlaika aizsargmehānismus (PII noteikšana, uzvednes injekcijas noteikšana, redzes pārraide). Aizsargmehānismi darbojas katram pieprasījumam; atslēgšana katram izsaukumam notiek ar x-omniroute-disabled-guardrails pieprasījuma galveni — nav saglabātas iespējošanas/atspējošanas saskarnes.
| Metode | Ceļš | Apraksts |
|---|---|---|
| GET | /api/guardrails |
Uzskaitīt reģistrētos aizsargmehānismus un to statusu (nosaukums / iespējots / prioritāte) |
| POST | /api/guardrails/test |
Sausā palaist pirmsizsaukuma konveijeru uz parauga ievadi — ķermenis: {input, disabledGuardrails?} |
Autentifikācija: Nepieciešama pārvaldības sesija.
Skatiet Drošība > Aizsargmehānismi pilnai informācijai.
Autentifikācija
Skatiet Vadības autentifikāciju par četrām
akreditīviju grupām (darbvirsmas sesija, lokālā CLI marķieris, oma_live_…
piekļuves marķieris, vadības mēroga API atslēga) un to, kā tās atšķiras no
inferences atslēgām.
- Darbvirsmas maršruti (
/dashboard/*) izmantoauth_tokensīkfailu - Pieteikšanās izmanto saglabāto paroles hash; atkāpjas uz
INITIAL_PASSWORD requireLoginvar pārslēgt, izmantojot/api/settings/require-login/v1/*maršruri pēc izvēles prasa Bearer API atslēgu, jaREQUIRE_API_KEY=true- "vadības marķieris" / "vadības mēroga API atslēga" šajā atsaucē nozīmē vienu no grupām šajā rokasgrāmatā — nevis noteiktu papildu slepenības tipu
Pārtraucošs mainījums (v3.8.0) —
/api/v1/agents/tasks/*un atdzesēšanas vadības galapunkti tagad prasa vadības autentifikāciju (darbvirsmasauth_tokensīkfailu vai vadības mēroga API atslēgu). Klienti, kas iepriekš izsauca šos maršrutus bez autentifikācijas, saņems401 Unauthorized. Skatiet kommitu588a0333(fix(auth): require management auth for agent and cooldown APIs).