Files
OmniRoute/docs/i18n/gu/docs/reference/API_REFERENCE.md
Diego Rodrigues de Sa e Souza b637350680 fix(docs): re-sync the 65 documentation mirror sets; section-level docs pipeline; drift gate blocking (#13940)
1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors.

⚠️ base-red inherited: #12732
2026-09-17 02:55:31 -03:00

176 KiB
Raw Blame History

API Reference (ગુજરાતી)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇳🇬 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 · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


🌐 ભાષાઓ: 🇺🇸 English | 🇪🇹 አማርኛ | 🇸🇦 العربية | 🇦🇿 Azərbaycan dili | 🇧🇬 Български | 🇧🇩 বাংলা | 🇨🇿 Čeština | 🇩🇰 Dansk | 🇩🇪 Deutsch | 🇬🇷 Ελληνικά | 🇪🇸 Español | 🇪🇪 Eesti | 🇮🇷 فارسی | 🇫🇮 Suomi | 🇫🇷 Français | 🇮🇪 Gaeilge | 🇮🇳 ગુજરાતી | 🇳🇬 Hausa | 🇮🇱 עברית | 🇮🇳 हिन्दी | 🇭🇷 Hrvatski | 🇭🇺 Magyar | 🇦🇲 Հայերեն | 🇮🇩 Bahasa Indonesia | 🇳🇬 Igbo | 🇮🇹 Italiano | 🇯🇵 日本語 | 🇬🇪 ქართული | 🇰🇭 ខ្មែរ | 🇮🇳 ಕನ್ನಡ | 🇰🇷 한국어 | 🇱🇹 Lietuvių | 🇱🇻 Latviešu | 🇮🇳 മലയാളം | 🇮🇳 मराठी | 🇲🇾 Bahasa Melayu | 🇲🇹 Malti | 🇲🇲 မြန်မာ | 🇳🇵 नेपाली | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇮🇳 ଓଡ଼ିଆ | 🇮🇳 ਪੰਜਾਬੀ | 🇵🇭 Filipino | 🇵🇱 Polski | 🇵🇹 Português (Portugal) | 🇧🇷 Português (Brasil) | 🇷🇴 Română | 🇷🇺 Русский | 🇱🇰 සිංහල | 🇸🇰 Slovenčina | 🇸🇮 Slovenščina | 🇷🇸 Српски | 🇸🇪 Svenska | 🇰🇪 Kiswahili | 🇮🇳 தமிழ் | 🇮🇳 తెలుగు | 🇹🇭 ไทย | 🇹🇷 Türkçe | 🇺🇦 Українська | 🇵🇰 اردو | 🇺🇿 Oʻzbekcha | 🇻🇳 Tiếng Việt | 🇳🇬 Yorùbá | 🇨🇳 中文 (简体) | 🇹🇼 中文 (繁體)

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 પર સેટ કરો (નો-કૅશ જેવું જ; દરેક કૉલનો ટોકન/ખર્ચ ઓવરહેડ ટાળે છે)
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 દ્વારા ઉપયોગમાં લેવાયેલ અસરકારક સત્ર ID
X-OmniRoute-Request-Id પ્રતિસાદ વિનંતી સહસંબંધ 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 (ફેઇલ-ઓપન).

કૅશ-હિટ ખર્ચ અર્થવિજ્ઞાન: સિમેન્ટિક-કૅશ 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 ક્યારેય ઇમેઇલ અથવા જનરેટ કરેલી એકાઉન્ટ ઓળખને તેના સ્થાને મૂકતું નથી. પ્રદાતા મૂલ્ય એ બિન-સંવેદનશીલ ડિસ્પ્લે લેબલ છે અને ક્યારેય જનરેટ કરેલું સુસંગત-પ્રદાતા ઓળખકર્તા નથી. ઓળખપત્રો, ટોકન્સ, કુકીઝ, કાચા કનેક્શન અથવા API કી ids, માલિક હેશ, ફેન્સિંગ સિક્રેટ્સ અને આંતરિક રૂટિંગ ડેટાનો સમાવેશ થતો નથી.

ખોટી-કી, ખોટા-માલિક, જૂના-generation, ગુમ, સમાપ્ત થયેલા, રિલીઝ થયેલા અને અમાન્ય કરાયેલા લુકઅપ્સ બધા કનેક્શન મેટાડેટા વિના સમાન 409 LEASE_FENCE_STALE ભૂલ પરત કરે છે. ક્ષમતા-પ્રતીક્ષા પ્રતિસાદ મેળવનાર ક્લાયન્ટ પાસે તપાસવા માટે કોઈ સક્રિય બાઇન્ડિંગ હોતું નથી. જ્યારે રૂટિંગ સક્રિય લીઝનું સંક્રમણ કરે છે, ત્યારે સમાન 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 ને ફરીથી ચલાવવું નિષ્ફળ જાય છે, ભલે તે કી સમાન કનેક્શનની પરવાનગી આપતી હોય. કાચા માલિકો પર્સિસ્ટ થતા નથી, લૉગ થતા નથી, વિનંતી સ્નૅપશૉટમાં જાળવવામાં આવતા નથી અથવા અપસ્ટ્રીમ ફોરવર્ડ થતા નથી.

અસ્થાયી સ્પર્ધા Retry-After સાથે HTTP 429 અને નીચેનું પરત કરે છે:

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

કૅટલૉગ ids provider/model સ્વરૂપમાં હોય છે (ઉદાહરણ: jina-ai/jina-embeddings-v5-omni-small). રજિસ્ટ્રીમાં દેખાતા માત્ર Jina model ids (ઉદાહરણ તરીકે 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 તે ઑબ્જેક્ટ્સને સ્ટ્રિંગમાં રૂપાંતરિત કરતું નથી અથવા નેટિવ image URLsને ફેચ કરતું નથી — Jina સાર્વજનિક મીડિયાને પોતે પ્રાપ્ત કરે છે. વધારાનાં Jina ફીલ્ડ્સ (task, normalized, truncate, embedding_type) ફૉર્વર્ડ કરવામાં આવે છે. માત્ર-ટેક્સ્ટ Jina SKUs હજુ પણ નૉન-ટેક્સ્ટ દસ્તાવેજોને નકારે છે.

સુરક્ષા અને ટ્રાન્સપોર્ટ મર્યાદાઓ:

  • રિમોટ મીડિયા URLs સાર્વજનિક HTTPS હોવા આવશ્યક છે. કૅનોનિકલ {type,source:url} આઇટમ્સને સર્વર-સાઇડ ફેચ કરવામાં આવે છે (રીડાયરેક્ટ પુનઃમાન્યકરણ, ટાઇમઆઉટ, સાઇઝ મર્યાદાઓ, સાર્વજનિક DNS, કનેક્શન પિનિંગ) અને પ્રદાતા કૉલ પહેલાં ઇનલાઇન કરવામાં આવે છે. Jina-નેટિવ {image:"https://..."} આઇટમ્સને સમાન સાર્વજનિક-HTTPS ચકાસણી પછી જેમ છે તેમ ફૉર્વર્ડ કરવામાં આવે છે; Jina URLને ફેચ કરે છે.
  • ઇનલાઇન base64 મીડિયા માટે દરેક આઇટમ દીઠ ડિકોડ કરેલી મર્યાદા 8 MiB અને સમગ્ર રિક્વેસ્ટ માટે ડિકોડ કરેલી મર્યાદા 16 MiB છે.

પ્રદાતા રૂપાંતરણ (કૅનોનિકલ આઇટમ્સને ક્યારેય ફેરફાર વિના ફૉર્વર્ડ કરવામાં આવતી નથી):

  • Jina મલ્ટિમોડલ મોડલ્સ: દરેક ટૉપ-લેવલ આઇટમ ઇનલાઇન મીડિયા માટે data URIsનો ઉપયોગ કરીને એક મોડાલિટી-કીવાળું ઑબ્જેક્ટ (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": "પર્વતો પરનો સુંદર સૂર્યાસ્ત",
  "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": "# કાઢવામાં આવેલ ટેક્સ્ટ..." }],
  "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 પ્રમાણીકરણ અને એન્ડપોઇન્ટ નિર્ધારણ

vertex-deepseek-ocr, ચેટ/છબી ટ્રાફિક માટે OmniRoute પહેલેથી જ સમર્થન આપતું હોય તે જ Vertex AI પ્રમાણીકરણનો ફરીથી ઉપયોગ કરે છે (open-sse/executors/vertex.ts): કનેક્શનની 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 ડિફૉલ્ટ. બંને ids એક જ મોડેલ તરફ રૂટ થાય છે; કોઈપણ સ્વરૂપને હાર્ડકોડ કરેલા ક્લાયન્ટ કૉન્ફિગ્સ કાર્યરત રહે તે માટે આ જાળવી રાખવામાં આવ્યું છે. આ કૅટલૉગનું કદ લગભગ બમણું કરે છે.
alias cc/claude-sonnet-4-6 મોડેલ દીઠ એક એન્ટ્રી. અલગ ઉપનામ ન ધરાવતા પ્રદાતાઓ પણ પોતાની એન્ટ્રી ઉત્સર્જિત કરે છે, તેથી કંઈ ગુમ થતું નથી.
canonical claude/claude-sonnet-4-6 સંપૂર્ણ પ્રદાતા-id ઉપસર્ગ હેઠળ મોડેલ દીઠ એક એન્ટ્રી. અલગ ઉપનામ ન ધરાવતા પ્રદાતાઓ (દા.ત. antigravity/…, agy/…) પણ અહીં પોતાનું એકમાત્ર id ઉત્સર્જિત કરે છે, તેથી કંઈ ગુમ થતું નથી.

dual-મોડ મિરરને ક્વેરી પૅરામીટર વિના પણ ઓળખી શકાય છે: તેમાં પ્રાથમિક id તરફ નિર્દેશ કરતું parent ફીલ્ડ હોય છે.

મોડેલ પિકર રેન્ડર કરતા ક્લાયન્ટોએ ?prefix=alias માટે વિનંતી કરવી જોઈએ — OmniCopilot VS Code extension પણ આ જ કરે છે.

વિચારણા-વિનાના મોડેલ વેરિઅન્ટ્સ

વિચારણા-સક્ષમ Claude મોડેલો માટે, /v1/models એક વિચારણા-વિનાનું વેરિઅન્ટ પણ દર્શાવે છે, જેના id પહેલાં claude-3-omniroute-no-thinking/ ઉપસર્ગ હોય છે:

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

આ id પસંદ કરવાથી (દા.ત. હંમેશાં thinking બ્લૉક જોડતા Claude Code કૉન્ફિગમાં) રીઝનિંગને નિષ્ક્રિય રાખીને વાસ્તવિક <provider>/<model> પર પાછું રિઝૉલ્વ થાય છે — /v1/messages પાથ પર thinking:{type:"disabled"}, અથવા /v1/chat/completions પાથ પર reasoning/reasoning_effort ફીલ્ડ્સ દૂર કરવામાં આવે છે. આ વેરિઅન્ટ માત્ર એવા Claude-કુટુંબના મોડેલો માટે સૂચિબદ્ધ થાય છે જે વિચારણાને સપોર્ટ કરે છે અને disabledને માન્ય રાખે છે (તેથી, દા.ત. disabledને નકારતા માત્ર-અડૅપ્ટિવ મોડેલો બાકાત રાખવામાં આવે છે). ઑપરેટર્સ ModelSpec.noThinkingAlias દ્વારા દરેક મોડેલ માટે વેરિઅન્ટને બળજબરીથી ચાલુ અથવા બંધ કરી શકે છે.


પ્રોવાઇડર પ્લગઇન મેનિફેસ્ટ

GET /api/v1/provider-plugin-manifest

Bifrost, CLIProxyAPI અને ભવિષ્યના સાઇડકાર રાઉટર્સ દ્વારા ઉપયોગમાં લેવાતું JSON-સુરક્ષિત પ્રોવાઇડર પ્લગઇન મેનિફેસ્ટ પરત કરે છે. પ્રતિસાદ TypeScript પ્રોવાઇડર રજિસ્ટ્રીમાંથી જનરેટ થાય છે અને ઇરાદાપૂર્વક OAuth ક્લાયન્ટ સિક્રેટ્સ, રનટાઇમ એન્વાયર્નમેન્ટ રિઝોલ્યુશન, એક્ઝિક્યુટર ફંક્શન્સ, રિક્વેસ્ટ હેડર્સ અને એકાઉન્ટ ડેટાને બાકાત રાખે છે.

જ્યારે સાઇડકાર આઉટ-ઓફ-પ્રોસેસ ચાલે અને 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 ટૅગ્સનું ટોકનાઇઝ્ડ ઉપનામ

બધા POST રૂટ્સ સમાન માળખાને અનુસરે છે: Bearer your-api-key + Zod દ્વારા માન્ય કરાયેલ JSON બોડી (v1RerankSchema, v1ModerationSchema, v1AudioSpeechSchema વગેરે, src/shared/validation/schemas.ts જુઓ). સ્કીમા નિષ્ફળ જાય ત્યારે 4xx પરત કરવામાં આવે છે.

જે ક્લાયન્ટ્સ Authorization: Bearer ... જોડી શકતા નથી તેમના માટે OmniRoute, ક્વેરી-સ્ટ્રિંગ સુસંગતતા (?token=..., ?apiKey=..., ?api_key=..., ?key=...) અથવા નીચે દસ્તાવેજીકૃત સમર્પિત /api/v1/vscode/{token}/... એન્ડપોઇન્ટ્સ દ્વારા URLમાં API કીઝ પણ સ્વીકારે છે.

# રીરૅન્ક
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 મૂળ ફાઇલ બોડીને સ્ટ્રીમ કરીને પરત મોકલો

પ્રમાણીકરણ: બેરર API કી — getApiKeyRequestScope મારફતે ફાઇલોનો વ્યાપ દરેક API કી મુજબ નક્કી થાય છે. કી માત્ર તેની પોતાની ફાઇલો જુએ છે, ડાઉનલોડ કરે છે અને કાઢી નાખે છે; કી વિનાનું ડેશબોર્ડ સેશન સમગ્ર ઇન્સ્ટન્સ વાંચે છે; માલિક વિનાની ફાઇલ (અનામી અથવા ડેશબોર્ડ-સેશન અપલોડ) દરેક બિન-સેશન કૉલર માટે પ્રતિબંધિત છે. GET /v1/files અનામી કૉલરને — અને એવી પ્રસ્તુત કીને જેનું નિરાકરણ થતું નથી — REQUIRE_API_KEY=false હોય ત્યારે પણ, દરેક ટેનન્ટની ફાઇલોની યાદી આપવાને બદલે 401 સાથે નકારે છે (GHSA-m3hp-hq9g-fpmv, GHSA-2jm2-mpx8-6523).


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 પ્રગતિમાં રહેલો બેચ રદ કરો

પ્રમાણીકરણ: બેરર API કી. બેચનો વ્યાપ ફાઇલો જેવા જ ત્રિ-માર્ગી નિયમ હેઠળ દરેક API કી મુજબ નક્કી થાય છે: માત્ર પોતાની કી, ડેશબોર્ડ સેશન માટે સમગ્ર ઇન્સ્ટન્સ, અને દરેક બિન-સેશન કૉલર માટે નલ-માલિકીના રેકોર્ડ પ્રતિબંધિત (મેળવવા, કાઢી નાખવા, રદ કરવા અને બનાવતી વખતે input_file_idની ચકાસણી). GET /v1/batches અનામી કૉલરને REQUIRE_API_KEY=false હોય ત્યારે પણ 401 સાથે નકારે છે.


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

રૂપરેખાંકિત વેબ-ફેચ પ્રદાતા (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) નિશ્ચિત પ્રાથમિકતા ક્રમમાં (પહેલા-ભરો) આગળ વધવામાં આવે છે — દર-મર્યાદિત પરંતુ રૂપરેખાંકિત પ્રદાતાને વિનંતીને તરત સમાપ્ત કરવાને બદલે અવગણવામાં આવે છે, અને ફરી પ્રયાસ કરી શકાય તેવી/ક્વોટા-સંબંધિત અપસ્ટ્રીમ નિષ્ફળતા (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 જેવો જ હોસ્ટ:પોર્ટ (ડિફૉલ્ટ 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ને રૂપરેખાંકિત કરવું

WebSocket સપોર્ટ ધરાવતો કસ્ટમ પ્રદાતા ~/.codex/config.tomlમાં ઉમેરીને 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 વડે માન્ય કરવામાં આવે છે — આ મેનેજમેન્ટ સપાટી (/api/keys/…) નથી, જે requireManagementAuth દ્વારા સુરક્ષિત રહે છે.


સિમેન્ટિક કૅશ

# કૅશના આંકડા મેળવો
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 પ્રતિસાદ કૅશમાંથી આપવામાં આવ્યો છે; લેટન્સી વાસ્તવિક અપસ્ટ્રીમ સમય નથી
(ગેરહાજર) વાસ્તવિક અપસ્ટ્રીમ કૉલમાંથી આવેલ પ્રતિસાદ

પ્રતિ-કી કૅશ બાયપાસ

API કીઓ cacheDefaultMode દ્વારા સિમેન્ટિક કૅશ વાંચનમાંથી બહાર રહી શકે છે:

મૂલ્ય વર્તન
legacy સામાન્ય કૅશ વર્તન (ડિફૉલ્ટ)
bypass કૅશ લુકઅપ સંપૂર્ણપણે અવગણો; હંમેશા અપસ્ટ્રીમનો ઉપયોગ કરો

કી બનાવતી વખતે (POST /api/keys) સેટ કરો અથવા (PATCH /api/keys/[id]) દ્વારા અપડેટ કરો:

{ "cacheDefaultMode": "bypass" }

પ્રતિ-વિનંતી બાયપાસ

કોઈપણ વિનંતી કી સેટિંગ્સને ધ્યાનમાં લીધા વિના કૅશને બાયપાસ કરી શકે છે:

X-OmniRoute-No-Cache: true

ડેશબોર્ડ અને વ્યવસ્થાપન

વ્યવસ્થાપન રૂટ્સ (/api/*, જાહેર auth/login સિવાય) સામાન્ય inference API કીઓ દ્વારા અધિકૃત નથી. ઓળખપત્રના પ્રકારો, સ્કોપ્સ અને curl ઉદાહરણો: વ્યવસ્થાપન પ્રમાણીકરણ.

પ્રમાણીકરણ

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/api/auth/login POST લૉગિન
/api/auth/logout POST લૉગઆઉટ
/api/settings/require-login GET/PUT લૉગિન આવશ્યકતા ચાલુ/બંધ કરો

પ્રદાતા વ્યવસ્થાપન

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/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 પ્રવાહો

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/api/oauth/[provider]/[action] વિવિધ પ્રદાતા-વિશિષ્ટ OAuth

રૂટિંગ અને રૂપરેખાંકન

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/api/models/alias GET/POST મોડેલ ઉપનામો
/api/models/catalog GET પ્રદાતા + પ્રકાર મુજબ બધા મોડેલો
/api/combos* વિવિધ કોમ્બો વ્યવસ્થાપન
/api/keys* વિવિધ API કી વ્યવસ્થાપન
/api/pricing GET મોડેલ કિંમત-નિર્ધારણ

વપરાશ અને વિશ્લેષણ

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/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 દરેક પ્રોવાઇડર/મોડેલ માટેનો રોલિંગ લેટન્સી સરવાળો (સરેરાશ/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)

સેટિંગ્સ

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/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 વિચાર/તર્ક વિનંતી પુનર્લેખન મોડ (યથાવત્ પસાર / આપમેળે દૂર કરવું / કસ્ટમ / અનુકૂલનશીલ). કમ્પ્રેશનથી સ્વતંત્ર. THINKING_BUDGET.md જુઓ.
/api/settings/system-prompt GET/PUT વૈશ્વિક સિસ્ટમ પ્રોમ્પ્ટ
/api/settings/compression GET/PUT વૈશ્વિક કમ્પ્રેશન કન્ફિગરેશન
/api/settings/purge-request-history POST વિનંતી લૉગની પંક્તિઓ અને સ્થાનિક કૉલ-લૉગ આર્ટિફેક્ટ્સ સાફ કરો

કોન્ટેક્સ્ટ અને કમ્પ્રેશન

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/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 કમ્પ્રેશન ઍનલિટિક્સનું ઉપનામ

મોનિટરિંગ

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/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, અને છેલ્લે ઉપયોગનો સમય (રીસ્ટાર્ટ વખતે રીસેટ થાય છે; મેનેજમેન્ટ પ્રમાણીકરણ)
/api/modality-bridge/video/runtime GET મેનેજમેન્ટ પ્રમાણીકરણ/પ્રોબ પહેલાં કડક વિશ્વસનીય-લૂપબૅક ચકાસણી; સેનિટાઇઝ કરેલી FFmpeg/ffprobe ઉપલબ્ધતા અને વર્ઝન્સ (નો-સ્ટોર)
/api/modality-bridge/video/extract POST આંતરિક પ્રમાણીકૃત વિશ્વસનીય-લૂપબૅક બાઇટ બ્રોકર; 50 MiB ઇનપુટ, મર્યાદિત ક્યૂ/32 MiB આઉટપુટ, 503 ક્ષમતા, 499 ડિસ્કનેક્ટ, 504 સમયમર્યાદા; આ જાહેર અપલોડ API નથી

બૅકઅપ અને એક્સપોર્ટ/ઇમ્પોર્ટ

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/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 આર્કાઇવ તરીકે ડાઉનલોડ કરો

ક્લાઉડ સિંક

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/api/sync/cloud વિવિધ ક્લાઉડ સિંક કામગીરીઓ
/api/sync/initialize POST સિંક પ્રારંભ કરો
/api/cloud/* વિવિધ ક્લાઉડ વ્યવસ્થાપન

ટનલ્સ

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/api/tunnels/cloudflared GET ડૅશબોર્ડ માટે Cloudflare Quick Tunnelની ઇન્સ્ટોલેશન/રનટાઇમ સ્થિતિ વાંચો
/api/tunnels/cloudflared POST Cloudflare Quick Tunnelને સક્ષમ અથવા અક્ષમ કરો (action=enable/disable)
/api/tunnels/ngrok GET ડૅશબોર્ડ માટે ngrok Tunnelની રનટાઇમ સ્થિતિ વાંચો
/api/tunnels/ngrok POST ngrok Tunnelને સક્ષમ અથવા અક્ષમ કરો (action=enable/disable)

CLI ટૂલ્સ

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/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 રનટાઇમ

CLI પ્રતિસાદોમાં આનો સમાવેશ થાય છે: installed, runnable, command, commandPath, runtimeMode, reason.

ACP એજન્ટ્સ

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/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)નો સમાવેશ થાય છે.

સ્થિતિસ્થાપકતા અને દર મર્યાદાઓ

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/api/resilience GET/PATCH વિનંતી કતાર, કનેક્શન કૂલડાઉન, પ્રોવાઇડર બ્રેકર અને પ્રતીક્ષા સેટિંગ્સ મેળવો/અપડેટ કરો
/api/resilience/reset POST પ્રોવાઇડર સર્કિટ બ્રેકર્સ રીસેટ કરો
/api/resilience/model-cooldowns GET બાકી સમય પ્રમાણે સૉર્ટ કરેલા સક્રિય પ્રતિ-(પ્રોવાઇડર, કનેક્શન, મોડલ) લૉકઆઉટ્સની સૂચિ
/api/resilience/model-cooldowns DELETE મોડલ લૉકઆઉટ સાફ કરો — બૉડી {provider, model} અથવા બધું સાફ કરવા માટે {all: true}
/api/rate-limits GET પ્રતિ-એકાઉન્ટ દર મર્યાદાની સ્થિતિ
/api/rate-limit GET વૈશ્વિક દર મર્યાદા કૉન્ફિગરેશન

તમામ ચાર /api/resilience/* રૂટ્સ માટે મેનેજમેન્ટ ઑથ (requireManagementAuth) જરૂરી છે. પ્રોવાઇડર બ્રેકર વિરુદ્ધ કનેક્શન કૂલડાઉન વિરુદ્ધ મોડલ લૉકઆઉટની સંપૂર્ણ વિગતો માટે સ્થિતિસ્થાપકતા (વિસ્તૃત) જુઓ.

મૂલ્યાંકનો

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/api/evals GET/POST મૂલ્યાંકન સ્યુટ્સની સૂચિ / મૂલ્યાંકન ચલાવો

નીતિઓ

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/api/policies GET/POST/DELETE રાઉટિંગ નીતિઓનું વ્યવસ્થાપન કરો

અનુપાલન

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/api/compliance/audit-log GET અનુપાલન ઑડિટ લૉગ (છેલ્લા N)

v1beta (Gemini-સુસંગત)

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/v1beta/models GET Gemini ફોર્મેટમાં મોડલ્સની સૂચિ
/v1beta/models/{...path} POST Gemini generateContent એન્ડપોઇન્ટ

આ એન્ડપોઇન્ટ્સ એવા ક્લાયન્ટ્સ માટે Geminiના API ફોર્મેટને પ્રતિબિંબિત કરે છે, જેઓ મૂળ Gemini SDK સુસંગતતાની અપેક્ષા રાખે છે.

આંતરિક / સિસ્ટમ APIs

એન્ડપોઇન્ટ પદ્ધતિ વર્ણન
/api/init GET એપ્લિકેશન આરંભની ચકાસણી (પ્રથમ વખત ચલાવતી વખતે વપરાય છે)
/api/tags GET Ollama-સુસંગત મોડેલ ટૅગ્સ (Ollama ક્લાયન્ટ્સ માટે)
/api/restart POST સર્વરને સુવ્યવસ્થિત રીતે પુનઃપ્રારંભ કરાવે છે
/api/shutdown POST સર્વરને સુવ્યવસ્થિત રીતે બંધ કરાવે છે
/api/system/env/repair POST OAuth પ્રદાતાનાં પર્યાવરણ ચલ સમારે છે

નોંધ: આ એન્ડપોઇન્ટ્સનો ઉપયોગ સિસ્ટમ દ્વારા આંતરિક રીતે અથવા 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/…) પસંદ કરે છે. અન્ય વિક્રેતાના મોડેલને ફરીથી નિકાસ કરતા ગેટવે ક્વૉલિફાઇડ id (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
}

મોડેલ idનાં ઉદાહરણો: 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 હેડર ઉમેરી શકતું ન હોય અને API કીને બેઝ URLમાં એમ્બેડ કરવાની જરૂર હોય ત્યારે આ ઉપનામોનો ઉપયોગ કરો.

# 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-key ટોકન બજેટ (ઉપરના 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 ઉમેરે છે. આ મેનેજમેન્ટ-ક્લાસ એન્ડપોઇન્ટ છે (ઑથરાઇઝેશન પાઇપલાઇન દ્વારા ઑથ કેન્દ્રીય રીતે લાગુ કરવામાં આવે છે).

વિનંતી પ્રક્રિયા

  1. ક્લાયન્ટ /v1/* પર વિનંતી મોકલે છે
  2. રૂટ હેન્ડલર handleChat, handleEmbedding, handleAudioTranscription, અથવા handleImageGenerationને કૉલ કરે છે
  3. મોડેલ રિઝૉલ્વ કરવામાં આવે છે (સીધો provider/model અથવા alias/combo)
  4. એકાઉન્ટ ઉપલબ્ધતા ફિલ્ટરિંગ સાથે સ્થાનિક DBમાંથી ક્રેડેન્શિયલ્સ પસંદ કરવામાં આવે છે
  5. ચેટ માટે: handleChatCore સિમેન્ટિક/સિગ્નેચર કૅશ તપાસે છે અને combo કમ્પ્રેશન સેટિંગ્સ રિઝૉલ્વ કરે છે
  6. સક્ષમ હોય ત્યારે પ્રોવાઇડર ટ્રાન્સલેશન પહેલાં પ્રોએક્ટિવ કમ્પ્રેશન ચાલે છે (lite, Caveman, RTK, અથવા સ્ટૅક્ડ)
  7. પ્રોવાઇડર એક્ઝિક્યુટર અપસ્ટ્રીમ વિનંતી મોકલે છે
  8. પ્રતિસાદ પાછો ક્લાયન્ટ ફૉર્મેટમાં ટ્રાન્સલેટ કરવામાં આવે છે (ચેટ) અથવા જેમનો તેમ પરત કરવામાં આવે છે (એમ્બેડિંગ્સ/ઇમેજિસ/ઑડિયો)
  9. વપરાશ, કમ્પ્રેશન એનાલિટિક્સ, અને વિનંતી લૉગ્સ રેકોર્ડ કરવામાં આવે છે
  10. ભૂલો આવે ત્યારે combo નિયમો અનુસાર ફૉલબૅક લાગુ પડે છે

સંપૂર્ણ આર્કિટેક્ચર સંદર્ભ: ARCHITECTURE.md


Combo મેનેજમેન્ટ

ઉચ્ચ-સ્તરીય રાઉટિંગ combos (જેનો સારાંશ પહેલેથી /api/combos* હેઠળ આપવામાં આવ્યો છે)ને મોડેલ id પૅટર્નમાંથી 1:1 પણ મૅપ કરી શકાય છે, જે OpenAI-શૈલીના મોડેલ idને combo તરફ પારદર્શક રીતે રીડાયરેક્ટ કરવાની મંજૂરી આપે છે.

પદ્ધતિ પાથ વર્ણન
GET /api/model-combo-mappings બધા model→combo મૅપિંગ્સની યાદી મેળવો
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 key (requireManagementAuth).


Webhooks

OmniRoute ઇવેન્ટ્સ (વિનંતી પૂર્ણતા, ક્વોટા સમાપ્ત થવો, કી રોટેશન વગેરે) માટે આઉટબાઉન્ડ webhook સબ્સ્ક્રિપ્શન્સ.

પદ્ધતિ પાથ વર્ણન
GET /api/webhooks webhooksની યાદી આપો (secretsને <prefix>... તરીકે માસ્ક કરવામાં આવે છે)
POST /api/webhooks webhook બનાવો — body: {url, events?: ["*"], secret?, description?}
GET /api/webhooks/[id] webhook મેળવો
PUT /api/webhooks/[id] url/events/secret/description અપડેટ કરો
DELETE /api/webhooks/[id] webhook દૂર કરો
POST /api/webhooks/[id]/test webhook URL પર પરીક્ષણ payload મોકલો અને ડિલિવરી સ્થિતિ પરત કરો

પ્રમાણીકરણ: મેનેજમેન્ટ સેશન/API કી (requireManagementAuth).


નોંધાયેલ કીઓ (સ્વચાલિત સંચાલન)

દૈનિક/કલાકદીઠ ક્વોટા સાથે, બેકિંગ provider/account સામે API કીઓ જારી કરવા અને રોટેટ કરવા માટે સ્વચાલિત કી સંચાલન સબસિસ્ટમ દ્વારા ઉપયોગમાં લેવાય છે.

પદ્ધતિ પાથ વર્ણન
GET /api/v1/registered-keys નોંધાયેલ કીઓની યાદી આપો (માત્ર માસ્ક કરેલો prefix)
POST /api/v1/registered-keys નવી નોંધાયેલ કી જારી કરો — body: {name, provider?, accountId?, idempotencyKey?, expiresAt?, dailyBudget?, hourlyBudget?}. મૂળ કી માત્ર એક વાર પરત કરે છે. ક્વોટાના કારણે અસ્વીકાર થવા પર 429 પરત કરે છે.
GET /api/v1/registered-keys/[id] નોંધાયેલ કીનું metadata મેળવો (મૂળ કી સામગ્રી વિના)
DELETE /api/v1/registered-keys/[id] નોંધાયેલ કી રદ કરો
POST /api/v1/registered-keys/[id]/revoke સ્પષ્ટ revoke endpoint (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 પહેલાં આ પ્રમાણીકરણ વિનાના હતા — બ્રેકિંગ ફેરફાર માટે કમિટ 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 સર્વર

OmniRoute નિરીક્ષણ/ડૅશબોર્ડના ઉપયોગ માટે REST રૅપર ઉપરાંત A2A (Agent-to-Agent) JSON-RPC 2.0 એન્ડપૉઇન્ટ પ્રદાન કરે છે.

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 એજન્ટ કાર્ડ (નામ, વર્ણન, ક્ષમતાઓ, સ્કિલ કૅટલૉગ, ઑથ સ્કીમ) પરત કરે છે — જાહેર રીતે 1h માટે કૅશ કરવામાં આવે છે. ઑથ જરૂરી નથી.

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 સ્થાનિક રૂટિંગ ટેબલનો ઉપયોગ કરીને લૉજિકલ મોડલ id ને ચોક્કસ પ્રોવાઇડર/મોડલમાં રિઝૉલ્વ કરો
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; migration લેગસી Codex YAMLની નોંધ કરે છે)
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ના કસ્ટમ GPTs જેવા, પરંતુ એજન્ટ્સ માટે).

પદ્ધતિ પાથ વર્ણન
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નો ઉપયોગ થાય છે
  • requireLoginને /api/settings/require-login દ્વારા ટૉગલ કરી શકાય છે
  • REQUIRE_API_KEY=true હોય ત્યારે /v1/* રૂટ્સ માટે વૈકલ્પિક રીતે Bearer API કી જરૂરી બને છે
  • આ સંદર્ભમાં "મેનેજમેન્ટ ટોકન" / "મેનેજમેન્ટ-સ્કોપ્ડ API કી"નો અર્થ તે માર્ગદર્શિકામાંના પરિવારોમાંથી કોઈ એક છે — કોઈ અપરિભાષિત વધારાનો સિક્રેટ પ્રકાર નહીં

બ્રેકિંગ ફેરફાર (v3.8.0)/api/v1/agents/tasks/* અને કૂલડાઉન મેનેજમેન્ટ એન્ડપોઇન્ટ્સ માટે હવે મેનેજમેન્ટ પ્રમાણીકરણ (ડેશબોર્ડ auth_token કૂકી અથવા મેનેજમેન્ટ-સ્કોપ્ડ API કી) જરૂરી છે. અગાઉ આ રૂટ્સને પ્રમાણીકરણ વિના કૉલ કરતા ક્લાયન્ટ્સને 401 Unauthorized પ્રાપ્ત થશે. કમિટ 588a0333 (fix(auth): require management auth for agent and cooldown APIs) જુઓ.