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
134 KiB
API_REFERENCE (Yorùbá)
🌐 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 · 🇺🇿 uz · 🇻🇳 vi · 🇨🇳 zh-CN · 🇹🇼 zh-TW
title: "Ìtọ́kasí API" version: 3.8.51 lastUpdated: 2026-08-31
Ìtọ́kasí API
🌐 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 · 🇺🇿 uz · 🇻🇳 vi · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Ìtọ́kasí pàtàkì fún API OmniRoute. Ó ṣàlàyé ojú-ìṣàmúlò /v1 ti gbogbo ènìyàn àti àwọn endpoint ìṣàkóso tí a sábà máa ń lò jù; docs/openapi.yaml tí ẹ̀rọ lè kà àti igi ipa-ọ̀nà lábẹ́ src/app/api/ ni àwọn orísun tó pé pérépéré.
Àkójọ Àwọn Àkóónú
- Àwọn Ìparí Ìfọ̀rọ̀wérọ̀
- Àwọn Ìyálò Ìgbà Ìjókòó Àbójútó Àdáni
- Àwọn Ìfísínú
- Ṣíṣe Àwòrán
- OCR Ìwé
- Àkójọ Àwọn Àwòṣe
- Manifestu Plugin Olùpèsè
- Àwọn Endpoint Ìbámu
- API Àwọn Fáìlì
- API Àwọn Ìpele
- API Ìṣàwárí
- Ìṣànwọlé WebSocket
- Àwọn Ìdíwọ̀n & Ìjábọ̀ Ìṣòro
- Káṣe Ìtumọ̀
- Pátákó Ìdarí & Ìṣàkóso
- Ìṣàkóso Combo
- Àwọn Webhook
- Àwọn Kọ́kọ́rọ́ Tí a Forúkọsílẹ̀ (Ìṣàkóso Aládàáṣiṣẹ́)
- Ìlànà Àwọn Aṣojú
- Àwọn Proxy Ìṣàkóso
- Ìfaradà (àfikún)
- Àwọn Ọgbọ́n
- Ìrántí
- Sẹ́fà MCP
- Sẹ́fà A2A
- Cloud, Àwọn Ìdánwò & Ìṣírò
- Ṣíṣe Ìbéèrè
- Ìfàṣẹsí
Àwọn Ìparí Ìfọ̀rọ̀wérọ̀
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
}
Àwọn Header Àkànṣe
| Header | Ìtọ́sọ́nà | Àpèjúwe |
|---|---|---|
X-OmniRoute-No-Cache |
Ìbéèrè | Ṣètò sí true láti forí káṣe kọjá |
x-omniroute-no-memory |
Ìbéèrè | Ṣètò sí true láti foju ìrántí + fífi àwọn ọgbọ́n sínú fún ìbéèrè yìí (ó dà bí no-cache; ó yẹra fún àfikún token/ìnáwó fún ìpè kọ̀ọ̀kan) |
X-OmniRoute-Progress |
Ìbéèrè | Ṣètò sí true fún àwọn ìṣẹ̀lẹ̀ ìlọsíwájú |
X-Session-Id |
Ìbéèrè | Kọ́kọ́rọ́ ìgbà ìjókòó dídì fún ìbámu ìgbà ìjókòó ìta |
x_session_id |
Ìbéèrè | A tún gba ẹ̀yà underscore (HTTP tààrà) |
X-OmniRoute-Session-Id |
Ìbéèrè | Ààmì ìgbà ìjókòó/ìfọ̀rọ̀wérọ̀ tí olùpè pèsè (ó tún ń fi ìrántí lọ́wọ́). Nígbà tí ó bá wà, a ó fi í pamọ́ gẹ́gẹ́ bí ó ṣe rí sínú call_logs.session_tag fún ìpín ìnáwó ìgbà ìjókòó kọ̀ọ̀kan (#8249) — a kì í dá a sílẹ̀ nígbà tí kò bá sí |
Idempotency-Key |
Ìbéèrè | Kọ́kọ́rọ́ ìmúkúrò àtúnṣe (fèrèsé 5s) |
X-Request-Id |
Ìbéèrè | Kọ́kọ́rọ́ ìmúkúrò àtúnṣe mìíràn |
X-OmniRoute-Cache |
Ìdáhùn | HIT tàbí MISS (tí kì í ṣe ìṣànwọlé) |
X-OmniRoute-Idempotent |
Ìdáhùn | true bí a bá ti mú àwọn àtúnṣe kúrò |
X-OmniRoute-Progress |
Ìdáhùn | enabled bí títọpinpin ìlọsíwájú bá wà ní títàn |
X-OmniRoute-Session-Id |
Ìdáhùn | ID ìgbà ìjókòó tó gbéṣẹ́ tí OmniRoute lò |
X-OmniRoute-Request-Id |
Ìdáhùn | ID ìbámu ìbéèrè (nígbà tí a bá mọ̀ ọ́) |
X-OmniRoute-Version |
Ìdáhùn | Ẹ̀yà ìkọ́lé OmniRoute (ó máa ń wà nígbà gbogbo) |
X-OmniRoute-Cost-Saved |
Ìdáhùn | USD tí káṣe fi pamọ́ lórí HIT kan (àwọn cache hit nìkan) |
X-OmniRoute-Decision |
Ìdáhùn | Àtẹ̀lé ìdarí ipa-ọ̀nà: strategy=<name>; provider=<alias>; latency_ms=<n> (<name> ni ọgbọ́n combo, tàbí single fún ìbéèrè tí kì í ṣe combo) — ó máa ń wà nígbà gbogbo lórí àwọn ìdáhùn ìparí |
Àkíyèsí Nginx: bí o bá gbára lé àwọn header underscore (fún àpẹẹrẹ
x_session_id), múunderscores_in_headers on;ṣiṣẹ́.
Àwọn àkọlé tẹlémẹ́trì iye owó: àwọn ìdáhùn àṣeyọrí tí kì í ṣe ṣiṣan tún ní àkójọpọ̀ tẹlémẹ́trì iye owó
X-OmniRoute-*—X-OmniRoute-Response-Cost(USD, nọ́ńbà alákíyèsí mẹ́wàá tí kò yí padà;0.0000000000fún ohun ọ̀fẹ́/tí kò ní iye owó),X-OmniRoute-Tokens-In/X-OmniRoute-Tokens-Out,X-OmniRoute-Model,X-OmniRoute-Provider,X-OmniRoute-Latency-Ms,X-OmniRoute-Cache-Hit, àtiX-OmniRoute-Fallback-Attempts(nígbà tí ó bá > 0 nìkan), pẹ̀lúX-OmniRoute-Request-IdàtiX-OmniRoute-Version. Àwọn ìparí ìfọ̀rọ̀wérọ̀,/v1/responses,/v1/messages, àti àwọn ibi ìparí mídíà ni wọ́n ń dá àwọn wọ̀nyí jáde —/v1/embeddings,/v1/images/generations,/v1/audio/speech,/v1/audio/transcriptions,/v1/rerank,/v1/videos/generations,/v1/music/generations, àti/v1/moderations(iye owó rẹ̀ máa ń jẹ́0ní gbogbo ìgbà). A máa ń ṣírò iye owó mídíà gẹ́gẹ́ bí ìru rẹ̀ (fún àwòrán kọ̀ọ̀kan, fún ìṣẹ́jú-àáyá kọ̀ọ̀kan, fún àmì kọ̀ọ̀kan, fún ẹ̀ka ìṣàwárí kọ̀ọ̀kan) nígbà tí ìdíyelé bá wà; bí kò bá sí, yóò jẹ́0(yóò tẹ̀síwájú láìdènà).
Ìtumọ̀ iye owó ìbámu-káṣì: lórí ìbámu HIT nínú káṣì ìtumọ̀ (
X-OmniRoute-Cache-Hit: true), a kò ṣe ìpè sí iṣẹ́ òkè-rere, nítorí náàX-OmniRoute-Response-Costjẹ́0.0000000000(iye owó àfikún fún fífi ìbámu náà ránṣẹ́). Iye owó ìpilẹ̀ṣẹ̀/tí ì bá ti jẹ́ ni a ń jabo lọ́tọ̀ nínúX-OmniRoute-Cost-Saved. Àwọn olùlò ìdíyelé gbọ́dọ̀ ṣàkójọpọ̀X-OmniRoute-Response-Cost(àwọn ìbámu kò ná owó kankan); àwọn irinṣẹ́ ìtúpalẹ̀ káṣì sì lè ṣàkójọpọ̀X-OmniRoute-Cost-Saved.
Àwọn Ìyálò Ìgbà Ìṣiṣẹ́ Àbójútó Aládàáṣe
Ìyálò ìgbà ìṣiṣẹ́ àbójútó aládàáṣe jẹ́ àdéhùn ìdarí-ọ̀nà tí a máa ń yàn láti lò, tí kò sì dá lórí oníbàárà: olùní kan ṣoṣo tó ń ṣiṣẹ́ ni ó di àsopọ̀ OmniRoute kan tó yẹ mú. Kì í ṣe yíyálò àwòṣe, kò béèrè OAuth, kò dá oníbàárà kan pàtó mọ̀, bẹ́ẹ̀ ni kò béèrè olupèsè kan pàtó.
Bọ́tìnì API tí ń ṣe ìfàṣẹsí gbọ́dọ̀ ní ààlà lease:exclusive àti àtòjọ
allowedConnections tí a sọ ní kedere tí kò sì ṣófo. Ààlà ìyípadà ibi ìpamọ́ dátà máa ń fipá mú kí àwọn ààyè méjèèjì wà papọ̀ nígbà
ṣíṣẹ̀dá bọ́tìnì àti àwọn ìmúdójúìwọ̀n apá kan.
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"}
Àwọn èsì àṣeyọrí fún gbígbà, ìsọdọ̀tun, àti ìtúsílẹ̀ máa ń fi àwọn àmì-àkókò, state, àti
generation rere gangan hàn, ṣùgbọ́n wọn kì í fi àsopọ̀ tàbí ẹ̀rí ìdánimọ̀ tí a yàn hàn láé. Ìsọdọ̀tun àti ìtúsílẹ̀ máa ń pèsè
generation náà nínú ara JSON:
{ "action": "renew", "generation": 1 }
{ "action": "release", "generation": 1, "reason": "OWNER_EXIT" }
Olùní ìyálò tó ń ṣiṣẹ́ lè béèrè ní kedere fún metadata àfihàn tó dáàbò bo àṣírí fún ìsopọ̀ rẹ̀ lọ́wọ́lọ́wọ́:
{ "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"
}
}
Ìgbésẹ̀ status tí a yàn láti lò yìí ni a fi olùní àìfarahàn, bọ́tìnì API àbójútó tí a ti fìdí rẹ̀ múlẹ̀, àti
generation tó ń ṣiṣẹ́ gangan ṣe ààlà rẹ̀ nínú ìdúnàádúrà ibi ìpamọ́ dátà kan ṣoṣo. displayName jẹ́ orúkọ
àsopọ̀ tí a ṣètò tí a gé àyè àfikún rẹ̀ kúrò nìkan; yóò jẹ́ null nígbà tí kò bá sí orúkọ àtòjọ tó láàbò.
OmniRoute kì í fi ímeèlì tàbí ìdánimọ̀ àkọọ́lẹ̀ tí a ṣẹ̀dá rọ́pò rẹ̀ láé. Iye provider jẹ́ àmì àfihàn tí kò ní
ìsọfúnni kókó, kì í sì í ṣe ìdánimọ̀ olupèsè ibámu tí a ṣẹ̀dá láé. Ẹ̀rí ìdánimọ̀, token, cookie, àsopọ̀ gidi tàbí àwọn
id bọ́tìnì API, àwọn hash olùní, àwọn àṣírí ìdíwọ̀n, àti dátà ìdarí-ọ̀nà abẹ́nú ni a yọ kúrò.
Àwọn ìṣàwárí pẹ̀lú bọ́tìnì tí kò tọ́, olùní tí kò tọ́, generation tí ó ti pẹ́, ohun tí kò sí, ohun tó ti parí, ohun tí a ti tú sílẹ̀, àti ohun tí a ti sọ di aláìṣiṣẹ́
gbogbo wọn máa ń dá àṣìṣe 409 LEASE_FENCE_STALE kan náà padà láìsí metadata àsopọ̀. Oníbàárà tó gba èsì dídúró de àyè kò ní ìsopọ̀ tó ń ṣiṣẹ́ láti ṣàyẹ̀wò. Nígbà tí ìdarí-ọ̀nà bá yí ìyálò tó ń ṣiṣẹ́ padà,
generation kan náà ṣì máa ń wúlò, status sì máa ń dá ìsopọ̀ tuntun padà lẹ́ẹ̀kan náà, kì í ṣe ti àtijọ́ láé.
Àwọn oníbàárà tó wà tẹ́lẹ̀ kò ní yípadà nítorí pé àwọn èsì gbígbà, ìsọdọ̀tun, ìtúsílẹ̀, àti dídúró ṣì pa
ìrísí wọn tẹ́lẹ̀ mọ́.
Àdéhùn olupin yìí kò yí /status OpenAI Codex àtẹ̀jáde boṣewa padà. Lọ́wọ́lọ́wọ́, Codex àtẹ̀jáde boṣewa máa ń jàbọ̀
olupèsè àwòṣe rẹ̀ àti ipò ìfàṣẹsí/àkọọ́lẹ̀ inú rẹ̀, ṣùgbọ́n kò ṣe àfihàn metadata àkọọ́lẹ̀
olupèsè àdáni èyíkéyìí; ìṣọ̀kan oníbàárà lọ́jọ́ iwájú gbọ́dọ̀ pe ìgbésẹ̀ yìí kí ó sì pinnu bí a ṣe máa
ṣàfihàn connection.displayName.
Lẹ́yìn náà, gbogbo ìbéèrè ìṣirò àbójútó máa ń pèsè àwọn àkọsílẹ̀ ìṣàkóso méjèèjì:
X-OmniRoute-Lease-Owner: vlo_<43-base64url-characters>
X-OmniRoute-Lease-Generation: 1
Olùní gangan, generation, àsopọ̀ tó ń ṣiṣẹ́, àti bọ́tìnì API tí a ti fìdí rẹ̀ múlẹ̀ ni a máa ń ṣe ààlà wọn lẹ́sẹ̀kẹsẹ̀ ṣáájú gbogbo ìgbìyànjú upstream tí a ṣe àtìlẹ́yìn fún. Ṣíṣe àtúnlò olùní àti generation pẹ̀lú bọ́tìnì mìíràn yóò kùnà, kódà bí bọ́tìnì yẹn bá gba àsopọ̀ kan náà láàyè. A kì í tọ́jú àwọn olùní gidi sínú ibi ìpamọ́, kọ wọ́n sínú àkọsílẹ̀, dá wọn dúró nínú àwòrán-ìpamọ́ ìbéèrè, tàbí fi wọ́n ránṣẹ́ sí upstream.
Ìdíje fún ìgbà díẹ̀ máa ń dá HTTP 429 padà pẹ̀lú Retry-After àti:
{
"state": "WAITING_FOR_CAPACITY",
"error": { "type": "lease_error", "code": "LEASE_CAPACITY_UNAVAILABLE" },
"reason": "NO_FREE_ELIGIBLE_CONNECTION",
"retryAfter": 30
}
Èsì yìí túmọ̀ sí pé àkójọpọ̀ àwọn tó yẹ lásán kò ṣófo, gbogbo olùdíje ọ̀fẹ́ sì wà lọ́wọ́ ìyálò tó ń ṣiṣẹ́ ti olùní mìíràn. Àwọn àwòṣe/olùpèsè tí kò ní àtìlẹ́yìn, àìbámu ìlànà, àkókò ìsinmi, ìpín, ìlera, àti àwọn ìkùnà yíyẹ lásán mìíràn ṣì máa ń pa àwọn èsì OmniRoute wọn tó wà tẹ́lẹ̀ mọ́.
x-omniroute-compression
Ìkọjá-ètò fún gbogbo ìbéèrè lórí ètò ìfúnpọ̀. Ó ní àṣẹ tó ga jù — ó borí ìkọjá-ètò routing-combo, profile tó ń ṣiṣẹ́, auto-trigger, àti Default pánẹ́lì. Àwọn iye:
| Iye | Ipa |
|---|---|
off |
Kò sí ìfúnpọ̀ fún ìbéèrè yìí. |
default |
Profile Default tí a mú jáde láti inú pánẹ́lì (kò ka profile tó ń ṣiṣẹ́ sí). |
engine:<id> |
Engine kan ṣoṣo nígbà tí a bá mú un ṣiṣẹ́, fún àpẹẹrẹ engine:rtk. |
<combo> |
Combo tó ní orúkọ, tí a kọ́kọ́ bá mu nípasẹ̀ orúkọ (láìka bí lẹ́tà ṣe tóbi tàbí kékeré), lẹ́yìn náà nípasẹ̀ id. |
Àwọn àkíyèsí:
- A máa foju kọ àwọn iye àìmọ̀ (a kì í kọ ìbéèrè náà láé); ìpinnu máa tẹ̀ síwájú sí ìtẹ̀lé àṣẹ olùṣiṣẹ́ deede.
- Bí àwọn combo púpọ̀ bá ní orúkọ kan náà, fi id combo náà ránṣẹ́ fún ìbámu tí kò yípadà.
- Combo tí orúkọ rẹ̀ jẹ́
offtàbídefaultkò ṣe é yàn nípasẹ̀ orúkọ (àwọn ọ̀rọ̀ pàtàkì wọ̀nyẹn ni a kọ́kọ́ túmọ̀); tọ́ka sí irú combo bẹ́ẹ̀ nípasẹ̀ id rẹ̀. - Yíyípadà àkọ́kọ́ ìfúnpọ̀ jẹ́ ìdènà líle: nígbà tí ìfúnpọ̀ bá jẹ́ aláìṣiṣẹ́ ní gbogbo ètò, àkọsílẹ̀ yìí kò lè mú un ṣiṣẹ́.
A máa ń fi ètò tí a lò padà hàn nínú àkọsílẹ̀ èsì:
X-OmniRoute-Compression: <mode>; source=<source>
níbi tí <source> ti jẹ́ ọ̀kan lára request-header, routing-override, active-profile, auto-trigger, default, tàbí off.
Àwọn Embedding
POST /v1/embeddings
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "nebius/Qwen/Qwen3-Embedding-8B",
"input": "The food was delicious"
}
Àwọn olùpèsè tó wà: Nebius, OpenAI, Mistral, Together AI, Fireworks, NVIDIA, OpenRouter, Jina AI.
Àwọn id katalọ́ọ̀gù jẹ́ provider/model (àpẹẹrẹ: jina-ai/jina-embeddings-v5-omni-small). Àwọn id awoṣe Jina tí kò ní orúkọ olùpèsè, tí ó hàn nínú registry (fún àpẹẹrẹ jina-embeddings-v5-text-small, jina-reranker-v3.5) tún máa ń ṣiṣẹ́. Jina embed/rerank/classify/segment máa ń kọ́kọ́ lo àwọn ìwé-ẹ̀rí jina-ai inú dashboard; JINA_AI_API_KEY jẹ́ àṣàyàn ìpamọ́ nìkan nígbà tí kò bá sí kọ́kọ́rọ́ dashboard. Káàdì jina-reader jẹ́ fún Reader / r.jina.ai nìkan (POST /v1/web/fetch), kò sì ní ṣe iṣẹ́ embedding tàbí rerank láéláé.
Àwọn awoṣe registry tí ó sọ pé wọ́n ṣe àtìlẹ́yìn fún multimodal tún gba tó àwọn ohun èlò oníṣètò 32 tí kò dá lórí olùpèsè kan pàtó.
Àwọn irú ohun èlò mídíà ni text, image, audio, video, àti document. source mídíà wọn
jẹ́ bóyá {"type":"url","url":"https://..."} tàbí
{"type":"base64","data":"...","media_type":"..."}.
Jina v5 Omni (jina-ai/jina-embeddings-v5-omni-small, jina-ai/jina-embeddings-v5-omni-nano,
àti alias ìdílé jina-ai/jina-embeddings-v5-omni → omni-small) tún gba àwọn ìwé EmbeddingsV5Request abinibi ti Jina,
ó sì rán wọn síwájú láìyí wọn padà sí 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,..." }]
}
]
}
Àwọn iye abinibi { image | audio | video | pdf } lè jẹ́ URL HTTPS gbogbogbò, URI data:, tàbí
base64 aise. OmniRoute kì í sọ àwọn object wọ̀nyẹn di string tàbí gba àwọn URL àwòrán abinibi wá — Jina fúnra rẹ̀
ló ń gba mídíà gbogbogbò náà wá. Àwọn field Jina àfikún (task, normalized, truncate, embedding_type) ni a
rán síwájú. Àwọn SKU Jina tó jẹ́ text-only ṣì máa kọ àwọn ìwé tí kì í ṣe text.
Àwọn ààlà ààbò àti ìgbékalẹ̀:
- Àwọn URL mídíà jíjìn gbọ́dọ̀ jẹ́ HTTPS gbogbogbò. Àwọn ohun èlò Canonical
{type,source:url}ni a máa ń gbà wá ní ẹ̀gbẹ́ server (àyẹ̀wò redirect lẹ́ẹ̀kan sí i, timeout, ààlà ìwọ̀n, DNS gbogbogbò, connection pinning), a sì máa ń fi wọ́n sínú request kí a tó pe olùpèsè. Àwọn ohun èlò Jina-native{image:"https://..."}ni a rán síwájú bí wọ́n ṣe rí lẹ́yìn àyẹ̀wò public-HTTPS kan náà; Jina ló máa gba URL náà wá. - Mídíà base64 inline ní ààlà 8 MiB tí a ti decode fún ohun èlò kọ̀ọ̀kan àti 16 MiB tí a ti decode fún gbogbo request náà.
Ìtumọ̀ sí ọna olùpèsè (a kì í rán àwọn ohun èlò canonical síwájú láìyí wọn padà):
- Àwọn awoṣe multimodal Jina: ohun èlò top-level kọ̀ọ̀kan di object kan tí a fi kọ́kọ́rọ́ modality sí
(
text/image/audio/video/pdf), tí ó ń lo data URI fún mídíà inline; vector kan fún ohun èlò top-level kọ̀ọ̀kan. - Ìdílé Gemini Embedding 2: array top-level kan di request abinibi kan ṣoṣo
models/{model}:embedContentpẹ̀lúcontent.parts(texttàbíinline_data). - Àwọn awoṣe àìmọ̀/dynamic tí kò ní metadata modality tó ṣe kedere máa kọ structured input pẹ̀lú 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"
}
Àwọn àkópọ̀ awoṣe/modality tí a kò ṣe àtìlẹ́yìn fún máa dá HTTP 400 padà dípò fífi ipá yí ohun èlò náà padà. Àwọn field extension tí kì í ṣe input lórí àwọn request string/token àtijọ́ ṣì máa kọjá lọ láìyípadà.
# Ṣàkọsílẹ̀ gbogbo àwọn awoṣe embedding
GET /v1/embeddings
Ṣíṣẹ̀dá Àwòrán
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"
}
Àwọn olupèsè tó wà: OpenAI (GPT Image 2), xAI (Grok Image), Together AI (FLUX), Fireworks AI, Nebius (FLUX), Hyperbolic, NanoBanana, OpenRouter, SD WebUI (agbègbè), ComfyUI (agbègbè).
# Ṣàkójọ gbogbo àwọn àwòṣe àwòrán
GET /v1/images/generations
OCR Ìwé
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 ń yan olupèsè OCR nípasẹ̀ ìpele provider/model; id àwòṣe tí kò ní ìpele (fún àpẹẹrẹ,
mistral-ocr-latest) yóò tọ́ka sí olupèsè rẹ̀ tí a forúkọsílẹ̀, àti pé tí a kò bá fi model sílẹ̀, yóò lo
Mistral (mistral-ocr-latest) gẹ́gẹ́ bí àkóbá. Àwọn olupèsè tí a forúkọsílẹ̀ (open-sse/config/ocrRegistry.ts):
| Id olupèsè | Id àwòṣe | Iye model |
Àwọn àkíyèsí |
|---|---|---|---|
mistral |
mistral-ocr-latest |
mistral/mistral-ocr-latest (tàbí mistral-ocr-latest láìsí ìpele) |
Amúṣiṣẹ́pọ̀ — a dá èsì padà tààrà láti inú ìpè òkè kan ṣoṣo. |
azure-document-intelligence |
prebuilt-read |
azure-document-intelligence/prebuilt-read |
Òkè aláìṣiṣẹ́pọ̀ (analyze + ìdìbò) — wo ìsàlẹ̀. |
vertex-deepseek-ocr |
deepseek-ocr-maas |
vertex-deepseek-ocr/deepseek-ocr-maas |
Amúṣiṣẹ́pọ̀, nípasẹ̀ ibi ìparí alábàáṣiṣẹ́pọ̀ openapi/chat/completions ti Vertex AI — wo ìsàlẹ̀ fún ìfàṣẹsí/URL. |
Gbogbo àwọn olupèsè mẹ́tẹ̀ẹ̀ta ń dáhùn pẹ̀lú ara onírísí Mistral kan náà:
{
"pages": [{ "index": 0, "markdown": "# Extracted text..." }],
"model": "mistral-ocr-latest",
"usage_info": { "pages_processed": 1 }
}
Ìṣàn ìdìbò Azure Document Intelligence
API analyze ti Azure Document Intelligence jẹ́ aláìṣiṣẹ́pọ̀: ìbéèrè àkọ́kọ́ ń dá àkọlé
Operation-Location padà dípò ara, a sì gbọ́dọ̀ máa dìbò fún àbájáde náà. Olùdarí náà
(open-sse/handlers/ocr.ts) máa ń dìbò sí URL yẹn ní gbogbo ìṣẹ́jú-àáyá kan fún ìgbìyànjú tó pọ̀ jù lọ 30, ó máa ń kùnà lẹ́sẹ̀kẹsẹ̀ (kò
tẹ̀síwájú láti dìbò) lórí èsì ìdìbò tí kì í ṣe ok tàbí ipò "failed", ó sì dá 504 padà bí
iṣẹ́ náà bá ṣì ń lọ lẹ́yìn tí iye ìgbìyànjú bá ti parí. A máa ń ṣe èsì Azure ìkẹyìn
ní ìlànà sí onírísí pages/markdown kan náà tí Mistral ń lò kí a tó dá a padà sí
olùpè, nítorí náà kóòdù oníbàárà kò nílò láti ṣe ìtọ́jú pàtàkì fún olupèsè náà.
Ìfàṣẹsí àti ìpinnu ibi ìparí Vertex AI DeepSeek OCR
vertex-deepseek-ocr tún ń lo ìfàṣẹsí Vertex AI kan náà tí OmniRoute ti ń ṣe àtìlẹ́yìn fún
ìrìnàjò ìfọ̀rọ̀wérọ̀/àwòrán (open-sse/executors/vertex.ts): kọ́kọ́rọ́ API àsopọ̀ náà jẹ́ yálà
ẹ̀rí Service Account JSON (tí a pààrọ̀ fún àmì ìráyè OAuth onígbà-kúkúrú nípasẹ̀ ìṣàn JWT-bearer)
tàbí àmì ìráyè OAuth tí a ti ṣẹ̀dá tẹ́lẹ̀ tí a lò bí ó ṣe rí. URL ibi ìparí òkè náà jẹ́
ibi ìparí alábàáṣiṣẹ́pọ̀ gbogbogbòò openapi/chat/completions ti Vertex, tí a kọ́ láti inú iṣẹ́ àti
agbègbè àsopọ̀ náà — providerSpecificData.project/providerSpecificData.region tí a sọ ní pàtó ló máa ń ṣáájú nígbà gbogbo;
bí bẹ́ẹ̀ kọ́, a máa ń yọ iṣẹ́ náà láti inú project_id ti Service Account JSON, agbègbè náà sì
máa ń lo us-central1 gẹ́gẹ́ bí àkóbá. Àwọn ìpinnu méjèèjì máa ń ṣẹlẹ̀ nínú open-sse/handlers/ocr.ts
(resolveVertexOcrAccessToken, resolveVertexOcrBaseUrl), tí
src/app/api/v1/ocr/route.ts ń lò kí ó tó fi ránṣẹ́ sí handleOcr.
Ṣe Àtòjọ Àwọn Módelì
GET /v1/models
Authorization: Bearer your-api-key
→ Ó dá gbogbo àwọn módelì ìfọ̀rọ̀wérọ̀, embedding, àti àwòrán + àwọn àkópọ̀ padà ní ọ̀nà OpenAI
Àwọn ìṣáájú id módelì (?prefix=)
Ọ̀pọ̀ àwọn módelì ni a ń polówó lábẹ́ ìṣáájú olùpèsè kan. Ìṣáájú tí o máa rí ni
àsíá ẹ̀ya MODELS_CATALOG_PREFIX_MODE ń ṣàkóso, a sì lè fagi lé e fún ìbéèrè kọ̀ọ̀kan pẹ̀lú
paramita ìbéèrè kan — ó wúlò fún oníbàárà tó fẹ́ àtòjọ mímọ́ láìṣe àyípadà sí ètò gbogbo
sáfà fún gbogbo àwọn mìíràn:
GET /v1/models?prefix=alias # id kan fún módelì kọ̀ọ̀kan — ìṣáájú alias kúkúrú
GET /v1/models?prefix=dual # àwọn fọ́ọ̀mù méjèèjì (àìyípadà sáfà)
GET /v1/models?prefix=canonical # ìṣáájú provider-id kíkún nìkan
| Ìpo | Ohun tí ó ń gbé jáde | Àwọn àkíyèsí |
|---|---|---|
dual |
cc/claude-sonnet-4-6 àti claude/claude-sonnet-4-6 |
Àìyípadà. Àwọn id méjèèjì ń darí sí módelì kan náà; a pa wọ́n mọ́ kí àwọn ètò oníbàárà tí ó ti kọ ọ̀kan nínú wọn sínú kóòdù lè máa ṣiṣẹ́ nìṣó. Ó fẹ́rẹ̀ẹ́ sọ katalọ́ọ̀gù di ìlọ́po méjì. |
alias |
cc/claude-sonnet-4-6 |
Àkọsílẹ̀ kan fún módelì kọ̀ọ̀kan. Àwọn olùpèsè tí kò ní alias ọ̀tọ̀ ṣì ń gbé àkọsílẹ̀ wọn jáde, nítorí náà kò sí ohun tó sọnù. |
canonical |
claude/claude-sonnet-4-6 |
Àkọsílẹ̀ kan fún módelì kọ̀ọ̀kan lábẹ́ ìṣáájú provider-id kíkún. Àwọn olùpèsè tí kò ní alias ọ̀tọ̀ (fún àpẹẹrẹ antigravity/…, agy/…) tún ń gbé id kan ṣoṣo wọn jáde níbí, nítorí náà kò sí ohun tó sọnù. |
A tún lè dá àwòrán ojú-òpó ìpo dual mọ̀ láìlo paramita ìbéèrè náà: ó ní pápá parent
tí ó ń tọ́ka sí id àkọ́kọ́.
Àwọn oníbàárà tí ń ṣàfihàn ibi yíyan módelì yẹ kí wọ́n béèrè ?prefix=alias — èyí ni ohun tí
ẹ̀ka OmniCopilot VS Code ń ṣe.
Àwọn ẹ̀yà módelì tí kò ní ìrònú
Fún àwọn módelì Claude tó lè ronú, /v1/models tún ń polówó ẹ̀yà tí kò ní ìrònú tí id rẹ̀ bẹ̀rẹ̀ pẹ̀lú claude-3-omniroute-no-thinking/:
claude-3-omniroute-no-thinking/<provider>/<model>
Yíyan id yìí (fún àpẹẹrẹ, nínú ètò Claude Code kan tí ó máa ń so búlọ́ọ̀kù thinking mọ́ ọn ní gbogbo ìgbà) máa ń yanjú padà sí <provider>/<model> gidi pẹ̀lú dídènà ìfèrò — thinking:{type:"disabled"} lórí ipa ọ̀nà /v1/messages, tàbí yíyọ àwọn pápá reasoning/reasoning_effort kúrò lórí ipa ọ̀nà /v1/chat/completions. Ẹ̀yà náà ni a ń tò sí àtòjọ fún àwọn módelì ìdílé Claude tí ó ṣe àtìlẹ́yìn fún ìrònú tí wọ́n sì tẹ̀lé disabled nìkan (nítorí náà, fún àpẹẹrẹ, àwọn módelì adaptive-only tí ó kọ disabled sílẹ̀ ni a yọ kúrò). Àwọn olùṣàkóso lè fi ipá tan ẹ̀yà náà tàbí pa á fún módelì kọ̀ọ̀kan nípasẹ̀ ModelSpec.noThinkingAlias.
Àkọsílẹ̀ Àfikún Olùpèsè
GET /api/v1/provider-plugin-manifest
Ó dá àkọsílẹ̀ àfikún olùpèsè tó ní ààbò fún JSON padà, èyí tí Bifrost, CLIProxyAPI, àti àwọn olùdarí sidecar ọjọ́ iwájú ń lò. Ìdáhùn náà ni a ń ṣe láti inú ìforúkọsílẹ̀ olùpèsè TypeScript, ó sì mọ̀ọ́mọ̀ yọ àwọn àṣírí oníbàárà OAuth, ìyanjú àyíká runtime, àwọn iṣẹ́ executor, àwọn akọlé ìbéèrè, àti dátà àkọọ́lẹ̀ kúrò.
Lo ojú-ọ̀nà yìí nígbà tí sidecar bá ń ṣiṣẹ́ níta process tí kò sì lè ṣe import
open-sse/config/providerPluginManifestRegistry.ts ní tààrà.
Àwọn Ojú-ọ̀nà Ìbámu
| Ọ̀nà | Ipa-ọ̀nà | Fọ́ọ̀mù |
|---|---|---|
| POST | /v1/chat/completions |
OpenAI |
| POST | /v1/messages |
Anthropic |
| POST | /v1/responses |
Àwọn Ìdáhùn OpenAI |
| POST | /v1/embeddings |
OpenAI |
| POST | /v1/images/generations |
Àwọn Àwòrán OpenAI |
| POST | /v1/images/edits |
Àwọn Àwòrán OpenAI (àtúnṣe/inpaint) |
| POST | /v1/videos/generations |
Ìṣẹ̀dá fídíò tó dàbí ti OpenAI |
| POST | /v1/music/generations |
Ìṣẹ̀dá orin tó dàbí ti OpenAI |
| POST | /v1/audio/transcriptions |
Ohùn OpenAI (STT) |
| POST | /v1/audio/speech |
OpenAI TTS (ó dá ara ohùn padà) |
| POST | /v1/rerank |
Àtúntò ipò tó dàbí Cohere/Voyage |
| POST | /v1/classify |
Ìsọ̀rí Jina (api.jina.ai) |
| POST | /v1/segment |
Olùpín Jina (segment.jina.ai) |
| POST | /v1/moderations |
Àwọn Ìṣàkóso Àkóónú OpenAI |
| 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}/ |
Orúkọ ìjápọ̀ àkójọ OpenAI |
| GET | /api/v1/vscode/{token}/models |
Orúkọ ìjápọ̀ àwọn model OpenAI |
| POST | /api/v1/vscode/{token}/chat/completions |
Orúkọ ìjápọ̀ OpenAI tó ní token |
| POST | /api/v1/vscode/{token}/responses |
Orúkọ ìjápọ̀ Àwọn Ìdáhùn OpenAI tó ní token |
| POST | /api/v1/vscode/{token}/api/chat |
Orúkọ ìjápọ̀ Ollama tó ní token |
| GET | /api/v1/vscode/{token}/api/tags |
Orúkọ ìjápọ̀ àwọn àmì Ollama tó ní token |
Gbogbo àwọn route POST ló ń tẹ̀lé ìrísí kan náà: Bearer your-api-key + ara JSON tí Zod ti fọwọ́sí (v1RerankSchema, v1ModerationSchema, v1AudioSpeechSchema, àti bẹ́ẹ̀ bẹ́ẹ̀ lọ; wo src/shared/validation/schemas.ts). A máa dá 4xx padà nígbà tí ìfọwọ́sí schema bá kùnà.
Fún àwọn client tí kò lè so Authorization: Bearer ... mọ́ ìbéèrè, OmniRoute tún gba àwọn kọ́kọ́rọ́ API nínú URL nípasẹ̀ bóyá ìbámu query-string (?token=..., ?apiKey=..., ?api_key=..., ?key=...) tàbí àwọn ojú-ọ̀nà pàtó /api/v1/vscode/{token}/... tí a ṣàkọsílẹ̀ rẹ̀ ní ìsàlẹ̀.
# Àtúntò ipò
POST /v1/rerank { "model": "jina-ai/jina-reranker-v3.5", "query": "...", "documents": ["..."] }
# Ìsọ̀rí Jina (àwọn ẹ̀rí ìdánimọ̀ Foundation API)
POST /v1/classify { "model": "jina-embeddings-v5-text-small", "input": ["..."], "labels": ["a", "b"] }
# Olùpín Jina
POST /v1/segment { "content": "...", "return_chunks": true }
# Ìṣàwárí Jina (s.jina.ai; àwọn orúkọ ìjápọ̀ olùpèsè: jina-search, jina-ai, jina)
POST /v1/search { "query": "...", "provider": "jina-search" }
# Àwọn ìṣàkóso àkóónú
POST /v1/moderations { "model": "omni-moderation-latest", "input": "..." }
# TTS — ó dá ara audio/mpeg (tàbí fọ́ọ̀mù tí a béèrè) padà
POST /v1/audio/speech { "model": "openai/tts-1", "input": "Hello", "voice": "alloy" }
# Àtúnṣe àwòrán (multipart)
POST /v1/images/edits -F image=@input.png -F prompt="..." -F mask=@mask.png
# Ìṣẹ̀dá fídíò / orin (ID model tó ní ìpilẹ̀ orúkọ olùpèsè)
POST /v1/videos/generations { "model": "runway/gen-3", "prompt": "..." }
POST /v1/music/generations { "model": "suno/v3.5", "prompt": "..." }
Àwọn Route Olùpèsè Pàtó
POST /v1/providers/{provider}/chat/completions
POST /v1/providers/{provider}/embeddings
POST /v1/providers/{provider}/images/generations
A máa fi ìpilẹ̀ orúkọ olùpèsè kún un láìfọwọ́ṣe bí kò bá sí. Àwọn model tí kò bá olùpèsè mu máa dá 400 padà.
API Àwọn Fáìlì
Endpoint àwọn fáìlì tó bá OpenAI mu fún ìwọlé/ìjáde ìpele-ọ̀pọ̀ àti àwọn ìrùsókè fáìlì tó ní ìdí pàtó.
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| POST | /v1/files |
Ṣe ìrùsókè fáìlì kan (multipart: file, purpose, expires_after[anchor], expires_after[seconds]) — 512 MiB ó pọ̀jù |
| GET | /v1/files |
Ṣe àkójọ àwọn fáìlì fún kọ́kọ́rọ́ API tí a ti jẹ́rìí sí |
| GET | /v1/files/[id] |
Gba metadata fáìlì kan |
| DELETE | /v1/files/[id] |
Pa fáìlì kan rẹ́ |
| GET | /v1/files/[id]/content |
Ṣe ìṣàn ara fáìlì aise padà |
Ìjẹ́rìísí: Kọ́kọ́rọ́ API Bearer — àwọn fáìlì ni a pín sí ìwọ̀n kọ́kọ́rọ́-API-kọ̀ọ̀kan nípasẹ̀ getApiKeyRequestScope.
API Àwọn Ìpele-ọ̀pọ̀
Ṣíṣe àkójọpọ̀ ìpele-ọ̀pọ̀ tó bá OpenAI mu.
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| POST | /v1/batches |
Ṣẹ̀dá ìpele-ọ̀pọ̀ — v1BatchCreateSchema ń fọwọ́sí body (input_file_id, endpoint, completion_window) |
| GET | /v1/batches |
Ṣe àkójọ àwọn ìpele-ọ̀pọ̀ |
| GET | /v1/batches/[id] |
Gba ipò ìpele-ọ̀pọ̀ + request_counts |
| DELETE | /v1/batches/[id] |
Pa ìpele-ọ̀pọ̀ tó ti parí/tó kùnà rẹ́ |
| POST | /v1/batches/[id]/cancel |
Fagilé ìpele-ọ̀pọ̀ tó ń lọ lọ́wọ́ |
Ìjẹ́rìísí: Kọ́kọ́rọ́ API Bearer. A pín àwọn ìpele-ọ̀pọ̀ sí ìwọ̀n kọ́kọ́rọ́-API-kọ̀ọ̀kan.
API Ìṣàwárí
Àfoyemọ̀ olùpèsè wẹ́ẹ̀bù/ìṣàwárí (Tavily, Brave, Exa, Serper, àti bẹ́ẹ̀ bẹ́ẹ̀ lọ).
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /v1/search |
Ṣe àkójọ àwọn olùpèsè ìṣàwárí tí a ti ṣètò + àwọn agbára wọn |
| POST | /v1/search |
Ṣe ìbéèrè ìṣàwárí — v1SearchSchema ń fọwọ́sí body, ó ṣe àtìlẹ́yìn caching/coalescing |
| GET | /v1/search/analytics |
Àwọn ìṣirò hit/latency/cache fún olùpèsè kọ̀ọ̀kan |
Ìjẹ́rìísí: Kọ́kọ́rọ́ API Bearer (extractApiKey + isValidApiKey). A ń fi òfin ìṣàwárí múlẹ̀ nípasẹ̀ enforceApiKeyPolicy.
API Ìgbàjáde Wẹ́ẹ̀bù
Yọ àkóónú jáde láti URL kan nípasẹ̀ olùpèsè web-fetch tí a ti ṣètò (Firecrawl, Jina Reader, Tavily Extract, TinyFish Fetch, Nimble Extract).
| Ọ̀nà | Ipa-ọ̀nà | Àpèjúwe |
|---|---|---|
| POST | /v1/web/fetch |
Gba/fá àkóónú URL kan — v1WebFetchSchema ń fọwọ́sí body |
Ìfàṣẹsí: Kọ́kọ́rọ́ API Bearer (extractApiKey + isValidApiKey). A ń mú ìlànà ṣiṣẹ́ nípasẹ̀ enforceApiKeyPolicy.
Ìpadà-sẹ́yìn tó mọ iye quota (#8297): nígbà tí a kò bá fi provider kan pàtó hàn, a máa
lọ inú àkójọpọ̀ náà
(firecrawl → jina-reader → tavily-search → tinyfish → nimble-search) ní
ètò ààyò tí kò yí padà
(kún-àkọ́kọ́) — a máa fo olùpèsè tí a ti ṣètò ṣùgbọ́n tí ààlà ìbéèrè ń dí lọ
dípò kí a gé ìbéèrè náà kúrú, àti pé ìkùnà upstream tí a lè tún gbìyànjú/quota
(HTTP 429 ní gbogbo ìgbà; 402/403 fún àwọn ipele ọ̀fẹ́ Firecrawl/Tavily/TinyFish tí ó ní irú quota —
kì í ṣe fún Jina Reader, kò sì jẹ́ fún ìbéèrè búburú 400 lásán) yóò tẹ̀síwájú sí
olùpèsè tó ní ẹ̀rí ìwọlé tí a kò tíì gbìyànjú lẹ́yìn náà ní àkókò ìbéèrè. Nígbà tí gbogbo olùpèsè inú
àkójọpọ̀ náà bá ti tán, endpoint náà yóò dá 429 kan ṣoṣo padà (pẹ̀lú header Retry-After)
dípò 400 gbogbogbòò tẹ́lẹ̀. Nígbà tí a bá béèrè provider kan ní pàtó, kò sí
ìpadà-sẹ́yìn ní ìkọ̀kọ̀ — olùpèsè pàtó tí ààlà ìbéèrè ń dí tàbí tí ó kùnà
yóò fi àṣìṣe tirẹ̀ hàn (429 bí ààlà ìbéèrè bá ń dí i, bí bẹ́ẹ̀ kọ́, status
upstream náà).
Ṣíṣàn WebSocket
GET /v1/ws?handshake=1
Ó ń fọwọ́sí handshake ìgbéga WebSocket, ó sì ń dá àwọn àpẹẹrẹ ìfiránṣẹ́ protocol lórí wire padà (request, cancel). Server WS tí a dì pọ̀ mọ́ ọn ló ń bójú tó àwọn frame WS gangan níta tábìlì route Next.js.
Ìfàṣẹsí: Kọ́kọ́rọ́ API Bearer nígbà handshake.
API Responses lórí WebSocket (codex nìkan)
# Host:port kan náà bí API HTTP (àtìlẹ́yìn 20128); ṣe ìgbéga connection náà:
wscat -c "ws://localhost:20128/v1/responses?api_key=<OMNIROUTE_API_KEY>"
# (tàbí: -H "Authorization: Bearer <OMNIROUTE_API_KEY>")
# Frame àkọ́kọ́ GBỌ́DỌ̀ jẹ́ response.create:
{ "type": "response.create", "model": "gpt-5.5", "input": [ { "role": "user", "content": "hi" } ] }
A so aṣojú Responses-API-over-WebSocket pọ̀ sí codex nìkan ṣoṣo (backend ChatGPT).
Ó ń tẹ́tí sí port kan náà bí API/dashboard ní àwọn path /v1/responses,
/responses, àti /api/v1/responses. Lórí frame response.create àkọ́kọ́, ó
ń ṣe ìfàṣẹsí + ìmúrasílẹ̀ nípasẹ̀ bridge codex-responses-ws inú, ó yan
connection OAuth codex kan, ó sì ń ṣe tunnel sí wss://chatgpt.com/backend-api/codex/responses
nípasẹ̀ transport wreq-js. A kọ àwọn model tí kì í ṣe codex (codex_ws_provider_required).
Fún routing pínpín quota, lo model: "qtSd/<group>/codex/<model>". A mú un ṣẹ nínú
app/server-ws.mjs + scripts/dev/responses-ws-proxy.mjs + src/app/api/internal/codex-responses-ws/route.ts.
Ìfàṣẹsí: Kọ́kọ́rọ́ API Bearer nígbà handshake. Server HTTP tí a dì pọ̀ mọ́ ọn (server-ws.mjs)
gbọdọ̀ jẹ́ entrypoint tó ń ṣiṣẹ́ (ó sì rí bẹ́ẹ̀ ní àtìlẹ́yìn, nígbà tí app/server-ws.mjs bá wà).
Id model: lo id ChatGPT lásán (láìsí prefix codex/)
Codex CLI OpenAI ń fọwọ́sí orúkọ model ní ẹ̀gbẹ́ client nígbà tí
supports_websockets = true, ó sì ń kọ àwọn id tí prefix olùpèsè wà níwájú wọn bí
codex/gpt-5.5 (The 'codex/gpt-5.5' model is not supported when using Codex with a ChatGPT account). Fi id lásán ránṣẹ́ (fún àpẹẹrẹ gpt-5.5). Bridge OmniRoute jẹ́
fún codex nìkan, nítorí náà ó tún ń yanjú id lásán gẹ́gẹ́ bí model codex
(resolveCodexWsModelInfo) kí ó tó ṣe tunnel sí upstream — bí ó tilẹ̀ jẹ́ pé id lásán
gpt-5.5 yóò lọ sí olùpèsè mìíràn lórí HTTP bí kò bá rí bẹ́ẹ̀.
Ṣíṣètò Codex CLI OpenAI
Darí Codex CLI sí OmniRoute nípa fífi olùpèsè àdáni tó ṣe àtìlẹ́yìn WebSocket
kún ~/.codex/config.toml (lo CODEX_HOME ọ̀tọ̀ láti yẹra fún
fífọwọ́ kan config tó ti wà):
model = "gpt-5.5" # id lásán — KÌ Í ṢE "codex/gpt-5.5"
model_provider = "omniroute"
[model_providers.omniroute]
name = "OmniRoute (WS)"
base_url = "http://localhost:20128/v1" # má ṣe fi slash sí ẹ̀yìn; a ń yọ URL WS jáde láti inú rẹ̀ (lo https/wss ní production)
wire_api = "responses" # iye kan ṣoṣo tí a ṣe àtìlẹ́yìn fún láti Feb 2026
supports_websockets = true # ń mú transport Responses-over-WS ṣiṣẹ́
env_key = "OMNIROUTE_API_KEY" # ń tọ́jú kọ́kọ́rọ́ API OmniRoute (Bearer)
export OMNIROUTE_API_KEY=sk-... # kọ́kọ́rọ́ API OmniRoute kan (kọ́kọ́rọ́ èyíkéyìí bí REQUIRE_API_KEY=false)
codex exec "Responda apenas: PONG"
CLI náà ń ṣe ìgbéga base_url + /responses sí WebSocket, OmniRoute sì ń ṣe tunnel rẹ̀
sí connection OAuth codex tí a yàn. A ti fọwọ́sí i láti ìbẹ̀rẹ̀ dé òpin lórí
server agbègbè: ChatGPT ń dá codex.rate_limits + response.created padà, ó sì ń ṣàn
completion náà.
Àwọn Ìwọ̀n Ìlò & Ìjábọ̀ Àwọn Ìṣòro
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /v1/quotas/check |
Ṣàyẹ̀wò ìwọ̀n ìlò fún provider + accountId ṣáájú fífi kọ́kọ́rọ́ tí a forúkọsílẹ̀ jáde |
| POST | /v1/issues/report |
Jábọ̀ ìkùnà ìwọ̀n ìlò/fífi kọ́kọ́rọ́ jáde sí GitHub (ó nílò GITHUB_ISSUES_REPO + token) |
Ìfàṣẹsí: Kọ́kọ́rọ́ API Bearer (isAuthenticated).
Ìlò iṣẹ́-ara-ẹni (/api/usage/om-usage)
Kọ́kọ́rọ́ API èyíkéyìí lè ka ìlò àti àwọn ìwọ̀n ìlò tirẹ̀ fúnra rẹ̀ — kò nílò ìfàṣẹsí ìṣàkóso. Èyí ni endpoint tí client kan (CLI, pánẹ́ẹ̀lì OmniCopilot) ń lò láti fi iye owó tí ẹni tó ni kọ́kọ́rọ́ ti ná hàn án.
# Fọ́ọ̀mù ọ̀rọ̀ (àdéhùn ìtàn — ọ̀rọ̀ lásán fún terminal)
curl -H "Authorization: Bearer <your-api-key>" \
http://localhost:20128/api/usage/om-usage
# Fọ́ọ̀mù tí a ṣètò — èyí tí UI ń lò
curl -H "Authorization: Bearer <your-api-key>" \
"http://localhost:20128/api/usage/om-usage?format=json"
Kọ́kọ́rọ́ náà gbọ́dọ̀ ní allowUsageCommand tí a ti mú ṣiṣẹ́ (kò ṣiṣẹ́ ní àkọ́kọ́ — olùṣàkóso kọ́kọ́rọ́ API ti dashboard
ń yí i padà fún kọ́kọ́rọ́ kọ̀ọ̀kan). Láìsí i, endpoint náà yóò dáhùn 403.
?format=json ń dá àkópọ̀ tí a fi ìyàtọ̀ sí padà kí olùpè má bàa ka pápá dátà láti inú
ìkọ̀. Nígbà àṣeyọrí:
{
"allowed": true,
// yóò wà nìkan nígbà tí kọ́kọ́rọ́ náà bá yan láti lo àwọn ààlà ìlò ti kọ́kọ́rọ́ kọ̀ọ̀kan (USD ojoojúmọ́/ọ̀sọ̀ọ̀sẹ̀):
"personal": {
"dailySpentUsd": 1.25,
"dailyLimitUsd": 5,
"dailyResetAtIso": "…",
"weeklySpentUsd": 8,
"weeklyLimitUsd": 20,
"weeklyResetAtIso": "…" /* … */,
},
// àwòrán ìwọ̀n ìlò provider tí a yàn, tàbí null nígbà tí kò sí ohun tí a ti cache síbẹ̀:
"provider": {
"connectionId": "…",
"provider": "claude",
"plan": "…",
"quotas": {/* … */},
},
// àwòrán gbogbo connection, kí UI lè ṣàfihàn ọ̀pọ̀ provider lẹ́gbẹ̀ẹ́ ara wọn:
"providers": [
{ "connectionId": "…", "provider": "claude" /* … */ },
{ "provider": "codex" /* … */ },
],
}
Nígbà ìkọ̀ (401 kọ́kọ́rọ́ tí kò tọ́ / 403 kò gba láàyè), route kan náà yóò dá
{ "allowed": false, "error": { "message": "…" } } padà — personal/provider tó wà ṣùgbọ́n tó ṣófo
(kọ́kọ́rọ́ gba láàyè, kò tíì sí ohun tí a mọ̀) jẹ́ ipò tó yàtọ̀ sí ìkọ̀, fọ́ọ̀mù JSON nìkan sì
ni ó ń fi ìyàtọ̀ wọn hàn.
Ìfàṣẹsí: Kọ́kọ́rọ́ API Bearer ti olùpè fúnra rẹ̀, tí a fìdí rẹ̀ múlẹ̀ pẹ̀lú isValidApiKey — èyí kì í ṣe
ojú-iṣẹ́ ìṣàkóso (/api/keys/…), èyí tí ó ṣì wà lẹ́yìn requireManagementAuth.
Cache Semantic
# Gba àwọn ìṣirò cache
GET /api/cache/stats
# Pa gbogbo cache rẹ́
DELETE /api/cache/stats
Àpẹẹrẹ èsì:
{
"semanticCache": {
"memorySize": 42,
"memoryMaxSize": 500,
"dbSize": 128,
"hitRate": 0.65
},
"idempotency": {
"activeKeys": 3,
"windowMs": 5000
}
}
Ipa lórí latency
Cache semantic HIT ń pèsè èsì láti cache láìsí ìpè upstream
kankan, nítorí náà X-OmniRoute-Response-Latency tí a jábọ̀ sún mọ́ òdo
(láìka latency upstream ìpilẹ̀ṣẹ̀ sí). Àwọn client tí latency ṣe pàtàkì sí
(benchmarking, àbójútó p50/p99) gbọ́dọ̀ ṣàyẹ̀wò header èsì
X-OmniRoute-Cache-Latency:
| Iye | Ìtumọ̀ |
|---|---|
synthetic |
A pèsè èsì láti cache; latency kì í ṣe àkókò upstream gidi |
| (kò sí) | Èsì láti inú ìpè upstream gidi |
Yíyẹ cache kọjá fún kọ́kọ́rọ́ kọ̀ọ̀kan
Àwọn kọ́kọ́rọ́ API lè jáde kúrò nínú kíka cache semantic nípasẹ̀ cacheDefaultMode:
| Iye | Ìhùwàsí |
|---|---|
legacy |
Ìhùwàsí cache déédéé (àkọ́kọ́) |
bypass |
Fò àwárí cache kọjá pátápátá; máa lo upstream ní gbogbo ìgbà |
Ṣètò rẹ̀ nígbà ṣíṣẹ̀dá kọ́kọ́rọ́ (POST /api/keys) tàbí nígbà ìmúdójúìwọ̀n (PATCH /api/keys/[id]):
{ "cacheDefaultMode": "bypass" }
Yíyẹ cache kọjá fún ìbéèrè kọ̀ọ̀kan
Ìbéèrè èyíkéyìí lè yọ cache sílẹ̀ láìka àwọn ètò kọ́kọ́rọ́ sí:
X-OmniRoute-No-Cache: true
Pátákó Ìṣàkóso & Ìṣàkóso
Àwọn ipa-ọ̀nà ìṣàkóso (/api/* àyàfi ìfàṣẹ̀sí/wíwọlé gbogbogbòò) kò gba àṣẹ láti ọ̀dọ̀ àwọn kọ́kọ́rọ́ API ìtọ́kasí lásán.
Àwọn ìdílé ẹ̀rí ìdánimọ̀, àwọn ààlà àṣẹ, àti àwọn àpẹẹrẹ curl:
Ìfàṣẹ̀sí Ìṣàkóso.
Ìfàṣẹ̀sí
| Ojú-ọ̀nà | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/auth/login |
POST | Wíwọlé |
/api/auth/logout |
POST | Jíjáde |
/api/settings/require-login |
GET/PUT | Tan/pa àìní fún wíwọlé |
Ìṣàkóso Olùpèsè
| Ojú-ọ̀nà | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/providers |
GET/POST | Ṣàfihàn / ṣẹ̀dá àwọn olùpèsè |
/api/providers/[id] |
GET/PUT/DELETE | Ṣàkóso olùpèsè kan |
/api/providers/[id]/test |
POST | Dán àsopọ̀ olùpèsè wò |
/api/providers/[id]/models |
GET | Ṣàfihàn àwọn àwòṣe olùpèsè |
/api/providers/validate |
POST | Fìdí ìṣètò olùpèsè múlẹ̀ |
/api/providers/bulk |
POST | Ṣàfikún àwọn kọ́kọ́rọ́ API lọ́pọ̀lọpọ̀ fún olùpèsè KAN |
/api/providers/import |
POST | Gbé ÀKÓJỌ àwọn olùpèsè onírúurú wọlé láti inú fáìlì CSV/JSON tí a ti túpalẹ̀ (#6836); àwọn àbájáde ìkùnà-apá kan fún ìlà kọ̀ọ̀kan |
/api/provider-nodes* |
Onírúurú | Ìṣàkóso nóòdù olùpèsè |
/api/provider-models |
GET/POST/PATCH/DELETE | Àwọn àwòṣe àkànṣe (ṣàfikún, ṣe ìmúdójúìwọ̀n, fi pamọ́/ṣàfihàn, parẹ́) |
Àwọn Ìṣàn OAuth
| Ojú-ọ̀nà | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/oauth/[provider]/[action] |
Onírúurú | OAuth tó jẹ́ ti olùpèsè pàtó |
Ìdarí Ọ̀nà & Ìṣètò
| Ojú-ọ̀nà | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/models/alias |
GET/POST | Àwọn orúkọ ìnagijẹ àwòṣe |
/api/models/catalog |
GET | Gbogbo àwòṣe gẹ́gẹ́ bí olùpèsè + irú |
/api/combos* |
Onírúurú | Ìṣàkóso àkójọpọ̀ |
/api/keys* |
Onírúurú | Ìṣàkóso kọ́kọ́rọ́ API |
/api/pricing |
GET | Ìdíyelé àwòṣe |
Ìlò & Ìtúpalẹ̀
| Òpin-ọ̀nà | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/usage/history |
GET | Ìtàn lílò |
/api/usage/logs |
GET | Àwọn àkọsílẹ̀ lílò |
/api/usage/request-logs |
GET | Àwọn àkọsílẹ̀ ní ìpele ìbéèrè |
/api/usage/[connectionId] |
GET | Lílò fún ìsopọ̀ kọ̀ọ̀kan |
/api/usage/token-limits |
GET/POST/DELETE | Àwọn ìṣúná ààlà token fún kọ́kọ́rọ́ API kọ̀ọ̀kan |
/api/usage/model-latency-stats |
GET | Àkójọpọ̀ àyíká ti ìdádúró fún olùpèsè/model kọ̀ọ̀kan (avg/p50/p95/p99, ìwọ̀n àṣeyọrí); àwọn àsẹ̀: windowHours/minSamples/maxRows/provider/model (#6873) |
/api/usage/cache-health |
GET | Àkótán ìlera ibi ìpamọ́ prompt lórí call_logs — ìpín kíkọ/kíkà, ìpínkiri ìwọ̀n-kíkọ p50/p90/p99, ìkojúpọ̀ kíkọ tó pọ̀, ìpín nípa model kọ̀ọ̀kan, àti ìdájọ́ healthy/degraded/thrash/no-data; àwọn paramita ìbéèrè range (1h|24h|7d|30d, àìyípadà 24h) àti model àṣàyàn (#8827) |
Àwọn Ètò
| Òpin-ọ̀nà | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/settings |
GET/PUT/PATCH | Àwọn ètò gbogbogbò |
/api/settings/proxy |
GET/PUT | Àtúnṣe proxy nẹ́tíwọ́ọ̀kì |
/api/settings/proxy/test |
POST | Ṣe àyẹ̀wò ìsopọ̀ proxy |
/api/settings/ip-filter |
GET/PUT | Àkójọ IP tí a fàyè gba/dènà |
/api/settings/thinking-budget |
GET/PUT | Ìpo àtúkọ ìbéèrè fún èrò/ìrònú (passthrough / auto-strip / custom / adaptive). Ó dá dúró lọ́tọ̀ sí ìfúnpọ̀. Wo THINKING_BUDGET.md. |
/api/settings/system-prompt |
GET/PUT | Prompt ètò gbogbogbò |
/api/settings/compression |
GET/PUT | Àtúnṣe ìfúnpọ̀ gbogbogbò |
/api/settings/purge-request-history |
POST | Pa àwọn ìlà àkọsílẹ̀ ìbéèrè àti àwọn ohun èlò àkọsílẹ̀ ìpè agbègbè rẹ́ |
Àyíká-ọ̀rọ̀ & Ìfúnpọ̀
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/compression/preview |
POST | Ṣàkọ́kọ́-wo ìfúnpọ̀ off/lite/standard/aggressive/ultra/RTK/stacked |
/api/compression/language-packs |
GET | Ṣàkójọ àwọn àkójọpọ̀ èdè Caveman tó wà |
/api/compression/rules |
GET | Ṣàkójọ metadata àwọn òfin Caveman |
/api/context/caveman/config |
GET/PUT | Orúkọ àfikún fún àwọn ètò tó jẹ́ ti Caveman |
/api/context/rtk/config |
GET/PUT | Àwọn ètò tó jẹ́ ti RTK, pẹ̀lú àwọn asẹ àdáni àti ìtọ́jú àbájáde àìṣẹ̀dá |
/api/context/rtk/filters |
GET | Kátálọ́ọ̀gù asẹ RTK àti àyẹ̀wò ìṣòro àwọn asẹ àdáni |
/api/context/rtk/test |
POST | Ṣiṣẹ́ àkọ́kọ́-wo/ìdánwò RTK lórí payload ọ̀rọ̀ kan |
/api/context/rtk/raw-output/[id] |
GET | Ka àbájáde àìṣẹ̀dá tí a ti bo àlàyé rẹ̀, tí a sì tọ́jú, nípa id atọ́ka |
/api/context/combos |
GET/POST | Ṣàkójọ/dá àpapọ̀ ìfúnpọ̀ sílẹ̀ |
/api/context/combos/[id] |
GET/PUT/DELETE | Àlàyé/ìṣàfikún/ìparẹ́ àpapọ̀ ìfúnpọ̀ |
/api/context/combos/[id]/assignments |
GET/PUT | Yan àwọn àpapọ̀ ìfúnpọ̀ sí àwọn àpapọ̀ ìdarí ipa-ọ̀nà |
/api/context/analytics |
GET | Orúkọ àfikún fún ìtúpalẹ̀ ìfúnpọ̀ |
Ìṣọ́ra
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/sessions |
GET | Ìtọ́pa àwọn ìgbà ìṣiṣẹ́ tó ń lọ lọ́wọ́ |
/api/rate-limits |
GET | Àwọn òpin ìwọ̀n fún àkọọ́lẹ̀ kọ̀ọ̀kan |
/api/monitoring/health |
GET | Àyẹ̀wò ìlera + àkótán olùpèsè (catalogCount, configuredCount, activeCount, monitoredCount). Ìwòye ìṣàkóso ní credentialHealth nínú: àwọn iye ẹyọkan cache ìwádìí, failedConnections nígbà tí failed>0, àti staleDbNonOkCount (test_status SQLite tó dúró ṣinṣin, kì í ṣe gauge náà). Wo MONITORING_GUIDE.md. |
/api/cache/stats |
GET/DELETE | Àwọn ìṣirò cache / pa á rẹ́ |
/api/modality-bridge/stats |
GET | attempts inú-memory, àwọn àṣeyọrí/bridged, àwọn ìkùnà, àwọn ìkànlù cache, totalLatencyMs, latencySamples, averageLatencyMs tí iye àpẹẹrẹ pín, àti àkókò lílò tó kẹ́yìn (ó tún padà síbẹ̀rẹ̀ nígbà àtúnṣe; ìfàṣẹ̀sí ìṣàkóso) |
/api/modality-bridge/video/runtime |
GET | Àyẹ̀wò trusted-loopback tó muna ṣáájú ìfàṣẹ̀sí/ìwádìí ìṣàkóso; wíwà FFmpeg/ffprobe àti àwọn version tí a ti fọ́ mọ́ (no-store) |
/api/modality-bridge/video/extract |
POST | Alárinà byte trusted-loopback inú-iṣẹ́ tó ní ìfàṣẹ̀sí; ìwọlé 50 MiB, ìlà tó ní ààlà/àbájáde 32 MiB, agbára 503, ìjáwọ́ 499, àkókò ìparí 504; kì í ṣe API ìrùsókè gbogbogbò |
Àfẹ́yinti & Gbigbe Jáde/Gbigbe Wọlé
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/db-backups |
GET | Ṣàkójọ àwọn àfẹ́yìntì tó wà |
/api/db-backups |
PUT | Ṣẹ̀dá àfẹ́yìntì afọwọ́ṣe |
/api/db-backups |
POST | Mú padà láti inú àfẹ́yìntì kan pàtó |
/api/db-backups/export |
GET | Ṣe ìgbàsílẹ̀ ibi ìpamọ́ dátà gẹ́gẹ́ bí fáìlì .sqlite |
/api/db-backups/import |
POST | Ṣe àgbérù fáìlì .sqlite láti fi rọ́pò ibi ìpamọ́ dátà |
/api/db-backups/exportAll |
GET | Ṣe ìgbàsílẹ̀ àfẹ́yìntì kíkún gẹ́gẹ́ bí àkójọpọ̀ .tar.gz |
Ìṣiṣẹ́pọ̀ Àwọsánmà
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/sync/cloud |
Oríṣiríṣi | Àwọn iṣẹ́ ìṣiṣẹ́pọ̀ àwọsánmà |
/api/sync/initialize |
POST | Bẹ̀rẹ̀ ìṣiṣẹ́pọ̀ |
/api/cloud/* |
Oríṣiríṣi | Ìṣàkóso àwọsánmà |
Àwọn Túnẹ́lì
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/tunnels/cloudflared |
GET | Ka ipò ìfisí/ìṣiṣẹ́ Cloudflare Quick Tunnel fún pánẹ́ẹ̀lì ìṣàkóso |
/api/tunnels/cloudflared |
POST | Mú Cloudflare Quick Tunnel ṣiṣẹ́ tàbí pa á (action=enable/disable) |
/api/tunnels/ngrok |
GET | Ka ipò ìṣiṣẹ́ ngrok Tunnel fún pánẹ́ẹ̀lì ìṣàkóso |
/api/tunnels/ngrok |
POST | Mú ngrok Tunnel ṣiṣẹ́ tàbí pa á (action=enable/disable) |
Àwọn Irinṣẹ́ CLI
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/cli-tools/claude-settings |
GET | Ipò Claude CLI |
/api/cli-tools/codex-settings |
GET | Ipò Codex CLI |
/api/cli-tools/droid-settings |
GET | Ipò Droid CLI |
/api/cli-tools/openclaw-settings |
GET | Ipò OpenClaw CLI |
/api/cli-tools/runtime/[toolId] |
GET | Àkókò-ṣiṣe CLI gbogbogbòò |
Àwọn èsì CLI ní: installed, runnable, command, commandPath, runtimeMode, reason.
Àwọn Aṣojú ACP
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/acp/agents |
GET | Ṣàkójọ gbogbo àwọn aṣojú tí a ṣàwárí (tí a kọ sínú rẹ̀ + àdáni) pẹ̀lú ipò wọn |
/api/acp/agents |
POST | Ṣàfikún aṣojú àdáni tàbí sọ ibi ìpamọ́ ìṣàwárí di ọ̀tun |
/api/acp/agents |
DELETE | Yọ aṣojú àdáni kúrò nípasẹ̀ párámítà ìbéèrè id |
Èsì GET ní agents[] (id, name, binary, version, installed, protocol, isCustom) àti summary (total, installed, notFound, builtIn, custom).
Ìfaradà & Àwọn Ààlà Ìwọ̀n
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/resilience |
GET/PATCH | Gba/ṣe àtúnṣe ìlà ìbéèrè, àkókò ìtutù àsopọ̀, olùdádúró olùpèsè, àti àwọn ètò ìdúró |
/api/resilience/reset |
POST | Tún àwọn olùdádúró sákítì olùpèsè ṣe |
/api/resilience/model-cooldowns |
GET | Ṣàkójọ àwọn ìdènà tó ń ṣiṣẹ́ fún ọ̀kọ̀ọ̀kan (olùpèsè, àsopọ̀, módẹ́ẹ̀lì), tí a tò nípasẹ̀ àkókò tó kù |
/api/resilience/model-cooldowns |
DELETE | Pa ìdènà módẹ́ẹ̀lì rẹ́ — ara {provider, model} tàbí {all: true} láti pa gbogbo rẹ̀ |
/api/rate-limits |
GET | Ipò ààlà ìwọ̀n fún àkọọ́lẹ̀ kọ̀ọ̀kan |
/api/rate-limit |
GET | Ìṣètò ààlà ìwọ̀n gbogbogbòò |
Gbogbo àwọn ipa ọ̀nà
/api/resilience/*mẹ́rẹ̀ẹ̀rin nílò ìfàṣẹsí ìṣàkóso (requireManagementAuth). Wo Ìfaradà (àfikún) fún àlàyé kíkún nípa olùdádúró olùpèsè ní ìfiwéra pẹ̀lú àkókò ìtutù àsopọ̀ àti ìdènà módẹ́ẹ̀lì.
Àwọn Ìdánwò Ìṣírò
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/evals |
GET/POST | Ṣàkójọ àwọn àkójọpọ̀ ìdánwò / ṣe ìdánwò |
Àwọn Ìlànà
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/policies |
GET/POST/DELETE | Ṣàkóso àwọn ìlànà ìdarí ipa ọ̀nà |
Ìbámu
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/compliance/audit-log |
GET | Àkọsílẹ̀ àyẹ̀wò ìbámu (N tó kẹ́yìn) |
v1beta (Tó Bá Gemini Mu)
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/v1beta/models |
GET | Ṣàkójọ àwọn módẹ́ẹ̀lì ní fọ́ọ̀mù Gemini |
/v1beta/models/{...path} |
POST | Endpoint Gemini generateContent |
Àwọn endpoint wọ̀nyí ń ṣe àfarawé fọ́ọ̀mù API Gemini fún àwọn oníbàárà tó nílò ìbámu pẹ̀lú Gemini SDK abinibi.
Àwọn API Abẹ́nú / Ẹ̀rọ
| Endpoint | Ọ̀nà | Àpèjúwe |
|---|---|---|
/api/init |
GET | Àyẹ̀wò ìpilẹ̀ṣẹ̀ ètò (tí a máa ń lò nígbà ìṣiṣẹ́ àkọ́kọ́) |
/api/tags |
GET | Àwọn àmì àwòṣe tó bá Ollama mu (fún àwọn oníbàárà Ollama) |
/api/restart |
POST | Bẹ̀rẹ̀ àtúnṣí olupin lọ́nà tó bójú mu |
/api/shutdown |
POST | Bẹ̀rẹ̀ ìdádúró olupin lọ́nà tó bójú mu |
/api/system/env/repair |
POST | Ṣàtúnṣe àwọn àyípadà àyíká olùpèsè OAuth |
Àkíyèsí: Ètò náà máa ń lo àwọn endpoint wọ̀nyí ní inú rẹ̀ tàbí fún ìbámu pẹ̀lú oníbàárà Ollama. Àwọn olùlò ìkẹyìn kì í sábà pè wọ́n.
Àtúnṣe Àyíká OAuth (v3.6.1+)
POST /api/system/env/repair
Content-Type: application/json
{
"provider": "claude-code"
}
Ó máa ń ṣàtúnṣe àwọn àyípadà àyíká OAuth tó sọnù tàbí tó bàjẹ́ fún olùpèsè kan pàtó. Ó máa ń dá èyí padà:
{
"success": true,
"repaired": ["CLAUDE_CODE_OAUTH_CLIENT_ID", "CLAUDE_CODE_OAUTH_CLIENT_SECRET"],
"backupPath": "/home/user/.omniroute/backups/env-repair-2026-04-11.bak"
}
Ìkọ̀wé Ohùn sí Ọ̀rọ̀
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
Ṣe ìkọ̀wé àwọn fáìlì ohùn sí ọ̀rọ̀ nípa lílo olùpèsè STT èyíkéyìí tí a ti ṣètò. Apá àkọ́kọ́ ọ̀nà náà
ń yan olùpèsè abínibí (openai/…, deepgram/…). Àwọn ẹnu-ọ̀nà tí
ń tún àwòṣe olùtajà mìíràn gbé jáde máa ń lo id tó ní àfikún orúkọ
(openrouter/deepgram/nova-3).
Ìbéèrè:
curl -X POST http://localhost:20128/v1/audio/transcriptions \
-H "Authorization: Bearer your-api-key" \
-F "file=@recording.mp3" \
-F "model=openai/whisper-1"
Ìdáhùn:
{
"text": "Hello, this is the transcribed audio content.",
"task": "transcribe",
"language": "en",
"duration": 12.5
}
Àwọn àpẹẹrẹ id àwòṣe: openai/whisper-1 (ó nílò kọ́kọ́rọ́ OpenAI),
openrouter/deepgram/nova-3 (ó nílò kọ́kọ́rọ́ OpenRouter),
deepgram/nova-3 (ó nílò kọ́kọ́rọ́ Deepgram abínibí). Ìbéèrè
deepgram/nova-3 lásán kì í lo OpenRouter.
Àwọn ìgúnrégé tí a ṣe àtìlẹ́yìn fún: mp3, wav, m4a, flac, ogg, webm.
Ìbámu Pẹ̀lú Ollama
Fún àwọn kíláyẹ́ǹtì tí ń lo ìgúnrégé API Ollama:
# Ojú-ọ̀nà ìfọ̀rọ̀wérọ̀ (ìgúnrégé Ollama)
POST /v1/api/chat
# Àtòjọ àwọn àwòṣe (ìgúnrégé Ollama)
GET /api/tags
A máa ń túmọ̀ àwọn ìbéèrè láìfọwọ́ṣe láàárín àwọn ìgúnrégé Ollama àti ti inú ètò.
Àwọn Orúkọ Ìpè Tokenized fún VS Code / Tí Kò Ní Header
Lo àwọn orúkọ ìpè wọ̀nyí nígbà tí ìsopọ̀ kan kò bá lè fi header Authorization kún un, tí ó sì nílò kí a fi kọ́kọ́rọ́ API sínú URL ìpìlẹ̀.
# Orúkọ ìpè àkójọ-ọjà tó dà bíi ti OpenAI
GET /api/v1/vscode/{token}/
GET /api/v1/vscode/{token}/models
# Àwọn orúkọ ìpè ìfọ̀rọ̀wérọ̀ tó dà bíi ti OpenAI
POST /api/v1/vscode/{token}/chat/completions
POST /api/v1/vscode/{token}/responses
# Àwọn orúkọ ìpè tó dà bíi ti Ollama
POST /api/v1/vscode/{token}/api/chat
GET /api/v1/vscode/{token}/api/tags
Àpẹẹrẹ:
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"}]}'
Àwọn àkíyèsí:
- Àwọn orúkọ ìpè tokenized náà tún ń lo àwọn olùdarí kan náà bíi
/v1/*àti/api/tags; ìrísí àwọn ìdáhùn ṣì máa ń jẹ́ ọ̀kan náà. - Yan
Authorization: Bearer ...nígbàkigbà tí kíláyẹ́ǹtì bá ṣe àtìlẹ́yìn fún àwọn header àdáni. - Àwọn token tó dá lórí URL lè hàn nínú àwọn àkọsílẹ̀ reverse-proxy, ìtàn aṣàwákiri, àti telemetry ní òde OmniRoute. Ka wọ́n sí ọ̀nà àṣàyàn fún ìbámu, kì í ṣe ọ̀nà ìfàṣẹsí àìyípadà.
Telemetry
# Gba àkótán telemetry ìdádúró (p50/p95/p99 fún olùpèsè kọ̀ọ̀kan)
GET /api/telemetry/summary
Ìdáhùn:
{
"providers": {
"claudeCode": { "p50": 245, "p95": 890, "p99": 1200, "count": 150 },
"github": { "p50": 180, "p95": 620, "p99": 950, "count": 320 }
}
}
Ìnáwó Tí A Yàn Sílẹ̀
# Gba ipò ìnáwó tí a yàn sílẹ̀ fún gbogbo kọ́kọ́rọ́ API
GET /api/usage/budget
# Ṣètò tàbí ṣe ìmúdójúìwọ̀n ìnáwó tí a yàn sílẹ̀
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"
}
Àwọn àkíyèsí schema (
setBudgetSchema):apiKeyIdjẹ́ dandan; ó kéré tán, ọ̀kan láradailyLimitUsd,weeklyLimitUsd, tàbímonthlyLimitUsdgbọ́dọ̀ ju òdo lọ. Àwọn field àṣàyàn:warningThreshold(0–1),resetInterval(daily|weekly|monthly),resetTime(HH:MM). Ìrísí àtijọ́{keyId, limit, period}máa ń dá400 Bad Requestpadà.
Àwọn Ààlà Token
Àwọn ìṣúná token fún kọ́kọ́rọ́ API kọ̀ọ̀kan (tí ó yàtọ̀ sí Ìṣúná tó dá lórí USD lókè). A ń fipá mú wọn ṣiṣẹ́ lẹ́sẹ̀kẹsẹ̀ lórí ipa-ọ̀nà ìbéèrè: nígbà tí lílò kọ́kọ́rọ́ kan nínú àkókò rẹ̀ bá dé ààlà rẹ̀, a ó kọ àwọn ìbéèrè pẹ̀lú 429 Too Many Requests. A lè fi ààlà kan mọ́ model kan pàtó, provider kan, tàbí kí a lò ó ní global káàkiri kọ́kọ́rọ́ náà; nígbà tí ọ̀pọ̀ ààlà bá bá ìbéèrè kan mu, èyí tó le jù lọ ni yóò borí.
# Ṣàfihàn àwọn ààlà token kọ́kọ́rọ́ kan (pẹ̀lú lílò àkókò lọ́wọ́lọ́wọ́)
GET /api/usage/token-limits?apiKeyId=key-123
# Ṣẹ̀dá tàbí ṣàfikún ààlà token kan
POST /api/usage/token-limits
Content-Type: application/json
{
"apiKeyId": "key-123",
"scopeType": "model",
"scopeValue": "openai/gpt-4o",
"tokenLimit": 1000000,
"resetInterval": "monthly",
"enabled": true
}
# Pa ààlà token kan rẹ́ nípasẹ̀ id
DELETE /api/usage/token-limits?id=tl-abc
Àwọn àkíyèsí schema (
setTokenLimitSchema):apiKeyIdàtiscopeType(model|provider|global) jẹ́ dandan.scopeValuejẹ́ dandan àyàfi tíscopeTypebá jẹ́global(fún àpẹẹrẹ, id model fún ìwọ̀nmodel, id provider fún ìwọ̀nprovider).tokenLimitgbọ́dọ̀ jẹ́ odidi rere (a ń yí i padà láti inú string). Àwọn ohun àṣàyàn:id(má ṣe fi kún un láti ṣẹ̀dá, fi kún un láti ṣe àfikún),resetInterval(daily|weekly|monthly, àìyípadà rẹ̀ jẹ́monthly),resetTime(HH:MM),enabled(àìyípadà rẹ̀ jẹ́true). Àwọn ìdáhùnGETń fitokensUsed,remaining,windowStart,periodStartAt, àtinextResetAtkún àlàyé ààlà kọ̀ọ̀kan. Èyí jẹ́ endpoint irú ìṣàkóso (a ń fipá mú ìfàṣẹsí ṣiṣẹ́ ní àárín gbùngbùn nípasẹ̀ pipeline authz).
Ṣíṣe Ìbéèrè
- Client fi ìbéèrè ránṣẹ́ sí
/v1/* - Route handler pe
handleChat,handleEmbedding,handleAudioTranscription, tàbíhandleImageGeneration - A yan model náà (provider/model tààrà tàbí alias/combo)
- A yan àwọn credentials láti inú DB agbègbè pẹ̀lú ṣíṣàyẹ̀wò wíwà account
- Fún chat:
handleChatCoreń ṣàyẹ̀wò cache semantic/signature, ó sì ń yan àwọn ètò compression combo - Compression ìṣáájú ń ṣiṣẹ́ kí ìtumọ̀ provider tó bẹ̀rẹ̀ nígbà tí a bá mú un ṣiṣẹ́ (
lite, Caveman, RTK, tàbí stacked) - Provider executor fi ìbéèrè ránṣẹ́ sí upstream
- A túmọ̀ ìdáhùn padà sí format client (chat) tàbí a dá a padà bí ó ṣe rí (embeddings/images/audio)
- A ṣàkọsílẹ̀ usage, àwọn analytics compression, àti àwọn log ìbéèrè
- Fallback ń ṣiṣẹ́ lórí àwọn àṣìṣe gẹ́gẹ́ bí àwọn òfin combo
Ìtọ́kasí architecture kíkún: ARCHITECTURE.md
Ìṣàkóso Combo
Àwọn combo routing tó wà ní ipele gíga (tí a ti ṣe àkópọ̀ wọn lábẹ́ /api/combos*) tún lè ní ìbáramu 1:1 láti inú pattern id model kan, èyí tó ń jẹ́ kí a lè darí id model irú OpenAI lọ sí combo láìsí ìdíwọ́.
| Ọ̀nà | Ipa-ọ̀nà | Àpèjúwe |
|---|---|---|
| GET | /api/model-combo-mappings |
Ṣàfihàn gbogbo àwọn ìbáramu model→combo |
| POST | /api/model-combo-mappings |
Ṣẹ̀dá ìbáramu — body: {pattern, comboId, priority?, enabled?, description?} |
| GET | /api/model-combo-mappings/[id] |
Gba ìbáramu kan ṣoṣo |
| PUT | /api/model-combo-mappings/[id] |
Ṣe àfikún àwọn field ìbáramu tó ti wà |
| DELETE | /api/model-combo-mappings/[id] |
Yọ ìbáramu kan kúrò |
Auth: session/API key ìṣàkóso (requireManagementAuth).
Àwọn Webhook
Àwọn ìforúkọsílẹ̀ webhook tí ń jáde fún àwọn ìṣẹ̀lẹ̀ OmniRoute (ìparí ìbéèrè, lílo ìpín tán, yíyí kọ́kọ́rọ́ padà, àti bẹ́ẹ̀ bẹ́ẹ̀ lọ).
| Ọ̀nà | Ipa-ọ̀nà | Àpèjúwe |
|---|---|---|
| GET | /api/webhooks |
Ṣàtòjọ àwọn webhook (àwọn aṣírí ni a fi <prefix>... bo) |
| POST | /api/webhooks |
Ṣẹ̀dá webhook — ara: {url, events?: ["*"], secret?, description?} |
| GET | /api/webhooks/[id] |
Gba webhook kan |
| PUT | /api/webhooks/[id] |
Ṣàfikún url/events/secret/description |
| DELETE | /api/webhooks/[id] |
Yọ webhook kan kúrò |
| POST | /api/webhooks/[id]/test |
Fi payload ìdánwò ránṣẹ́ sí URL webhook náà kí o sì dá ipò ìfiránṣẹ́ padà |
Ìfàṣẹsí: sáẹ́ṣọ̀nù ìṣàkóso/kọ́kọ́rọ́ API (requireManagementAuth).
Àwọn Kọ́kọ́rọ́ Tí A Forúkọ Sílẹ̀ (Ìṣàkóso Aládàáṣe)
Ètò abẹ́lẹ̀ ìṣàkóso kọ́kọ́rọ́ aládàáṣe ń lò ó láti pèsè àti yí àwọn kọ́kọ́rọ́ API padà pẹ̀lú olupèsè/àkọọ́lẹ̀ alátìlẹ́yìn, pẹ̀lú àwọn ìpín ojoojúmọ́/wákàtí.
| Ọ̀nà | Ipa-ọ̀nà | Àpèjúwe |
|---|---|---|
| GET | /api/v1/registered-keys |
Ṣàtòjọ àwọn kọ́kọ́rọ́ tí a forúkọ sílẹ̀ (prefix tí a bo nìkan) |
| POST | /api/v1/registered-keys |
Pèsè kọ́kọ́rọ́ tuntun tí a forúkọ sílẹ̀ — ara: {name, provider?, accountId?, idempotencyKey?, expiresAt?, dailyBudget?, hourlyBudget?}. Ó dá kọ́kọ́rọ́ gidi padà lẹ́ẹ̀kan ṣoṣo. Ó dá 429 padà bí a bá kọ̀ ọ́ nítorí ìpín. |
| GET | /api/v1/registered-keys/[id] |
Gba metadata kọ́kọ́rọ́ tí a forúkọ sílẹ̀ (láìsí ohun èlò gidi) |
| DELETE | /api/v1/registered-keys/[id] |
Fagilé kọ́kọ́rọ́ tí a forúkọ sílẹ̀ |
| POST | /api/v1/registered-keys/[id]/revoke |
Endpoint ìfagilé tààrà (ipa kan náà bí DELETE) |
Ìfàṣẹsí: Kọ́kọ́rọ́ API Bearer (isAuthenticated). Tún wo /v1/quotas/check àti /v1/issues/report.
Ilana Àwọn Aṣojú
Àwọn iṣẹ́ aṣojú awọsánmà (Claude Code, Codex Cloud, OpenHands, abbl.) tí a ń ṣiṣẹ́ láti ọ̀nà jíjìn ní orúkọ àwọn olumulo OmniRoute.
| Ọ̀nà | Ojú-ọ̀nà | Àpèjúwe |
|---|---|---|
| GET | /api/v1/agents/tasks |
Ṣàkọsílẹ̀ àwọn iṣẹ́ — ?provider=, ?status=, ?limit= jẹ́ àṣàyàn (1–500, àìyípadà 50) |
| POST | /api/v1/agents/tasks |
Ṣẹ̀dá iṣẹ́ — a fìdí body múlẹ̀ pẹ̀lú CreateCloudAgentTaskSchema (providerId, prompt, source, options?). Ó dá 201 padà pẹ̀lú àpò iṣẹ́ |
| DELETE | /api/v1/agents/tasks?id=... |
Pa iṣẹ́ kan rẹ́ |
| GET | /api/v1/agents/tasks/[id] |
Ka iṣẹ́ — ó máa ń sọ ipò di ọ̀tun lẹ́sẹ̀kẹsẹ̀ láti ọ̀dọ̀ aṣojú awọsánmà òkè nígbà tí a bá ṣètò external_id |
| POST | /api/v1/agents/tasks/[id] |
Ìgbésẹ̀ tí a yà sọ́tọ̀: {action: "approve"}, {action: "message", message}, tàbí {action: "cancel"} |
| DELETE | /api/v1/agents/tasks/[id] |
Pa iṣẹ́ pàtó kan rẹ́ nípasẹ̀ id |
Ìfàṣẹsí: a nílò ìfàṣẹsí ìṣàkóso lórí gbogbo ọ̀nà (
requireCloudAgentManagementAuth). Ṣáájú v3.8.0, wọn kò nílò ìfàṣẹsí — wo commit588a0333fún ìyípadà tí kò bá ẹ̀yà àtijọ́ mu.
# Ṣẹ̀dá iṣẹ́ awọsánmà Claude Code kan
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":"..."}}'
Àwọn Aṣojú-Àárín Ìṣàkóso
Àwọn aṣojú-àárín HTTP(S)/SOCKS jáde tí a lè fi fún àwọn olùpèsè, àwọn àkọọ́lẹ̀, tàbí fún gbogbo ètò.
| Ọ̀nà | Ojú-ọ̀nà | Àpèjúwe |
|---|---|---|
| GET | /api/v1/management/proxies |
Ṣàkọsílẹ̀ àwọn aṣojú-àárín (pẹ̀lú ?id= ó máa dá ọ̀kan padà; pẹ̀lú ?id=&where_used=1 ó máa dá àwòrán àsopọ̀ ìfiyàn padà) |
| POST | /api/v1/management/proxies |
Ṣẹ̀dá aṣojú-àárín — a fìdí body múlẹ̀ pẹ̀lú createProxyRegistrySchema |
| PATCH | /api/v1/management/proxies |
Ṣe àfikún aṣojú-àárín — a fìdí body múlẹ̀ pẹ̀lú updateProxyRegistrySchema (ó nílò id) |
| DELETE | /api/v1/management/proxies?id=...&force=1 |
Pa aṣojú-àárín rẹ́ (lo force=1 láti yọ àwọn ìfiyàn kúrò) |
| GET | /api/v1/management/proxies/assignments |
Ṣàkọsílẹ̀ àwọn ìfiyàn — a lè ṣe àlẹ̀mọ́ nípasẹ̀ proxy_id, scope, scope_id; fi resolve_connection_id=<id> ránṣẹ́ láti mọ aṣojú-àárín tó ń ṣiṣẹ́ fún àsopọ̀ kan |
| PUT | /api/v1/management/proxies/assignments |
Fìyàn — a fìdí body múlẹ̀ pẹ̀lú proxyAssignmentSchema ({scope, scopeId?, proxyId?}). Ó máa ń pa cache olùpín ká |
| PUT | /api/v1/management/proxies/bulk-assign |
Fìyàn lọ́pọ̀ — a fìdí body múlẹ̀ pẹ̀lú bulkProxyAssignmentSchema ({scope, scopeIds[], proxyId?}) |
| GET | /api/v1/management/proxies/health?hours=24 |
Àkójọpọ̀ ìlera aṣojú-àárín (iye àṣeyọrí/ìkùnà, ìdádúró) láàárín àkókò kan |
Ìfàṣẹsí: ìgbà ìṣàkóso/kọ́kọ́rọ́ API lórí gbogbo route (requireManagementAuth).
POST /api/v1/management/proxies/[id]/assignmentsàtiPOST /api/v1/management/proxies/[id]/healthinú àpèjúwe iṣẹ́ ni àwọn route pẹlẹbẹ/assignmentsàti/healthtí a fi hàn lókè ń bójú tó — kò sí àwọn subroute fún id kọ̀ọ̀kan nínú codebase náà.
Ìfaradà (àfikún)
OmniRoute ń pèsè àwọn ọ̀nà mẹ́ta tí kò gbára lé ara wọn fún ìkùnà onígbà díẹ̀; àwọn endpoint ìṣàkóso tó wà nísàlẹ̀ yìí ń jẹ́ kí àwọn olùṣàkóso ka wọn kí wọ́n sì ṣàtúnṣe wọn:
| Ìwọ̀n | Ibi ìpamọ́ ipò | Kíkà | Àtúnṣètò / ìparẹ́ |
|---|---|---|---|
| Olùdáwọ́dúró olùpèsè | domain_circuit_breakers + inú-memory |
/api/monitoring/health |
POST /api/resilience/reset |
| Àkókò ìdádúró àsopọ̀ | rateLimitedUntil lórí àwọn àsopọ̀ olùpèsè |
/api/rate-limits, /api/providers/[id] |
(ó máa ń tún ṣiṣẹ́ nígbà tí a bá nílò rẹ̀; parẹ́ rẹ̀ nípasẹ̀ provider PUT) |
| Ìdènà model | Ìforúkọsílẹ̀ wíwà model inú-memory | GET /api/resilience/model-cooldowns |
DELETE /api/resilience/model-cooldowns |
PATCH /api/resilience gba àwọn àtúnṣe olùdáwọ́dúró olùpèsè lábẹ́ providerBreaker.oauth àti providerBreaker.apikey. Profile kọ̀ọ̀kan ṣe àtìlẹ́yìn fún degradationThreshold, failureThreshold, àti resetTimeoutMs; àwọn field kan náà tún wà ní Dashboard → Settings → Resilience.
# Pa ìdènà model kan ṣoṣo rẹ́
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"}'
# Pa gbogbo ìdènà rẹ́
curl -X DELETE http://localhost:20128/api/resilience/model-cooldowns \
-H "Cookie: auth_token=..." \
-d '{"all":true}'
Fún ìtọ́kasí ẹ̀kúnrẹ́rẹ́ nípa ìlànà àti àwọn àìrídìmú olùdáwọ́dúró: wo CLAUDE.md → "Ipò Àkókò Ṣíṣiṣẹ́ Ìfaradà".
Àwọn Ọgbọ́n
Framework ọgbọ́n fún fífẹ̀ OmniRoute sí i pẹ̀lú àwọn handler àkànṣe tí a lè ṣiṣẹ́, pẹ̀lú àwọn ìsopọ̀ marketplace.
| Method | Path | Àpèjúwe |
|---|---|---|
| GET | /api/skills |
Ṣàkójọ àwọn ọgbọ́n tí a ti fi sílẹ̀ — a lè ṣe àlẹ̀mọ́ pẹ̀lú ?q=, ?mode=on|off|auto, ?source=skillsmp|skillssh|local, a sì pín wọn sí ojú ewé |
| GET | /api/skills/[id] |
Gba ọgbọ́n kan |
| PUT | /api/skills/[id] |
Ṣàfikún ọgbọ́n (orúkọ, àpèjúwe, mode, schema, handler, àwọn tag) |
| DELETE | /api/skills/[id] |
Yọ ọgbọ́n kan kúrò |
| POST | /api/skills/install |
Fi ọgbọ́n kan sílẹ̀ láti inú manifest aláìṣàtúnṣe — body: {name, version, description, schema:{input, output}, handlerCode, apiKeyId?} |
| GET | /api/skills/executions |
Ṣàkójọ àwọn ìṣiṣẹ́ ọgbọ́n àìpẹ́ (àkọsílẹ̀ àyẹ̀wò pẹ̀lú àwọn input/output/àkókò tí ó gba) |
| GET | /api/skills/marketplace?q=... |
Ṣàwárí/ṣàkójọ àwọn ohun tó gbajúmọ̀ láti marketplace SkillsMP (ó nílò ètò skillsmpApiKey) |
| POST | /api/skills/marketplace/install |
Fi ọgbọ́n kan sílẹ̀ nípasẹ̀ id láti SkillsMP |
| GET | /api/skills/skillssh?q=&limit= |
Ṣàwárí registry skills.sh |
| POST | /api/skills/skillssh/install |
Fi ọgbọ́n kan sílẹ̀ nípasẹ̀ id láti skills.sh |
Ìfàṣẹsí: session ìṣàkóso/API key. Àwọn route ìṣàwárí marketplace gba ìfàṣẹsí ìṣàkóso tàbí Bearer API key (isAuthenticated).
Ìrántí
Ibi ìpamọ́ ìrántí ìjíròrò/òtítọ́ tí ó dúró pẹ́, tí a fi ààlà sí fún kọ́kọ́ API / sáẹ́ṣọ̀nù kọ̀ọ̀kan.
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /api/memory |
Ṣàtòjọ àwọn ìrántí — ?apiKeyId=, ?type=, ?sessionId=, ?q=, pẹ̀lú ìpín ojú-ewé offset/limit tàbí page/limit |
| POST | /api/memory |
Ṣẹ̀dá ìrántí — ara tí Zod fọwọ́sí: {content, key, type?, sessionId?, apiKeyId?, metadata?, expiresAt?} |
| GET | /api/memory/[id] |
Gba ìrántí kan padà |
| DELETE | /api/memory/[id] |
Pa ìrántí kan rẹ́ |
| GET | /api/memory/health |
Ìlera ẹ̀ka ìrántí (àsopọ̀ DB, ẹ̀yìn embeddings, ipò atọ́ka vector) |
Ìfàṣẹsí: sáẹ́ṣọ̀nù ìṣàkóso/kọ́kọ́ API (requireManagementAuth). Àtòjọ type: FACTUAL, EPISODIC, SEMANTIC, PROCEDURAL (wo MemoryType nínú src/lib/memory/types.ts).
Sẹ́fà MCP
OmniRoute ní sẹ́fà Model Context Protocol tí a fi sínú rẹ̀ pẹ̀lú ọ̀nà ìgbéwọlé 3 (stdio, SSE, streamable-http) àti àwọn irinṣẹ́ tí a fi ààlà sí. Àwọn endpoint dashboard tí ó wà ní ìsàlẹ̀ yìí ń ka dátà ipò/àyẹ̀wò, wọ́n sì ń ṣe aṣojú àwọn ọ̀nà ìgbéwọlé HTTP.
| Ọ̀nà | Path | Àpèjúwe | |
|---|---|---|---|
| GET | /api/mcp/status |
Ìlù-ọkàn, ọ̀nà ìgbéwọlé, ipò ori ayélujára, ìpè tó kẹ́yìn, àwọn irinṣẹ́ tó ga jù, ìwọ̀n àṣeyọrí 24h | |
| GET | /api/mcp/tools |
Àtòjọ àwọn irinṣẹ́ MCP pẹ̀lú name, description, scopes, phase, auditLevel, sourceEndpoints |
|
| GET | /api/mcp/sse |
Ṣí ṣiṣàn SSE fún ọ̀nà ìgbéwọlé SSE (yóò dá 503 padà bí MCP bá jẹ́ aláìṣiṣẹ́ tàbí ọ̀nà ìgbéwọlé kò bá bára mu) |
|
| POST | /api/mcp/sse |
Fi férémù JSON-RPC ránṣẹ́ lórí ọ̀nà ìgbéwọlé SSE | |
| GET | /api/mcp/stream |
Ṣí ẹ̀gbẹ́ SSE ti ọ̀nà ìgbéwọlé Streamable HTTP (àwọn ìfiránṣẹ́ tí sẹ́fà bẹ̀rẹ̀) | |
| POST | /api/mcp/stream |
Fi férémù JSON-RPC ránṣẹ́ lórí ọ̀nà ìgbéwọlé Streamable HTTP | |
| DELETE | /api/mcp/stream |
Parí sáẹ́ṣọ̀nù Streamable HTTP kan | |
| GET | /api/mcp/audit |
Ṣèwádìí àkọsílẹ̀ àyẹ̀wò — ?limit=, ?offset=, ?tool=, `?success=true |
false, ?apiKeyId=` |
| GET | /api/mcp/audit/stats |
Àkójọpọ̀ àwọn ìṣirò àyẹ̀wò (àpapọ̀, ìwọ̀n àṣeyọrí, àárín iye àkókò, àwọn irinṣẹ́ tó ga jù) |
Ìfàṣẹsí: àwọn ọ̀nà ìgbéwọlé sse/stream ń tẹ̀lé ojú-ọ̀nà ìfàṣẹsí pàtó fún MCP (kọ́kọ́ Bearer API pẹ̀lú ààlà mcp); àwọn ipa-ọ̀nà status/tools/audit* ṣeé kà láti dashboard (kò nílò ìfàṣẹsí àfikún ju wíwọlé sí host dashboard lọ).
settings.mcpEnabledàtisettings.mcpTransportló ń darí àwọn ọ̀nà ìgbéwọlé HTTP méjèèjì — àìbáramu ọ̀nà ìgbéwọlé yóò dá400padà, ipò MCP tí kò ṣiṣẹ́ yóò sì dá503padà.
Olùpèsè A2A
OmniRoute ń pèsè ojú-ọ̀nà A2A (Agent-to-Agent) JSON-RPC 2.0 pẹ̀lú àbọ̀ REST fún àyẹ̀wò àti lílò dásíbọ́ọ̀du.
JSON-RPC
POST /a2a
Authorization: Bearer your-api-key # àṣàyàn ni àyàfi tí a bá ṣètò OMNIROUTE_API_KEY
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "message/send",
"params": {
"skill": "smart-routing",
"messages": [{"role": "user", "content": "Route this coding task"}]
}
}
Àwọn ọ̀nà tí a ṣàtìlẹ́yìn fún (gbogbo wọn wà lábẹ́ ìṣàkóso settings.a2aEnabled):
| Ọ̀nà | Àpèjúwe |
|---|---|
message/send |
Ìmúṣẹ ọgbọ́n amúṣiṣẹpọ; ó dá {task, artifacts, metadata} padà |
message/stream |
Ìmúṣẹ SSE aláṣàn fún àkójọpọ̀ ọgbọ́n kan náà |
tasks/get |
Gba iṣẹ́ kan nípasẹ̀ taskId |
tasks/cancel |
Fagilé iṣẹ́ kan nípasẹ̀ taskId |
Àwọn ọgbọ́n inú ètò: smart-routing, quota-management, provider-discovery, cost-analysis, health-report.
Káàdì Aṣojú
GET /.well-known/agent.json
Ó dá káàdì aṣojú A2A ti gbogbo ènìyàn padà (orúkọ, àpèjúwe, àwọn agbára, àkójọ ọgbọ́n, ètò ìfàṣẹsí) — a fi pamọ́ sínú kaṣe gbogbogbò fún wákàtí 1. Kò nílò ìfàṣẹsí.
Àwọn olùrànlọ́wọ́ REST
| Ọ̀nà | Ojú-ọ̀nà | Àpèjúwe |
|---|---|---|
| GET | /api/a2a/status |
A2A ṣiṣẹ́ + àwọn ìṣirò iṣẹ́ + àkótán káàdì aṣojú inú kaṣe |
| GET | /api/a2a/tasks |
Ṣàkójọ àwọn iṣẹ́ — ?state=submitted|working|completed|failed|cancelled, ?skill=, ?limit= (≤200), ?offset= |
| POST | /api/a2a/tasks |
(A kò tíì mú un ṣiṣẹ́ gẹ́gẹ́ bí olùrànlọ́wọ́ REST — ṣẹ̀dá nípasẹ̀ JSON-RPC message/send) |
| GET | /api/a2a/tasks/[id] |
Gba iṣẹ́ kan |
| POST | /api/a2a/tasks/[id]/cancel |
Fagilé iṣẹ́ kan |
Ìfàṣẹsí: àwọn olùrànlọ́wọ́ REST ń ṣiṣẹ́ láìsí ìfàṣẹsí ìṣàkóso (dásíbọ́ọ̀du lè kà wọ́n); ojú-ọ̀nà JSON-RPC /a2a ń lo Bearer OMNIROUTE_API_KEY tí a bá ti ṣètò rẹ̀.
Cloud, Àwọn Evals & Ìṣàyẹ̀wò
| Ọ̀nà | Ojú-ọ̀nà | Àpèjúwe | ||
|---|---|---|---|---|
| POST | /api/cloud/auth |
Jẹ́rìí kọ́kọ́rọ́ Bearer kan, kí o sì dá àwọn àsopọ̀ olùpèsè tí a fi dí apá kan padà pẹ̀lú àwọn orúkọ àpèlé awoṣe fún àwọn oníbàárà ìmúdọ́gba cloud | ||
| POST | /api/cloud/credentials/update |
Ṣàfikún àwọn ẹ̀rí ìdánimọ̀ tí a paroko fún olùpèsè kan tí a mú dọ́gba pẹ̀lú cloud | ||
| POST | /api/cloud/model/resolve |
Yanjú id awoṣe ọgbọ́n-orí sí olùpèsè/awoṣe pàtó ní lílo tábìlì ìtọ́sọ́nà agbègbè | ||
| GET | /api/cloud/models/alias |
Ṣàkójọ àwọn orúkọ àpèlé awoṣe bí a ṣe fi wọ́n hàn fún ìmúdọ́gba cloud | ||
| GET | /api/assess |
Ka àwọn ìṣàsọ̀rí ìṣàyẹ̀wò tuntun jù lọ (fún olùpèsè/awoṣe kọ̀ọ̀kan) | ||
| POST | /api/assess |
Ṣe ìṣàyẹ̀wò kan — ara: `{scope: {type:"all"} | {type:"provider", providerId} | {type:"model", modelId}, trigger?}` |
| GET | /api/evals |
Ṣàkójọ àwọn àkójọpọ̀ eval inú ètò + àwọn ìṣiṣẹ́ tuntun jù lọ | ||
| POST | /api/evals |
Bẹ̀rẹ̀ ìṣiṣẹ́ eval kan | ||
| POST | /api/evals/suites |
Ṣẹ̀dá àkójọpọ̀ eval àkànṣe kan — a jẹ́rìí ara rẹ̀ pẹ̀lú evalSuiteSaveSchema |
||
| GET | /api/evals/suites/[id] |
Gba àkójọpọ̀ eval àkànṣe kan |
Ìfàṣẹsí: /api/cloud/auth ń jẹ́rìí kọ́kọ́rọ́ Bearer kan ní tààrà; àwọn ojú-ọ̀nà /api/cloud/*, /api/evals/*, àti /api/assess yòókù nílò sáà ìṣàkóso/kọ́kọ́rọ́ API. POST /api/assess ń lo validateBody pẹ̀lú schema scope discriminated-union kan.
Ìṣàkóso ACP (Agent Client Protocol)
gẹ́gẹ́ bí àwọn ìlànà ọmọ. Àwọn endpoint wọ̀nyí ń ṣàkóso ìṣàwárí agent ACP àti ìforúkọsílẹ̀ agent àkànṣe.
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /api/acp/agents |
Ṣe àtòjọ gbogbo àwọn agent CLI tí a mọ̀ (tí a kọ sínú rẹ̀ + àkànṣe), pẹ̀lú ipò ìṣàgbékalẹ̀, version, àti binary |
| POST | /api/acp/agents |
Forúkọsílẹ̀ agent ACP àkànṣe kan tàbí sọ cache di tuntun — body: {id, name, binary, versionCommand, providerAlias, spawnArgs, protocol} tàbí {action: "refresh"} |
| DELETE | /api/acp/agents |
Yọ agent ACP àkànṣe kan kúrò — query param: ?id=<agentId> |
Àpẹẹrẹ ìdáhùn (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
}
Ìfàṣẹsí: Ó nílò session ìṣàkóso (cookie auth_token dashboard) tàbí
kọ́kọ́rọ́ API tí ó ní scope ìṣàkóso.
Wo Framework ACP fún àwọn àlàyé kíkún.
Ìtúpalẹ̀ & Àkíyèsí
Àwọn endpoint ìtúpalẹ̀ ní àkókò gidi fún ṣíṣe àbójútó routing, compression, àti
oríṣiríṣi provider. Àwọn wọ̀nyí ni ó ń mú àwọn ojúewé /dashboard/analytics/* ṣiṣẹ́.
Ìtúpalẹ̀ auto-routing
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /api/analytics/auto-routing |
Àkójọpọ̀ àwọn ìṣirò auto-routing: àpapọ̀ àwọn ìpè, pípín strategy, pípín tier, àwọn provider tó ga jù |
| GET | /api/analytics/auto-routing?days=7 |
Àwọn ìṣirò tí a pín sí àkókò pàtó (àìyípadà jẹ́ 24h) |
Àpẹẹrẹ ìdáhùn:
{
"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 }
]
}
Ìtúpalẹ̀ compression
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /api/analytics/compression |
Àkójọpọ̀ àwọn ìṣirò compression: àwọn token tí a fipamọ́, ìdá ọgọ́rùn-ún ìfipamọ́, pípín mode, lílo engine |
Àpẹẹrẹ ìdáhùn:
{
"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
}
}
Títọpin oríṣiríṣi provider
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /api/analytics/diversity |
Títọpin oríṣiríṣi tí ó dá lórí entropy Shannon: ó ń dènà ibi ìkùnà kan ṣoṣo nípa dídiwọ̀n bí lílo provider ṣe tàn káàkiri |
Àpẹẹrẹ ìdáhùn:
{
"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"]
}
Ìfàṣẹsí: Ó nílò session ìṣàkóso tàbí kọ́kọ́rọ́ API tí ó ní scope ìṣàkóso.
Àwọn Ìṣiṣẹ́ Alábòójútó
Àwọn endpoint fún alábòójútó nìkan láti ṣàkóso àwọn ìṣiṣẹ́.
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /api/admin/concurrency |
Ka àwọn ààlà concurrency lọ́wọ́lọ́wọ́ (àpapọ̀ + fún provider kọ̀ọ̀kan) |
| POST | /api/admin/concurrency |
Ṣàfikún àwọn ààlà concurrency — body: {global?: number, perProvider?: Record<string, number>} |
Ìfàṣẹsí: Ó nílò session ìṣàkóso pẹ̀lú scope alábòójútó.
Ìṣàkóso Àwọn Irinṣẹ́ CLI
Ṣàkóso àwọn irinṣẹ́ CLI tí ń ṣiṣẹ́ pọ̀ mọ́ OmniRoute (antigravity, chipotle, commandCode, devin-cli, àti bẹ́ẹ̀ bẹ́ẹ̀ lọ). Wo Ìtọ́kasí Provider fún àtòjọ kíkún.
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /api/cli-tools/all-statuses |
Ipò gbogbo àwọn irinṣẹ́ CLI (tí a ti fi sílẹ̀, version, ìgbà tí a rí i kẹ́yìn) |
| GET | /api/cli-tools/status |
Àlàyé ipò fún irinṣẹ́ CLI kan (?tool= query) |
| POST | /api/cli-tools/apply |
Kọ config tí irinṣẹ́ kan ṣe (dryRun ń ṣàfihàn àwòtẹ́lẹ̀; 422 + containerEphemeralTarget nígbà tí ó wà nínú container; migration ń ṣàkọsílẹ̀ Codex YAML àtijọ́) |
| GET | /api/cli-tools/backups |
Ṣàkójọ àwọn backup config irinṣẹ́ CLI |
| POST | /api/cli-tools/backups |
Ṣẹ̀dá backup gbogbo àwọn config irinṣẹ́ CLI |
| POST | /api/cli-tools/backups |
Mú padà: endpoint kan náà pẹ̀lú {tool, backupId} nínú body yóò mú backup náà padà |
| GET | /api/cli-tools/antigravity-mitm |
Ipò proxy MITM Antigravity (irinṣẹ́ CLI "antigravity-mitm") |
| POST | /api/cli-tools/antigravity-mitm/alias |
Ṣètò àwọn alias antigravity-mitm |
Ìfàṣẹsí: Ó nílò session ìṣàkóso.
Àwọn Ọgbọ́n Agent
Ṣàkóso àwọn ọgbọ́n agent AI (ó jọ àwọn GPT àdáni ti OpenAI, ṣùgbọ́n fún àwọn agent).
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /api/agent-skills |
Ṣàkójọ gbogbo àwọn ọgbọ́n agent (tí a kọ sínú rẹ̀ + àdáni) |
| GET | /api/agent-skills/[id] |
Gba ọgbọ́n agent pàtó kan |
| POST | /api/agent-skills |
Ṣẹ̀dá ọgbọ́n agent àdáni — body: {name, description, prompt, model?, temperature?} |
| PUT | /api/agent-skills/[id] |
Ṣàfikún ọgbọ́n agent àdáni kan |
| DELETE | /api/agent-skills/[id] |
Pa ọgbọ́n agent àdáni kan rẹ́ |
| GET | /api/agent-skills/[id]/raw |
Gba prompt àìṣàtúnṣe + metadata (láìsí ìmúṣiṣẹ́) |
| POST | /api/agent-skills/generate |
Lo AI láti ṣẹ̀dá ọgbọ́n tuntun láti inú àpèjúwe èdè àdánidá |
Ìfàṣẹsí: Ó nílò session ìṣàkóso tàbí API key tí ó ní scope ìṣàkóso.
Ìṣàkóso Cache
Ṣàkóso semantic cache àti reasoning cache.
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /api/cache |
Àkópọ̀ cache: àpapọ̀ àwọn àkọsílẹ̀, ìwọ̀n àṣeyọrí lílò cache, àti ìwọ̀n lórí disk |
| GET | /api/cache/entries |
Ṣàkójọ àwọn àkọsílẹ̀ inú cache (pẹ̀lú pagination) |
| DELETE | /api/cache/entries |
Pa àwọn àkọsílẹ̀ inú cache rẹ́ (ṣe àlẹ̀mọ́ pẹ̀lú àwọn query parameters) |
| GET | /api/cache/stats |
Ìṣirò cache tó kún fún ẹ̀kúnrẹ́rẹ́ (fún provider kọ̀ọ̀kan àti model kọ̀ọ̀kan) |
| GET | /api/cache/reasoning |
Ipò reasoning cache (fún ṣíṣe reasoning replay) |
| DELETE | /api/cache/reasoning |
Pa reasoning cache rẹ́ — query params: ?toolCallId=<id> (ọ̀kan ṣoṣo) tàbí ?provider=<p> tàbí láìsí params (gbogbo rẹ̀) |
Ìfàṣẹsí: Ó nílò management session.
Ètò Memory
Ṣàkóso memory tó wà pẹ́ títí (FTS5 + vector embeddings).
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /api/memory |
Ṣàkójọ àwọn àkọsílẹ̀ memory (ṣe àlẹ̀mọ́ nípa scope, type, àti search query) |
| POST | /api/memory |
Ṣẹ̀dá àkọsílẹ̀ memory tuntun — body: {scope, type, content, metadata?} |
| GET | /api/memory/[id] |
Gba àkọsílẹ̀ memory kan pàtó |
| PUT | /api/memory/[id] |
Ṣe àfikún sí àkọsílẹ̀ memory kan |
| DELETE | /api/memory/[id] |
Pa àkọsílẹ̀ memory kan rẹ́ |
| GET | /api/memory?q= |
Ṣàwárí memory (FTS5 + vector) — àwọn ìṣirò wà nínú ìdáhùn kan náà |
Ìfàṣẹsí: Ó nílò management session tàbí API key tó ní management scope.
Webhooks
Ṣàkóso àwọn subscription webhook fún àwọn event.
| Ọ̀nà | Path | Àpèjúwe |
|---|---|---|
| GET | /api/webhooks |
Ṣàkójọ gbogbo àwọn subscription webhook |
| POST | /api/webhooks |
Ṣẹ̀dá subscription webhook — body: {url, events[], secret?, active?} |
| GET | /api/webhooks/[id] |
Gba subscription webhook kan pàtó |
| PUT | /api/webhooks/[id] |
Ṣe àfikún sí subscription webhook kan |
| DELETE | /api/webhooks/[id] |
Pa subscription webhook kan rẹ́ |
| GET | /api/webhooks/[id]/deliveries |
Ṣàkójọ ìtàn delivery fún webhook kan (àkọsílẹ̀ àṣeyọrí/ìkùnà) |
| POST | /api/webhooks/[id]/test |
Fi event ìdánwò ránṣẹ́ sí webhook kan |
Ìfàṣẹsí: Ó nílò management session.
Wo Ètò Webhooks fún gbogbo àwọn irú event.
Ètò Ìlànà Skills
Ṣàkóso Skills (ètò ìlànà àwọn ìfikún agentic).
| Ọ̀nà | Path | Àlàyé |
|---|---|---|
| GET | /api/skills |
Ṣàkọsílẹ̀ gbogbo skills tí a ti fi sí ẹrọ (built-in + custom) |
| POST | /api/skills/install |
Fi skill kan sí ẹrọ láti local path tàbí URL |
| DELETE | /api/skills/[id] |
Yọ skill kan kúrò lórí ẹrọ |
| PUT | /api/skills/[id] |
Mú skill ṣiṣẹ́ tàbí pa á — body: {enabled?: boolean, mode?: "on" | "off" | "auto"} |
| POST | /api/skills/executions |
Ṣiṣẹ́ skill kan — body: {skillName, apiKeyId, input?, sessionId?} |
| GET | /api/skills/executions |
Ṣàkọsílẹ̀ ìtàn ìṣiṣẹ́ fún gbogbo skills (ṣe àlẹ̀mọ́ pẹ̀lú ?apiKeyId=) |
Ìfàṣẹsí: Ó nílò management session tàbí API key tí ó ní management scope.
Wo Ètò Ìlànà Skills fún gbogbo àlàyé.
Plugins
Ṣàkóso àwọn plugin OmniRoute (àwọn ìfikún láti ọwọ́ ẹnikẹta).
| Ọ̀nà | Path | Àlàyé |
|---|---|---|
| GET | /api/plugins |
Ṣàkọsílẹ̀ àwọn plugin tí a ti fi sí ẹrọ |
| POST | /api/plugins/marketplace/install |
Fi plugin kan sí ẹrọ láti marketplace |
| DELETE | /api/plugins/[name] |
Yọ plugin kan kúrò lórí ẹrọ |
| POST | /api/plugins/[name]/activate |
Mú plugin kan ṣiṣẹ́ |
| POST | /api/plugins/[name]/deactivate |
Pa plugin kan |
| GET | /api/plugins/[name]/config |
Gba àtòpọ̀ plugin |
| PUT | /api/plugins/[name]/config |
Ṣe àfikún àtòpọ̀ plugin |
Ìfàṣẹsí: Ó nílò management session.
Wo Ètò Ìlànà Plugins fún gbogbo àlàyé.
Shadow Routing
Àfiwé shadow / A-B ti àwọn olùpèsè kì í ṣe ojú-ọ̀nà REST aládàáṣe — a máa ń ṣètò rẹ̀ nípasẹ̀ combo routing (wo Auto-Combo). Àwọn òṣùwọ̀n àfiwé fún combo kọ̀ọ̀kan wà nípasẹ̀ GET /api/combos/metrics.
Guardrails
Ṣàyẹ̀wò àwọn guardrail ní àsìkò ìṣiṣẹ́ (ìṣàwárí PII, ìṣàwárí prompt injection, vision bridging). Àwọn guardrail máa ń ṣiṣẹ́ lórí gbogbo ìbéèrè; yíyọ ara ẹni kúrò fún ìpè kọ̀ọ̀kan jẹ́ nípasẹ̀ request header x-omniroute-disabled-guardrails — kò sí ojú-ọ̀nà enable/disable tí a fi pamọ́.
| Ọ̀nà | Path | Àlàyé |
|---|---|---|
| GET | /api/guardrails |
Ṣàkọsílẹ̀ àwọn guardrail tí a ti forúkọsílẹ̀ àti ipò wọn (orúkọ / ṣíṣe / ìjẹ́pàtàkì) |
| POST | /api/guardrails/test |
Ṣe àdánwò láìṣiṣẹ́ pipeline ṣáájú ìpè lórí àpẹẹrẹ input — body: {input, disabledGuardrails?} |
Ìfàṣẹsí: Ó nílò management session.
Wo Ààbò > Guardrails fún gbogbo àlàyé.
Ìfàṣẹsí
Wo Ìfàṣẹsí Ìṣàkóso fún àwọn ẹbí ìwé-ẹ̀rí mẹ́rin (ìgbà dashboard, àmì local CLI, oma_live_… Access Token, kọ́kọ́ API tó ní ààlà ìṣàkóso) àti bí wọ́n ṣe yàtọ̀ sí àwọn kọ́kọ́ inference.
- Àwọn ipa-ọ̀nà dashboard (
/dashboard/*) ń lo cookieauth_token - Ìwọlé ń lo hash ọ̀rọ̀ aṣínà tí a ti fipamọ́; tí ìyẹn kò bá ṣiṣẹ́, yóò lo
INITIAL_PASSWORD - A lè tan tàbí pa
requireLoginnípasẹ̀/api/settings/require-login - Àwọn ipa-ọ̀nà
/v1/*lè béèrè kọ́kọ́ API Bearer nígbà tíREQUIRE_API_KEY=true - “àmì ìṣàkóso” / “kọ́kọ́ API tó ní ààlà ìṣàkóso” nínú ìtọ́kasí yìí túmọ̀ sí ọ̀kan lára àwọn ẹbí tó wà nínú ìtọ́sọ́nà yẹn — kì í ṣe irú àṣírí àfikún tí a kò ṣàlàyé
Àyípadà tó ń ba ìbámu tẹ́lẹ̀ jẹ́ (v3.8.0) —
/api/v1/agents/tasks/*àti àwọn endpoint ìṣàkóso cooldown ti nílò ìfàṣẹsí ìṣàkóso báyìí (cookieauth_tokendashboard tàbí kọ́kọ́ API tó ní ààlà ìṣàkóso). Àwọn client tí wọ́n ń pe àwọn ipa-ọ̀nà wọ̀nyí láìsí ìfàṣẹsí tẹ́lẹ̀ yóò gba401 Unauthorized. Wo commit588a0333(fix(auth): require management auth for agent and cooldown APIs).