Files
OmniRoute/docs/i18n/yo/docs/reference/API_REFERENCE.md
Diego Rodrigues de Sa e Souza 58f88a83e4 feat(i18n): 7 new locales — Hausa, Yoruba, Igbo, Amharic, Uzbek, Georgian, Armenian (66 locales) (#13727)
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
2026-09-15 09:50:01 -03:00

134 KiB
Raw Blame History

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ọ̀

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.0000000000 fú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, àti X-OmniRoute-Fallback-Attempts (nígbà tí ó bá > 0 nìkan), pẹ̀lú X-OmniRoute-Request-Id àti X-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ẹ́ 0 ní 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-Cost jẹ́ 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ẹ́ off tàbí default kò ṣ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à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}:embedContent pẹ̀lú content.parts (text tà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áà (firecrawljina-readertavily-searchtinyfishnimble-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ọ̀ 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ọncodex/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òò) 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): apiKeyId jẹ́ dandan; ó kéré tán, ọ̀kan lára dailyLimitUsd, weeklyLimitUsd, tàbí monthlyLimitUsd gbọ́dọ̀ ju òdo lọ. Àwọn field àṣàyàn: warningThreshold (01), resetInterval (daily | weekly | monthly), resetTime (HH:MM). Ìrísí àtijọ́ {keyId, limit, period} máa ń dá 400 Bad Request padà.

À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 àti scopeType (model | provider | global) jẹ́ dandan. scopeValue jẹ́ dandan àyàfi tí scopeType bá jẹ́ global (fún àpẹẹrẹ, id model fún ìwọ̀n model, id provider fún ìwọ̀n provider). tokenLimit gbọ́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ùn GET ń fi tokensUsed, remaining, windowStart, periodStartAt, àti nextResetAt kú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è

  1. Client fi ìbéèrè ránṣẹ́ sí /v1/*
  2. Route handler pe handleChat, handleEmbedding, handleAudioTranscription, tàbí handleImageGeneration
  3. A yan model náà (provider/model tààrà tàbí alias/combo)
  4. A yan àwọn credentials láti inú DB agbègbè pẹ̀lú ṣíṣàyẹ̀wò wíwà account
  5. Fún chat: handleChatCore ń ṣàyẹ̀wò cache semantic/signature, ó sì ń yan àwọn ètò compression combo
  6. Compression ìṣáájú ń ṣiṣẹ́ kí ìtumọ̀ provider tó bẹ̀rẹ̀ nígbà tí a bá mú un ṣiṣẹ́ (lite, Caveman, RTK, tàbí stacked)
  7. Provider executor fi ìbéèrè ránṣẹ́ sí upstream
  8. A túmọ̀ ìdáhùn padà sí format client (chat) tàbí a dá a padà bí ó ṣe rí (embeddings/images/audio)
  9. A ṣàkọsílẹ̀ usage, àwọn analytics compression, àti àwọn log ìbéèrè
  10. 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 (1500, àì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 commit 588a0333 fú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 àti POST /api/v1/management/proxies/[id]/health inú àpèjúwe iṣẹ́ ni àwọn route pẹlẹbẹ /assignments àti /health tí 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 àti settings.mcpTransport ló ń darí àwọn ọ̀nà ìgbéwọlé HTTP méjèèjì — àìbáramu ọ̀nà ìgbéwọlé yóò dá 400 padà, ipò MCP tí kò ṣiṣẹ́ yóò sì dá 503 padà.


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 cookie auth_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 requireLogin ní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ìí (cookie auth_token dashboard 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óò gba 401 Unauthorized. Wo commit 588a0333 (fix(auth): require management auth for agent and cooldown APIs).