Files
OmniRoute/docs/i18n/ml/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

202 KiB
Raw Permalink Blame History

API_REFERENCE (മലയാളം)

🌐 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 · 🇮🇳 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 · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW



title: "API റഫറൻസ്" version: 3.8.51 lastUpdated: 2026-08-31

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 · 🇮🇳 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 · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW

OmniRoute API-യുടെ മുഖ്യ റഫറൻസ്. ഇത് പൊതു /v1 ഇന്റർഫേസും ഏറ്റവും കൂടുതൽ ഉപയോഗിക്കുന്ന മാനേജ്മെന്റ് എൻഡ്പോയിന്റുകളും ഉൾക്കൊള്ളുന്നു; യന്ത്രങ്ങൾക്ക് വായിക്കാനാകുന്ന docs/openapi.yaml, src/app/api/-ന് കീഴിലുള്ള റൂട്ട് ട്രീ എന്നിവയാണ് സമഗ്രമായ ഉറവിടങ്ങൾ.


ഉള്ളടക്കപ്പട്ടിക


ചാറ്റ് പൂർത്തീകരണങ്ങൾ

POST /v1/chat/completions
Authorization: Bearer your-api-key
Content-Type: application/json

{
  "model": "cc/claude-opus-4-6",
  "messages": [
    {"role": "user", "content": "Write a function to..."}
  ],
  "stream": true
}

ഇഷ്ടാനുസൃത ഹെഡറുകൾ

ഹെഡർ ദിശ വിവരണം
X-OmniRoute-No-Cache അഭ്യർത്ഥന കാഷ് ഒഴിവാക്കാൻ true ആയി സജ്ജമാക്കുക
x-omniroute-no-memory അഭ്യർത്ഥന ഈ അഭ്യർത്ഥനയ്ക്കായി മെമ്മറി + സ്കിൽസ് ഇൻജക്ഷൻ ഒഴിവാക്കാൻ true ആയി സജ്ജമാക്കുക (no-cache-ന് സമാനമാണ്; ഓരോ കോളിലുമുള്ള ടോക്കൺ/ചെലവ് അധികഭാരം ഒഴിവാക്കുന്നു)
X-OmniRoute-Progress അഭ്യർത്ഥന പുരോഗതി ഇവന്റുകൾക്കായി true ആയി സജ്ജമാക്കുക
X-Session-Id അഭ്യർത്ഥന ബാഹ്യ സെഷൻ അഫിനിറ്റിക്കുള്ള സ്റ്റിക്കി സെഷൻ കീ
x_session_id അഭ്യർത്ഥന അണ്ടർസ്കോർ വകഭേദവും സ്വീകരിക്കും (നേരിട്ടുള്ള HTTP)
X-OmniRoute-Session-Id അഭ്യർത്ഥന കോളർ നൽകുന്ന സെഷൻ/സംഭാഷണ ടാഗ് (മെമ്മറിയിലേക്കും നൽകുന്നു). ഇത് നിലവിലുണ്ടെങ്കിൽ, ഓരോ സെഷനിലെയും ചെലവ് കണക്കാക്കുന്നതിനായി call_logs.session_tag-ലേക്ക് അതേപടി നിലനിർത്തുന്നു (#8249) — ഇല്ലാത്തപ്പോൾ ഒരിക്കലും സ്വയം സൃഷ്ടിക്കില്ല
Idempotency-Key അഭ്യർത്ഥന ഡിഡ്യൂപ്ലിക്കേഷൻ കീ (5s വിൻഡോ)
X-Request-Id അഭ്യർത്ഥന പകരമായ ഡിഡ്യൂപ്ലിക്കേഷൻ കീ
X-OmniRoute-Cache പ്രതികരണം HIT അല്ലെങ്കിൽ MISS (സ്ട്രീമിംഗ് അല്ലാത്തത്)
X-OmniRoute-Idempotent പ്രതികരണം ഡിഡ്യൂപ്ലിക്കേറ്റ് ചെയ്തിട്ടുണ്ടെങ്കിൽ true
X-OmniRoute-Progress പ്രതികരണം പുരോഗതി ട്രാക്കിംഗ് ഓണാണെങ്കിൽ enabled
X-OmniRoute-Session-Id പ്രതികരണം OmniRoute ഉപയോഗിച്ച പ്രാബല്യത്തിലുള്ള സെഷൻ ഐഡി
X-OmniRoute-Request-Id പ്രതികരണം അഭ്യർത്ഥന കോറിലേഷൻ ഐഡി (അറിയാമെങ്കിൽ)
X-OmniRoute-Version പ്രതികരണം OmniRoute ബിൽഡ് പതിപ്പ് (എപ്പോഴും ലഭ്യമാണ്)
X-OmniRoute-Cost-Saved പ്രതികരണം ഒരു HIT-ൽ കാഷ് ഒഴിവാക്കിയ USD ചെലവ് (കാഷ് ഹിറ്റുകൾക്ക് മാത്രം)
X-OmniRoute-Decision പ്രതികരണം റൂട്ടിംഗ് ട്രേസ്: strategy=<name>; provider=<alias>; latency_ms=<n> (<name> എന്നത് കോംബോ സ്ട്രാറ്റജിയാണ്, അല്ലെങ്കിൽ കോംബോ അല്ലാത്ത അഭ്യർത്ഥനയ്ക്ക് single) — പൂർത്തീകരണ പ്രതികരണങ്ങളിൽ എപ്പോഴും ലഭ്യമാണ്

Nginx കുറിപ്പ്: നിങ്ങൾ അണ്ടർസ്കോർ ഹെഡറുകളെ ആശ്രയിക്കുന്നുവെങ്കിൽ (ഉദാഹരണത്തിന് x_session_id), underscores_in_headers on; പ്രവർത്തനക്ഷമമാക്കുക.

ചെലവ് ടെലിമെട്രി ഹെഡറുകൾ: സ്ട്രീമിംഗ് അല്ലാത്ത വിജയകരമായ പ്രതികരണങ്ങളിൽ X-OmniRoute-* ചെലവ്-ടെലിമെട്രി സെറ്റും ഉൾപ്പെടുന്നു — X-OmniRoute-Response-Cost (USD, നിശ്ചിതമായി 10 ദശാംശ സ്ഥാനങ്ങൾ; സൗജന്യമായ/വില നിശ്ചയിച്ചിട്ടില്ലാത്തവയ്ക്ക് 0.0000000000), X-OmniRoute-Tokens-In / X-OmniRoute-Tokens-Out, X-OmniRoute-Model, X-OmniRoute-Provider, X-OmniRoute-Latency-Ms, X-OmniRoute-Cache-Hit, കൂടാതെ X-OmniRoute-Fallback-Attempts (> 0 ആയിരിക്കുമ്പോൾ മാത്രം), അതോടൊപ്പം X-OmniRoute-Request-Id, X-OmniRoute-Version എന്നിവയും. ഇവ ചാറ്റ് പൂർത്തീകരണങ്ങൾ, /v1/responses, /v1/messages, കൂടാതെ മീഡിയ എൻഡ്പോയിന്റുകൾ/v1/embeddings, /v1/images/generations, /v1/audio/speech, /v1/audio/transcriptions, /v1/rerank, /v1/videos/generations, /v1/music/generations, /v1/moderations (ചെലവ് എപ്പോഴും 0) — എന്നിവ പുറപ്പെടുവിക്കുന്നു. വില ലഭ്യമാണെങ്കിൽ ഓരോ മോഡാലിറ്റിക്കും അനുസരിച്ച് (ഓരോ ചിത്രത്തിനും, ഓരോ സെക്കൻഡിനും, ഓരോ അക്ഷരത്തിനും, ഓരോ തിരയൽ യൂണിറ്റിനും) മീഡിയ ചെലവ് കണക്കാക്കുന്നു; അല്ലെങ്കിൽ 0 (fail-open).

കാഷ്-ഹിറ്റ് ചെലവ് സെമാന്റിക്സ്: ഒരു സെമാന്റിക്-കാഷ് HIT-ൽ (X-OmniRoute-Cache-Hit: true) അപ്സ്ട്രീം കോൾ ഒന്നും നടത്താത്തതിനാൽ, X-OmniRoute-Response-Cost എന്നത് 0.0000000000 ആണ് (ഹിറ്റ് നൽകുന്നതിനുള്ള അധിക ചെലവ്). യഥാർത്ഥ/ഉണ്ടാകുമായിരുന്ന ചെലവ് X-OmniRoute-Cost-Saved-ൽ പ്രത്യേകം റിപ്പോർട്ട് ചെയ്യുന്നു. ബില്ലിംഗ് ഉപഭോക്താക്കൾ X-OmniRoute-Response-Cost കൂട്ടിച്ചേർക്കണം (ഹിറ്റുകൾക്ക് ചെലവില്ല); കാഷ് അനലിറ്റിക്സിന് X-OmniRoute-Cost-Saved സംഗ്രഹിക്കാം.

എക്സ്ക്ലൂസീവ് മാനേജ്ഡ് സെഷൻ ലീസുകൾ

എക്സ്ക്ലൂസീവ് മാനേജ്ഡ് സെഷൻ ലീസിംഗ് എന്നത് ഓപ്റ്റ്-ഇൻ, ക്ലയന്റ്-ന്യൂട്രൽ റൂട്ടിംഗ് കരാറാണ്: ഒരു സജീവ ഉടമ യോഗ്യമായ ഒരു OmniRoute കണക്ഷൻ കൈവശം വയ്ക്കുന്നു. ഇത് ഒരു മോഡൽ ലീസിന് എടുക്കുകയോ, OAuth ആവശ്യപ്പെടുകയോ, ഒരു പ്രത്യേക ക്ലയന്റിനെ തിരിച്ചറിയുകയോ, ഒരു പ്രത്യേക പ്രൊവൈഡർ ആവശ്യപ്പെടുകയോ ചെയ്യുന്നില്ല.

ഓതന്റിക്കേഷനായി ഉപയോഗിക്കുന്ന API കീയ്ക്ക് lease:exclusive സ്കോപ്പും വ്യക്തമായി നിർവചിച്ച ശൂന്യമല്ലാത്ത allowedConnections ലിസ്റ്റും ഉണ്ടായിരിക്കണം. കീ സൃഷ്ടിക്കുമ്പോഴും ഭാഗിക അപ്ഡേറ്റുകൾ നടത്തുമ്പോഴും ഡാറ്റാബേസ് മ്യൂട്ടേഷൻ ബൗണ്ടറി ഈ രണ്ട് ഫീൽഡുകളും ഒരുമിച്ച് നിർബന്ധമാക്കുന്നു.

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

വിജയകരമായ acquire, renew, release പ്രതികരണങ്ങൾ ടൈംസ്റ്റാമ്പുകൾ, state, കൃത്യമായ പോസിറ്റീവ് generation എന്നിവ വെളിപ്പെടുത്തും, എന്നാൽ തിരഞ്ഞെടുത്ത കണക്ഷനോ ക്രെഡൻഷ്യലുകളോ ഒരിക്കലും വെളിപ്പെടുത്തില്ല. Renew, release പ്രവർത്തനങ്ങൾ JSON ബോഡിയിൽ generation നൽകുന്നു:

{ "action": "renew", "generation": 1 }
{ "action": "release", "generation": 1, "reason": "OWNER_EXIT" }

ഒരു സജീവ ലീസ് ഉടമയ്ക്ക് നിലവിലെ ബൈൻഡിംഗിന്റെ സ്വകാര്യതാ-സുരക്ഷിതമായ പ്രദർശന മെറ്റാഡാറ്റ വ്യക്തമായി അഭ്യർത്ഥിക്കാം:

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

ഈ ഓപ്റ്റ്-ഇൻ status പ്രവർത്തനം ഒറ്റ ഡാറ്റാബേസ് ട്രാൻസാക്ഷനിൽ ഒപേക്ക് ഉടമ, ഓതന്റിക്കേറ്റ് ചെയ്ത മാനേജ്ഡ് API കീ, കൃത്യമായ സജീവ generation എന്നിവയാൽ ഫെൻസ് ചെയ്യപ്പെട്ടിരിക്കുന്നു. displayName എന്നത് ട്രിം ചെയ്ത, കോൺഫിഗർ ചെയ്ത കണക്ഷൻ പേര് മാത്രമാണ്; സുരക്ഷിതമായ കോൺഫിഗർ ചെയ്ത പേര് നിലവിലില്ലെങ്കിൽ അത് null ആയിരിക്കും. OmniRoute ഒരിക്കലും അതിനു പകരമായി ഇമെയിലോ ജനറേറ്റ് ചെയ്ത അക്കൗണ്ട് ഐഡന്റിറ്റിയോ ഉപയോഗിക്കില്ല. provider മൂല്യം സെൻസിറ്റീവ് അല്ലാത്ത ഒരു പ്രദർശന ലേബൽ മാത്രമാണ്; അത് ഒരിക്കലും ജനറേറ്റ് ചെയ്ത compatible-provider ഐഡന്റിഫയർ ആയിരിക്കില്ല. ക്രെഡൻഷ്യലുകൾ, ടോക്കണുകൾ, കുക്കികൾ, അസംസ്കൃത കണക്ഷൻ അല്ലെങ്കിൽ API കീ ഐഡികൾ, ഉടമയുടെ ഹാഷുകൾ, ഫെൻസിംഗ് സീക്രട്ടുകൾ, ആഭ്യന്തര റൂട്ടിംഗ് ഡാറ്റ എന്നിവ ഒഴിവാക്കിയിരിക്കുന്നു.

തെറ്റായ കീ, തെറ്റായ ഉടമ, കാലഹരണപ്പെട്ട generation, ലഭ്യമല്ലാത്തതോ കാലഹരണപ്പെട്ടതോ റിലീസ് ചെയ്തതോ അസാധുവാക്കിയതോ ആയ ലുക്കപ്പുകൾ എല്ലാം കണക്ഷൻ മെറ്റാഡാറ്റ ഇല്ലാതെ ഒരേ 409 LEASE_FENCE_STALE പിശക് തിരികെ നൽകുന്നു. capacity-wait പ്രതികരണം ലഭിച്ച ക്ലയന്റിന് പരിശോധിക്കാൻ സജീവ ബൈൻഡിംഗ് ഉണ്ടായിരിക്കില്ല. റൂട്ടിംഗ് ഒരു സജീവ ലീസിനെ ട്രാൻസിഷൻ ചെയ്യുമ്പോൾ, അതേ generation സാധുവായി തുടരുകയും status പഴയ ബൈൻഡിംഗ് ഒരിക്കലും നൽകാതെ പുതിയ ബൈൻഡിംഗ് ആറ്റോമിക്കായി തിരികെ നൽകുകയും ചെയ്യും. acquire, renew, release, waiting പ്രതികരണങ്ങൾ അവയുടെ മുമ്പത്തെ ഘടനകൾ നിലനിർത്തുന്നതിനാൽ നിലവിലുള്ള ക്ലയന്റുകളിൽ മാറ്റമുണ്ടാകില്ല.

ഈ സെർവർ കരാർ സ്റ്റോക്ക് OpenAI Codex /status മാറ്റുന്നില്ല. സ്റ്റോക്ക് Codex നിലവിൽ അതിന്റെ മോഡൽ പ്രൊവൈഡറും ബിൽറ്റ്-ഇൻ ഓതന്റിക്കേഷൻ/അക്കൗണ്ട് നിലയും റിപ്പോർട്ട് ചെയ്യുന്നു, എന്നാൽ ഇഷ്ടാനുസൃതമായ ഏത് പ്രൊവൈഡർ അക്കൗണ്ട് മെറ്റാഡാറ്റയും റെൻഡർ ചെയ്യുന്നില്ല; ഭാവിയിലെ ഒരു ക്ലയന്റ് ഇന്റഗ്രേഷൻ ഈ പ്രവർത്തനം വിളിച്ച് connection.displayName എങ്ങനെ പ്രദർശിപ്പിക്കണമെന്ന് തീരുമാനിക്കണം.

തുടർന്ന് ഓരോ മാനേജ്ഡ് ഇൻഫറൻസ് അഭ്യർത്ഥനയും രണ്ട് കൺട്രോൾ ഹെഡറുകളും നൽകുന്നു:

X-OmniRoute-Lease-Owner: vlo_<43-base64url-characters>
X-OmniRoute-Lease-Generation: 1

പിന്തുണയ്ക്കുന്ന ഓരോ അപ്സ്ട്രീം ശ്രമത്തിനും തൊട്ടുമുമ്പ് കൃത്യമായ ഉടമ, generation, സജീവ കണക്ഷൻ, ഓതന്റിക്കേറ്റ് ചെയ്ത API കീ എന്നിവ ഫെൻസ് ചെയ്യപ്പെടുന്നു. അതേ കണക്ഷൻ അനുവദിക്കുന്ന മറ്റൊരു കീ ഉപയോഗിക്കുമ്പോഴും ഉടമയും generation-ഉം റീപ്ലേ ചെയ്യുന്നത് പരാജയപ്പെടും. അസംസ്കൃത ഉടമകളെ സ്ഥിരമായി സൂക്ഷിക്കുകയോ, ലോഗ് ചെയ്യുകയോ, അഭ്യർത്ഥനയുടെ സ്നാപ്പ്ഷോട്ടിൽ നിലനിർത്തുകയോ, അപ്സ്ട്രീമിലേക്ക് ഫോർവേഡ് ചെയ്യുകയോ ഇല്ല.

താൽക്കാലിക കണ്ടൻഷൻ HTTP 429, Retry-After, ഇനിപ്പറയുന്നതും സഹിതം തിരികെ നൽകുന്നു:

{
  "state": "WAITING_FOR_CAPACITY",
  "error": { "type": "lease_error", "code": "LEASE_CAPACITY_UNAVAILABLE" },
  "reason": "NO_FREE_ELIGIBLE_CONNECTION",
  "retryAfter": 30
}

സാധാരണ യോഗ്യമായ സെറ്റ് ശൂന്യമല്ലായിരുന്നുവെന്നും ലഭ്യമായ ഓരോ കാൻഡിഡേറ്റും മറ്റൊരു സജീവ ലീസ് കൈവശം വച്ചിരുന്നുവെന്നും മാത്രമാണ് ഈ പ്രതികരണം സൂചിപ്പിക്കുന്നത്. പിന്തുണയ്ക്കാത്ത മോഡലുകൾ/പ്രൊവൈഡറുകൾ, പോളിസി പൊരുത്തക്കേട്, കൂൾഡൗൺ, ക്വോട്ട, ഹെൽത്ത്, മറ്റ് സാധാരണ യോഗ്യതാ പരാജയങ്ങൾ എന്നിവ അവയുടെ നിലവിലുള്ള OmniRoute പ്രതികരണങ്ങൾ നിലനിർത്തുന്നു.

x-omniroute-compression

ഓരോ അഭ്യർത്ഥനയ്ക്കുമുള്ള കംപ്രഷൻ പ്ലാനിന്റെ ഓവർറൈഡ്. ഏറ്റവും ഉയർന്ന മുൻഗണന — റൂട്ടിംഗ്-കോംബോ ഓവർറൈഡ്, സജീവ പ്രൊഫൈൽ, ഓട്ടോ-ട്രിഗർ, പാനൽ Default എന്നിവയെക്കാൾ മുൻഗണന ലഭിക്കുന്നു. മൂല്യങ്ങൾ:

മൂല്യം ഫലം
off ഈ അഭ്യർത്ഥനയ്ക്ക് കംപ്രഷൻ ഇല്ല.
default പാനലിൽ നിന്ന് ലഭിക്കുന്ന Default പ്രൊഫൈൽ (സജീവ പ്രൊഫൈൽ അവഗണിക്കുന്നു).
engine:<id> എനേബിൾ ചെയ്തിരിക്കുമ്പോൾ ഒരൊറ്റ എഞ്ചിൻ, ഉദാ. engine:rtk.
<combo> ആദ്യം പേരനുസരിച്ച് (കേസ്-ഇൻസെൻസിറ്റീവ്), തുടർന്ന് id അനുസരിച്ച് പൊരുത്തപ്പെടുത്തുന്ന പേരുള്ള കോംബോ.

കുറിപ്പുകൾ:

  • അജ്ഞാത മൂല്യങ്ങൾ അവഗണിക്കപ്പെടുന്നു (അഭ്യർത്ഥന ഒരിക്കലും നിരസിക്കപ്പെടില്ല); റെസല്യൂഷൻ സാധാരണ ഓപ്പറേറ്റർ മുൻഗണനയിലേക്ക് നീങ്ങുന്നു.
  • ഒന്നിലധികം കോംബോകൾക്ക് ഒരേ പേരാണെങ്കിൽ, നിർണിതമായ പൊരുത്തത്തിനായി കോംബോയുടെ id നൽകുക.
  • off അല്ലെങ്കിൽ default എന്നു പേരുള്ള കോംബോയെ പേരുപയോഗിച്ച് തിരഞ്ഞെടുക്കാനാകില്ല (ആ കീവേഡുകൾ ആദ്യം വ്യാഖ്യാനിക്കപ്പെടുന്നു); അത്തരമൊരു കോംബോയെ അതിന്റെ id ഉപയോഗിച്ച് റഫർ ചെയ്യുക.
  • മാസ്റ്റർ കംപ്രഷൻ സ്വിച്ച് ഒരു കർശന ഗേറ്റാണ്: കംപ്രഷൻ ആഗോളമായി പ്രവർത്തനരഹിതമാക്കിയിരിക്കുമ്പോൾ, ഈ ഹെഡറിന് അത് പ്രവർത്തനക്ഷമമാക്കാനാകില്ല.

പ്രയോഗിച്ച പ്ലാൻ പ്രതികരണ ഹെഡറിൽ എക്കോ ചെയ്യപ്പെടുന്നു:

X-OmniRoute-Compression: <mode>; source=<source>

ഇവിടെ <source> എന്നത് request-header, routing-override, active-profile, auto-trigger, default, അല്ലെങ്കിൽ off എന്നിവയിൽ ഒന്നാണ്.


എംബെഡ്ഡിങ്ങുകൾ

POST /v1/embeddings
Authorization: Bearer your-api-key
Content-Type: application/json

{
  "model": "nebius/Qwen/Qwen3-Embedding-8B",
  "input": "The food was delicious"
}

ലഭ്യമായ ദാതാക്കൾ: Nebius, OpenAI, Mistral, Together AI, Fireworks, NVIDIA, OpenRouter, Jina AI.

കാറ്റലോഗ് ഐഡികൾ provider/model രൂപത്തിലാണ് (ഉദാഹരണം: jina-ai/jina-embeddings-v5-omni-small). രജിസ്ട്രിയിൽ ദൃശ്യമാകുന്ന ദാതാവിന്റെ പ്രിഫിക്സ് ഇല്ലാത്ത Jina മോഡൽ ഐഡികളും (ഉദാഹരണത്തിന് jina-embeddings-v5-text-small, jina-reranker-v3.5) പരിഹരിക്കപ്പെടും. Jina embed/rerank/classify/segment ആദ്യം ഡാഷ്ബോർഡിലെ jina-ai ക്രെഡൻഷ്യലുകൾ ഉപയോഗിക്കുന്നു; ഡാഷ്ബോർഡ് കീ ഇല്ലാത്തപ്പോൾ മാത്രം JINA_AI_API_KEY ഒരു പകരമാർഗമാണ്. jina-reader കാർഡ് Reader / r.jina.ai-യ്ക്ക് മാത്രമുള്ളതാണ് (POST /v1/web/fetch), അത് ഒരിക്കലും embeddings അല്ലെങ്കിൽ rerank നൽകില്ല.

മൾട്ടിമോഡൽ പിന്തുണയുണ്ടെന്ന് അറിയിക്കുന്ന രജിസ്ട്രി മോഡലുകൾ, ദാതാവിനെ ആശ്രയിക്കാത്ത ഘടനാബദ്ധമായ പരമാവധി 32 ഇനങ്ങളും സ്വീകരിക്കുന്നു. മീഡിയ ഇനങ്ങളുടെ തരങ്ങൾ text, image, audio, video, document എന്നിവയാണ്. അവയുടെ മീഡിയ source ഒന്നുകിൽ {"type":"url","url":"https://..."} അല്ലെങ്കിൽ {"type":"base64","data":"...","media_type":"..."} ആയിരിക്കും.

Jina v5 Omni (jina-ai/jina-embeddings-v5-omni-small, jina-ai/jina-embeddings-v5-omni-nano, കൂടാതെ ഫാമിലി അപരനാമമായ jina-ai/jina-embeddings-v5-omni → omni-small) Jina-യുടെ നേറ്റീവ് EmbeddingsV5Request ഡോക്യുമെന്റുകളും സ്വീകരിക്കുകയും അവയെ മാറ്റമില്ലാതെ ഫോർവേഡ് ചെയ്യുകയും ചെയ്യുന്നു: 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,..." }]
    }
  ]
}

നേറ്റീവ് { image | audio | video | pdf } മൂല്യങ്ങൾ ഒരു പൊതു HTTPS URL, ഒരു data: URI, അല്ലെങ്കിൽ അസംസ്കൃത base64 ആകാം. OmniRoute ആ ഒബ്ജക്റ്റുകളെ സ്ട്രിങ്ങാക്കി മാറ്റുകയോ നേറ്റീവ് ഇമേജ് URL-കൾ ഫെച്ച് ചെയ്യുകയോ ഇല്ല — പൊതു മീഡിയ Jina തന്നെ വീണ്ടെടുക്കുന്നു. അധിക Jina ഫീൽഡുകൾ (task, normalized, truncate, embedding_type) ഫോർവേഡ് ചെയ്യപ്പെടുന്നു. ടെക്സ്റ്റ് മാത്രമുള്ള Jina SKU-കൾ ടെക്സ്റ്റ് അല്ലാത്ത ഡോക്യുമെന്റുകൾ ഇപ്പോഴും നിരസിക്കും.

സുരക്ഷാ, ട്രാൻസ്പോർട്ട് പരിധികൾ:

  • റിമോട്ട് മീഡിയ URL-കൾ പൊതു HTTPS ആയിരിക്കണം. കാനോനിക്കൽ {type,source:url} ഇനങ്ങൾ സെർവർ ഭാഗത്ത് ഫെച്ച് ചെയ്യപ്പെടുകയും (റീഡയറക്ട് പുനഃസാധൂകരണം, സമയപരിധി, വലുപ്പപരിധികൾ, പൊതു DNS, കണക്ഷൻ പിന്നിങ്) ദാതാവിലേക്കുള്ള കോളിനു മുമ്പ് ഇൻലൈൻ ചെയ്യപ്പെടുകയും ചെയ്യും. Jina-നേറ്റീവ് {image:"https://..."} ഇനങ്ങൾ അതേ പൊതു-HTTPS പരിശോധനയ്ക്കുശേഷം അതേപടി ഫോർവേഡ് ചെയ്യപ്പെടും; Jina URL ഫെച്ച് ചെയ്യും.
  • ഇൻലൈൻ base64 മീഡിയ ഓരോ ഇനത്തിനും ഡീകോഡ് ചെയ്ത 8 MiB ആയും, അഭ്യർത്ഥനയിലാകെ ഡീകോഡ് ചെയ്ത 16 MiB ആയും പരിമിതപ്പെടുത്തിയിരിക്കുന്നു.

ദാതാവിനായുള്ള പരിവർത്തനം (കാനോനിക്കൽ ഇനങ്ങൾ ഒരിക്കലും മാറ്റമില്ലാതെ ഫോർവേഡ് ചെയ്യില്ല):

  • Jina മൾട്ടിമോഡൽ മോഡലുകൾ: ഓരോ ടോപ്പ്-ലെവൽ ഇനവും ഇൻലൈൻ മീഡിയയ്ക്ക് data URI-കൾ ഉപയോഗിച്ച് ഒരു മോഡാലിറ്റി-കീഡ് ഒബ്ജക്റ്റായി (text / image / audio / video / pdf) മാറുന്നു; ഓരോ ടോപ്പ്-ലെവൽ ഇനത്തിനും ഒരു വെക്റ്റർ.
  • Gemini Embedding 2 ഫാമിലി: ഒരു ടോപ്പ്-ലെവൽ അറേ, content.parts (text അല്ലെങ്കിൽ inline_data) ഉള്ള ഒരൊറ്റ നേറ്റീവ് models/{model}:embedContent അഭ്യർത്ഥനയായി മാറുന്നു.
  • വ്യക്തമായ മോഡാലിറ്റി മെറ്റാഡാറ്റ ഇല്ലാത്ത അജ്ഞാത/ഡൈനാമിക് മോഡലുകൾ ഘടനാബദ്ധമായ ഇൻപുട്ട് 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"
}

പിന്തുണയ്ക്കാത്ത മോഡൽ/മോഡാലിറ്റി സംയോജനങ്ങൾ ഇനത്തെ നിർബന്ധിതമായി പരിവർത്തനം ചെയ്യുന്നതിനുപകരം HTTP 400 തിരികെ നൽകും. പഴയ string/token അഭ്യർത്ഥനകളിലെ ഇൻപുട്ടുമായി ബന്ധമില്ലാത്ത വിപുലീകരണ ഫീൽഡുകൾ മാറ്റമില്ലാതെ പാസ് ചെയ്യുന്നത് തുടരും.

# എല്ലാ embedding മോഡലുകളും പട്ടികപ്പെടുത്തുക
GET /v1/embeddings

ഇമേജ് ജനറേഷൻ

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

ലഭ്യമായ പ്രൊവൈഡർമാർ: OpenAI (GPT Image 2), xAI (Grok Image), Together AI (FLUX), Fireworks AI, Nebius (FLUX), Hyperbolic, NanoBanana, OpenRouter, SD WebUI (ലോക്കൽ), ComfyUI (ലോക്കൽ).

# എല്ലാ ഇമേജ് മോഡലുകളും പട്ടികപ്പെടുത്തുക
GET /v1/images/generations

ഡോക്യുമെന്റ് OCR

POST /v1/ocr
Authorization: Bearer your-api-key
Content-Type: application/json

{
  "model": "mistral/mistral-ocr-latest",
  "document": {
    "type": "document_url",
    "document_url": "https://example.com/invoice.pdf"
  }
}

model, provider/model പ്രിഫിക്സ് വഴി OCR പ്രൊവൈഡറെ തിരഞ്ഞെടുക്കുന്നു; പ്രൊവൈഡർ ഇല്ലാത്ത ഒരു മോഡൽ id (ഉദാ. mistral-ocr-latest) അതിന്റെ രജിസ്റ്റർ ചെയ്ത പ്രൊവൈഡറിലേക്ക് പരിഹരിക്കപ്പെടുന്നു, കൂടാതെ model ഒഴിവാക്കിയാൽ ഡിഫോൾട്ടായി Mistral (mistral-ocr-latest) ഉപയോഗിക്കും. രജിസ്റ്റർ ചെയ്ത പ്രൊവൈഡർമാർ (open-sse/config/ocrRegistry.ts):

പ്രൊവൈഡർ id മോഡൽ id model മൂല്യം കുറിപ്പുകൾ
mistral mistral-ocr-latest mistral/mistral-ocr-latest (അല്ലെങ്കിൽ പ്രൊവൈഡർ ഇല്ലാത്ത mistral-ocr-latest) സിൻക്രണസ് — ഒരൊറ്റ അപ്സ്ട്രീം കോളിൽനിന്നുള്ള പ്രതികരണം നേരിട്ട് തിരികെ നൽകുന്നു.
azure-document-intelligence prebuilt-read azure-document-intelligence/prebuilt-read അസിൻക്രണസ് അപ്സ്ട്രീം (analyze + പോളിംഗ്) — താഴെ കാണുക.
vertex-deepseek-ocr deepseek-ocr-maas vertex-deepseek-ocr/deepseek-ocr-maas സിൻക്രണസ്, Vertex AI-യുടെ openapi/chat/completions പാർട്ണർ എൻഡ്പോയിന്റ് വഴി — ഓതന്റിക്കേഷൻ/URL സംബന്ധിച്ച വിവരങ്ങൾക്ക് താഴെ കാണുക.

മൂന്ന് പ്രൊവൈഡർമാരും ഒരേ Mistral-രൂപത്തിലുള്ള ബോഡിയിലാണ് പ്രതികരിക്കുന്നത്:

{
  "pages": [{ "index": 0, "markdown": "# Extracted text..." }],
  "model": "mistral-ocr-latest",
  "usage_info": { "pages_processed": 1 }
}

Azure Document Intelligence പോൾ പ്രവാഹം

Azure Document Intelligence-ന്റെ analyze API അസിൻക്രണസാണ്: പ്രാരംഭ അഭ്യർത്ഥന ഒരു ബോഡിക്ക് പകരം Operation-Location ഹെഡർ തിരികെ നൽകുന്നു, അതിനാൽ ഫലം ലഭിക്കാൻ പോളിംഗ് നടത്തണം. ഹാൻഡ്ലർ (open-sse/handlers/ocr.ts) ആ URL-ൽ ഓരോ സെക്കൻഡിലും പരമാവധി 30 തവണ വരെ പോളിംഗ് നടത്തുന്നു, ok അല്ലാത്ത പോൾ പ്രതികരണമോ "failed" സ്റ്റാറ്റസോ ലഭിച്ചാൽ ഉടൻ പരാജയപ്പെടുന്നു (പോളിംഗ് തുടരില്ല), കൂടാതെ അനുവദിച്ച ശ്രമങ്ങളുടെ പരിധി തീർന്നിട്ടും പ്രവർത്തനം തുടരുകയാണെങ്കിൽ 504 തിരികെ നൽകുന്നു. അന്തിമ Azure പ്രതികരണം, കോളറിലേക്ക് തിരികെ നൽകുന്നതിന് മുമ്പ് Mistral ഉപയോഗിക്കുന്ന അതേ pages/markdown രൂപത്തിലേക്ക് നോർമലൈസ് ചെയ്യുന്നു, അതിനാൽ ക്ലയന്റ് കോഡിന് പ്രൊവൈഡർക്കായി പ്രത്യേക കൈകാര്യം ചെയ്യൽ ആവശ്യമില്ല.

Vertex AI DeepSeek OCR ഓതന്റിക്കേഷനും എൻഡ്പോയിന്റ് പരിഹാരവും

ചാറ്റ്/ഇമേജ് ട്രാഫിക്കിനായി OmniRoute ഇതിനകം പിന്തുണയ്ക്കുന്ന അതേ Vertex AI ഓതന്റിക്കേഷൻ (open-sse/executors/vertex.ts) തന്നെയാണ് vertex-deepseek-ocr വീണ്ടും ഉപയോഗിക്കുന്നത്: കണക്ഷന്റെ API കീ ഒന്നുകിൽ Service Account JSON ക്രെഡൻഷ്യൽ (JWT-bearer പ്രവാഹം വഴി ഹ്രസ്വകാല OAuth ആക്സസ് ടോക്കണായി കൈമാറ്റം ചെയ്യുന്നത്) അല്ലെങ്കിൽ മാറ്റമില്ലാതെ ഉപയോഗിക്കുന്ന, നേരത്തേ സൃഷ്ടിച്ച OAuth ആക്സസ് ടോക്കൺ ആയിരിക്കും. അപ്സ്ട്രീം എൻഡ്പോയിന്റ് URL എന്നത് കണക്ഷന്റെ പ്രോജക്റ്റും റീജിയനും ഉപയോഗിച്ച് നിർമ്മിക്കുന്ന Vertex-ന്റെ പൊതുവായ openapi/chat/completions പാർട്ണർ എൻഡ്പോയിന്റാണ് — വ്യക്തമായി നൽകിയ providerSpecificData.project/providerSpecificData.region-ന് എപ്പോഴും മുൻഗണന ലഭിക്കും; അല്ലാത്തപക്ഷം, Service Account JSON-ലെ project_id-ൽനിന്ന് പ്രോജക്റ്റ് നിർണ്ണയിക്കുകയും റീജിയന്റെ ഡിഫോൾട്ടായി us-central1 ഉപയോഗിക്കുകയും ചെയ്യുന്നു. രണ്ട് പരിഹാരങ്ങളും open-sse/handlers/ocr.ts-ലാണ് നടക്കുന്നത് (resolveVertexOcrAccessToken, resolveVertexOcrBaseUrl), തുടർന്ന് handleOcr-ലേക്ക് അയയ്ക്കുന്നതിന് മുമ്പ് src/app/api/v1/ocr/route.ts അവ ഉപയോഗിക്കുന്നു.


മോഡലുകൾ പട്ടികപ്പെടുത്തുക

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

→ എല്ലാ ചാറ്റ്, എംബെഡ്ഡിംഗ്, ഇമേജ് മോഡലുകളും + കോംബോകളും OpenAI ഫോർമാറ്റിൽ തിരികെ നൽകുന്നു

മോഡൽ id പ്രിഫിക്സുകൾ (?prefix=)

മിക്ക മോഡലുകളും ഒരു പ്രൊവൈഡർ പ്രിഫിക്സിന് കീഴിലാണ് പരസ്യപ്പെടുത്തുന്നത്. നിങ്ങൾക്ക് ലഭിക്കുന്ന പ്രിഫിക്സ് MODELS_CATALOG_PREFIX_MODE ഫീച്ചർ ഫ്ലാഗാണ് നിയന്ത്രിക്കുന്നത്; എല്ലാവർക്കുമായുള്ള സെർവർ-വ്യാപക ക്രമീകരണം മാറ്റാതെ വൃത്തിയുള്ള ഒരു പട്ടിക ആവശ്യമുള്ള ക്ലയന്റുകൾക്ക് ഉപകാരപ്രദമാകുന്ന വിധത്തിൽ, ഒരു ക്വറി പാരാമീറ്റർ ഉപയോഗിച്ച് ഇത് ഓരോ അഭ്യർത്ഥനയ്ക്കും ഓവർറൈഡ് ചെയ്യാം:

GET /v1/models?prefix=alias        # ഓരോ മോഡലിനും ഒരു id — ഹ്രസ്വ അപരനാമ പ്രിഫിക്സ്
GET /v1/models?prefix=dual         # രണ്ട് രൂപങ്ങളും (സെർവർ ഡിഫോൾട്ട്)
GET /v1/models?prefix=canonical    # പൂർണ്ണമായ പ്രൊവൈഡർ-id പ്രിഫിക്സ് മാത്രം
മോഡ് പുറപ്പെടുവിക്കുന്നത് കുറിപ്പുകൾ
dual cc/claude-sonnet-4-6 കൂടാതെ claude/claude-sonnet-4-6 ഡിഫോൾട്ട്. രണ്ട് id-കളും ഒരേ മോഡലിലേക്കാണ് റൂട്ട് ചെയ്യുന്നത്; ഏതെങ്കിലും ഒരു രൂപം ഹാർഡ്കോഡ് ചെയ്ത ക്ലയന്റ് കോൺഫിഗുകൾ തുടർന്നും പ്രവർത്തിക്കുന്നതിനാണ് ഇത് നിലനിർത്തിയിരിക്കുന്നത്. കാറ്റലോഗിന്റെ വലുപ്പം ഏകദേശം ഇരട്ടിയാക്കുന്നു.
alias cc/claude-sonnet-4-6 ഓരോ മോഡലിനും ഒരു എൻട്രി. വ്യത്യസ്തമായ അപരനാമമില്ലാത്ത പ്രൊവൈഡർമാരും അവരുടെ എൻട്രി പുറപ്പെടുവിക്കുന്നതിനാൽ ഒന്നും നഷ്ടപ്പെടുന്നില്ല.
canonical claude/claude-sonnet-4-6 പൂർണ്ണമായ പ്രൊവൈഡർ-id പ്രിഫിക്സിന് കീഴിൽ ഓരോ മോഡലിനും ഒരു എൻട്രി. വ്യത്യസ്തമായ അപരനാമമില്ലാത്ത പ്രൊവൈഡർമാരും (ഉദാ. antigravity/…, agy/…) അവരുടെ ഏക id ഇവിടെയും പുറപ്പെടുവിക്കുന്നതിനാൽ ഒന്നും നഷ്ടപ്പെടുന്നില്ല.

ക്വറി പാരാമീറ്റർ ഇല്ലാതെയും ഒരു dual-മോഡ് മിറർ തിരിച്ചറിയാം: അതിൽ പ്രാഥമിക id-യിലേക്ക് ചൂണ്ടിക്കാണിക്കുന്ന ഒരു parent ഫീൽഡ് ഉണ്ടായിരിക്കും.

മോഡൽ പിക്കർ റെൻഡർ ചെയ്യുന്ന ക്ലയന്റുകൾ ?prefix=alias അഭ്യർത്ഥിക്കണം — OmniCopilot VS Code എക്സ്റ്റൻഷൻ ചെയ്യുന്നതും ഇതാണ്.

ചിന്തിക്കാത്ത മോഡൽ വകഭേദങ്ങൾ

ചിന്തിക്കാൻ ശേഷിയുള്ള Claude മോഡലുകൾക്കായി, /v1/models claude-3-omniroute-no-thinking/ എന്ന പ്രിഫിക്സുള്ള id അടങ്ങിയ ഒരു ചിന്തിക്കാത്ത വകഭേദവും പരസ്യപ്പെടുത്തുന്നു:

claude-3-omniroute-no-thinking/<provider>/<model>

ഈ id തിരഞ്ഞെടുക്കുന്നത് (ഉദാ. എല്ലായ്പ്പോഴും ഒരു thinking ബ്ലോക്ക് ചേർക്കുന്ന Claude Code കോൺഫിഗിൽ) റീസണിംഗ് അടിച്ചമർത്തിക്കൊണ്ട് യഥാർഥ <provider>/<model>-ലേക്ക് തിരികെ റിസോൾവ് ചെയ്യുന്നു — /v1/messages പാതയിൽ thinking:{type:"disabled"}, അല്ലെങ്കിൽ /v1/chat/completions പാതയിൽ reasoning/reasoning_effort ഫീൽഡുകൾ ഒഴിവാക്കപ്പെടുന്നു. ചിന്തനത്തെ പിന്തുണയ്ക്കുകയും അതോടൊപ്പം disabled അംഗീകരിക്കുകയും ചെയ്യുന്ന Claude-ഫാമിലി മോഡലുകൾക്ക് മാത്രമാണ് ഈ വകഭേദം പട്ടികപ്പെടുത്തുന്നത് (അതിനാൽ, ഉദാ. disabled നിരസിക്കുന്ന അഡാപ്റ്റീവ്-ഒൺലി മോഡലുകൾ ഒഴിവാക്കപ്പെടുന്നു). ModelSpec.noThinkingAlias വഴി ഓപ്പറേറ്റർമാർക്ക് ഓരോ മോഡലിനും ഈ വകഭേദം നിർബന്ധമായി ഓൺ അല്ലെങ്കിൽ ഓഫ് ചെയ്യാം.


പ്രൊവൈഡർ പ്ലഗിൻ മാനിഫെസ്റ്റ്

GET /api/v1/provider-plugin-manifest

Bifrost, CLIProxyAPI, ഭാവിയിലെ sidecar റൗട്ടറുകൾ എന്നിവ ഉപയോഗിക്കുന്ന JSON-സുരക്ഷിതമായ പ്രൊവൈഡർ പ്ലഗിൻ മാനിഫെസ്റ്റ് തിരികെ നൽകുന്നു. TypeScript പ്രൊവൈഡർ രജിസ്ട്രിയിൽനിന്നാണ് പ്രതികരണം സൃഷ്ടിക്കുന്നത്; OAuth ക്ലയന്റ് രഹസ്യങ്ങൾ, റൺടൈം എൻവയോൺമെന്റ് റെസല്യൂഷൻ, എക്സിക്യൂട്ടർ ഫംഗ്ഷനുകൾ, അഭ്യർത്ഥനാ ഹെഡറുകൾ, അക്കൗണ്ട് ഡാറ്റ എന്നിവ മനഃപൂർവം ഒഴിവാക്കുന്നു.

ഒരു sidecar പ്രോസസിന് പുറത്തായി പ്രവർത്തിക്കുകയും open-sse/config/providerPluginManifestRegistry.ts നേരിട്ട് ഇമ്പോർട്ട് ചെയ്യാൻ കഴിയാതിരിക്കുകയും ചെയ്യുമ്പോൾ ഈ എൻഡ്പോയിന്റ് ഉപയോഗിക്കുക.


കോംപാറ്റിബിലിറ്റി എൻഡ്പോയിന്റുകൾ

രീതി പാത്ത് ഫോർമാറ്റ്
POST /v1/chat/completions OpenAI
POST /v1/messages Anthropic
POST /v1/responses OpenAI Responses
POST /v1/embeddings OpenAI
POST /v1/images/generations OpenAI Images
POST /v1/images/edits OpenAI Images (എഡിറ്റ്/ഇൻപെയിന്റ്)
POST /v1/videos/generations OpenAI-ശൈലിയിലുള്ള വീഡിയോ ജനറേഷൻ
POST /v1/music/generations OpenAI-ശൈലിയിലുള്ള സംഗീത ജനറേഷൻ
POST /v1/audio/transcriptions OpenAI Audio (STT)
POST /v1/audio/speech OpenAI TTS (ഓഡിയോ ബോഡി നൽകുന്നു)
POST /v1/rerank Cohere/Voyage-ശൈലിയിലുള്ള റീറാങ്ക്
POST /v1/classify Jina ക്ലാസിഫൈ (api.jina.ai)
POST /v1/segment Jina സെഗ്മെന്റർ (segment.jina.ai)
POST /v1/moderations OpenAI Moderations
GET /v1/models OpenAI
POST /v1/messages/count_tokens Anthropic
GET /v1beta/models Gemini
POST /v1beta/models/{...path} Gemini generateContent
POST /v1/api/chat Ollama
GET /api/v1/vscode/{token}/ OpenAI കാറ്റലോഗ് അപരനാമം
GET /api/v1/vscode/{token}/models OpenAI മോഡലുകളുടെ അപരനാമം
POST /api/v1/vscode/{token}/chat/completions OpenAI ടോക്കണൈസ്ഡ് അപരനാമം
POST /api/v1/vscode/{token}/responses OpenAI Responses ടോക്കണൈസ്ഡ് അപരനാമം
POST /api/v1/vscode/{token}/api/chat Ollama ടോക്കണൈസ്ഡ് അപരനാമം
GET /api/v1/vscode/{token}/api/tags Ollama tags ടോക്കണൈസ്ഡ് അപരനാമം

എല്ലാ POST റൂട്ടുകളും ഒരേ ഘടനയാണ് പിന്തുടരുന്നത്: Bearer your-api-key + Zod സാധൂകരിച്ച JSON ബോഡി (v1RerankSchema, v1ModerationSchema, v1AudioSpeechSchema തുടങ്ങിയവ; src/shared/validation/schemas.ts കാണുക). സ്കീമ സാധൂകരണം പരാജയപ്പെട്ടാൽ 4xx തിരികെ നൽകും.

Authorization: Bearer ... അറ്റാച്ച് ചെയ്യാൻ കഴിയാത്ത ക്ലയന്റുകൾക്കായി, ക്വറി-സ്ട്രിംഗ് കോംപാറ്റിബിലിറ്റി (?token=..., ?apiKey=..., ?api_key=..., ?key=...) വഴിയോ താഴെ രേഖപ്പെടുത്തിയിരിക്കുന്ന സമർപ്പിത /api/v1/vscode/{token}/... എൻഡ്പോയിന്റുകൾ വഴിയോ URL-ൽ API കീകൾ OmniRoute സ്വീകരിക്കുന്നു.

# റീറാങ്ക്
POST /v1/rerank      { "model": "jina-ai/jina-reranker-v3.5", "query": "...", "documents": ["..."] }

# Jina ക്ലാസിഫൈ (Foundation API ക്രെഡൻഷ്യലുകൾ)
POST /v1/classify    { "model": "jina-embeddings-v5-text-small", "input": ["..."], "labels": ["a", "b"] }

# Jina സെഗ്മെന്റർ
POST /v1/segment     { "content": "...", "return_chunks": true }

# Jina സെർച്ച് (s.jina.ai; പ്രൊവൈഡർ അപരനാമങ്ങൾ: jina-search, jina-ai, jina)
POST /v1/search      { "query": "...", "provider": "jina-search" }

# മോഡറേഷനുകൾ
POST /v1/moderations { "model": "omni-moderation-latest", "input": "..." }

# TTS — audio/mpeg (അല്ലെങ്കിൽ അഭ്യർത്ഥിച്ച ഫോർമാറ്റ്) ബോഡി നൽകുന്നു
POST /v1/audio/speech { "model": "openai/tts-1", "input": "Hello", "voice": "alloy" }

# ഇമേജ് എഡിറ്റ് (multipart)
POST /v1/images/edits  -F image=@input.png -F prompt="..." -F mask=@mask.png

# വീഡിയോ / സംഗീത ജനറേഷൻ (പ്രൊവൈഡർ പ്രിഫിക്സുള്ള മോഡൽ id)
POST /v1/videos/generations { "model": "runway/gen-3", "prompt": "..." }
POST /v1/music/generations  { "model": "suno/v3.5",   "prompt": "..." }

സമർപ്പിത പ്രൊവൈഡർ റൂട്ടുകൾ

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

പ്രൊവൈഡർ പ്രിഫിക്സ് ഇല്ലെങ്കിൽ അത് സ്വയമേവ ചേർക്കും. പൊരുത്തപ്പെടാത്ത മോഡലുകൾ 400 തിരികെ നൽകും.


Files API

ബാച്ച് ഇൻപുട്ട്/ഔട്ട്പുട്ടിനും ഫയൽ-പർപ്പസ് അപ്ലോഡുകൾക്കുമുള്ള OpenAI-അനുയോജ്യമായ ഫയൽസ് എൻഡ്പോയിന്റ്.

രീതി പാത്ത് വിവരണം
POST /v1/files ഒരു ഫയൽ അപ്ലോഡ് ചെയ്യുക (multipart: file, purpose, expires_after[anchor], expires_after[seconds]) — പരമാവധി 512 MiB
GET /v1/files പ്രാമാണീകരിച്ച API കീയ്ക്കുള്ള ഫയലുകൾ ലിസ്റ്റ് ചെയ്യുക
GET /v1/files/[id] ഒരു ഫയലിന്റെ മെറ്റാഡാറ്റ ലഭ്യമാക്കുക
DELETE /v1/files/[id] ഒരു ഫയൽ ഇല്ലാതാക്കുക
GET /v1/files/[id]/content അസംസ്കൃത ഫയൽ ബോഡി തിരികെ സ്ട്രീം ചെയ്യുക

പ്രാമാണീകരണം: Bearer API കീ — getApiKeyRequestScope വഴി ഓരോ API കീയ്ക്കും പ്രത്യേകം ഫയലുകൾ സ്കോപ്പ് ചെയ്തിരിക്കുന്നു.


Batches API

OpenAI-അനുയോജ്യമായ ബാച്ച് പ്രോസസ്സിംഗ്.

രീതി പാത്ത് വിവരണം
POST /v1/batches ബാച്ച് സൃഷ്ടിക്കുക — v1BatchCreateSchema ഉപയോഗിച്ച് ബോഡി സാധൂകരിക്കുന്നു (input_file_id, endpoint, completion_window)
GET /v1/batches ബാച്ചുകൾ ലിസ്റ്റ് ചെയ്യുക
GET /v1/batches/[id] ബാച്ച് നില + request_counts ലഭ്യമാക്കുക
DELETE /v1/batches/[id] പൂർത്തിയായ/പരാജയപ്പെട്ട ബാച്ച് ഇല്ലാതാക്കുക
POST /v1/batches/[id]/cancel പുരോഗമിച്ചുകൊണ്ടിരിക്കുന്ന ബാച്ച് റദ്ദാക്കുക

പ്രാമാണീകരണം: Bearer API കീ. ഓരോ API കീയ്ക്കും പ്രത്യേകം ബാച്ചുകൾ സ്കോപ്പ് ചെയ്തിരിക്കുന്നു.


Search API

വെബ്/സെർച്ച് പ്രൊവൈഡർ അബ്സ്ട്രാക്ഷൻ (Tavily, Brave, Exa, Serper മുതലായവ).

രീതി പാത്ത് വിവരണം
GET /v1/search കോൺഫിഗർ ചെയ്ത സെർച്ച് പ്രൊവൈഡറുകളും അവയുടെ ശേഷികളും ലിസ്റ്റ് ചെയ്യുക
POST /v1/search സെർച്ച് ക്വറി പ്രവർത്തിപ്പിക്കുക — v1SearchSchema ഉപയോഗിച്ച് ബോഡി സാധൂകരിക്കുന്നു, കാഷിംഗ്/കോഅലെസിംഗ് പിന്തുണയ്ക്കുന്നു
GET /v1/search/analytics ഓരോ പ്രൊവൈഡറിന്റെയും ഹിറ്റ്/ലേറ്റൻസി/കാഷ് സ്ഥിതിവിവരക്കണക്കുകൾ

പ്രാമാണീകരണം: Bearer API കീ (extractApiKey + isValidApiKey). enforceApiKeyPolicy വഴി സെർച്ച് നയം നടപ്പിലാക്കുന്നു.


Web Fetch API

കോൺഫിഗർ ചെയ്ത web-fetch പ്രൊവൈഡർ (Firecrawl, Jina Reader, Tavily Extract, TinyFish Fetch, Nimble Extract) വഴി ഒരു URL-ൽനിന്ന് ഉള്ളടക്കം എക്സ്ട്രാക്റ്റ് ചെയ്യുക.

രീതി പാത്ത് വിവരണം
POST /v1/web/fetch ഒരു URL ഫെച്ച്/സ്ക്രേപ്പ് ചെയ്യുന്നു — ബോഡി v1WebFetchSchema ഉപയോഗിച്ച് സാധൂകരിക്കുന്നു

ഓതന്റിക്കേഷൻ: Bearer API കീ (extractApiKey + isValidApiKey). enforceApiKeyPolicy വഴി പോളിസി നടപ്പാക്കുന്നു.

ക്വോട്ട പരിഗണിക്കുന്ന ഫാൾബാക്ക് (#8297): വ്യക്തമായ provider നൽകിയിട്ടില്ലെങ്കിൽ, പൂൾ (firecrawljina-readertavily-searchtinyfishnimble-search) സ്ഥിരമായ മുൻഗണനാക്രമത്തിൽ (fill-first) പരിശോധിക്കുന്നു — റേറ്റ്-ലിമിറ്റ് ചെയ്യപ്പെട്ടെങ്കിലും കോൺഫിഗർ ചെയ്തിട്ടുള്ള ഒരു പ്രൊവൈഡർ, റിക്വസ്റ്റ് ഉടൻ അവസാനിപ്പിക്കുന്നതിനുപകരം ഒഴിവാക്കപ്പെടുന്നു; കൂടാതെ വീണ്ടും ശ്രമിക്കാവുന്ന/ക്വോട്ടയുമായി ബന്ധപ്പെട്ട അപ്സ്ട്രീം പരാജയം (HTTP 429 എല്ലായ്പ്പോഴും; Firecrawl/Tavily/TinyFish എന്നിവയുടെ ക്വോട്ട-ശൈലിയിലുള്ള സൗജന്യ ടയറുകൾക്ക് 402/403 — Jina Reader-ന് ബാധകമല്ല, കൂടാതെ സാധാരണ 400 മോശം റിക്വസ്റ്റിന് ഒരിക്കലും ബാധകമല്ല) റിക്വസ്റ്റ് സമയത്ത് ഇതുവരെ ശ്രമിച്ചിട്ടില്ലാത്ത അടുത്ത ക്രെഡൻഷ്യലുള്ള പ്രൊവൈഡറിലേക്ക് കടക്കുന്നു. പൂളിലെ എല്ലാ പ്രൊവൈഡറുകളും തീർന്നുകഴിഞ്ഞാൽ, മുമ്പുണ്ടായിരുന്ന പൊതുവായ 400-ന് പകരം എൻഡ്പോയിന്റ് ഒറ്റ 429 (Retry-After ഹെഡറോടെ) നൽകുന്നു. വ്യക്തമായ provider അഭ്യർത്ഥിക്കുമ്പോൾ, നിശ്ശബ്ദമായ ഫാൾബാക്ക് ഉണ്ടാകില്ല — റേറ്റ്-ലിമിറ്റ് ചെയ്യപ്പെട്ടതോ പരാജയപ്പെട്ടതോ ആയ വ്യക്തമായ പ്രൊവൈഡർ അതിന്റെ സ്വന്തം പിശക് പുറത്തുകൊണ്ടുവരുന്നു (റേറ്റ്-ലിമിറ്റ് ചെയ്തിട്ടുണ്ടെങ്കിൽ 429, അല്ലെങ്കിൽ അപ്സ്ട്രീം സ്റ്റാറ്റസ്).


WebSocket സ്ട്രീമിംഗ്

GET /v1/ws?handshake=1

ഒരു WebSocket അപ്ഗ്രേഡ് ഹാൻഡ്ഷേക്ക് സാധൂകരിക്കുകയും വയർ പ്രോട്ടോക്കോൾ ഉദാഹരണ സന്ദേശങ്ങൾ (request, cancel) നൽകുകയും ചെയ്യുന്നു. യഥാർത്ഥ WS ഫ്രെയിമുകൾ Next.js റൂട്ട് ടേബിളിന് പുറത്തുള്ള ബണ്ടിൽ ചെയ്ത WS സെർവർ കൈകാര്യം ചെയ്യുന്നു.

ഓതന്റിക്കേഷൻ: ഹാൻഡ്ഷേക്ക് സമയത്ത് Bearer API കീ.

WebSocket വഴിയുള്ള Responses API (codex മാത്രം)

# HTTP API-യുടെ അതേ host:port (ഡിഫോൾട്ട് 20128); കണക്ഷൻ അപ്ഗ്രേഡ് ചെയ്യുക:
wscat -c "ws://localhost:20128/v1/responses?api_key=<OMNIROUTE_API_KEY>"
# (അല്ലെങ്കിൽ: -H "Authorization: Bearer <OMNIROUTE_API_KEY>")

# ആദ്യ ഫ്രെയിം response.create ആയിരിക്കണം:
{ "type": "response.create", "model": "gpt-5.5", "input": [ { "role": "user", "content": "hi" } ] }

Responses-API-over-WebSocket പ്രോക്സി codex-ലേക്ക് മാത്രമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു (ChatGPT ബാക്കെൻഡ്). API/ഡാഷ്ബോർഡിന്റെ അതേ പോർട്ടിൽ /v1/responses, /responses, /api/v1/responses എന്നീ പാത്തുകളിൽ ഇത് ലിസൻ ചെയ്യുന്നു. ആദ്യത്തെ response.create ഫ്രെയിമിൽ, ആന്തരിക codex-responses-ws ബ്രിഡ്ജ് വഴി ഇത് ഓതന്റിക്കേറ്റ് ചെയ്യുകയും തയ്യാറാക്കുകയും, ഒരു codex OAuth കണക്ഷൻ തിരഞ്ഞെടുക്കുകയും, wreq-js ട്രാൻസ്പോർട്ട് വഴി wss://chatgpt.com/backend-api/codex/responses എന്നതിലേക്ക് ടണൽ ചെയ്യുകയും ചെയ്യുന്നു. codex അല്ലാത്ത മോഡലുകൾ നിരസിക്കപ്പെടും (codex_ws_provider_required). ക്വോട്ട-ഷെയർ റൂട്ടിങ്ങിന് model: "qtSd/<group>/codex/<model>" ഉപയോഗിക്കുക. ഇത് app/server-ws.mjs + scripts/dev/responses-ws-proxy.mjs + src/app/api/internal/codex-responses-ws/route.ts എന്നിവയിൽ നടപ്പാക്കിയിരിക്കുന്നു.

ഓതന്റിക്കേഷൻ: ഹാൻഡ്ഷേക്ക് സമയത്ത് Bearer API കീ. ബണ്ടിൽ ചെയ്ത HTTP സെർവർ (server-ws.mjs) സജീവ എൻട്രിപോയിന്റായിരിക്കണം (app/server-ws.mjs നിലവിലുണ്ടെങ്കിൽ ഡിഫോൾട്ടായി അങ്ങനെയാണ്).

മോഡൽ id: ലളിതമായ ChatGPT id ഉപയോഗിക്കുക (codex/ പ്രിഫിക്സ് ഇല്ലാതെ)

supports_websockets = true ആയിരിക്കുമ്പോൾ OpenAI Codex CLI ക്ലയന്റ്-സൈഡിൽ മോഡൽ നാമം സാധൂകരിക്കുകയും codex/gpt-5.5 പോലുള്ള പ്രൊവൈഡർ-പ്രിഫിക്സ് ചെയ്ത ids നിരസിക്കുകയും ചെയ്യുന്നു (The 'codex/gpt-5.5' model is not supported when using Codex with a ChatGPT account). ലളിതമായ id അയയ്ക്കുക (ഉദാ. gpt-5.5). OmniRoute-ന്റെ ബ്രിഡ്ജ് codex-ന് മാത്രമുള്ളതിനാൽ, അപ്സ്ട്രീമിലേക്ക് ടണൽ ചെയ്യുന്നതിന് മുമ്പ് ലളിതമായ id-യെ codex മോഡലായി (resolveCodexWsModelInfo) വീണ്ടും റിസോൾവ് ചെയ്യുന്നു — ലളിതമായ gpt-5.5 സാധാരണയായി HTTP വഴി മറ്റൊരു പ്രൊവൈഡറിലേക്ക് റൂട്ട് ചെയ്യുമെങ്കിലും.

OpenAI Codex CLI കോൺഫിഗർ ചെയ്യൽ

~/.codex/config.toml-ൽ WebSocket പിന്തുണയുള്ള ഒരു കസ്റ്റം പ്രൊവൈഡർ ചേർത്ത് Codex CLI-യെ OmniRoute-ലേക്ക് നയിക്കുക (നിലവിലുള്ള കോൺഫിഗിൽ മാറ്റം വരുത്താതിരിക്കാൻ വേറിട്ട CODEX_HOME ഉപയോഗിക്കുക):

model = "gpt-5.5"                 # ലളിതമായ id — "codex/gpt-5.5" അല്ല
model_provider = "omniroute"

[model_providers.omniroute]
name = "OmniRoute (WS)"
base_url = "http://localhost:20128/v1"   # അവസാനത്തിൽ സ്ലാഷ് പാടില്ല; WS URL ഇതിൽനിന്ന് നിർണ്ണയിക്കുന്നു (പ്രൊഡക്ഷനിൽ https/wss ഉപയോഗിക്കുക)
wire_api = "responses"                    # Feb 2026 മുതൽ പിന്തുണയ്ക്കുന്ന ഏക മൂല്യം
supports_websockets = true                # Responses-over-WS ട്രാൻസ്പോർട്ട് സജ്ജമാക്കുന്നു
env_key = "OMNIROUTE_API_KEY"             # OmniRoute API കീ (Bearer) സൂക്ഷിക്കുന്നു
export OMNIROUTE_API_KEY=sk-...           # ഒരു OmniRoute API കീ (REQUIRE_API_KEY=false ആണെങ്കിൽ ഏതെങ്കിലും കീ)
codex exec "Responda apenas: PONG"

CLI, base_url + /responses എന്നതിനെ WebSocket ആയി അപ്ഗ്രേഡ് ചെയ്യുകയും OmniRoute അതിനെ തിരഞ്ഞെടുത്ത codex OAuth കണക്ഷനിലേക്ക് ടണൽ ചെയ്യുകയും ചെയ്യുന്നു. ലോക്കൽ സെർവറിനെതിരെ എൻഡ്-ടു-എൻഡ് സാധൂകരിച്ചിട്ടുണ്ട്: ChatGPT codex.rate_limits + response.created നൽകുകയും കംപ്ലീഷൻ സ്ട്രീം ചെയ്യുകയും ചെയ്യുന്നു.


ക്വോട്ടകളും പ്രശ്ന റിപ്പോർട്ടിംഗും

രീതി പാത വിവരണം
GET /v1/quotas/check രജിസ്റ്റർ ചെയ്ത കീ നൽകുന്നതിന് മുമ്പ് ഒരു provider + accountId-ന്റെ ക്വോട്ട മുൻകൂട്ടി സാധൂകരിക്കുക
POST /v1/issues/report ക്വോട്ട/കീ നൽകൽ പരാജയം GitHub-ലേക്ക് റിപ്പോർട്ട് ചെയ്യുക (GITHUB_ISSUES_REPO + ടോക്കൺ ആവശ്യമാണ്)

ഓതന്റിക്കേഷൻ: Bearer API കീ (isAuthenticated).


സ്വയം സേവന ഉപയോഗം (/api/usage/om-usage)

ഏത് API കീയ്ക്കും അതിന്റെ സ്വന്തം ഉപയോഗവും ക്വോട്ടകളും വായിക്കാനാകും — മാനേജ്മെന്റ് ഓതന്റിക്കേഷൻ ആവശ്യമില്ല. ഒരു കീ ഉടമയുടെ ചെലവ് കാണിക്കാൻ ക്ലയന്റ് (CLI, OmniCopilot പാനൽ) ഉപയോഗിക്കുന്ന എൻഡ്പോയിന്റാണിത്.

# ടെക്സ്റ്റ് രൂപം (ചരിത്രപരമായ കരാർ — ടെർമിനലിനായുള്ള പ്ലെയിൻ ടെക്സ്റ്റ്)
curl -H "Authorization: Bearer <your-api-key>" \
  http://localhost:20128/api/usage/om-usage

# ഘടനാപരമായ രൂപം — ഒരു UI ഉപയോഗിക്കുന്നത്
curl -H "Authorization: Bearer <your-api-key>" \
  "http://localhost:20128/api/usage/om-usage?format=json"

കീയിൽ allowUsageCommand പ്രവർത്തനക്ഷമമാക്കിയിരിക്കണം (ഡിഫോൾട്ടായി ഓഫാണ് — ഡാഷ്ബോർഡിലെ API-കീ മാനേജർ ഓരോ കീയ്ക്കും പ്രത്യേകം ഇത് മാറ്റുന്നു). ഇത് ഇല്ലെങ്കിൽ എൻഡ്പോയിന്റ് 403 നൽകും.

നിരസിക്കപ്പെട്ട സാഹചര്യത്തിൽ കോളർ ഒരു ഡാറ്റാ ഫീൽഡ് വായിക്കാതിരിക്കാനായി ?format=json വ്യത്യാസം തിരിച്ചറിയാവുന്ന ഒരു ഘടന നൽകുന്നു. വിജയിക്കുമ്പോൾ:

{
  "allowed": true,
  // ഓരോ കീയ്ക്കുമുള്ള ഉപയോഗപരിധികൾ (പ്രതിദിന/പ്രതിവാര USD) കീ തിരഞ്ഞെടുക്കുമ്പോൾ മാത്രം ഉണ്ടായിരിക്കും:
  "personal": {
    "dailySpentUsd": 1.25,
    "dailyLimitUsd": 5,
    "dailyResetAtIso": "…",
    "weeklySpentUsd": 8,
    "weeklyLimitUsd": 20,
    "weeklyResetAtIso": "…" /*  */,
  },
  // തിരഞ്ഞെടുത്ത പ്രൊവൈഡറിന്റെ ക്വോട്ട സ്നാപ്പ്ഷോട്ട്, അല്ലെങ്കിൽ ഇതുവരെ ഒന്നും കാഷ് ചെയ്തിട്ടില്ലെങ്കിൽ null:
  "provider": {
    "connectionId": "…",
    "provider": "claude",
    "plan": "…",
    "quotas": {/*  */},
  },
  // എല്ലാ കണക്ഷനുകളുടെയും സ്നാപ്പ്ഷോട്ട്, അതുവഴി ഒരു UI-ക്ക് നിരവധി പ്രൊവൈഡറുകളെ അടുത്തടുത്തായി റെൻഡർ ചെയ്യാനാകും:
  "providers": [
    { "connectionId": "…", "provider": "claude" /*  */ },
    { "provider": "codex" /*  */ },
  ],
}

നിരസിക്കുമ്പോൾ (401 അസാധുവായ കീ / 403 അനുവദനീയമല്ല) അതേ റൂട്ട് { "allowed": false, "error": { "message": "…" } } നൽകുന്നു — നിലവിലുണ്ടെങ്കിലും ശൂന്യമായ personal/provider (കീ അനുവദനീയമാണ്, ഇതുവരെ വിവരമൊന്നും ലഭിച്ചിട്ടില്ല) നിരസിക്കലിൽനിന്ന് വ്യത്യസ്തമായ ഒരു അവസ്ഥയാണ്; JSON രൂപം മാത്രമാണ് അവയെ വേർതിരിച്ചറിയുന്നത്.

ഓതന്റിക്കേഷൻ: കോളറുടെ സ്വന്തം Bearer API കീ, isValidApiKey ഉപയോഗിച്ച് സാധൂകരിച്ചത് — ഇത് requireManagementAuth-ന്റെ പിന്നിൽ തുടരുന്ന മാനേജ്മെന്റ് ഇന്റർഫേസ് (/api/keys/…) അല്ല.


സെമാന്റിക് കാഷ്

# കാഷ് സ്ഥിതിവിവരക്കണക്കുകൾ നേടുക
GET /api/cache/stats

# എല്ലാ കാഷുകളും മായ്ക്കുക
DELETE /api/cache/stats

പ്രതികരണ ഉദാഹരണം:

{
  "semanticCache": {
    "memorySize": 42,
    "memoryMaxSize": 500,
    "dbSize": 128,
    "hitRate": 0.65
  },
  "idempotency": {
    "activeKeys": 3,
    "windowMs": 5000
  }
}

ലേറ്റൻസിയിലുള്ള സ്വാധീനം

ഒരു സെമാന്റിക് കാഷ് HIT പ്രതികരണം അപ്സ്ട്രീം കോൾ ഇല്ലാതെ കാഷിൽനിന്ന് നൽകുന്നതിനാൽ, റിപ്പോർട്ട് ചെയ്യുന്ന X-OmniRoute-Response-Latency ഏതാണ്ട് പൂജ്യമായിരിക്കും (യഥാർത്ഥ അപ്സ്ട്രീം ലേറ്റൻസി പരിഗണിക്കാതെ). ലേറ്റൻസിയോട് സംവേദനക്ഷമമായ ക്ലയന്റുകൾ (ബെഞ്ച്മാർക്കിംഗ്, p50/p99 നിരീക്ഷണം) X-OmniRoute-Cache-Latency പ്രതികരണ ഹെഡർ പരിശോധിക്കണം:

മൂല്യം അർത്ഥം
synthetic പ്രതികരണം കാഷിൽനിന്ന് നൽകി; ലേറ്റൻസി യഥാർത്ഥ അപ്സ്ട്രീം സമയമല്ല
(ഇല്ല) യഥാർത്ഥ അപ്സ്ട്രീം കോളിൽനിന്നുള്ള പ്രതികരണം

ഓരോ കീയ്ക്കുമുള്ള കാഷ് ബൈപാസ്

cacheDefaultMode വഴി API കീകൾക്ക് സെമാന്റിക് കാഷ് റീഡുകൾ ഒഴിവാക്കാം:

മൂല്യം പ്രവർത്തനം
legacy സാധാരണ കാഷ് പ്രവർത്തനം (ഡിഫോൾട്ട്)
bypass കാഷ് ലുക്കപ്പ് പൂർണ്ണമായി ഒഴിവാക്കുക; എല്ലായ്പ്പോഴും അപ്സ്ട്രീം ഉപയോഗിക്കുക

കീ സൃഷ്ടിക്കുമ്പോൾ (POST /api/keys) സജ്ജമാക്കുക, അല്ലെങ്കിൽ (PATCH /api/keys/[id]) അപ്ഡേറ്റ് ചെയ്യുക:

{ "cacheDefaultMode": "bypass" }

ഓരോ അഭ്യർത്ഥനയ്ക്കുമുള്ള ബൈപാസ്

കീ ക്രമീകരണങ്ങൾ പരിഗണിക്കാതെ ഏത് അഭ്യർത്ഥനയ്ക്കും കാഷ് ബൈപാസ് ചെയ്യാനാകും:

X-OmniRoute-No-Cache: true

ഡാഷ്ബോർഡും മാനേജ്മെന്റും

മാനേജ്മെന്റ് റൂട്ടുകൾ (പൊതു auth/login ഒഴികെയുള്ള /api/*) സാധാരണ inference API കീകൾ ഉപയോഗിച്ച് അംഗീകരിക്കപ്പെടുന്നില്ല. ക്രെഡൻഷ്യൽ വിഭാഗങ്ങൾ, സ്കോപ്പുകൾ, curl ഉദാഹരണങ്ങൾ എന്നിവയ്ക്കായി: മാനേജ്മെന്റ് ഓതന്റിക്കേഷൻ.

ഓതന്റിക്കേഷൻ

Endpoint Method വിവരണം
/api/auth/login POST ലോഗിൻ ചെയ്യുക
/api/auth/logout POST ലോഗൗട്ട് ചെയ്യുക
/api/settings/require-login GET/PUT ലോഗിൻ ആവശ്യകത മാറ്റുക

പ്രൊവൈഡർ മാനേജ്മെന്റ്

Endpoint Method വിവരണം
/api/providers GET/POST പ്രൊവൈഡറുകളെ ലിസ്റ്റ് ചെയ്യുക / സൃഷ്ടിക്കുക
/api/providers/[id] GET/PUT/DELETE ഒരു പ്രൊവൈഡറെ മാനേജ് ചെയ്യുക
/api/providers/[id]/test POST പ്രൊവൈഡർ കണക്ഷൻ പരിശോധിക്കുക
/api/providers/[id]/models GET പ്രൊവൈഡർ മോഡലുകൾ ലിസ്റ്റ് ചെയ്യുക
/api/providers/validate POST പ്രൊവൈഡർ കോൺഫിഗ് സാധൂകരിക്കുക
/api/providers/bulk POST ഒരൊറ്റ പ്രൊവൈഡറിനായി API കീകൾ കൂട്ടത്തോടെ ചേർക്കുക
/api/providers/import POST പാഴ്സ് ചെയ്ത CSV/JSON ഫയലിൽ നിന്ന് വൈവിധ്യമാർന്ന പ്രൊവൈഡർ ലിസ്റ്റ് ഇറക്കുമതി ചെയ്യുക (#6836); ഓരോ വരിയിലെയും ഭാഗിക-പരാജയ ഫലങ്ങൾ
/api/provider-nodes* വിവിധതരം പ്രൊവൈഡർ നോഡ് മാനേജ്മെന്റ്
/api/provider-models GET/POST/PATCH/DELETE കസ്റ്റം മോഡലുകൾ (ചേർക്കുക, അപ്ഡേറ്റ് ചെയ്യുക, മറയ്ക്കുക/കാണിക്കുക, ഇല്ലാതാക്കുക)

OAuth ഫ്ലോകൾ

Endpoint Method വിവരണം
/api/oauth/[provider]/[action] വിവിധതരം പ്രൊവൈഡർ-നിർദ്ദിഷ്ട OAuth

റൂട്ടിംഗും കോൺഫിഗും

Endpoint Method വിവരണം
/api/models/alias GET/POST മോഡൽ അപരനാമങ്ങൾ
/api/models/catalog GET പ്രൊവൈഡറും തരവും അനുസരിച്ചുള്ള എല്ലാ മോഡലുകളും
/api/combos* വിവിധതരം കോംബോ മാനേജ്മെന്റ്
/api/keys* വിവിധതരം API കീ മാനേജ്മെന്റ്
/api/pricing GET മോഡൽ നിരക്കുകൾ

ഉപയോഗവും അനലിറ്റിക്സും

Endpoint Method വിവരണം
/api/usage/history GET ഉപയോഗ ചരിത്രം
/api/usage/logs GET ഉപയോഗ ലോഗുകൾ
/api/usage/request-logs GET അഭ്യർത്ഥനാതല ലോഗുകൾ
/api/usage/[connectionId] GET ഓരോ കണക്ഷനിലെയും ഉപയോഗം
/api/usage/token-limits GET/POST/DELETE ഓരോ API കീയ്ക്കുമുള്ള ടോക്കൺ-പരിധി ബജറ്റുകൾ
/api/usage/model-latency-stats GET ഓരോ പ്രൊവൈഡർ/മോഡലിനുമുള്ള റോളിംഗ് ലേറ്റൻസി സംഗ്രഹം (avg/p50/p95/p99, വിജയനിരക്ക്); ഫിൽട്ടറുകൾ: windowHours/minSamples/maxRows/provider/model (#6873)
/api/usage/cache-health GET call_logs-ലെ പ്രോംപ്റ്റ്-കാഷ് ആരോഗ്യ സംഗ്രഹം — എഴുത്ത്/വായന അനുപാതം, p50/p90/p99 എഴുത്ത്-വലുപ്പ വിതരണം, കനത്ത എഴുത്തുകളുടെ കേന്ദ്രീകരണം, ഓരോ മോഡലിലെയും വിഭജനം, കൂടാതെ healthy/degraded/thrash/no-data വിധി; ക്വറി പാരാമീറ്ററുകൾ range (1h|24h|7d|30d, ഡിഫോൾട്ട് 24h), ഓപ്ഷണലായി model (#8827)

ക്രമീകരണങ്ങൾ

Endpoint Method വിവരണം
/api/settings GET/PUT/PATCH പൊതുവായ ക്രമീകരണങ്ങൾ
/api/settings/proxy GET/PUT നെറ്റ്വർക്ക് പ്രോക്സി കോൺഫിഗ്
/api/settings/proxy/test POST പ്രോക്സി കണക്ഷൻ പരിശോധിക്കുക
/api/settings/ip-filter GET/PUT IP അനുവദനീയപട്ടിക/തടയൽപട്ടിക
/api/settings/thinking-budget GET/PUT ചിന്തിക്കൽ/യുക്തിചിന്ത അഭ്യർത്ഥന റീറൈറ്റ് മോഡ് (passthrough / auto-strip / custom / adaptive). കംപ്രഷനിൽ നിന്ന് സ്വതന്ത്രമാണ്. THINKING_BUDGET.md കാണുക.
/api/settings/system-prompt GET/PUT ആഗോള സിസ്റ്റം പ്രോംപ്റ്റ്
/api/settings/compression GET/PUT ആഗോള കംപ്രഷൻ കോൺഫിഗ്
/api/settings/purge-request-history POST അഭ്യർത്ഥനാ ലോഗ് വരികളും പ്രാദേശിക call-log ആർട്ടിഫാക്റ്റുകളും മായ്ക്കുക

കോൺടെക്സ്റ്റും കംപ്രഷനും

Endpoint Method വിവരണം
/api/compression/preview POST off/lite/standard/aggressive/ultra/RTK/stacked കംപ്രഷൻ പ്രിവ്യൂ ചെയ്യുക
/api/compression/language-packs GET ലഭ്യമായ Caveman ഭാഷാ പാക്കുകൾ ലിസ്റ്റ് ചെയ്യുക
/api/compression/rules GET Caveman നിയമ മെറ്റാഡാറ്റ ലിസ്റ്റ് ചെയ്യുക
/api/context/caveman/config GET/PUT Caveman-നിർദ്ദിഷ്ട ക്രമീകരണങ്ങളുടെ അപരനാമം
/api/context/rtk/config GET/PUT കസ്റ്റം ഫിൽട്ടറുകളും അസംസ്കൃത-ഔട്ട്പുട്ട് നിലനിർത്തലും ഉൾപ്പെടെയുള്ള RTK-നിർദ്ദിഷ്ട ക്രമീകരണങ്ങൾ
/api/context/rtk/filters GET RTK ഫിൽട്ടർ കാറ്റലോഗും കസ്റ്റം-ഫിൽട്ടർ ഡയഗ്നോസ്റ്റിക്സും
/api/context/rtk/test POST ഒരു ടെക്സ്റ്റ് പേലോഡിൽ RTK പ്രിവ്യൂ/ടെസ്റ്റ് പ്രവർത്തിപ്പിക്കുക
/api/context/rtk/raw-output/[id] GET പോയിന്റർ id ഉപയോഗിച്ച് നിലനിർത്തിയ, മറച്ചുവെച്ച അസംസ്കൃത ഔട്ട്പുട്ട് വായിക്കുക
/api/context/combos GET/POST കംപ്രഷൻ കോംബോ ലിസ്റ്റ്/സൃഷ്ടിക്കൽ
/api/context/combos/[id] GET/PUT/DELETE കംപ്രഷൻ കോംബോ വിശദാംശം/അപ്ഡേറ്റ്/ഇല്ലാതാക്കൽ
/api/context/combos/[id]/assignments GET/PUT റൂട്ടിംഗ് കോംബോകൾക്ക് കംപ്രഷൻ കോംബോകൾ നിയോഗിക്കുക
/api/context/analytics GET കംപ്രഷൻ അനലിറ്റിക്സ് അപരനാമം

നിരീക്ഷണം

Endpoint Method വിവരണം
/api/sessions GET സജീവ സെഷൻ ട്രാക്കിംഗ്
/api/rate-limits GET ഓരോ അക്കൗണ്ടിലെയും നിരക്ക് പരിധികൾ
/api/monitoring/health GET ആരോഗ്യ പരിശോധന + പ്രൊവൈഡർ സംഗ്രഹം (catalogCount, configuredCount, activeCount, monitoredCount). മാനേജ്മെന്റ് കാഴ്ചയിൽ credentialHealth ഉൾപ്പെടുന്നു: പ്രോബ്-കാഷ് സ്കെയിലറുകൾ, failed>0 ആയിരിക്കുമ്പോൾ failedConnections, കൂടാതെ staleDbNonOkCount (SQLite സ്റ്റിക്കി test_status, ഗേജ് അല്ല). MONITORING_GUIDE.md കാണുക.
/api/cache/stats GET/DELETE കാഷ് സ്ഥിതിവിവരക്കണക്കുകൾ / മായ്ക്കുക
/api/modality-bridge/stats GET ഇൻ-മെമ്മറി attempts, വിജയങ്ങൾ/bridged, പരാജയങ്ങൾ, കാഷ് ഹിറ്റുകൾ, totalLatencyMs, latencySamples, സാമ്പിൾ-ഡിനോമിനേറ്റഡ് averageLatencyMs, അവസാന ഉപയോഗ സമയം (പുനരാരംഭിക്കുമ്പോൾ റീസെറ്റ് ചെയ്യും; മാനേജ്മെന്റ് auth)
/api/modality-bridge/video/runtime GET മാനേജ്മെന്റ് auth/probe-ന് മുമ്പുള്ള കർശനമായ വിശ്വസനീയ-loopback പരിശോധന; ശുദ്ധീകരിച്ച FFmpeg/ffprobe ലഭ്യതയും പതിപ്പുകളും (no-store)
/api/modality-bridge/video/extract POST ആന്തരികമായി ഓതന്റിക്കേറ്റ് ചെയ്ത വിശ്വസനീയ-loopback ബൈറ്റ് ബ്രോക്കർ; 50 MiB ഇൻപുട്ട്, പരിധിയിട്ട ക്യൂ/32 MiB ഔട്ട്പുട്ട്, 503 ശേഷി, 499 വിച്ഛേദനം, 504 സമയപരിധി; ഇതൊരു പൊതു അപ്ലോഡ് API അല്ല

ബാക്കപ്പും എക്സ്പോർട്ട്/ഇംപോർട്ടും

Endpoint Method വിവരണം
/api/db-backups GET ലഭ്യമായ ബാക്കപ്പുകൾ ലിസ്റ്റ് ചെയ്യുക
/api/db-backups PUT മാനുവൽ ബാക്കപ്പ് സൃഷ്ടിക്കുക
/api/db-backups POST നിർദ്ദിഷ്ട ബാക്കപ്പിൽ നിന്ന് പുനഃസ്ഥാപിക്കുക
/api/db-backups/export GET ഡാറ്റാബേസ് .sqlite ഫയലായി ഡൗൺലോഡ് ചെയ്യുക
/api/db-backups/import POST ഡാറ്റാബേസ് മാറ്റിസ്ഥാപിക്കാൻ .sqlite ഫയൽ അപ്ലോഡ് ചെയ്യുക
/api/db-backups/exportAll GET പൂർണ്ണ ബാക്കപ്പ് .tar.gz ആർക്കൈവായി ഡൗൺലോഡ് ചെയ്യുക

ക്ലൗഡ് സിങ്ക്

Endpoint Method വിവരണം
/api/sync/cloud വിവിധതരം ക്ലൗഡ് സിങ്ക് പ്രവർത്തനങ്ങൾ
/api/sync/initialize POST സിങ്ക് ആരംഭിക്കുക
/api/cloud/* വിവിധതരം ക്ലൗഡ് മാനേജ്മെന്റ്

ടണലുകൾ

Endpoint Method വിവരണം
/api/tunnels/cloudflared GET ഡാഷ്ബോർഡിനായി Cloudflare Quick Tunnel ഇൻസ്റ്റാൾ/runtime നില വായിക്കുക
/api/tunnels/cloudflared POST Cloudflare Quick Tunnel പ്രവർത്തനക്ഷമമാക്കുക അല്ലെങ്കിൽ പ്രവർത്തനരഹിതമാക്കുക (action=enable/disable)
/api/tunnels/ngrok GET ഡാഷ്ബോർഡിനായി ngrok Tunnel runtime നില വായിക്കുക
/api/tunnels/ngrok POST ngrok Tunnel പ്രവർത്തനക്ഷമമാക്കുക അല്ലെങ്കിൽ പ്രവർത്തനരഹിതമാക്കുക (action=enable/disable)

CLI ഉപകരണങ്ങൾ

Endpoint Method വിവരണം
/api/cli-tools/claude-settings GET Claude CLI നില
/api/cli-tools/codex-settings GET Codex CLI നില
/api/cli-tools/droid-settings GET Droid CLI നില
/api/cli-tools/openclaw-settings GET OpenClaw CLI നില
/api/cli-tools/runtime/[toolId] GET പൊതുവായ CLI runtime

CLI പ്രതികരണങ്ങളിൽ ഇവ ഉൾപ്പെടുന്നു: installed, runnable, command, commandPath, runtimeMode, reason.

ACP ഏജന്റുകൾ

Endpoint Method വിവരണം
/api/acp/agents GET കണ്ടെത്തിയ എല്ലാ ഏജന്റുകളെയും (ബിൽറ്റ്-ഇൻ + കസ്റ്റം) നിലയോടൊപ്പം ലിസ്റ്റ് ചെയ്യുക
/api/acp/agents POST കസ്റ്റം ഏജന്റ് ചേർക്കുക അല്ലെങ്കിൽ കണ്ടെത്തൽ കാഷ് പുതുക്കുക
/api/acp/agents DELETE id ക്വറി പാരാമീറ്റർ ഉപയോഗിച്ച് ഒരു കസ്റ്റം ഏജന്റിനെ നീക്കം ചെയ്യുക

GET പ്രതികരണത്തിൽ agents[] (id, name, binary, version, installed, protocol, isCustom), summary (total, installed, notFound, builtIn, custom) എന്നിവ ഉൾപ്പെടുന്നു.

പ്രതിരോധശേഷിയും നിരക്ക് പരിധികളും

Endpoint Method വിവരണം
/api/resilience GET/PATCH അഭ്യർത്ഥനാ ക്യൂ, കണക്ഷൻ cooldown, പ്രൊവൈഡർ breaker, കാത്തിരിപ്പ് ക്രമീകരണങ്ങൾ എന്നിവ നേടുക/അപ്ഡേറ്റ് ചെയ്യുക
/api/resilience/reset POST പ്രൊവൈഡർ circuit breaker-കൾ റീസെറ്റ് ചെയ്യുക
/api/resilience/model-cooldowns GET ശേഷിക്കുന്ന സമയം അനുസരിച്ച് ക്രമീകരിച്ച സജീവമായ ഓരോ-(provider, connection, model) ലോക്കൗട്ടുകളും ലിസ്റ്റ് ചെയ്യുക
/api/resilience/model-cooldowns DELETE മോഡൽ ലോക്കൗട്ട് മായ്ക്കുക — body {provider, model} അല്ലെങ്കിൽ എല്ലാം മായ്ക്കാൻ {all: true}
/api/rate-limits GET ഓരോ അക്കൗണ്ടിലെയും നിരക്ക് പരിധി നില
/api/rate-limit GET ആഗോള നിരക്ക് പരിധി കോൺഫിഗറേഷൻ

നാല് /api/resilience/* റൂട്ടുകൾക്കും മാനേജ്മെന്റ് auth (requireManagementAuth) ആവശ്യമാണ്. പ്രൊവൈഡർ breaker, കണക്ഷൻ cooldown, മോഡൽ lockout എന്നിവയുടെ പൂർണ്ണ വിശദീകരണത്തിന് പ്രതിരോധശേഷി (വിപുലീകരിച്ചത്) കാണുക.

മൂല്യനിർണ്ണയങ്ങൾ

Endpoint Method വിവരണം
/api/evals GET/POST മൂല്യനിർണ്ണയ സ്യൂട്ടുകൾ ലിസ്റ്റ് ചെയ്യുക / മൂല്യനിർണ്ണയം പ്രവർത്തിപ്പിക്കുക

നയങ്ങൾ

Endpoint Method വിവരണം
/api/policies GET/POST/DELETE റൂട്ടിംഗ് നയങ്ങൾ മാനേജ് ചെയ്യുക

അനുപാലനം

Endpoint Method വിവരണം
/api/compliance/audit-log GET അനുപാലന ഓഡിറ്റ് ലോഗ് (അവസാന N എണ്ണം)

v1beta (Gemini-അനുയോജ്യം)

Endpoint Method വിവരണം
/v1beta/models GET Gemini ഫോർമാറ്റിൽ മോഡലുകൾ ലിസ്റ്റ് ചെയ്യുക
/v1beta/models/{...path} POST Gemini generateContent endpoint

നേറ്റീവ് Gemini SDK അനുയോജ്യത പ്രതീക്ഷിക്കുന്ന ക്ലയന്റുകൾക്കായി ഈ endpoint-കൾ Gemini API ഫോർമാറ്റിനെ പ്രതിഫലിപ്പിക്കുന്നു.

ആന്തരിക / സിസ്റ്റം API-കൾ

Endpoint Method വിവരണം
/api/init GET ആപ്ലിക്കേഷൻ ആരംഭ പരിശോധന (ആദ്യ പ്രവർത്തനത്തിൽ ഉപയോഗിക്കുന്നു)
/api/tags GET Ollama-അനുയോജ്യ മോഡൽ ടാഗുകൾ (Ollama ക്ലയന്റുകൾക്കായി)
/api/restart POST ക്രമാനുസൃത സെർവർ പുനരാരംഭം ട്രിഗർ ചെയ്യുക
/api/shutdown POST ക്രമാനുസൃത സെർവർ ഷട്ട്ഡൗൺ ട്രിഗർ ചെയ്യുക
/api/system/env/repair POST OAuth പ്രൊവൈഡർ പരിസ്ഥിതി വേരിയബിളുകൾ നന്നാക്കുക

കുറിപ്പ്: ഈ endpoint-കൾ സിസ്റ്റം ആന്തരികമായി അല്ലെങ്കിൽ Ollama ക്ലയന്റ് അനുയോജ്യതയ്ക്കായി ഉപയോഗിക്കുന്നു. അന്തിമ ഉപയോക്താക്കൾ സാധാരണയായി ഇവ നേരിട്ട് വിളിക്കാറില്ല.

OAuth പരിസ്ഥിതി നന്നാക്കൽ (v3.6.1+)

POST /api/system/env/repair
Content-Type: application/json

{
  "provider": "claude-code"
}

ഒരു നിർദ്ദിഷ്ട പ്രൊവൈഡറിന്റെ നഷ്ടപ്പെട്ടതോ കേടായതോ ആയ OAuth പരിസ്ഥിതി വേരിയബിളുകൾ നന്നാക്കുന്നു. മടക്കിനൽകുന്നത്:

{
  "success": true,
  "repaired": ["CLAUDE_CODE_OAUTH_CLIENT_ID", "CLAUDE_CODE_OAUTH_CLIENT_SECRET"],
  "backupPath": "/home/user/.omniroute/backups/env-repair-2026-04-11.bak"
}

ഓഡിയോ ട്രാൻസ്ക്രിപ്ഷൻ

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

കോൺഫിഗർ ചെയ്തിട്ടുള്ള ഏതെങ്കിലും STT പ്രൊവൈഡർ ഉപയോഗിച്ച് ഓഡിയോ ഫയലുകൾ ട്രാൻസ്ക്രൈബ് ചെയ്യുക. പാതയിലെ ആദ്യത്തെ സെഗ്മെന്റ് നേറ്റീവ് പ്രൊവൈഡറെ തിരഞ്ഞെടുക്കുന്നു (openai/…, deepgram/…). മറ്റൊരു വെണ്ടറിന്റെ മോഡൽ വീണ്ടും എക്സ്പോർട്ട് ചെയ്യുന്ന ഗേറ്റ്വേകൾ യോഗ്യതയുള്ള ഒരു ഐഡി ഉപയോഗിക്കുന്നു (openrouter/deepgram/nova-3).

അഭ്യർത്ഥന:

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

പ്രതികരണം:

{
  "text": "Hello, this is the transcribed audio content.",
  "task": "transcribe",
  "language": "en",
  "duration": 12.5
}

ഉദാഹരണ മോഡൽ ഐഡികൾ: openai/whisper-1 (ഒരു OpenAI കീ ആവശ്യമാണ്), openrouter/deepgram/nova-3 (ഒരു OpenRouter കീ ആവശ്യമാണ്), deepgram/nova-3 (ഒരു നേറ്റീവ് Deepgram കീ ആവശ്യമാണ്). യോഗ്യതാപ്രത്യയമില്ലാത്ത deepgram/nova-3 അഭ്യർത്ഥന OpenRouter ഉപയോഗിക്കില്ല.

പിന്തുണയ്ക്കുന്ന ഫോർമാറ്റുകൾ: mp3, wav, m4a, flac, ogg, webm.


Ollama അനുയോജ്യത

Ollama-യുടെ API ഫോർമാറ്റ് ഉപയോഗിക്കുന്ന ക്ലയന്റുകൾക്കായി:

# ചാറ്റ് എൻഡ്പോയിന്റ് (Ollama ഫോർമാറ്റ്)
POST /v1/api/chat

# മോഡൽ ലിസ്റ്റിംഗ് (Ollama ഫോർമാറ്റ്)
GET /api/tags

അഭ്യർത്ഥനകൾ Ollama ഫോർമാറ്റിനും ആന്തരിക ഫോർമാറ്റുകൾക്കും ഇടയിൽ സ്വയമേവ പരിവർത്തനം ചെയ്യപ്പെടുന്നു.

ടോക്കണൈസ് ചെയ്ത VS Code / ഹെഡറില്ലാത്ത അപരനാമങ്ങൾ

ഒരു ഇന്റഗ്രേഷന് Authorization ഹെഡർ ചേർക്കാൻ കഴിയാതിരിക്കുകയും അടിസ്ഥാന URL-ൽ API കീ ഉൾപ്പെടുത്തേണ്ടിവരികയും ചെയ്യുമ്പോൾ ഈ അപരനാമങ്ങൾ ഉപയോഗിക്കുക.

# OpenAI-ശൈലിയിലുള്ള കാറ്റലോഗ് അപരനാമം
GET /api/v1/vscode/{token}/
GET /api/v1/vscode/{token}/models

# OpenAI-ശൈലിയിലുള്ള ചാറ്റ് അപരനാമങ്ങൾ
POST /api/v1/vscode/{token}/chat/completions
POST /api/v1/vscode/{token}/responses

# Ollama-ശൈലിയിലുള്ള അപരനാമങ്ങൾ
POST /api/v1/vscode/{token}/api/chat
GET /api/v1/vscode/{token}/api/tags

ഉദാഹരണം:

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"}]}'

കുറിപ്പുകൾ:

  • ടോക്കണൈസ് ചെയ്ത അപരനാമങ്ങൾ /v1/*, /api/tags എന്നിവയുടെ അതേ ഹാൻഡ്ലറുകൾ വീണ്ടും ഉപയോഗിക്കുന്നു; പ്രതികരണ ഘടനകൾ മാറ്റമില്ലാതെ തുടരും.
  • ക്ലയന്റ് ഇഷ്ടാനുസൃത ഹെഡറുകൾ പിന്തുണയ്ക്കുമ്പോഴെല്ലാം Authorization: Bearer ... ഉപയോഗിക്കുന്നതിന് മുൻഗണന നൽകുക.
  • URL അടിസ്ഥാനമാക്കിയുള്ള ടോക്കണുകൾ റിവേഴ്സ്-പ്രോക്സി ലോഗുകളിലും ബ്രൗസർ ചരിത്രത്തിലും OmniRoute-ന് പുറത്തുള്ള ടെലിമെട്രിയിലും പ്രത്യക്ഷപ്പെട്ടേക്കാം. അവയെ ഡിഫോൾട്ട് ഓതന്റിക്കേഷൻ രീതിയായല്ല, അനുയോജ്യതയ്ക്കുള്ള ഒരു ഓപ്ഷനായി പരിഗണിക്കുക.

ടെലിമെട്രി

# ലേറ്റൻസി ടെലിമെട്രി സംഗ്രഹം നേടുക (ഓരോ പ്രൊവൈഡറിനും p50/p95/p99)
GET /api/telemetry/summary

പ്രതികരണം:

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

ബജറ്റ്

# എല്ലാ API കീകളുടെയും ബജറ്റ് നില നേടുക
GET /api/usage/budget

# ഒരു ബജറ്റ് സജ്ജമാക്കുക അല്ലെങ്കിൽ അപ്ഡേറ്റ് ചെയ്യുക
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"
}

സ്കീമ കുറിപ്പുകൾ (setBudgetSchema): apiKeyId നിർബന്ധമാണ്; dailyLimitUsd, weeklyLimitUsd, അല്ലെങ്കിൽ monthlyLimitUsd എന്നിവയിൽ കുറഞ്ഞത് ഒരെണ്ണമെങ്കിലും പൂജ്യത്തേക്കാൾ കൂടുതലായിരിക്കണം. ഐച്ഛിക ഫീൽഡുകൾ: warningThreshold (01), resetInterval (daily | weekly | monthly), resetTime (HH:MM). പഴയ {keyId, limit, period} ഘടന 400 Bad Request മടക്കി നൽകുന്നു.

ടോക്കൺ പരിധികൾ

ഓരോ API കീയ്ക്കുമുള്ള ടോക്കൺ ബജറ്റുകൾ (മുകളിലുള്ള USD-അടിസ്ഥാന ബജറ്റിൽ നിന്ന് വ്യത്യസ്തമാണ്). അഭ്യർത്ഥനാ പാതയിൽത്തന്നെ ഇത് നടപ്പാക്കുന്നു: ഒരു കീയുടെ നിലവിലെ വിൻഡോയിലെ ഉപയോഗം അതിന്റെ പരിധിയിലെത്തുമ്പോൾ, അഭ്യർത്ഥനകൾ 429 Too Many Requests ഉപയോഗിച്ച് നിരസിക്കപ്പെടും. പരിധികൾ ഒരു പ്രത്യേക model, ഒരു provider എന്നിവയിലേക്ക് പരിമിതപ്പെടുത്താം, അല്ലെങ്കിൽ കീയിൽ ഉടനീളം global ആയി പ്രയോഗിക്കാം; ഒരു അഭ്യർത്ഥനയുമായി നിരവധി പരിധികൾ പൊരുത്തപ്പെടുമ്പോൾ, ഏറ്റവും കർശനമായ പരിധിയാണ് പ്രാബല്യത്തിൽ വരുന്നത്.

# ഒരു കീയുടെ ടോക്കൺ പരിധികൾ പട്ടികപ്പെടുത്തുക (തത്സമയ വിൻഡോ ഉപയോഗം ഉൾപ്പെടെ)
GET /api/usage/token-limits?apiKeyId=key-123

# ഒരു ടോക്കൺ പരിധി സൃഷ്ടിക്കുകയോ അപ്ഡേറ്റ് ചെയ്യുകയോ ചെയ്യുക
POST /api/usage/token-limits
Content-Type: application/json

{
  "apiKeyId": "key-123",
  "scopeType": "model",
  "scopeValue": "openai/gpt-4o",
  "tokenLimit": 1000000,
  "resetInterval": "monthly",
  "enabled": true
}

# id ഉപയോഗിച്ച് ഒരു ടോക്കൺ പരിധി ഇല്ലാതാക്കുക
DELETE /api/usage/token-limits?id=tl-abc

സ്കീമ കുറിപ്പുകൾ (setTokenLimitSchema): apiKeyId, scopeType (model | provider | global) എന്നിവ നിർബന്ധമാണ്. scopeType എന്നത് global അല്ലാത്തപക്ഷം scopeValue നിർബന്ധമാണ് (ഉദാ. model സ്കോപ്പിനായി ഒരു മോഡൽ id, provider സ്കോപ്പിനായി ഒരു പ്രൊവൈഡർ id). tokenLimit ഒരു പോസിറ്റീവ് ഇന്റിജർ ആയിരിക്കണം (സ്ട്രിങ്ങിൽ നിന്ന് കോഴ്സ് ചെയ്യപ്പെടുന്നു). ഐച്ഛികമായവ: id (സൃഷ്ടിക്കാൻ ഒഴിവാക്കുക, അപ്ഡേറ്റ് ചെയ്യാൻ നൽകുക), resetInterval (daily | weekly | monthly, ഡിഫോൾട്ട് monthly), resetTime (HH:MM), enabled (ഡിഫോൾട്ട് true). GET പ്രതികരണങ്ങൾ ഓരോ പരിധിയെയും tokensUsed, remaining, windowStart, periodStartAt, nextResetAt എന്നിവ ഉപയോഗിച്ച് സമ്പുഷ്ടമാക്കുന്നു. ഇത് ഒരു മാനേജ്മെന്റ്-ക്ലാസ് എൻഡ്പോയിന്റാണ് (authz പൈപ്പ്ലൈൻ വഴി ഓതന്റിക്കേഷൻ കേന്ദ്രീകൃതമായി നടപ്പാക്കുന്നു).

അഭ്യർത്ഥനാ പ്രോസസ്സിംഗ്

  1. ക്ലയന്റ് /v1/* എന്നതിലേക്ക് അഭ്യർത്ഥന അയയ്ക്കുന്നു
  2. റൂട്ട് ഹാൻഡ്ലർ handleChat, handleEmbedding, handleAudioTranscription, അല്ലെങ്കിൽ handleImageGeneration വിളിക്കുന്നു
  3. മോഡൽ പരിഹരിക്കപ്പെടുന്നു (നേരിട്ടുള്ള പ്രൊവൈഡർ/മോഡൽ അല്ലെങ്കിൽ അപരനാമം/കോംബോ)
  4. അക്കൗണ്ട് ലഭ്യതാ ഫിൽട്ടറിങ്ങോടെ ലോക്കൽ DB-യിൽ നിന്ന് ക്രെഡൻഷ്യലുകൾ തിരഞ്ഞെടുക്കുന്നു
  5. ചാറ്റിനായി: handleChatCore സെമാന്റിക്/സിഗ്നേച്ചർ കാഷ് പരിശോധിക്കുകയും കോംബോ കംപ്രഷൻ ക്രമീകരണങ്ങൾ പരിഹരിക്കുകയും ചെയ്യുന്നു
  6. പ്രവർത്തനക്ഷമമാക്കിയിരിക്കുമ്പോൾ പ്രൊവൈഡർ പരിഭാഷയ്ക്ക് മുമ്പായി പ്രോആക്റ്റീവ് കംപ്രഷൻ പ്രവർത്തിക്കുന്നു (lite, Caveman, RTK, അല്ലെങ്കിൽ സ്റ്റാക്ക് ചെയ്തത്)
  7. പ്രൊവൈഡർ എക്സിക്യൂട്ടർ അപ്സ്ട്രീം അഭ്യർത്ഥന അയയ്ക്കുന്നു
  8. പ്രതികരണം ക്ലയന്റ് ഫോർമാറ്റിലേക്ക് തിരികെ പരിഭാഷപ്പെടുത്തുന്നു (ചാറ്റ്) അല്ലെങ്കിൽ അതേപടി തിരികെ നൽകുന്നു (എംബെഡ്ഡിങ്ങുകൾ/ചിത്രങ്ങൾ/ഓഡിയോ)
  9. ഉപയോഗം, കംപ്രഷൻ അനലിറ്റിക്സ്, അഭ്യർത്ഥനാ ലോഗുകൾ എന്നിവ രേഖപ്പെടുത്തുന്നു
  10. പിശകുകൾ സംഭവിക്കുമ്പോൾ കോംബോ നിയമങ്ങൾ അനുസരിച്ച് ഫാൾബാക്ക് പ്രയോഗിക്കുന്നു

പൂർണ്ണമായ ആർക്കിടെക്ചർ റഫറൻസ്: ARCHITECTURE.md


കോംബോ മാനേജ്മെന്റ്

ഉയർന്ന തലത്തിലുള്ള റൂട്ടിങ് കോംബോകൾ (/api/combos* എന്നതിന് കീഴിൽ ഇതിനകം സംഗ്രഹിച്ചിട്ടുള്ളവ) ഒരു മോഡൽ id പാറ്റേണിൽ നിന്ന് 1:1 ആയും മാപ്പ് ചെയ്യാം; ഇതിലൂടെ OpenAI-ശൈലിയിലുള്ള ഒരു മോഡൽ id സുതാര്യമായി ഒരു കോംബോയിലേക്ക് റീഡയറക്ട് ചെയ്യാൻ കഴിയും.

രീതി പാത വിവരണം
GET /api/model-combo-mappings എല്ലാ മോഡൽ→കോംബോ മാപ്പിങ്ങുകളും പട്ടികപ്പെടുത്തുക
POST /api/model-combo-mappings മാപ്പിങ് സൃഷ്ടിക്കുക — ബോഡി: {pattern, comboId, priority?, enabled?, description?}
GET /api/model-combo-mappings/[id] ഒരൊറ്റ മാപ്പിങ് വീണ്ടെടുക്കുക
PUT /api/model-combo-mappings/[id] നിലവിലുള്ള ഒരു മാപ്പിങ്ങിന്റെ ഫീൽഡുകൾ അപ്ഡേറ്റ് ചെയ്യുക
DELETE /api/model-combo-mappings/[id] ഒരു മാപ്പിങ് നീക്കംചെയ്യുക

ഓതന്റിക്കേഷൻ: മാനേജ്മെന്റ് സെഷൻ/API കീ (requireManagementAuth).


വെബ്ഹുക്കുകൾ

OmniRoute ഇവന്റുകൾക്കായുള്ള ഔട്ട്ബൗണ്ട് വെബ്ഹുക്ക് സബ്സ്ക്രിപ്ഷനുകൾ (അഭ്യർത്ഥന പൂർത്തീകരണം, ക്വാട്ട തീരൽ, കീ റൊട്ടേഷൻ തുടങ്ങിയവ).

രീതി പാത വിവരണം
GET /api/webhooks വെബ്ഹുക്കുകൾ പട്ടികപ്പെടുത്തുക (രഹസ്യങ്ങൾ <prefix>... ആയി മറച്ചിരിക്കും)
POST /api/webhooks വെബ്ഹുക്ക് സൃഷ്ടിക്കുക — ബോഡി: {url, events?: ["*"], secret?, description?}
GET /api/webhooks/[id] ഒരു വെബ്ഹുക്ക് വീണ്ടെടുക്കുക
PUT /api/webhooks/[id] url/events/secret/description അപ്ഡേറ്റ് ചെയ്യുക
DELETE /api/webhooks/[id] ഒരു വെബ്ഹുക്ക് നീക്കം ചെയ്യുക
POST /api/webhooks/[id]/test വെബ്ഹുക്ക് URL-ലേക്ക് ഒരു ടെസ്റ്റ് പേലോഡ് അയച്ച് ഡെലിവറി നില തിരികെ നൽകുക

പ്രാമാണീകരണം: മാനേജ്മെന്റ് സെഷൻ/API കീ (requireManagementAuth).


രജിസ്റ്റർ ചെയ്ത കീകൾ (സ്വയമേവയുള്ള മാനേജ്മെന്റ്)

ദൈനംദിന/മണിക്കൂർ ക്വാട്ടകളോടെ, അടിസ്ഥാന provider/account-നെതിരെ API കീകൾ നൽകുന്നതിനും റൊട്ടേറ്റ് ചെയ്യുന്നതിനും ഓട്ടോ-കീ മാനേജ്മെന്റ് സബ്സിസ്റ്റം ഉപയോഗിക്കുന്നു.

രീതി പാത വിവരണം
GET /api/v1/registered-keys രജിസ്റ്റർ ചെയ്ത കീകൾ പട്ടികപ്പെടുത്തുക (മറച്ച പ്രിഫിക്സ് മാത്രം)
POST /api/v1/registered-keys പുതിയൊരു രജിസ്റ്റർ ചെയ്ത കീ നൽകുക — ബോഡി: {name, provider?, accountId?, idempotencyKey?, expiresAt?, dailyBudget?, hourlyBudget?}. അസംസ്കൃത കീ ഒരിക്കൽ മാത്രം തിരികെ നൽകുന്നു. ക്വാട്ട നിരസിക്കുമ്പോൾ 429 തിരികെ നൽകുന്നു.
GET /api/v1/registered-keys/[id] രജിസ്റ്റർ ചെയ്ത ഒരു കീയുടെ മെറ്റാഡാറ്റ വീണ്ടെടുക്കുക (അസംസ്കൃത കീ ഉൾപ്പെടില്ല)
DELETE /api/v1/registered-keys/[id] രജിസ്റ്റർ ചെയ്ത ഒരു കീ അസാധുവാക്കുക
POST /api/v1/registered-keys/[id]/revoke വ്യക്തമായ അസാധുവാക്കൽ എൻഡ്പോയിന്റ് (DELETE-ന്റെ അതേ ഫലം)

പ്രാമാണീകരണം: Bearer API കീ (isAuthenticated). /v1/quotas/check, /v1/issues/report എന്നിവയും കാണുക.


ഏജന്റ്സ് പ്രോട്ടോക്കോൾ

OmniRoute ഉപയോക്താക്കൾക്കുവേണ്ടി വിദൂരമായി നിർവഹിക്കുന്ന ക്ലൗഡ് ഏജന്റ് ടാസ്കുകൾ (Claude Code, Codex Cloud, OpenHands മുതലായവ).

രീതി പാത വിവരണം
GET /api/v1/agents/tasks ടാസ്കുകൾ പട്ടികപ്പെടുത്തുക — ഐച്ഛികമായി ?provider=, ?status=, ?limit= (1500, ഡിഫോൾട്ട് 50)
POST /api/v1/agents/tasks ടാസ്ക് സൃഷ്ടിക്കുക — ബോഡി CreateCloudAgentTaskSchema ഉപയോഗിച്ച് സാധൂകരിക്കുന്നു (providerId, prompt, source, options?). ടാസ്ക് എൻവലപ്പിനൊപ്പം 201 മടക്കിനൽകുന്നു
DELETE /api/v1/agents/tasks?id=... ഒരു ടാസ്ക് ഇല്ലാതാക്കുക
GET /api/v1/agents/tasks/[id] ടാസ്ക് വായിക്കുക — external_id സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ അപ്സ്ട്രീം ക്ലൗഡ് ഏജന്റിൽനിന്ന് സ്റ്റാറ്റസ് സമകാലികമായി പുതുക്കുന്നു
POST /api/v1/agents/tasks/[id] വേർതിരിച്ചറിയാവുന്ന ആക്ഷൻ: {action: "approve"}, {action: "message", message}, അല്ലെങ്കിൽ {action: "cancel"}
DELETE /api/v1/agents/tasks/[id] id അനുസരിച്ച് ഒരു നിർദ്ദിഷ്ട ടാസ്ക് ഇല്ലാതാക്കുക

ഓതന്റിക്കേഷൻ: എല്ലാ രീതികൾക്കും മാനേജ്മെന്റ് ഓതന്റിക്കേഷൻ ആവശ്യമാണ് (requireCloudAgentManagementAuth). v3.8.0-ന് മുമ്പ് ഇവയ്ക്ക് ഓതന്റിക്കേഷൻ ഉണ്ടായിരുന്നില്ല — ഈ ബ്രേക്കിംഗ് മാറ്റത്തിന് commit 588a0333 കാണുക.

# ഒരു Claude Code ക്ലൗഡ് ടാസ്ക് സൃഷ്ടിക്കുക
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":"..."}}'

മാനേജ്മെന്റ് പ്രോക്സികൾ

പ്രൊവൈഡർമാർക്കോ അക്കൗണ്ടുകൾക്കോ ആഗോളമായോ അസൈൻ ചെയ്യാവുന്ന ഔട്ട്ബൗണ്ട് HTTP(S)/SOCKS പ്രോക്സികൾ.

രീതി പാത വിവരണം
GET /api/v1/management/proxies പ്രോക്സികൾ പട്ടികപ്പെടുത്തുക (?id= ഉപയോഗിച്ച് ഒന്ന് മടക്കിനൽകുന്നു; ?id=&where_used=1 ഉപയോഗിച്ച് അസൈൻമെന്റ് ഗ്രാഫ് മടക്കിനൽകുന്നു)
POST /api/v1/management/proxies പ്രോക്സി സൃഷ്ടിക്കുക — ബോഡി createProxyRegistrySchema ഉപയോഗിച്ച് സാധൂകരിക്കുന്നു
PATCH /api/v1/management/proxies പ്രോക്സി അപ്ഡേറ്റ് ചെയ്യുക — ബോഡി updateProxyRegistrySchema ഉപയോഗിച്ച് സാധൂകരിക്കുന്നു (id ആവശ്യമാണ്)
DELETE /api/v1/management/proxies?id=...&force=1 പ്രോക്സി ഇല്ലാതാക്കുക (അസൈൻമെന്റുകൾ വേർപെടുത്താൻ force=1 ഉപയോഗിക്കുക)
GET /api/v1/management/proxies/assignments അസൈൻമെന്റുകൾ പട്ടികപ്പെടുത്തുക — proxy_id, scope, scope_id എന്നിവ ഉപയോഗിച്ച് ഫിൽട്ടർ ചെയ്യാം; ഒരു കണക്ഷനുവേണ്ടിയുള്ള സജീവ പ്രോക്സി കണ്ടെത്താൻ resolve_connection_id=<id> നൽകുക
PUT /api/v1/management/proxies/assignments അസൈൻ ചെയ്യുക — ബോഡി proxyAssignmentSchema ഉപയോഗിച്ച് സാധൂകരിക്കുന്നു ({scope, scopeId?, proxyId?}). ഡിസ്പാച്ചർ കാഷ് മായ്ക്കുന്നു
PUT /api/v1/management/proxies/bulk-assign ബൾക്ക് അസൈൻ ചെയ്യുക — ബോഡി bulkProxyAssignmentSchema ഉപയോഗിച്ച് സാധൂകരിക്കുന്നു ({scope, scopeIds[], proxyId?})
GET /api/v1/management/proxies/health?hours=24 ഒരു സമയപരിധിയിലുടനീളമുള്ള സംഗ്രഹിച്ച പ്രോക്സി ഹെൽത്ത് (വിജയ/പരാജയ എണ്ണങ്ങൾ, ലേറ്റൻസി)

ഓതന്റിക്കേഷൻ: എല്ലാ റൂട്ടിലും മാനേജ്മെന്റ് സെഷൻ/API കീ ആവശ്യമാണ് (requireManagementAuth).

ടാസ്ക് വിവരണത്തിലെ POST /api/v1/management/proxies/[id]/assignments, POST /api/v1/management/proxies/[id]/health എന്നിവ മുകളിൽ കാണിച്ചിരിക്കുന്ന ഫ്ലാറ്റ് /assignments, /health റൂട്ടുകളാണ് നൽകുന്നത് — കോഡ്ബേസിൽ ഓരോ id-ക്കും പ്രത്യേക സബ്റൂട്ടുകളില്ല.


പ്രതിരോധശേഷി (വിപുലീകരിച്ചത്)

OmniRoute മൂന്ന് സ്വതന്ത്ര താൽക്കാലിക-പരാജയ സംവിധാനങ്ങൾ ലഭ്യമാക്കുന്നു; താഴെയുള്ള മാനേജ്മെന്റ് എൻഡ്പോയിന്റുകൾ ഉപയോഗിച്ച് ഓപ്പറേറ്റർമാർക്ക് അവയുടെ നില വായിക്കാനും അവയെ അസാധുവാക്കാനും കഴിയും:

പരിധി നില സംഭരണം വായിക്കുക റീസെറ്റ് / മായ്ക്കുക
പ്രൊവൈഡർ സർക്യൂട്ട് ബ്രേക്കർ domain_circuit_breakers + ഇൻ-മെമ്മറി /api/monitoring/health POST /api/resilience/reset
കണക്ഷൻ കൂൾഡൗൺ പ്രൊവൈഡർ കണക്ഷനുകളിലെ rateLimitedUntil /api/rate-limits, /api/providers/[id] (ആവശ്യാനുസരണം വീണ്ടും പ്രവർത്തനക്ഷമമാകും; പ്രൊവൈഡർ PUT വഴി മായ്ക്കുക)
മോഡൽ ലോക്കൗട്ട് ഇൻ-മെമ്മറി മോഡൽ-ലഭ്യതാ രജിസ്ട്രി GET /api/resilience/model-cooldowns DELETE /api/resilience/model-cooldowns

PATCH /api/resilience, providerBreaker.oauth, providerBreaker.apikey എന്നിവയ്ക്ക് കീഴിലുള്ള പ്രൊവൈഡർ സർക്യൂട്ട് ബ്രേക്കർ ഓവർറൈഡുകൾ സ്വീകരിക്കുന്നു. ഓരോ പ്രൊഫൈലും degradationThreshold, failureThreshold, resetTimeoutMs എന്നിവ പിന്തുണയ്ക്കുന്നു; ഇതേ ഫീൽഡുകൾ Dashboard → Settings → Resilience എന്നതിലും ലഭ്യമാണ്.

# ഒരു മോഡൽ ലോക്കൗട്ട് മായ്ക്കുക
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"}'

# എല്ലാ ലോക്കൗട്ടുകളും മായ്ക്കുക
curl -X DELETE http://localhost:20128/api/resilience/model-cooldowns \
  -H "Cookie: auth_token=..." \
  -d '{"all":true}'

പൂർണ്ണമായ ആശയപരമായ റഫറൻസിനും സർക്യൂട്ട് ബ്രേക്കറിന്റെ ഡിഫോൾട്ട് മൂല്യങ്ങൾക്കും: CLAUDE.md → "പ്രതിരോധശേഷിയുടെ റൺടൈം നില" കാണുക.


സ്കില്ലുകൾ

ഇഷ്ടാനുസൃത എക്സിക്യൂട്ടബിൾ ഹാൻഡ്ലറുകളും മാർക്കറ്റ്പ്ലേസ് ഇന്റഗ്രേഷനുകളും ഉപയോഗിച്ച് OmniRoute വിപുലീകരിക്കുന്നതിനുള്ള സ്കിൽ ഫ്രെയിംവർക്ക്.

രീതി പാത്ത് വിവരണം
GET /api/skills ഇൻസ്റ്റാൾ ചെയ്ത സ്കില്ലുകൾ പട്ടികപ്പെടുത്തുക — ?q=, ?mode=on|off|auto, ?source=skillsmp|skillssh|local എന്നിവ ഉപയോഗിച്ച് ഫിൽട്ടർ ചെയ്യാം, പേജിനേഷൻ പിന്തുണയ്ക്കുന്നു
GET /api/skills/[id] ഒരു സ്കിൽ ലഭ്യമാക്കുക
PUT /api/skills/[id] സ്കിൽ അപ്ഡേറ്റ് ചെയ്യുക (പേര്, വിവരണം, മോഡ്, സ്കീമ, ഹാൻഡ്ലർ, ടാഗുകൾ)
DELETE /api/skills/[id] ഒരു സ്കിൽ അൺഇൻസ്റ്റാൾ ചെയ്യുക
POST /api/skills/install റോ മാനിഫെസ്റ്റിൽ നിന്ന് ഒരു സ്കിൽ ഇൻസ്റ്റാൾ ചെയ്യുക — ബോഡി: {name, version, description, schema:{input, output}, handlerCode, apiKeyId?}
GET /api/skills/executions സമീപകാല സ്കിൽ എക്സിക്യൂഷനുകൾ പട്ടികപ്പെടുത്തുക (ഇൻപുട്ടുകൾ/ഔട്ട്പുട്ടുകൾ/ദൈർഘ്യം ഉൾപ്പെടെയുള്ള ഓഡിറ്റ് ട്രെയിൽ)
GET /api/skills/marketplace?q=... SkillsMP മാർക്കറ്റ്പ്ലേസിൽ നിന്നുള്ള തിരയൽ/ജനപ്രിയ പട്ടിക (skillsmpApiKey ക്രമീകരണം ആവശ്യമാണ്)
POST /api/skills/marketplace/install SkillsMP-യിൽ നിന്ന് id ഉപയോഗിച്ച് ഒരു സ്കിൽ ഇൻസ്റ്റാൾ ചെയ്യുക
GET /api/skills/skillssh?q=&limit= skills.sh രജിസ്ട്രിയിൽ തിരയുക
POST /api/skills/skillssh/install skills.sh-ൽ നിന്ന് id ഉപയോഗിച്ച് ഒരു സ്കിൽ ഇൻസ്റ്റാൾ ചെയ്യുക

ഓതന്റിക്കേഷൻ: മാനേജ്മെന്റ് സെഷൻ/API കീ. മാർക്കറ്റ്പ്ലേസ് തിരയൽ റൂട്ടുകൾ മാനേജ്മെന്റ് ഓതന്റിക്കേഷനോ ഒരു Bearer API കീയോ (isAuthenticated) സ്വീകരിക്കുന്നു.


മെമ്മറി

API കീ / സെഷൻ അടിസ്ഥാനത്തിൽ പരിധി നിശ്ചയിച്ചിട്ടുള്ള സ്ഥിരമായ സംഭാഷണ/വസ്തുതാപരമായ മെമ്മറി സംഭരണി.

രീതി പാത വിവരണം
GET /api/memory മെമ്മറികൾ പട്ടികപ്പെടുത്തുക — ?apiKeyId=, ?type=, ?sessionId=, ?q=, കൂടാതെ offset/limit അല്ലെങ്കിൽ page/limit പേജിനേഷൻ
POST /api/memory മെമ്മറി സൃഷ്ടിക്കുക — Zod സാധൂകരിക്കുന്ന ബോഡി: {content, key, type?, sessionId?, apiKeyId?, metadata?, expiresAt?}
GET /api/memory/[id] ഒരു മെമ്മറി വീണ്ടെടുക്കുക
DELETE /api/memory/[id] ഒരു മെമ്മറി ഇല്ലാതാക്കുക
GET /api/memory/health മെമ്മറി ഉപസിസ്റ്റത്തിന്റെ നില (DB കണക്റ്റിവിറ്റി, എംബെഡ്ഡിങ്സ് ബാക്കെൻഡ്, വെക്റ്റർ ഇൻഡക്സ് നില)

ഓതന്റിക്കേഷൻ: മാനേജ്മെന്റ് സെഷൻ/API കീ (requireManagementAuth). type enum: FACTUAL, EPISODIC, SEMANTIC, PROCEDURAL (src/lib/memory/types.ts-ലെ MemoryType കാണുക).


MCP സെർവർ

OmniRoute, 3 ട്രാൻസ്പോർട്ടുകളും (stdio, SSE, streamable-http) സ്കോപ്പ് ചെയ്ത ടൂളുകളുമുള്ള ഒരു എംബെഡഡ് Model Context Protocol സെർവറുമായി ലഭ്യമാകുന്നു. ചുവടെയുള്ള ഡാഷ്ബോർഡ് എൻഡ്പോയിന്റുകൾ നില/ഓഡിറ്റ് ഡാറ്റ വായിക്കുകയും HTTP ട്രാൻസ്പോർട്ടുകളെ പ്രോക്സി ചെയ്യുകയും ചെയ്യുന്നു.

രീതി പാത വിവരണം
GET /api/mcp/status ഹാർട്ട്ബീറ്റ്, ട്രാൻസ്പോർട്ട്, ഓൺലൈൻ നില, അവസാന കോൾ, മുൻനിര ടൂളുകൾ, 24 മണിക്കൂർ വിജയനിരക്ക്
GET /api/mcp/tools name, description, scopes, phase, auditLevel, sourceEndpoints എന്നിവയുള്ള MCP ടൂളുകളുടെ പട്ടിക
GET /api/mcp/sse SSE ട്രാൻസ്പോർട്ടിനായി SSE സ്ട്രീം തുറക്കുക (MCP പ്രവർത്തനരഹിതമാണെങ്കിലോ ട്രാൻസ്പോർട്ട് പൊരുത്തക്കേടുണ്ടെങ്കിലോ 503 തിരികെ നൽകുന്നു)
POST /api/mcp/sse SSE ട്രാൻസ്പോർട്ടിൽ JSON-RPC ഫ്രെയിം അയയ്ക്കുക
GET /api/mcp/stream Streamable HTTP ട്രാൻസ്പോർട്ടിന്റെ SSE വശം തുറക്കുക (സെർവർ ആരംഭിക്കുന്ന സന്ദേശങ്ങൾ)
POST /api/mcp/stream Streamable HTTP ട്രാൻസ്പോർട്ടിൽ JSON-RPC ഫ്രെയിം അയയ്ക്കുക
DELETE /api/mcp/stream ഒരു Streamable HTTP സെഷൻ അവസാനിപ്പിക്കുക
GET /api/mcp/audit ഓഡിറ്റ് ലോഗ് അന്വേഷിക്കുക — ?limit=, ?offset=, ?tool=, `?success=true false, ?apiKeyId=`
GET /api/mcp/audit/stats സമാഹരിച്ച ഓഡിറ്റ് സ്ഥിതിവിവരക്കണക്കുകൾ (ആകെ എണ്ണം, വിജയനിരക്ക്, ശരാശരി ദൈർഘ്യം, മുൻനിര ടൂളുകൾ)

ഓതന്റിക്കേഷൻ: sse/stream ട്രാൻസ്പോർട്ടുകൾ MCP-നിർദ്ദിഷ്ട ഓതന്റിക്കേഷൻ സംവിധാനം പാലിക്കുന്നു (mcp സ്കോപ്പുള്ള Bearer API കീ); status/tools/audit* റൂട്ടുകൾ ഡാഷ്ബോർഡിൽ നിന്ന് വായിക്കാനാകും (ഡാഷ്ബോർഡ് ഹോസ്റ്റിലേക്ക് എത്തുന്നതിനപ്പുറം അധിക ഓതന്റിക്കേഷൻ ആവശ്യമില്ല).

രണ്ട് HTTP ട്രാൻസ്പോർട്ടുകളും settings.mcpEnabled, settings.mcpTransport എന്നിവയാൽ നിയന്ത്രിക്കപ്പെടുന്നു — ട്രാൻസ്പോർട്ട് പൊരുത്തക്കേട് 400 തിരികെ നൽകും, MCP പ്രവർത്തനരഹിതമായ നില 503 തിരികെ നൽകും.


A2A സെർവർ

പരിശോധനയ്ക്കും ഡാഷ്ബോർഡ് ഉപയോഗത്തിനുമുള്ള REST റാപ്പറിനൊപ്പം ഒരു A2A (Agent-to-Agent) JSON-RPC 2.0 എൻഡ്പോയിന്റ് OmniRoute ലഭ്യമാക്കുന്നു.

JSON-RPC

POST /a2a
Authorization: Bearer your-api-key   # 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"}]
  }
}

പിന്തുണയ്ക്കുന്ന രീതികൾ (എല്ലാം settings.a2aEnabled എന്ന ക്രമീകരണത്തിന് വിധേയമാണ്):

രീതി വിവരണം
message/send സമകാലിക സ്കിൽ നിർവഹണം; {task, artifacts, metadata} തിരികെ നൽകുന്നു
message/stream അതേ സ്കിൽ ഗണത്തിന്റെ സ്ട്രീമിംഗ് SSE നിർവഹണം
tasks/get taskId ഉപയോഗിച്ച് ഒരു ടാസ്ക് ലഭ്യമാക്കുന്നു
tasks/cancel taskId ഉപയോഗിച്ച് ഒരു ടാസ്ക് റദ്ദാക്കുന്നു

അന്തർനിർമ്മിത സ്കില്ലുകൾ: smart-routing, quota-management, provider-discovery, cost-analysis, health-report.

ഏജന്റ് കാർഡ്

GET /.well-known/agent.json

പൊതുവായ A2A ഏജന്റ് കാർഡ് (പേര്, വിവരണം, ശേഷികൾ, സ്കിൽ കാറ്റലോഗ്, പ്രാമാണീകരണ സ്കീം) തിരികെ നൽകുന്നു — പൊതുവായി 1 മണിക്കൂർ കാഷ് ചെയ്യപ്പെടും. പ്രാമാണീകരണം ആവശ്യമില്ല.

REST സഹായികൾ

രീതി പാത വിവരണം
GET /api/a2a/status A2A പ്രവർത്തനക്ഷമമാണോ എന്ന നില + ടാസ്ക് സ്ഥിതിവിവരക്കണക്കുകൾ + കാഷ് ചെയ്ത ഏജന്റ് കാർഡിന്റെ സംഗ്രഹം
GET /api/a2a/tasks ടാസ്കുകൾ പട്ടികപ്പെടുത്തുന്നു — ?state=submitted|working|completed|failed|cancelled, ?skill=, ?limit= (≤200), ?offset=
POST /api/a2a/tasks (REST സഹായിയായി നടപ്പിലാക്കിയിട്ടില്ല — JSON-RPC message/send വഴി സൃഷ്ടിക്കുക)
GET /api/a2a/tasks/[id] ഒരു ടാസ്ക് ലഭ്യമാക്കുന്നു
POST /api/a2a/tasks/[id]/cancel ഒരു ടാസ്ക് റദ്ദാക്കുന്നു

പ്രാമാണീകരണം: REST സഹായികൾ മാനേജ്മെന്റ് പ്രാമാണീകരണമില്ലാതെ പ്രവർത്തിക്കുന്നു (ഡാഷ്ബോർഡിൽ വായിക്കാവുന്നത്); ക്രമീകരിച്ചിട്ടുണ്ടെങ്കിൽ JSON-RPC /a2a റൂട്ട് Bearer OMNIROUTE_API_KEY ഉപയോഗിക്കുന്നു.


ക്ലൗഡ്, ഇവാലുകൾ & വിലയിരുത്തൽ

രീതി പാത വിവരണം
POST /api/cloud/auth ഒരു Bearer കീ പരിശോധിച്ച് ക്ലൗഡ് സമന്വയ ക്ലയന്റുകൾക്കായി മറച്ചുവെച്ച പ്രൊവൈഡർ കണക്ഷനുകളും മോഡൽ അപരനാമങ്ങളും തിരികെ നൽകുന്നു
POST /api/cloud/credentials/update ക്ലൗഡുമായി സമന്വയിപ്പിച്ച ഒരു പ്രൊവൈഡറുടെ എൻക്രിപ്റ്റ് ചെയ്ത ക്രെഡൻഷ്യലുകൾ അപ്ഡേറ്റ് ചെയ്യുന്നു
POST /api/cloud/model/resolve പ്രാദേശിക റൂട്ടിംഗ് പട്ടിക ഉപയോഗിച്ച് ഒരു ലോജിക്കൽ മോഡൽ ഐഡിയെ നിർദിഷ്ട പ്രൊവൈഡർ/മോഡലിലേക്ക് പരിഹരിക്കുന്നു
GET /api/cloud/models/alias ക്ലൗഡ് സമന്വയത്തിന് ലഭ്യമാക്കിയിരിക്കുന്ന മോഡൽ അപരനാമങ്ങൾ പട്ടികപ്പെടുത്തുന്നു
GET /api/assess ഏറ്റവും പുതിയ വിലയിരുത്തൽ വർഗ്ഗീകരണങ്ങൾ വായിക്കുന്നു (ഓരോ പ്രൊവൈഡർ/മോഡൽ അടിസ്ഥാനത്തിലും)
POST /api/assess ഒരു വിലയിരുത്തൽ പ്രവർത്തിപ്പിക്കുന്നു — ബോഡി: `{scope: {type:"all"} {type:"provider", providerId} {type:"model", modelId}, trigger?}`
GET /api/evals അന്തർനിർമ്മിത ഇവാൽ സ്യൂട്ടുകളും ഏറ്റവും പുതിയ റണ്ണുകളും പട്ടികപ്പെടുത്തുന്നു
POST /api/evals ഒരു ഇവാൽ റൺ ആരംഭിക്കുന്നു
POST /api/evals/suites ഒരു ഇഷ്ടാനുസൃത ഇവാൽ സ്യൂട്ട് സൃഷ്ടിക്കുന്നു — evalSuiteSaveSchema ഉപയോഗിച്ച് ബോഡി സാധൂകരിക്കുന്നു
GET /api/evals/suites/[id] ഒരു ഇഷ്ടാനുസൃത ഇവാൽ സ്യൂട്ട് ലഭ്യമാക്കുന്നു

പ്രാമാണീകരണം: /api/cloud/auth ഒരു Bearer കീ നേരിട്ട് സാധൂകരിക്കുന്നു; മറ്റ് /api/cloud/*, /api/evals/*, /api/assess റൂട്ടുകൾക്ക് മാനേജ്മെന്റ് സെഷൻ/API കീ ആവശ്യമാണ്. /api/assess POST, വ്യത്യസ്തമാക്കിയ യൂണിയൻ സ്കോപ്പ് സ്കീമയ്ക്കൊപ്പം validateBody ഉപയോഗിക്കുന്നു.


ACP (Agent Client Protocol) മാനേജ്മെന്റ്

ചൈൽഡ് പ്രോസസ്സുകളായി. ഈ എൻഡ്പോയിന്റുകൾ ACP ഏജന്റ് കണ്ടെത്തലും ഇഷ്ടാനുസൃത ഏജന്റ് രജിസ്ട്രേഷനും നിയന്ത്രിക്കുന്നു.

രീതി പാത വിവരണം
GET /api/acp/agents ഇൻസ്റ്റലേഷൻ നില, പതിപ്പ്, ബൈനറി എന്നിവയുൾപ്പെടെ അറിയപ്പെടുന്ന എല്ലാ CLI ഏജന്റുകളെയും (ബിൽറ്റ്-ഇൻ + ഇഷ്ടാനുസൃതം) പട്ടികപ്പെടുത്തുന്നു
POST /api/acp/agents ഒരു ഇഷ്ടാനുസൃത ACP ഏജന്റിനെ രജിസ്റ്റർ ചെയ്യുകയോ കാഷ് പുതുക്കുകയോ ചെയ്യുന്നു — ബോഡി: {id, name, binary, versionCommand, providerAlias, spawnArgs, protocol} അല്ലെങ്കിൽ {action: "refresh"}
DELETE /api/acp/agents ഒരു ഇഷ്ടാനുസൃത ACP ഏജന്റിനെ നീക്കം ചെയ്യുന്നു — ക്വറി പാരാമീറ്റർ: ?id=<agentId>

പ്രതികരണ ഉദാഹരണം (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
}

ഓതന്റിക്കേഷൻ: മാനേജ്മെന്റ് സെഷൻ (ഡാഷ്ബോർഡ് auth_token കുക്കി) അല്ലെങ്കിൽ മാനേജ്മെന്റ് സ്കോപ്പുള്ള API കീ ആവശ്യമാണ്.

പൂർണ്ണ വിവരങ്ങൾക്ക് ACP ഫ്രെയിംവർക്ക് കാണുക.


അനലിറ്റിക്സും നിരീക്ഷണക്ഷമതയും

റൂട്ടിംഗ്, കംപ്രഷൻ, പ്രൊവൈഡർ വൈവിധ്യം എന്നിവ നിരീക്ഷിക്കുന്നതിനുള്ള തത്സമയ അനലിറ്റിക്സ് എൻഡ്പോയിന്റുകൾ. ഇവയാണ് /dashboard/analytics/* പേജുകൾക്ക് ശക്തി പകരുന്നത്.

ഓട്ടോ-റൂട്ടിംഗ് അനലിറ്റിക്സ്

രീതി പാത വിവരണം
GET /api/analytics/auto-routing സമാഹരിച്ച ഓട്ടോ-റൂട്ടിംഗ് സ്ഥിതിവിവരക്കണക്കുകൾ: മൊത്തം കോളുകൾ, സ്ട്രാറ്റജി വിതരണം, ടിയർ വിതരണം, മുൻനിര പ്രൊവൈഡർമാർ
GET /api/analytics/auto-routing?days=7 സമയപരിധി അടിസ്ഥാനമാക്കിയുള്ള സ്ഥിതിവിവരക്കണക്കുകൾ (സ്ഥിരസ്ഥിതി 24h)

പ്രതികരണ ഉദാഹരണം:

{
  "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 }
  ]
}

കംപ്രഷൻ അനലിറ്റിക്സ്

രീതി പാത വിവരണം
GET /api/analytics/compression സമാഹരിച്ച കംപ്രഷൻ സ്ഥിതിവിവരക്കണക്കുകൾ: ലാഭിച്ച ടോക്കണുകൾ, ലാഭശതമാനം, മോഡ് വിതരണം, എൻജിൻ ഉപയോഗം

പ്രതികരണ ഉദാഹരണം:

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

പ്രൊവൈഡർ വൈവിധ്യ ട്രാക്കിംഗ്

രീതി പാത വിവരണം
GET /api/analytics/diversity Shannon entropy അടിസ്ഥാനമാക്കിയുള്ള വൈവിധ്യ ട്രാക്കിംഗ്: പ്രൊവൈഡർമാർക്കിടയിലെ വ്യാപ്തി അളക്കുന്നതിലൂടെ ഒറ്റപ്പെട്ട പരാജയകേന്ദ്രങ്ങൾ തടയുന്നു

പ്രതികരണ ഉദാഹരണം:

{
  "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"]
}

ഓതന്റിക്കേഷൻ: മാനേജ്മെന്റ് സെഷൻ അല്ലെങ്കിൽ മാനേജ്മെന്റ് സ്കോപ്പുള്ള API കീ ആവശ്യമാണ്.


അഡ്മിൻ പ്രവർത്തനങ്ങൾ

പ്രവർത്തനപരമായ മാനേജ്മെന്റിനായുള്ള അഡ്മിൻ-മാത്രം എൻഡ്പോയിന്റുകൾ.

രീതി പാത വിവരണം
GET /api/admin/concurrency നിലവിലെ കൺകറൻസി പരിധികൾ വായിക്കുക (ആഗോളതലം + ഓരോ പ്രൊവൈഡറിനും)
POST /api/admin/concurrency കൺകറൻസി പരിധികൾ അപ്ഡേറ്റ് ചെയ്യുക — ബോഡി: {global?: number, perProvider?: Record<string, number>}

ഓതന്റിക്കേഷൻ: അഡ്മിൻ സ്കോപ്പുള്ള മാനേജ്മെന്റ് സെഷൻ ആവശ്യമാണ്.


CLI ടൂളുകളുടെ മാനേജ്മെന്റ്

OmniRoute-മായി സംയോജിപ്പിക്കുന്ന CLI ടൂളുകൾ (antigravity, chipotle, commandCode, devin-cli മുതലായവ) മാനേജ് ചെയ്യുക. പൂർണ്ണമായ ലിസ്റ്റിനായി പ്രൊവൈഡർ റഫറൻസ് കാണുക.

രീതി പാത വിവരണം
GET /api/cli-tools/all-statuses എല്ലാ CLI ടൂളുകളുടെയും സ്റ്റാറ്റസ് (ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടോ, പതിപ്പ്, അവസാനം കണ്ട സമയം)
GET /api/cli-tools/status ഒരു CLI ടൂളിന്റെ വിശദമായ സ്റ്റാറ്റസ് (?tool= ക്വറി)
POST /api/cli-tools/apply ഒരു ടൂളിനായി ജനറേറ്റ് ചെയ്ത കോൺഫിഗ് എഴുതുക (dryRun പ്രിവ്യൂ നൽകുന്നു; കണ്ടെയ്നറിലാണെങ്കിൽ 422 + containerEphemeralTarget; പഴയ Codex YAML-നെ കുറിച്ച് migration സൂചിപ്പിക്കുന്നു)
GET /api/cli-tools/backups CLI ടൂൾ കോൺഫിഗറേഷൻ ബാക്കപ്പുകൾ ലിസ്റ്റ് ചെയ്യുക
POST /api/cli-tools/backups എല്ലാ CLI ടൂൾ കോൺഫിഗറേഷനുകളുടെയും ബാക്കപ്പ് സൃഷ്ടിക്കുക
POST /api/cli-tools/backups പുനഃസ്ഥാപിക്കൽ: ബോഡിയിൽ {tool, backupId} ഉൾപ്പെടുത്തി ഇതേ എൻഡ്പോയിന്റ് ഉപയോഗിച്ചാൽ ആ ബാക്കപ്പ് പുനഃസ്ഥാപിക്കും
GET /api/cli-tools/antigravity-mitm Antigravity MITM പ്രോക്സിയുടെ സ്റ്റാറ്റസ് (antigravity-mitm CLI ടൂൾ)
POST /api/cli-tools/antigravity-mitm/alias antigravity-mitm അപരനാമങ്ങൾ കോൺഫിഗർ ചെയ്യുക

ഓതന്റിക്കേഷൻ: മാനേജ്മെന്റ് സെഷൻ ആവശ്യമാണ്.


ഏജന്റ് സ്കില്ലുകൾ

AI ഏജന്റ് സ്കില്ലുകൾ മാനേജ് ചെയ്യുക (OpenAI-യുടെ ഇഷ്ടാനുസൃത GPT-കൾക്ക് സമാനമായവ, എന്നാൽ ഏജന്റുകൾക്കായി).

രീതി പാത വിവരണം
GET /api/agent-skills എല്ലാ ഏജന്റ് സ്കില്ലുകളും ലിസ്റ്റ് ചെയ്യുക (ബിൽറ്റ്-ഇൻ + ഇഷ്ടാനുസൃതം)
GET /api/agent-skills/[id] നിർദ്ദിഷ്ട ഏജന്റ് സ്കിൽ നേടുക
POST /api/agent-skills ഇഷ്ടാനുസൃത ഏജന്റ് സ്കിൽ സൃഷ്ടിക്കുക — ബോഡി: {name, description, prompt, model?, temperature?}
PUT /api/agent-skills/[id] ഇഷ്ടാനുസൃത ഏജന്റ് സ്കിൽ അപ്ഡേറ്റ് ചെയ്യുക
DELETE /api/agent-skills/[id] ഇഷ്ടാനുസൃത ഏജന്റ് സ്കിൽ ഇല്ലാതാക്കുക
GET /api/agent-skills/[id]/raw അസംസ്കൃത പ്രോംപ്റ്റും മെറ്റാഡാറ്റയും നേടുക (നിർവഹണമില്ലാതെ)
POST /api/agent-skills/generate സ്വാഭാവിക ഭാഷയിലുള്ള വിവരണത്തിൽനിന്ന് AI ഉപയോഗിച്ച് പുതിയൊരു സ്കിൽ ജനറേറ്റ് ചെയ്യുക

ഓതന്റിക്കേഷൻ: മാനേജ്മെന്റ് സെഷൻ അല്ലെങ്കിൽ മാനേജ്മെന്റ് സ്കോപ്പുള്ള API കീ ആവശ്യമാണ്.


കാഷ് മാനേജ്മെന്റ്

സെമാന്റിക് കാഷും റീസണിംഗ് കാഷും നിയന്ത്രിക്കുക.

രീതി പാത വിവരണം
GET /api/cache കാഷ് അവലോകനം: ആകെ എൻട്രികൾ, ഹിറ്റ് നിരക്ക്, ഡിസ്കിലെ വലുപ്പം
GET /api/cache/entries കാഷ് ചെയ്ത എൻട്രികളുടെ പട്ടിക (പേജിനേഷൻ സഹിതം)
DELETE /api/cache/entries കാഷ് എൻട്രികൾ ഇല്ലാതാക്കുക (ക്വറി പാരാമീറ്ററുകൾ പ്രകാരം ഫിൽട്ടർ ചെയ്യുക)
GET /api/cache/stats വിശദമായ കാഷ് സ്ഥിതിവിവരക്കണക്കുകൾ (ഓരോ പ്രൊവൈഡറിനും ഓരോ മോഡലിനും)
GET /api/cache/reasoning റീസണിംഗ് കാഷിന്റെ നില (റീസണിംഗ് റീപ്ലേയ്ക്കായി)
DELETE /api/cache/reasoning റീസണിംഗ് കാഷ് മായ്ക്കുക — ക്വറി പാരാമീറ്ററുകൾ: ?toolCallId=<id> (ഒന്ന്), ?provider=<p>, അല്ലെങ്കിൽ പാരാമീറ്ററുകളില്ലാതെ (എല്ലാം)

പ്രാമാണീകരണം: മാനേജ്മെന്റ് സെഷൻ ആവശ്യമാണ്.


മെമ്മറി സിസ്റ്റം

സ്ഥിരമായ മെമ്മറി (FTS5 + വെക്റ്റർ എംബെഡ്ഡിങ്ങുകൾ) നിയന്ത്രിക്കുക.

രീതി പാത വിവരണം
GET /api/memory മെമ്മറി എൻട്രികളുടെ പട്ടിക (സ്കോപ്പ്, തരം, തിരയൽ ക്വറി എന്നിവ പ്രകാരം ഫിൽട്ടർ ചെയ്യുക)
POST /api/memory പുതിയ മെമ്മറി എൻട്രി സൃഷ്ടിക്കുക — ബോഡി: {scope, type, content, metadata?}
GET /api/memory/[id] ഒരു നിർദ്ദിഷ്ട മെമ്മറി എൻട്രി നേടുക
PUT /api/memory/[id] ഒരു മെമ്മറി എൻട്രി അപ്ഡേറ്റ് ചെയ്യുക
DELETE /api/memory/[id] ഒരു മെമ്മറി എൻട്രി ഇല്ലാതാക്കുക
GET /api/memory?q= മെമ്മറിയിൽ തിരയുക (FTS5 + വെക്റ്റർ) — അതേ പ്രതികരണത്തിൽ സ്ഥിതിവിവരക്കണക്കുകളും ഉൾപ്പെടുത്തിയിരിക്കുന്നു

പ്രാമാണീകരണം: മാനേജ്മെന്റ് സെഷൻ അല്ലെങ്കിൽ മാനേജ്മെന്റ്-സ്കോപ്പുള്ള API കീ ആവശ്യമാണ്.


വെബ്ഹുക്കുകൾ

ഇവന്റുകൾക്കായുള്ള വെബ്ഹുക്ക് സബ്സ്ക്രിപ്ഷനുകൾ നിയന്ത്രിക്കുക.

രീതി പാത വിവരണം
GET /api/webhooks എല്ലാ വെബ്ഹുക്ക് സബ്സ്ക്രിപ്ഷനുകളുടെയും പട്ടിക
POST /api/webhooks ഒരു വെബ്ഹുക്ക് സബ്സ്ക്രിപ്ഷൻ സൃഷ്ടിക്കുക — ബോഡി: {url, events[], secret?, active?}
GET /api/webhooks/[id] ഒരു നിർദ്ദിഷ്ട വെബ്ഹുക്ക് സബ്സ്ക്രിപ്ഷൻ നേടുക
PUT /api/webhooks/[id] ഒരു വെബ്ഹുക്ക് സബ്സ്ക്രിപ്ഷൻ അപ്ഡേറ്റ് ചെയ്യുക
DELETE /api/webhooks/[id] ഒരു വെബ്ഹുക്ക് സബ്സ്ക്രിപ്ഷൻ ഇല്ലാതാക്കുക
GET /api/webhooks/[id]/deliveries ഒരു വെബ്ഹുക്കിന്റെ ഡെലിവറി ചരിത്രം പട്ടികപ്പെടുത്തുക (വിജയ/പരാജയ ലോഗ്)
POST /api/webhooks/[id]/test ഒരു വെബ്ഹുക്കിലേക്ക് പരീക്ഷണ ഇവന്റ് അയയ്ക്കുക

പ്രാമാണീകരണം: മാനേജ്മെന്റ് സെഷൻ ആവശ്യമാണ്.

എല്ലാ ഇവന്റ് തരങ്ങൾക്കും വെബ്ഹുക്ക്സ് ഫ്രെയിംവർക്ക് കാണുക.


സ്കിൽസ് ഫ്രെയിംവർക്ക്

സ്കിൽസ് (ഏജന്റിക് എക്സ്റ്റൻഷൻസ് ഫ്രെയിംവർക്ക്) മാനേജ് ചെയ്യുക.

മെത്തഡ് പാത്ത് വിവരണം
GET /api/skills ഇൻസ്റ്റാൾ ചെയ്ത എല്ലാ സ്കിൽസും ലിസ്റ്റ് ചെയ്യുക (ബിൽറ്റ്-ഇൻ + കസ്റ്റം)
POST /api/skills/install ഒരു ലോക്കൽ പാത്തിൽ നിന്നോ URL-ൽ നിന്നോ ഒരു സ്കിൽ ഇൻസ്റ്റാൾ ചെയ്യുക
DELETE /api/skills/[id] ഒരു സ്കിൽ അൺഇൻസ്റ്റാൾ ചെയ്യുക
PUT /api/skills/[id] ഒരു സ്കിൽ എനേബിൾ അല്ലെങ്കിൽ ഡിസേബിൾ ചെയ്യുക — ബോഡി: {enabled?: boolean, mode?: "on" | "off" | "auto"}
POST /api/skills/executions ഒരു സ്കിൽ എക്സിക്യൂട്ട് ചെയ്യുക — ബോഡി: {skillName, apiKeyId, input?, sessionId?}
GET /api/skills/executions എല്ലാ സ്കിൽസിന്റെയും എക്സിക്യൂഷൻ ഹിസ്റ്ററി ലിസ്റ്റ് ചെയ്യുക (?apiKeyId= ഉപയോഗിച്ച് ഫിൽട്ടർ ചെയ്യുക)

ഓതന്റിക്കേഷൻ: മാനേജ്മെന്റ് സെഷനോ മാനേജ്മെന്റ്-സ്കോപ്പുള്ള API കീയോ ആവശ്യമാണ്.

പൂർണ്ണ വിവരങ്ങൾക്ക് സ്കിൽസ് ഫ്രെയിംവർക്ക് കാണുക.


പ്ലഗിനുകൾ

OmniRoute പ്ലഗിനുകൾ (മൂന്നാം കക്ഷി എക്സ്റ്റൻഷനുകൾ) മാനേജ് ചെയ്യുക.

മെത്തഡ് പാത്ത് വിവരണം
GET /api/plugins ഇൻസ്റ്റാൾ ചെയ്ത പ്ലഗിനുകൾ ലിസ്റ്റ് ചെയ്യുക
POST /api/plugins/marketplace/install മാർക്കറ്റ്പ്ലേസിൽ നിന്ന് ഒരു പ്ലഗിൻ ഇൻസ്റ്റാൾ ചെയ്യുക
DELETE /api/plugins/[name] ഒരു പ്ലഗിൻ അൺഇൻസ്റ്റാൾ ചെയ്യുക
POST /api/plugins/[name]/activate ഒരു പ്ലഗിൻ ആക്റ്റിവേറ്റ് ചെയ്യുക
POST /api/plugins/[name]/deactivate ഒരു പ്ലഗിൻ ഡീആക്റ്റിവേറ്റ് ചെയ്യുക
GET /api/plugins/[name]/config പ്ലഗിൻ കോൺഫിഗറേഷൻ നേടുക
PUT /api/plugins/[name]/config പ്ലഗിൻ കോൺഫിഗറേഷൻ അപ്ഡേറ്റ് ചെയ്യുക

ഓതന്റിക്കേഷൻ: മാനേജ്മെന്റ് സെഷൻ ആവശ്യമാണ്.

പൂർണ്ണ വിവരങ്ങൾക്ക് പ്ലഗിൻസ് ഫ്രെയിംവർക്ക് കാണുക.


ഷാഡോ റൂട്ടിംഗ്

പ്രൊവൈഡർമാരുടെ ഷാഡോ / A-B താരതമ്യം ഒരു സ്വതന്ത്ര REST സർഫേസ് അല്ല — അത് കോംബോ റൂട്ടിംഗിലൂടെയാണ് കോൺഫിഗർ ചെയ്യുന്നത് (ഓട്ടോ-കോംബോ കാണുക). ഓരോ കോംബോയുടെയും താരതമ്യ മെട്രിക്സ് GET /api/combos/metrics വഴി ലഭ്യമാക്കുന്നു.


ഗാർഡ്റെയിലുകൾ

റൺടൈം ഗാർഡ്റെയിലുകൾ (PII ഡിറ്റക്ഷൻ, പ്രോംപ്റ്റ് ഇൻജക്ഷൻ ഡിറ്റക്ഷൻ, വിഷൻ ബ്രിഡ്ജിംഗ്) പരിശോധിക്കുക. എല്ലാ റിക്വസ്റ്റിലും ഗാർഡ്റെയിലുകൾ പ്രവർത്തിക്കുന്നു; ഓരോ കോളിലെയും ഒഴിവാക്കൽ x-omniroute-disabled-guardrails റിക്വസ്റ്റ് ഹെഡർ വഴിയാണ് — നിലനിൽക്കുന്ന എനേബിൾ/ഡിസേബിൾ സർഫേസ് ഇല്ല.

മെത്തഡ് പാത്ത് വിവരണം
GET /api/guardrails രജിസ്റ്റർ ചെയ്ത ഗാർഡ്റെയിലുകളും അവയുടെ സ്റ്റാറ്റസും ലിസ്റ്റ് ചെയ്യുക (പേര് / എനേബിൾഡ് / മുൻഗണന)
POST /api/guardrails/test ഒരു സാമ്പിൾ ഇൻപുട്ടിൽ പ്രീ-കോൾ പൈപ്പ്ലൈൻ ഡ്രൈ-റൺ ചെയ്യുക — ബോഡി: {input, disabledGuardrails?}

ഓതന്റിക്കേഷൻ: മാനേജ്മെന്റ് സെഷൻ ആവശ്യമാണ്.

പൂർണ്ണ വിവരങ്ങൾക്ക് സുരക്ഷ > ഗാർഡ്റെയിലുകൾ കാണുക.



പ്രാമാണീകരണം

നാല് ക്രെഡൻഷ്യൽ വിഭാഗങ്ങളെക്കുറിച്ചും (ഡാഷ്ബോർഡ് സെഷൻ, ലോക്കൽ CLI ടോക്കൺ, oma_live_… ആക്സസ് ടോക്കൺ, മാനേജ്മെന്റ്-സ്കോപ്പുള്ള API കീ) അവ ഇൻഫറൻസ് കീകളിൽനിന്ന് എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നുവെന്നും അറിയാൻ മാനേജ്മെന്റ് പ്രാമാണീകരണം കാണുക.

  • ഡാഷ്ബോർഡ് റൂട്ടുകൾ (/dashboard/*) auth_token കുക്കി ഉപയോഗിക്കുന്നു
  • ലോഗിൻ സേവ് ചെയ്ത പാസ്വേഡ് ഹാഷ് ഉപയോഗിക്കുന്നു; ലഭ്യമല്ലെങ്കിൽ INITIAL_PASSWORD ഉപയോഗിക്കുന്നു
  • /api/settings/require-login വഴി requireLogin ടോഗിൾ ചെയ്യാം
  • REQUIRE_API_KEY=true ആയിരിക്കുമ്പോൾ /v1/* റൂട്ടുകൾക്ക് ഐച്ഛികമായി Bearer API കീ ആവശ്യമാണ്
  • ഈ റഫറൻസിലെ "മാനേജ്മെന്റ് ടോക്കൺ" / "മാനേജ്മെന്റ്-സ്കോപ്പുള്ള API കീ" എന്നത് ആ ഗൈഡിലുള്ള വിഭാഗങ്ങളിലൊന്നിനെയാണ് സൂചിപ്പിക്കുന്നത് — നിർവചിക്കാത്ത മറ്റൊരു രഹസ്യ തരത്തെയല്ല

പിന്നോട്ടുള്ള അനുയോജ്യത തകർക്കുന്ന മാറ്റം (v3.8.0)/api/v1/agents/tasks/* റൂട്ടുകൾക്കും കൂൾഡൗൺ മാനേജ്മെന്റ് എൻഡ്പോയിന്റുകൾക്കും ഇപ്പോൾ മാനേജ്മെന്റ് പ്രാമാണീകരണം (ഡാഷ്ബോർഡ് auth_token കുക്കി അല്ലെങ്കിൽ മാനേജ്മെന്റ്-സ്കോപ്പുള്ള API കീ) ആവശ്യമാണ്. മുമ്പ് പ്രാമാണീകരണമില്ലാതെ ഈ റൂട്ടുകൾ വിളിച്ചിരുന്ന ക്ലയന്റുകൾക്ക് 401 Unauthorized ലഭിക്കും. commit 588a0333 (fix(auth): require management auth for agent and cooldown APIs) കാണുക.