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
199 KiB
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 ¡ đŽđł ml ¡ đŽđł mr ¡ đ˛đž ms ¡ đ˛đš mt ¡ đłđľ 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 ¡ đŽđł ml ¡ đŽđł mr ¡ đ˛đž ms ¡ đ˛đš mt ¡ đłđľ 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 ááťááşáážáŹááźááşáážááˇáş áĄááťáŹá¸ááŻáśá¸áĄááŻáśá¸ááźáŻáááˇáş á
áŽááśáááˇáşáá˝á˛áážáŻ endpoint ááťáŹá¸ááᯠááąáŹáşááźááŹá¸áááşá á
ááşááźááˇáşáááşáážáŻáááŻááşáááˇáş docs/openapi.yaml áážááˇáş src/app/api/ áĄáąáŹááşáážá route tree áááŻáˇáááş áĄááźááˇáşáĄá
áŻáśááŤáááşááąáŹ áááşá¸ááźá
áşááťáŹá¸ááźá
áşáááşá
ááŹááááŹ
- ááťááş áĄááźáŽá¸áááşááťááşááťáŹá¸
- ááŽá¸áááˇáş á áŽááśáááˇáşáá˝á˛ááŹá¸ááąáŹ áááşáážááş áážáŹá¸áááşá¸áážáŻááťáŹá¸
- ááźážáŻááşáá˝ááşá¸ááťááşááťáŹá¸
- ááŻáśááááş áááşááŽá¸ááźááşá¸
- á áŹáá˝ááşá áŹáááşá¸ OCR
- ááąáŹáşáááşááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻááźááşá¸
- áááşááąáŹááşáážáŻááąá¸áá° ááááşáĄááş áááşááŽáááşá áş
- áááŻááşáááşááŽáážáŻ áĄááŻáśá¸áážááşááťáŹá¸
- Files API
- Batches API
- Search API
- WebSocket á áŽá¸ááźáąáŹááşá¸áááŻáˇááźááşá¸
- áá˝á˛áááşá¸ááťáŹá¸áážááˇáş ááźáżáᏠáĄá áŽáááşááśááźááşá¸
- áĄáááášááŹááşáĄááźáąááźáŻ áááşáážáş
- áááşáážáşááŻááşáážááˇáş á áŽááśáááˇáşáá˝á˛áážáŻ
- ááąáŤááşá¸á ááşáážáŻ á áŽááśáááˇáşáá˝á˛ááźááşá¸
- Webhooks
- áážááşááŻáśáááşááŹá¸ááąáŹ ááŽá¸ááťáŹá¸ (áĄáááŻáĄááťáąáŹááş á áŽááśáááˇáşáá˝á˛áážáŻ)
- Agents ááááŻáááŻááąáŹ
- á áŽááśáááˇáşáá˝á˛áážáŻ áááąáŹááşá áŽááťáŹá¸
- ááźáśáˇáááŻááşááśáááŻááşáááş (áááŻá¸ááťá˛áˇ)
- ááťá˝ááşá¸ááťááşáážáŻááťáŹá¸
- áážááşááŹááş
- MCP ááŹááŹ
- A2A ááŹááŹ
- Cloudá Evals áážááˇáş Assess
- ááąáŹááşá¸áááŻááťááş ááŻááşááąáŹááşááźááşá¸
- á á áşáážááşááźáąáŹááşá¸ áĄáááşááźáŻááźááşá¸
ááťááş áĄááźáŽá¸áááşááťááşááťáŹá¸
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
}
á áááşááźááŻááş Header ááťáŹá¸
| Header | áŚá¸áááşááťááş | ááąáŹáşááźááťááş |
|---|---|---|
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 ááŻááşááťá ááááş (áááşáážáş hit ááťáŹá¸áĄáá˝ááşááŹ) |
X-OmniRoute-Decision |
ááŻáśáˇááźááşááťááş | áááşá¸ááźáąáŹááşá¸áá˝áąá¸ááťááşáážáŻ ááźáąááŹááśááťááş- strategy=<name>; provider=<alias>; latency_ms=<n> (<name> áááş ááąáŤááşá¸á
ááşáážáŻ áááŹááťá°ááŹááźá
áşááźáŽá¸ ááąáŤááşá¸á
ááşáážáŻáááŻááşááąáŹ ááąáŹááşá¸áááŻááťááşáĄáá˝ááş single ááźá
áşáááş) â áĄááźáŽá¸áááş ááŻáśáˇááźááşááťááşááťáŹá¸áá˝ááş áĄááźá˛ááŤáážááááş |
Nginx áážááşááťááş- áĄáąáŹááşááťááşá¸á፠Header ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻááŹá¸ááŤá (áĽáááŹ
x_session_id)underscores_in_headers on;ááᯠáá˝ááˇáşááŹá¸ááŤá
ááŻááşááťá ááááş áááşááŽáááşááᎠááąáŤááşá¸á áŽá¸ááťáŹá¸: streaming áááŻááşááąáŹ áĄáąáŹááşááźááşáááˇáş ááŻáśáˇááźááşáážáŻááťáŹá¸áá˝ááş
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áááŻáˇááźá áşáááşá á¤ááąáŤááşá¸á áŽá¸ááťáŹá¸ááᯠchat completionsá/v1/responsesá/v1/messagesáážááˇáş ááŽááŽáᏠendpoint ááťáŹá¸áĄáŹá¸ááŻáśá¸ â/v1/embeddingsá/v1/images/generationsá/v1/audio/speechá/v1/audio/transcriptionsá/v1/reranká/v1/videos/generationsá/v1/music/generationsáážááˇáş/v1/moderations(ááŻááşááťá ááááşáááş áĄááźá˛áááşá¸0) â ááž ááŻááşááąá¸áááşá ááąá¸áážáŻááşá¸áĄááťááşáĄáááş ááážááááŻááşáááˇáşáĄá፠ááŽááŽááŹááŻááşááťá ááááşááᯠmodality áá áşááťááŻá¸ááťááşá¸áĄáááŻááş (ááŻáśáá áşááŻáśááťážááşá áá áşá áášáááˇáşááťážááşá á áŹááŻáśá¸áá áşááŻáśá¸ááťážááşá áážáŹáá˝áąáážáŻáá°áá áşáá áşááŻááťážááş) áá˝ááşááťááşááźáŽá¸á áááážááááŻááşááŤá0áĄááźá áş áááşáážááşáááş (fail-open)á
Cache-hit ááŻááşááťá ááááş áĄáááášááŹááşáááşáážááşááťááş: semantic-cache HIT (
X-OmniRoute-Cache-Hit: true) ááźá áşáááˇáşáĄá፠upstream ááąáŤáşáááŻáážáŻ áááźáŻááŻááşááąáŹááźáąáŹááˇáşX-OmniRoute-Response-Costáááş0.0000000000ááźá áşáááş (hit ááᯠáááşááąáŹááşáážáŻááąá¸áááş ááŻááşááťáááˇáş áááşáááŻá¸ ááŻááşááťá ááááş)á áá°áááŻááşááťá ááááş/ááźá áşááŹáááŻááşáá˛áˇáááˇáş ááŻááşááťá ááááşáááŻX-OmniRoute-Cost-Savedáá˝ááş ááŽá¸ááźáŹá¸ááąáŹáşááźáááşá áá˝áąááąáŹááşá¸ááśáážáŻááᯠáĄááŻáśá¸ááźáŻáááˇáşá áá áşááťáŹá¸áááşX-OmniRoute-Response-Costááᯠá áŻá áŻááąáŤááşá¸áá˝ááşááťááşáááˇáşáááş (hit ááťáŹá¸áĄáá˝ááş ááŻááşááťá ááááşááážáááŤ)á cache áá˝á˛ááźááşá¸á áááşááźáŹáážáŻááťáŹá¸áá˝ááşX-OmniRoute-Cost-Savedááᯠá áŻá ááşá¸áá˝ááşááťááşáááŻááşáááşá
ááŽá¸áááˇáş á áŽááśáááˇáşáá˝á˛ááŹá¸ááąáŹ Session Lease ááťáŹá¸
ááŽá¸áááˇáş á áŽááśáááˇáşáá˝á˛ááŹá¸ááąáŹ session leasing áááş áá˝áąá¸ááťááşáĄááŻáśá¸ááźáŻáááŻááşááźáŽá¸ client áážááˇáş ááááşáááŻááşáááˇáş routing contract áá áşááŻááźá áşáááşá áááşáážá owner áá áşáŚá¸áááş áááşáážááşááťááşáážááˇáş áááŻááşááŽááąáŹ OmniRoute connection áá áşááŻááᯠááááşá¸ááááşá¸ááŹá¸áááşá áááşá¸áááş model áá áşááŻááᯠlease ááŻááşááźááşá¸áááŻááşááá˛áˇáááŻáˇ OAuth áááŻáááşá¸ ááááŻáĄááşááŤá ááŽá¸ááźáŹá¸ client áá áşááŻáááŻáááşá¸ ááąáŹáşááŻááşáááşáážááşááźááşá¸ááážááááᯠááŽá¸ááźáŹá¸ provider áá áşááŻáááŻáááşá¸ ááááŻáĄááşááŤá
áĄááąáŹááşáĄááŹá¸á
áá
á
áşáááş áĄááŻáśá¸ááźáŻááąáŹ API key áá˝ááş scope lease:exclusive áážááˇáş áĄáá˝ááşáááŻááşááźáąáŹááşá¸ áĄáááĄáááşá¸ áááşáážááşááŹá¸ááąáŹ allowedConnections á
áŹáááşá¸ áážáááááşá Database mutation boundary áááş key áááşááŽá¸áážáŻáážááˇáş áá
áşá
áááşáá
áşáááŻááşá¸ update ááťáŹá¸áá˝ááş field áážá
áşááŻá
ááŻáśá¸ááᯠáá˝á˛áááşá áááźá
áşáááą áááşáážááşááŹá¸á
áąáááşá
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 response ááťáŹá¸áááş timestamp ááťáŹá¸á state áážááˇáş áĄáááĄááť áĄááąáŤááşá¸áááşáááŻá¸áážáááąáŹ generation ááᯠááąáŹáşááźááąá¸ááąáŹáşáááşá¸ áá˝áąá¸ááťááşááŹá¸áááˇáş connection áááŻáˇáááŻááş credential ááťáŹá¸ááᯠáááşáááˇáşáĄááŤááťáž áááąáŹáşááźááŤá Renew áážááˇáş release áááŻáˇáááş generation ááᯠJSON body áá˛áá˝ááş ááąá¸áááŻáˇáááş-
{ "action": "renew", "generation": 1 }
{ "action": "release", "generation": 1, "reason": "OWNER_EXIT" }
áááşáážá lease owner áááş áááşá¸á áááşáážá binding áĄáá˝ááş privacy-safe display metadata ááᯠáĄáááĄáááşá¸ ááąáŹááşá¸áááŻáááŻááşáááş-
{ "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 action ááᯠdatabase transaction áá
áşááŻáááşá¸áĄáá˝ááşá¸ opaque ownerá áĄááąáŹááşáĄááŹá¸á
áá
á
áşááźáŽá¸ááąáŹ managed API key áážááˇáş áĄáááĄááť áááşáážááĄááŻáśá¸ááźáŻááąááąáŹ generation áááŻáˇááźááˇáş fence ááŻááşááŹá¸áááşá displayName áááş áĄá
áážááˇáşáĄááŻáśá¸ whitespace ááťáŹá¸ááᯠááźááşááąáŹááşááŹá¸ááąáŹ configured connection name ááŹááźá
áşááźáŽá¸ ááŻáśááźáŻáśá
á˝áŹ áĄááŻáśá¸ááźáŻáááŻááşáááˇáş configured name ááážáááąáŹáĄá፠null ááźá
áşáááşá OmniRoute áááş email áááŻáˇáááŻááş ááŻááşááŻááşáááşááŽá¸ááŹá¸ááąáŹ account identity ááᯠáááşáááˇáşáĄááŤááťáž áĄá
áŹá¸áááŻá¸áĄááŻáśá¸áááźáŻááŤá Provider value áááş sensitive áááźá
áşááąáŹ display label áá
áşááŻááźá
áşááźáŽá¸ ááŻááşááŻááşáááşááŽá¸ááŹá¸ááąáŹ compatible-provider identifier áááŻááşááŤá Credential ááťáŹá¸á token ááťáŹá¸á cookie ááťáŹá¸á áá°áááşá¸ connection áááŻáˇáááŻááş API key id ááťáŹá¸á owner hash ááťáŹá¸á fencing secret ááťáŹá¸áážááˇáş internal routing data ááťáŹá¸ááᯠáááˇáşáá˝ááşá¸áááŹá¸ááŤá
áážáŹá¸áá˝ááşá¸ááąáŹ keyá áážáŹá¸áá˝ááşá¸ááąáŹ ownerá áááşáááşá¸ááąáŹááşááťááąááąáŹ generationá ááážáááąáŹáˇááąáŹá áááşáááşá¸ááŻááşááŻáśá¸ááąáŹá release ááŻááşááŹá¸ááąáŹáážááˇáş invalidate ááŻááşááŹá¸ááąáŹ lookup ááťáŹá¸áĄáŹá¸ááŻáśá¸áááş connection metadata áááŤáᲠáá°ááŽááąáŹ 409 LEASE_FENCE_STALE error ááᯠááźááşááąá¸áááşá Capacity-wait response ááᯠááážáááŹá¸ááąáŹ client áá˝ááş á
á
áşááąá¸ááźááˇáşáážáŻáááŻááşáááˇáş áááşáážá binding ááážáááŤá Routing á áááşáážá lease áá
áşááŻááᯠááźáąáŹááşá¸áá˛ááąáŹáĄá፠áá°ááŽááąáŹ generation áááş áááşáááşáĄááťáŻáśá¸áááşááźáŽá¸ status á binding áĄáá
áşááᯠatomically ááźááşááąá¸áᏠáĄááąáŹááşá¸ááᯠáááşáááˇáşáĄááŤááťáž ááźááşáááąá¸ááŤá Acquireá renewá release áážááˇáş waiting response ááťáŹá¸áááş áááşá¸áááŻáˇá ááááşááŻáśá
áśááťáŹá¸ááᯠáááşáááşááááşá¸ááááşá¸ááŹá¸ááąáŹááźáąáŹááˇáş áážáááźáŽá¸ááŹá¸ client ááťáŹá¸áážáŹ áááźáąáŹááşá¸áá˛ááŤá
ᤠserver contract áááş áá°áááşá¸ OpenAI Codex /status ááᯠáááźáąáŹááşá¸áá˛ááŤá áááşáážá áá°áááşá¸ Codex áááş áááşá¸á model provider áážááˇáş áááˇáşáá˝ááşá¸ááąá¸ááŹá¸ááąáŹ authentication/account state ááᯠáĄá
áŽáááşááśááąáŹáşáááşá¸ áááşáááˇáş arbitrary custom provider account metadata áááŻáááᯠááźáááąá¸ááźááşá¸ááážáááŤá ááąáŹááş client integration áá
áşááŻááẠᤠaction ááᯠááąáŤáşáá°ááźáŽá¸ connection.displayName ááᯠáááşáááŻáˇááźáááááşááᯠááŻáśá¸ááźááşááááşá
áááŻáˇááąáŹááş managed inference request áááŻááşá¸áááş control header áážá áşááŻááŻáśá¸ááᯠááąá¸áááŻáˇáááş-
X-OmniRoute-Lease-Owner: vlo_<43-base64url-characters>
X-OmniRoute-Lease-Generation: 1
áĄáááĄááť ownerá generationá áááşáážá connection áážááˇáş áĄááąáŹááşáĄááŹá¸á áá á áşááźáŽá¸ááąáŹ API key áááŻáˇááᯠááśáˇáááŻá¸ááŹá¸áááˇáş upstream attempt áá áşááŻá áŽááááŻááşáᎠááťááşááťááşá¸ fence ááŻááşáááşá áĄááźáŹá¸ key á áá°ááŽááąáŹ connection ááᯠáá˝ááˇáşááźáŻááŹá¸áááˇáşáááŻááş ááᯠkey ááźááˇáş owner áážááˇáş generation ááᯠááźááşáááşáĄááŻáśá¸ááźáŻááźááşá¸áááş ááĄáąáŹááşááźááşááŤá áá°áááşá¸ owner ááťáŹá¸ááᯠáĄááźá˛áááşá¸ááááşá¸áááşá¸ááźááşá¸á log áážááşáááşá¸áááşááźááşá¸á request snapshot áá˝ááş ááááşá¸ááááşá¸ááŹá¸ááźááşá¸ áááŻáˇáááŻááş upstream áááŻáˇ áá˝ážá˛áááŻáˇááźááşá¸ áááźáŻááŤá
ááŹáᎠáĄááźááŻááşáĄááŻáśá¸ááźáŻáážáŻ áááááášáááźá
áşááźááşá¸áĄáá˝ááş HTTP 429 ááᯠRetry-After áážááˇáşáĄáá° ááźááşááąá¸áááş-
{
"state": "WAITING_FOR_CAPACITY",
"error": { "type": "lease_error", "code": "LEASE_CAPACITY_UNAVAILABLE" },
"reason": "NO_FREE_ELIGIBLE_CONNECTION",
"retryAfter": 30
}
ᤠresponse áááş ááŻáśáážááş áááşáážááşááťááşáážááˇáşáááŻááşááŽááąáŹ set áááş áĄáá˝ááşáááŻááşáá˛áˇááźáŽá¸ áá˝ááşááąááąáŹ candidate áááŻááşá¸ááᯠáĄááźáŹá¸ active lease áá áşááŻá ááááşá¸ááááşá¸ááŹá¸áááşááŻáᏠáááŻáááŻáááşá ááśáˇáááŻá¸áááŹá¸ááąáŹ model/provider ááťáŹá¸á policy ááááŻááşááŽáážáŻá cooldowná quotaá health áážááˇáş áĄááźáŹá¸ááŻáśáážááş eligibility failure ááťáŹá¸áááş áááşá¸áááŻáˇá áážáááźáŽá¸ááŹá¸ OmniRoute response ááťáŹá¸ááᯠáááşáááşááááşá¸ááááşá¸ááŹá¸áááşá
x-omniroute-compression
Request áá áşááŻááťááşá¸á áŽáĄáááŻááş compression plan ááᯠoverride ááŻááşááźááşá¸ááźá áşáááşá áŚá¸á áŹá¸ááąá¸áážáŻ áĄááźááˇáşááŻáśá¸ááźá áşááźáŽá¸ routing-combo overrideá active profileá auto-trigger áážááˇáş panel Default áááŻáˇáááş áŚá¸á áŹá¸ááąá¸áááşá Value ááťáŹá¸-
| Value | áĄááťááŻá¸áááşááąáŹááşáážáŻ |
|---|---|
off |
ᤠrequest áĄáá˝ááş compression áááźáŻááŤá |
default |
Panel ááž áááşá¸áááşááŹááąáŹ Default profile ááźá áşáááş (active profile ááᯠááťá áşááťá°áážáŻáááş)á |
engine:<id> |
áá˝ááˇáşááŹá¸ááąáŹáĄá፠engine áá
áşááŻáááşá¸á áĽááᏠengine:rtká |
<combo> |
áĄáááşááąá¸ááŹá¸ááąáŹ combo áá áşááŻááźá áşááźáŽá¸ ááááŚá¸á á˝áŹ name ááźááˇáş (á áŹááŻáśá¸áĄááźáŽá¸áĄááąá¸ááá˝á˛áá˛) áááŻááşáááŻááşá á áşááąá¸áᏠáááŻáˇááąáŹááş id ááźááˇáş á á áşááąá¸áááşá |
áážááşááťááşááťáŹá¸-
- áááááąáŹ value ááťáŹá¸ááᯠááťá áşááťá°áážáŻáááş (request ááᯠáááşáááˇáşáĄááŤááťáž áááşááťáááşáááŻááşááŤ)á Resolution áááş ááŻáśáážááş operator precedence áááŻáˇ áááşáááşááťáá˝áŹá¸áááşá
- Combo áĄááťáŹá¸áĄááźáŹá¸áááş áá°ááŽááąáŹ name ááᯠááťážááąááŹá¸ááŤá ááááťááąááťáŹá á˝áŹ áááŻááşáááŻááşáážáŻááážááááş combo id ááᯠááąá¸áááŻáˇááŤá
- Name á
offáááŻáˇáááŻááşdefaultááźá áşááąáŹ combo ááᯠname ááźááˇáş áá˝áąá¸ááťááşáááá፠(ááᯠkeyword ááťáŹá¸ááᯠááááŚá¸á á˝áŹ áĄáááášááŹááşááąáŹáşáááş)á áááŻáááŻáˇááąáŹ combo ááᯠáááşá¸á id ááźááˇáş áááŻá¸ááŹá¸ááŤá - Master compression switch áááş áááźá áşáááąááźááşáááşá¸áááąáŹ gate ááźá áşáááşá Compression ááᯠglobal áĄáááˇáşáá˝ááş ááááşááŹá¸ááŤá ᤠheader á áááşá¸ááᯠáá˝ááˇáşáááááŤá
áĄááŻáśá¸ááźáŻááŹá¸ááąáŹ plan ááᯠresponse header áá˝ááş ááźááşáááşááąáŹáşááźáááş-
X-OmniRoute-Compression: <mode>; source=<source>
á¤ááąááŹáá˝ááş <source> áááş request-headerá routing-overrideá active-profileá auto-triggerá default áááŻáˇáááŻááş off áááŻáˇáá˛ááž áá
áşááŻááźá
áşáááşá
Embedding ááťáŹá¸
POST /v1/embeddings
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "nebius/Qwen/Qwen3-Embedding-8B",
"input": "The food was delicious"
}
ááážááááŻááşááąáŹ provider ááťáŹá¸- Nebius, OpenAI, Mistral, Together AI, Fireworks, NVIDIA, OpenRouter, Jina AIá
Catalog id ááťáŹá¸áááş provider/model ááŻáśá
áśááźá
áşáááş (áĽáááŹ- jina-ai/jina-embeddings-v5-omni-small)á Registry áá˛áá˝ááş ááŤáážáááąáŹ Jina model id áĄááźááˇáşáááŻááşáááˇáş id ááťáŹá¸ (áĽááᏠjina-embeddings-v5-text-small, jina-reranker-v3.5) áááŻáááşá¸ ááźáąáážááşá¸ááąá¸áááŻááşáááşá Jina embed/rerank/classify/segment áááş dashboard áážá jina-ai áĄááąáŹááşáĄááŹá¸ááťáŹá¸ááᯠáŚá¸á
á˝áŹáĄááŻáśá¸ááźáŻáááşá Dashboard key ááážááááˇáşáĄááŤáážáᏠJINA_AI_API_KEY ááᯠáĄáááşáĄááźá
áş áĄááŻáśá¸ááźáŻáááşá jina-reader card áááş Reader / r.jina.ai áĄáá˝ááşááŹááźá
áşááźáŽá¸ (POST /v1/web/fetch) embeddings áááŻáˇáááŻááş rerank ááᯠáááşáááˇáşáĄááŤááťáž áááąá¸ááąáŹááşááŤá
Multimodal ááśáˇáááŻá¸áážáŻáážáááźáąáŹááşá¸ ááąáŹáşááźááŹá¸áááˇáş registry model ááťáŹá¸áááş provider áážááˇáş ááááşáááŻááşááąáŹ áá˝á˛áˇá
ááşá¸ááŻáśááŤ
item áá ááŻáĄáááááŻáááşá¸ áááşááśáááşá Media item áĄááťááŻá¸áĄá
áŹá¸ááťáŹá¸áážáŹ text, image, audio, video áážááˇáş document ááźá
áşáááşá áááşá¸áááŻáˇá media 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
áážááˇáş family alias jina-ai/jina-embeddings-v5-omni â omni-small) áááş Jina á áá°áááşá¸
EmbeddingsV5Request doc ááťáŹá¸áááŻáááşá¸ áááşááśááźáŽá¸ 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 } value ááťáŹá¸áááş áĄááťáŹá¸ááźááşáá°áĄááŻáśá¸ááźáŻáááŻááşááąáŹ HTTPS URLá data: URI áááŻáˇáááŻááş raw
base64 ááźá
áşáááŻááşáááşá OmniRoute áááş áĄáááŻá፠object ááťáŹá¸ááᯠstring áĄááźá
áş áááźáąáŹááşá¸ááá˛áˇáááŻáˇ áá°áááşá¸ image URL ááťáŹá¸áááŻáááşá¸ áááá°á፠â Jina á
áĄááťáŹá¸ááźááşáá°áĄááŻáśá¸ááźáŻáááŻááşááąáŹ media ááᯠáááŻááşáááŻááşááá°áááşá áĄááᯠJina field ááťáŹá¸ááźá
áşáááˇáş (task, normalized, truncate, embedding_type) áááŻ
áááŻááşáááŻááşááąá¸áááŻáˇáááşá Text-only Jina SKU ááťáŹá¸áááş text áááŻááşááąáŹ doc ááťáŹá¸ááᯠáááşáááşááźááşá¸áááşáááşá
ááŻáśááźáŻáśááąá¸áážááˇáş áááŻáˇááąáŹááşááąá¸ áááˇáşáááşááťááşááťáŹá¸-
- Remote media URL ááťáŹá¸áááş áĄááťáŹá¸ááźááşáá°áĄááŻáśá¸ááźáŻáááŻááşááąáŹ HTTPS ááźá
áşááááşá Canonical
{type,source:url}item ááťáŹá¸ááᯠserver áááşáá˝ááş ááá°ááźáŽá¸ (redirect ááźááşáááşá á áşááąá¸ááźááşá¸á timeoutá áĄáá˝ááşáĄá áŹá¸áááˇáşáááşááťááşá public DNSá connection pinning) provider ááᯠááąáŤáşáááŻááźááşá¸áááźáŻáᎠinline áĄááźá áş áááˇáşáá˝ááşá¸áááşá Jina áá°áááşá¸{image:"https://..."}item ááťáŹá¸ááᯠáĄááŹá¸áá° public-HTTPS á á áşááąá¸áážáŻ ááźáŻááŻááşááźáŽá¸ááąáŹááş áááźáąáŹááşá¸áá˛áᲠáááŻááşáááŻááşááąá¸áááŻáˇáááşá Jina á URL ááᯠááá°áááşá - Inline base64 media ááᯠitem áá áşááŻááťážááş decode ááŻááşááźáŽá¸ááŹá¸ 8 MiB áážááˇáş request áá áşááŻááŻáśá¸áá˝ááş decode ááŻááşááźáŽá¸ááŹá¸ 16 MiB áĄáá áááˇáşáááşááŹá¸áááşá
Provider áĄáááŻááş ááźáąáŹááşá¸áá˛ááźááşá¸ (canonical item ááťáŹá¸ááᯠáááźáąáŹááşá¸áá˛áᲠáááşáááˇáşáĄááŤááťáž áááŻááşáááŻááşáááąá¸áááŻáˇááŤ)-
- Jina multimodal model ááťáŹá¸- ááááşáááşá¸áĄáááˇáş item áá
áşááŻá
áŽáááş modality key ááŤááąáŹ object áá
áşááŻ
(
text/image/audio/video/pdf) ááźá áşááŹááźáŽá¸ inline media áĄáá˝ááş data URI ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááşá ááááşáááşá¸áĄáááˇáş item áá áşááŻááťážááş vector áá áşáᯠááážááááşá - Gemini Embedding 2 family- ááááşáááşá¸áĄáááˇáş array áá
áşááŻáááŻ
content.parts(textáááŻáˇáááŻááşinline_data) ááŤáááˇáş áá°áááşá¸models/{model}:embedContentrequest áá áşááŻáááşá¸áĄááźá áş ááźáąáŹááşá¸áá˛áááşá - ááááťá á˝áŹ áááşáážááşááŹá¸ááąáŹ modality metadata ááážááááˇáş áĄáááşááá/dynamic model ááťáŹá¸áááş áá˝á˛áˇá ááşá¸ááŻáśá፠input ááᯠ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"
}
ááśáˇáááŻá¸áááŹá¸ááąáŹ model/modality ááąáŤááşá¸á ááşáážáŻááťáŹá¸áááş item ááᯠáĄáááşá¸áĄááťááşááźáąáŹááşá¸áá˛áááˇáşáĄá áŹá¸ HTTP 400 ááᯠááźááşááąá¸áááşá áĄá ááşáĄáᏠstring/token request ááťáŹá¸áážá input áááŻááşááąáŹ extension field ááťáŹá¸ááᯠáááźáąáŹááşá¸áá˛áᲠáááşáááşáááŻááşáááŻááşááąá¸áááŻáˇáááşá
# Embedding model áĄáŹá¸ááŻáśá¸ááᯠá
áŹáááşá¸ááźáŻá
áŻáááş
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 ááŽá¸áááˇáş) |
áá áşááźááŻááşáááşá¸ááŻááşááąáŹááşáááş â áá áşááźáááşáááşá¸ááąáŹ upstream ááąáŤáşáááŻáážáŻááž ááŻáśáˇááźááşááťááşááᯠáááŻááşáááŻááşááźááşááąá¸áááşá |
azure-document-intelligence |
prebuilt-read |
azure-document-intelligence/prebuilt-read |
áá
áşááźááŻááşáááşá¸áááŻááşááąáŹ upstream (analyze + poll) â áĄáąáŹááşáá˝ááş ááźááˇáşááŤá |
vertex-deepseek-ocr |
deepseek-ocr-maas |
vertex-deepseek-ocr/deepseek-ocr-maas |
Vertex AI á openapi/chat/completions ááááşáááş endpoint áážáá
áşáááˇáş áá
áşááźááŻááşáááşá¸ááŻááşááąáŹááşáááş â áĄááąáŹááşáĄááŹá¸á
áá
á
áşááźááşá¸/URL áĄáá˝ááş áĄáąáŹááşáá˝ááş ááźááˇáşááŤá |
áááşááąáŹááşáážáŻááąá¸áá° ááŻáśá¸ááŻááŻáśá¸áááş áá°ááŽááąáŹ Mistral ááŻáśá áś body ááźááˇáş ááŻáśáˇááźááşáááş-
{
"pages": [{ "index": 0, "markdown": "# ááŻááşáá°ááŹá¸ááąáŹ á
áŹááŹá¸..." }],
"model": "mistral-ocr-latest",
"usage_info": { "pages_processed": 1 }
}
Azure Document Intelligence poll ááŻááşáááşá¸á ááş
Azure Document Intelligence á analyze API áááş áá
áşááźááŻááşáááşá¸áááŻááşáᲠááŻááşááąáŹááşáááşá áááŚá¸ááąáŹááşá¸áááŻáážáŻáááş body áĄá
áŹá¸
Operation-Location header ááᯠááźááşááąá¸ááźáŽá¸ ááááşááážááááş poll ááŻááşááááşá Handler
(open-sse/handlers/ocr.ts) áááş ááᯠURL ááᯠáá
áşá
áášáááˇáşááťážááşáá
áşááźáááşá áĄááťáŹá¸ááŻáśá¸ 30 ááźáááşáĄáá poll ááŻááşáááşá ok áááŻááşááąáŹ poll ááŻáśáˇááźááşááťááş áááŻáˇáááŻááş "failed" áĄááźáąáĄááą ááźá
áşááąáŤáşááŤá ááťááşááťááşá¸ááťááşáá˝ááşááźáŽá¸ (áááşáááş
poll áááŻááşááąáŹáˇááŤ)á ááźááŻá¸áááşá¸áááŻááşáááˇáş áĄááźáááşááą ááŻááşááŻáśá¸ááźáŽá¸ááąáŹááş ááŻááşááąáŹááşááťááşáááş áááşáááşáááşáááşááąááąá¸ááŤá 504 ááᯠááźááşááąá¸áááşá ááąáŹááşááŻáśá¸ Azure ááŻáśáˇááźááşááťááşááᯠááąáŤáşáááŻáá°ááś áááźááşááąá¸áᎠMistral áĄááŻáśá¸ááźáŻáááˇáş áá°ááŽááąáŹ pages/markdown ááŻáśá
áśáááŻáˇ
á
áśááźáŻááźáąáŹááşá¸áá˛ááąá¸ááąáŹááźáąáŹááˇáş client code áááş áááşááąáŹááşáážáŻááąá¸áá°áĄáááŻááş ááŽá¸ááźáŹá¸áááŻááşáá˝ááşáááş ááááŻáĄááşááŤá
Vertex AI DeepSeek OCR áĄááąáŹááşáĄááŹá¸á áá á áşááźááşá¸áážááˇáş endpoint áááşáážááşááźááşá¸
vertex-deepseek-ocr áááş chat/image áĄáá˝áŹá¸áĄááŹáĄáá˝ááş OmniRoute á ááśáˇáááŻá¸ááŹá¸ááźáŽá¸ááźá
áşááąáŹ áá°ááŽáááˇáş Vertex AI áĄááąáŹááşáĄááŹá¸á
áá
á
áşááźááşá¸
(open-sse/executors/vertex.ts) ááᯠááźááşáááşáĄááŻáśá¸ááźáŻáááşá ááťáááşáááşáážáŻá API key áááş Service Account JSON áĄááąáŹááşáĄááŹá¸ááźá
áşááźáŽá¸ (JWT-bearer
ááŻááşáááşá¸á
ááşáážáá
áşáááˇáş áááşáááşá¸ááᯠOAuth access token áĄááźá
áş áá˛áážááşáááş) áááŻáˇáááŻááş áááşááŽá¸ááźáŽá¸ááŹá¸ OAuth access token ááᯠáá°áááşá¸áĄáááŻááşá¸ áĄááŻáśá¸ááźáŻáááşá Upstream endpoint URL áááş Vertex á ááąááŻááť
openapi/chat/completions ááááşáááş endpoint ááźá
áşááźáŽá¸ ááťáááşáááşáážáŻá project áážááˇáş
region áááŻáˇááž áááşááąáŹááşáááş â providerSpecificData.project/providerSpecificData.region ááᯠáĄáááĄáááşá¸ áááşáážááşááŹá¸ááŤá áááşá¸áááŻáˇááᯠáĄááźá˛áŚá¸á
áŹá¸ááąá¸áááşá
áááŻááşááŤá project ááᯠService Account JSON á project_id ááž ááá°ááźáŽá¸ region
á ááŻáśááąáááşáááŻá¸áážáŹ 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 ááąáŹáşáááşááźááˇáş chatá embedding áážááˇáş image ááąáŹáşáááşááťáŹá¸áĄáŹá¸ááŻáśá¸ + ááąáŤááşá¸á
ááşáážáŻááťáŹá¸ááᯠááźááşááąá¸áááş
ááąáŹáşáááş id áážáąáˇáááşááťáŹá¸ (?prefix=)
ááąáŹáşáááşáĄááťáŹá¸á
áŻááᯠprovider prefix áĄáąáŹááşáá˝ááş ááąáŹáşááźááŹá¸áááşá áááşááážááááˇáş áážáąáˇáááşáááŻ
MODELS_CATALOG_PREFIX_MODE feature flag á ááááşá¸ááťáŻááşááźáŽá¸ query parameter ááźááˇáş ááąáŹááşá¸áááŻáážáŻáá
áşááŻááťááşá¸á
áŽáĄáááŻááş
áááşááśáááşáážááşáááŻááşáááş â áĄááźáŹá¸áá°áĄáŹá¸ááŻáśá¸áĄáá˝ááş server áá
áşááŻááŻáśá¸áááŻááşáᏠáááşáááşááᯠáááźáąáŹááşá¸áá˛áá˛
áážááşá¸áááşá¸ááąáŹá
áŹáááşá¸ááᯠááá°áááŻáááˇáş client áĄáá˝ááş áĄááŻáśá¸áááşáááş-
GET /v1/models?prefix=alias # ááąáŹáşáááşáá
áşááŻááťážááş id áá
áşáᯠâ alias áážáąáˇáááşáĄáááŻ
GET /v1/models?prefix=dual # ááŻáśá
áśáážá
áşááťááŻá¸ááŻáśá¸ (server áá°ááááşáážááşááťááş)
GET /v1/models?prefix=canonical # provider-id áážáąáˇáááşáĄááźááˇáşáĄá
áŻáśááŹ
| ááŻááş | ááŻááşááąá¸áááˇáşáĄáᏠ| áážááşááťááşááťáŹá¸ |
|---|---|---|
dual |
cc/claude-sonnet-4-6 áážááˇáş claude/claude-sonnet-4-6 |
áá°ááááşáážááşááťááşá id áážá áşááŻááŻáśá¸áááş áá°ááŽááąáŹááąáŹáşáááşáááŻáˇ áááşá¸ááźáąáŹááşá¸áááŻáˇáááşá ááŻáśá áśáá áşááťááŻá¸ááťááŻá¸ááᯠáĄááąáááşáážááşááŹá¸ááąáŹ client config ááťáŹá¸ áááşáááşáĄááŻááşááŻááşá áąáááş ááááşá¸ááááşá¸ááŹá¸ááźááşá¸ááźá áşáááşá catalog áĄáá˝ááşáĄá áŹá¸ááᯠáážá áşááááˇáşááźá áşá áąáááşá |
alias |
cc/claude-sonnet-4-6 |
ááąáŹáşáááşáá áşááŻááťážááş entry áá áşááŻá ááŽá¸ááźáŹá¸ alias ááážáááąáŹ provider ááťáŹá¸áááşá¸ áááşá¸áááŻáˇá entry ááᯠááŻááşááąá¸áá˛ááźá áşááąáŹááźáąáŹááˇáş áááşáááˇáşáĄááŹááťáž ááŻáśá¸áážáŻáśá¸ááźááşá¸ááážáááŤá |
canonical |
claude/claude-sonnet-4-6 |
provider-id áážáąáˇáááşáĄááźááˇáşáĄá
áŻáśáĄáąáŹááşáá˝ááş ááąáŹáşáááşáá
áşááŻááťážááş entry áá
áşááŻá ááŽá¸ááźáŹá¸ alias ááážáááąáŹ provider ááťáŹá¸ (áĽááᏠantigravity/âŚá agy/âŚ) áááşá¸ áááşá¸áááŻáˇá áá
áşááŻáááşá¸ááąáŹ id ááᯠá¤ááąááŹáá˝ááş ááŻááşááąá¸ááąáŹááźáąáŹááˇáş áááşáááˇáşáĄááŹááťáž ááŻáśá¸áážáŻáśá¸ááźááşá¸ááážáááŤá |
dual ááŻááş mirror ááᯠquery parameter áááŤáá˛áááşá¸ áááážááááŻááşáááş- áááşá¸áá˝ááş áááşá id ááᯠáá˝ážááşá¸ááŹá¸áááˇáş parent
field ááŤáážááááşá
ááąáŹáşáááşáá˝áąá¸ááťááşáááˇáş picker ááᯠááźáááąáŹ client ááťáŹá¸áááş ?prefix=alias ááᯠááąáŹááşá¸áááŻáááˇáşáááş â
OmniCopilot VS Code extension ááááşá¸ á¤ááŻáśá
áśáĄáááŻááşá¸ ááŻááşááąáŹááşáááşá
á ááşá¸á áŹá¸áážáŻáááŤááąáŹ ááąáŹáşáááşááťááŻá¸áá˝á˛ááťáŹá¸
á
ááşá¸á
áŹá¸áááŻááşá
á˝ááşá¸áážáááąáŹ Claude ááąáŹáşáááşááťáŹá¸áĄáá˝ááş /v1/models áááş id áážáąáˇáá˝ááş claude-3-omniroute-no-thinking/ áááˇáşááŹá¸áááˇáş á
ááşá¸á
áŹá¸áážáŻáááŤááąáŹ ááťááŻá¸áá˝á˛áááŻáááşá¸ ááąáŹáşááźááąá¸áááş-
claude-3-omniroute-no-thinking/<provider>/<model>
ᤠid ááᯠáá˝áąá¸ááťááşááźááşá¸ (áĽááᏠthinking block ááᯠáĄááźá˛áá°á¸áá˝á˛ááąá¸áááˇáş Claude Code config áá
áşááŻáá˝ááş) áááş reasoning ááᯠááááşááŹá¸ááťááş áĄáážááşááááş <provider>/<model> áááŻáˇ ááźááşáááşááźáąáážááşá¸ááąá¸áááş â /v1/messages path áá˝ááş thinking:{type:"disabled"} áááŻáˇáááŻááş /v1/chat/completions path áá˝ááş reasoning/reasoning_effort field ááťáŹá¸ááᯠáááşáážáŹá¸ááąá¸ááźááşá¸ááźá
áşáááşá á¤ááťááŻá¸áá˝á˛ááᯠá
ááşá¸á
áŹá¸áááŻááşá
á˝ááşá¸ááᯠááśáˇáááŻá¸ááźáŽá¸ disabled áááŻáááşá¸ áááŻááşááŹááąáŹ Claude-family ááąáŹáşáááşááťáŹá¸áĄáá˝ááşáᏠá
áŹáááşá¸áá˝ááşá¸áááş (áážááˇáş disabled ááᯠááźááşá¸áááşááąáŹ adaptive-only ááąáŹáşáááşááťáŹá¸áá˛áˇáááŻáˇááąáŹ ááąáŹáşáááşááťáŹá¸ááᯠááťááşáážááşááŹá¸áááş)á Operator ááťáŹá¸áááş ModelSpec.noThinkingAlias áážáá
áşáááˇáş ááąáŹáşáááşáá
áşááŻááťááşá¸á
áŽáĄáááŻááş á¤ááťááŻá¸áá˝á˛ááᯠáĄáááşá¸áá˝ááˇáş áááŻáˇáááŻááş ááááşáááŻááşáááşá
Provider Plugin Manifest
GET /api/v1/provider-plugin-manifest
Bifrostá CLIProxyAPI áážááˇáş áĄááŹáááş sidecar router ááťáŹá¸á áĄááŻáśá¸ááźáŻááąáŹ JSON áážááˇáş ááąá¸áááşá¸á á˝áŹ áá˝á˛áááşáĄááŻáśá¸ááźáŻáááŻááşáááˇáş provider plugin manifest ááᯠááźááşááąá¸áááşá Response ááᯠTypeScript provider registry ááž áááşááŽá¸ááŹá¸ááźáŽá¸ OAuth client secret ááťáŹá¸á runtime environment resolutioná executor function ááťáŹá¸á request header ááťáŹá¸áážááˇáş account data ááťáŹá¸ááᯠáááşáá˝ááşááťááşáážááážá áááşááŻááşááŹá¸áááşá
Sidecar áá
áşááŻáááş out-of-process áĄááąááźááˇáş áááşáááşááźáŽá¸
open-sse/config/providerPluginManifestRegistry.ts ááᯠáááŻááşáááŻááş import áááŻááşáááŻááşáááˇáşáĄá፠ᤠendpoint ááᯠáĄááŻáśá¸ááźáŻááŤá
áááŻááşáááşááŽáážáŻ Endpoint ááťáŹá¸
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşáááş |
|---|---|---|
| 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 (áááşá¸ááźááşááźááşá¸/inpaint) |
| POST | /v1/videos/generations |
OpenAI ááŻáśá áś ááŽááŽáááŻáááşááŽá¸ááźááşá¸ |
| POST | /v1/music/generations |
OpenAI ááŻáśá áś ááąá¸ááŽááááşááŽá¸ááźááşá¸ |
| POST | /v1/audio/transcriptions |
OpenAI Audio (STT) |
| POST | /v1/audio/speech |
OpenAI TTS (audio body ááᯠááźááşááąá¸áááş) |
| POST | /v1/rerank |
Cohere/Voyage ááŻáśá áś ááźááşáááşáĄá áŽáĄá ááşááťááźááşá¸ |
| POST | /v1/classify |
Jina áĄááťááŻá¸áĄá
áŹá¸áá˝á˛ááźáŹá¸ááźááşá¸ (api.jina.ai) |
| POST | /v1/segment |
Jina segmenter (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 catalog alias |
| GET | /api/v1/vscode/{token}/models |
OpenAI models alias |
| POST | /api/v1/vscode/{token}/chat/completions |
OpenAI tokenized alias |
| POST | /api/v1/vscode/{token}/responses |
OpenAI Responses tokenized alias |
| POST | /api/v1/vscode/{token}/api/chat |
Ollama tokenized alias |
| GET | /api/v1/vscode/{token}/api/tags |
Ollama tags tokenized alias |
POST route áĄáŹá¸ááŻáśá¸áááş áá°ááŽááąáŹ ááŻáśá
áśááᯠáááŻááşááŹáááş- Bearer your-api-key + Zod ááźááˇáş á
á
áşááąá¸áĄáááşááźáŻááŹá¸ááąáŹ JSON body (v1RerankSchema, v1ModerationSchema, v1AudioSpeechSchema á
áááşáááŻáˇá src/shared/validation/schemas.ts ááᯠááźááˇáşááŤ)á Schema á
á
áşááąá¸áážáŻ ááĄáąáŹááşááźááşááŤá 4xx ááᯠááźááşááąá¸áááşá
Authorization: Bearer ... ááᯠáá°á¸áá˝á˛áááąá¸áááŻáˇáááŻááşááąáŹ client ááťáŹá¸áĄáá˝ááş OmniRoute áááş query-string compatibility (?token=..., ?apiKey=..., ?api_key=..., ?key=...) áááŻáˇáááŻááş áĄáąáŹááşáá˝ááş áážááşáááşá¸áááşááŹá¸ááąáŹ ááŽá¸áááˇáş /api/v1/vscode/{token}/... endpoint ááťáŹá¸áážáá
áşáááˇáş URL áĄáá˝ááşá¸áážá API key ááťáŹá¸áááŻáááşá¸ áááşááśáááşá
# ááźááşáááşáĄá
áŽáĄá
ááşááťááźááşá¸
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 segmenter
POST /v1/segment { "content": "...", "return_chunks": true }
# Jina áážáŹáá˝áąáážáŻ (s.jina.ai; provider alias ááťáŹá¸- jina-search, jina-ai, jina)
POST /v1/search { "query": "...", "provider": "jina-search" }
# Moderation ááťáŹá¸
POST /v1/moderations { "model": "omni-moderation-latest", "input": "..." }
# TTS â audio/mpeg (áááŻáˇáááŻááş ááąáŹááşá¸áááŻááŹá¸ááąáŹ ááąáŹáşáááş) body ááᯠááźááşááąá¸áááş
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
# ááŽááŽáááŻ/ááąá¸ááŽá áááşááŽá¸ááźááşá¸ (provider prefix ááŤááąáŹ model id)
POST /v1/videos/generations { "model": "runway/gen-3", "prompt": "..." }
POST /v1/music/generations { "model": "suno/v3.5", "prompt": "..." }
ááŽá¸áááˇáş Provider Route ááťáŹá¸
POST /v1/providers/{provider}/chat/completions
POST /v1/providers/{provider}/embeddings
POST /v1/providers/{provider}/images/generations
Provider prefix ááážáááŤá áĄáááŻáĄááťáąáŹááş áááˇáşááąá¸áááşá ááááŻááşááŽááąáŹ model ááťáŹá¸áĄáá˝ááş 400 ááᯠááźááşááąá¸áááşá
Files API
Batch áĄáááş/áĄáá˝ááşáážááˇáş file-purpose upload ááťáŹá¸áĄáá˝ááş OpenAI-compatible áááŻááş endpoint ááźá áşáááşá
| Method | Path | Description |
|---|---|---|
| POST | /v1/files |
áááŻááşáá
áşááŻááᯠupload ááŻááşáááş (multipart: file, purpose, expires_after[anchor], expires_after[seconds]) â áĄááťáŹá¸ááŻáśá¸ 512 MiB |
| GET | /v1/files |
áĄáááşááźáŻááŹá¸ááąáŹ API key áĄáá˝ááş áááŻááşááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş |
| GET | /v1/files/[id] |
áááŻááşáá áşááŻá metadata ááᯠááá°áááş |
| DELETE | /v1/files/[id] |
áááŻááşáá áşááŻááᯠááťááşáááş |
| GET | /v1/files/[id]/content |
áá°áááşá¸áááŻááş body ááᯠstream ááźáŻááŻááşá ááźááşáááşááá°áááş |
Auth: Bearer API key â áááŻááşááťáŹá¸ááᯠgetApiKeyRequestScope áážáá
áşáááˇáş API key áá
áşááŻááťááşá¸áĄáááŻááş scope áááşáážááşááŹá¸áááşá
Batches API
OpenAI-compatible batch processing ááźá áşáááşá
| Method | Path | Description |
|---|---|---|
| POST | /v1/batches |
Batch áááşááŽá¸áááş â body ááᯠv1BatchCreateSchema ááźááˇáş áĄáááşááźáŻáááş (input_file_id, endpoint, completion_window) |
| GET | /v1/batches |
Batch ááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş |
| GET | /v1/batches/[id] |
Batch áĄááźáąáĄááą + request_counts ááᯠááá°áááş |
| DELETE | /v1/batches/[id] |
ááźáŽá¸ááŻáśá¸áá˝áŹá¸ááąáŹ/ááĄáąáŹááşááźááşááąáŹ batch áá áşááŻááᯠááťááşáááş |
| POST | /v1/batches/[id]/cancel |
ááŻááşááąáŹááşááąáᲠbatch áá áşááŻááᯠáááşááťááşáááş |
Auth: Bearer API keyá Batch ááťáŹá¸ááᯠAPI key áá áşááŻááťááşá¸áĄáááŻááş scope áááşáážááşááŹá¸áááşá
Search API
Web/search provider abstraction (Tavilyá Braveá Exaá Serper á áááş) ááźá áşáááşá
| Method | Path | Description |
|---|---|---|
| GET | /v1/search |
áááşáážááşááźááşáááşááŹá¸ááąáŹ search provider ááťáŹá¸ + ááŻááşááąáŹááşáááŻááşá á˝ááşá¸ááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş |
| POST | /v1/search |
Search query áá
áşááŻááᯠááŻááşááąáŹááşáááş â body ááᯠv1SearchSchema ááźááˇáş áĄáááşááźáŻááźáŽá¸ caching/coalescing ááᯠááśáˇáááŻá¸áááş |
| GET | /v1/search/analytics |
Provider áá áşááŻááťááşá¸áĄáááŻááş hit/latency/cache ááááşá¸ááááşá¸ááťáŹá¸ |
Auth: Bearer API key (extractApiKey + isValidApiKey)á Search policy ááᯠenforceApiKeyPolicy áážáá
áşáááˇáş áááźá
áşáááąáááŻááşááŹá
áąáááşá
Web Fetch API
ááźááşáááşáááşáážááşááŹá¸ááąáŹ web-fetch provider (Firecrawl, Jina Reader, Tavily Extract, TinyFish Fetch, Nimble Extract) áážáá áşáááˇáş URL áá áşááŻááž áĄááźáąáŹááşá¸áĄááŹááᯠááŻááşáá°ááŤá
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| POST | /v1/web/fetch |
URL áá
áşááŻááᯠááá°/ááźá
áşáá°áááş â body ááᯠv1WebFetchSchema ááźááˇáş áĄáááşááźáŻáááş |
Auth: Bearer API key (extractApiKey + isValidApiKey)á áá°ááŤáááᯠenforceApiKeyPolicy áážáá
áşáááˇáş áĄáááşááźáŻááťááˇáşááŻáśá¸áááşá
Quota ááᯠáááˇáşáá˝ááşá¸á
ááşá¸á
áŹá¸ááąáŹ fallback (#8297): provider ááᯠáĄáááĄáááşá¸ áááąá¸ááŹá¸ááąáŹáĄá፠pool
(firecrawl â jina-reader â tavily-search â tinyfish â nimble-search) áááŻ
áááşáážááşááŹá¸ááąáŹ áŚá¸á
áŹá¸ááąá¸áĄá
ááş (fill-first) áĄáááŻááşá¸
ááźááşáááşá¸áááş â rate limit ááźá
áşááąááąáŹáşáááşá¸ configure ááŻááşááŹá¸ááąáŹ provider ááᯠrequest ááᯠááťááşááťááşá¸áááşáááˇáşáááˇáşáĄá
áŹá¸ ááťáąáŹáşáá˝áŹá¸ááźáŽá¸á ááźááşáááşááźááŻá¸á
áŹá¸áááŻááşááąáŹ/quota áááŻááşáᏠupstream failure
(HTTP 429 áĄááźá˛áááşá¸á Firecrawl/Tavily/TinyFish á quota ááŻáśá
áś free tier ááťáŹá¸áĄáá˝ááş 402/403 â
Jina Reader áĄáá˝ááş áááŻááşááá˛áˇáááŻáˇ ááŹáááş 400 bad request áĄáá˝ááşáááşá¸ áááşááąáŹáˇááž áááŻááşááŤ) ááźá
áşááŤá request ááźáŻááŻááşááťáááşáá˝ááş
áá
ááşá¸áááąá¸ááąáŹ credential ááŤáážááááˇáş ááąáŹááş provider áááŻáˇ áááşáá˝áŹá¸áááşá pool áá˛áážá provider áĄáŹá¸ááŻáśá¸
ááŻááşááŻáśá¸áá˝áŹá¸ááąáŹáĄá፠endpoint áááş ááááş generic 400 áĄá
áŹá¸ 429 áá
áşááŻáááşá¸ááᯠ(Retry-After
header áážááˇáşáĄáá°) ááźááşááąá¸áááşá provider ááᯠáĄáááĄáááşá¸ ááąáŹááşá¸áááŻááŹá¸ááŤá ááááşáááááş fallback ááŻááşááźááşá¸
ááážáá፠â rate limit ááźá
áşááąááąáŹ áááŻáˇáááŻááş áĄááŻááşáááŻááşááąáŹ áĄáááĄáááşá¸áá˝áąá¸ááŹá¸áááˇáş
provider áááş áááşá¸ááááŻááşáááŻááş error (429 áááş rate limit ááźá
áşáááˇáşáĄááŤá áááŻááşááŤá upstream
status) ááᯠáááŻááşáááŻááşááąáŹáşááźáááşá
WebSocket Streaming
GET /v1/ws?handshake=1
WebSocket upgrade handshake ááᯠáĄáááşááźáŻááźáŽá¸ wire protocol ááá°áᏠmessage ááťáŹá¸ (request, cancel) ááᯠááźááşááąá¸áááşá áĄáážááşááááş WS frame ááťáŹá¸ááᯠNext.js route table áĄááźááşáááşáážá áá°á¸áá˝á˛á፠WS server á áááŻááşáá˝ááşáááşá
Auth: handshake ááźáŻááŻááşá ááş Bearer API keyá
WebSocket áážáá áşáááˇáş Responses API (codex áĄáá˝ááşááŹ)
# HTTP API áážááˇáş host:port áá°ááŽáááş (áá°ááááşáážááşááťááş 20128)á connection ááᯠupgrade ááŻááşááŤ:
wscat -c "ws://localhost:20128/v1/responses?api_key=<OMNIROUTE_API_KEY>"
# (áááŻáˇáááŻááş: -H "Authorization: Bearer <OMNIROUTE_API_KEY>")
# ááá frame áááş response.create ááźá
áşááááş:
{ "type": "response.create", "model": "gpt-5.5", "input": [ { "role": "user", "content": "hi" } ] }
Responses-API-over-WebSocket proxy ááᯠcodex áážááˇáşáᏠááŽá¸áááˇáşááťáááşáááşááŹá¸áááş (ChatGPT
backend)á áááşá¸áááş API/dashboard áážááˇáş port áá°ááŽááąáŹ /v1/responses,
/responses áážááˇáş /api/v1/responses áááşá¸ááźáąáŹááşá¸ááťáŹá¸áá˝ááş á
áąáŹááˇáşáááŻááşá¸ááŹá¸ááąáŹááşáááşá áááááŻáśá¸ response.create frame áá˝ááş
internal codex-responses-ws bridge áážáá
áşáááˇáş authentication ááźáŻááŻááşááźáŽá¸ ááźááşáááşááźááşá¸á
codex OAuth connection áá
áşááŻááᯠáá˝áąá¸ááťááşááźááşá¸áážááˇáş wreq-js transport áážáá
áşáááˇáş
wss://chatgpt.com/backend-api/codex/responses áááŻáˇ tunnel ááźáŻááŻááşááźááşá¸áááŻáˇááᯠááąáŹááşáá˝ááşáááşá
codex áááŻááşááąáŹ model ááťáŹá¸ááᯠáááşááťáááş (codex_ws_provider_required)á
quota-share routing áĄáá˝ááş model: "qtSd/<group>/codex/<model>" ááᯠáĄááŻáśá¸ááźáŻááŤá áĄááąáŹááşáĄáááşááąáŹáşááŹá¸áááˇáşááąááŹááťáŹá¸áážáŹ
app/server-ws.mjs + scripts/dev/responses-ws-proxy.mjs + src/app/api/internal/codex-responses-ws/route.ts ááźá
áşáááşá
Auth: handshake ááźáŻááŻááşá
ááş Bearer API keyá áá°á¸áá˝á˛á፠HTTP server (server-ws.mjs)
áááş áááşáážááĄááŻáśá¸ááźáŻááąááąáŹ entrypoint ááźá
áşááááş (app/server-ws.mjs áážáááŤá áá°ááááşáážááşááťááşáĄá áááşá¸ááᯠáĄááŻáśá¸ááźáŻááŹá¸áááş)á
Model id: ChatGPT id áĄá
á
áşááᯠáĄááŻáśá¸ááźáŻá፠(codex/ prefix ááááˇáşááŤáážááˇáş)
OpenAI Codex CLI áááş
supports_websockets = true ááźá
áşááąáŹáĄá፠client-side áá˝ááş model name ááᯠáĄáááşááźáŻá
á
áşááąá¸ááźáŽá¸
codex/gpt-5.5 áá˛áˇáááŻáˇááąáŹ provider prefix ááŤáááˇáş id ááťáŹá¸ááᯠáááşááťáááş
(ChatGPT account ááźááˇáş Codex ááᯠáĄááŻáśá¸ááźáŻáááˇáşáĄá፠'codex/gpt-5.5' model ááᯠáááśáˇáááŻá¸ááŤ)á
prefix áááŤááąáŹ id (áĽááᏠgpt-5.5) ááᯠáááŻáˇááŤá OmniRoute á bridge áááş
codex áĄáá˝ááşááŹááźá
áşááąáŹááźáąáŹááˇáş upstream áááŻáˇ tunnel áááźáŻááŻááşáᎠprefix áááŤááąáŹ id áááŻ
codex model áĄááźá
áş (resolveCodexWsModelInfo) ááźááşáááşáááşáážááşáááş â prefix áááŤááąáŹ
gpt-5.5 áááş HTTP áážáá
áşáááˇáşáááŻááŤá áĄááźáŹá¸ provider áá
áşááŻáááŻáˇ route ááŻááşáááşááźá
áşááąáŹáşáááşá¸ ááźá
áşáááşá
OpenAI Codex CLI ááᯠááźááşáááşáááşáážááşááźááşá¸
WebSocket ááśáˇáááŻá¸áážáŻááŤááąáŹ custom provider áá
áşááŻááᯠ~/.codex/config.toml áá˛áááŻáˇ áááˇáşááźááşá¸ááźááˇáş Codex CLI ááᯠOmniRoute áááŻáˇ áá˝ážááşá፠(áážáááźáŽá¸ááŹá¸ config ááᯠááááááŻááşá
áąáááş ááŽá¸ááźáŹá¸ CODEX_HOME ááᯠáĄááŻáśá¸ááźáŻááŤ)á
model = "gpt-5.5" # prefix áááŤááąáŹ id â "codex/gpt-5.5" áááŻááşááŤ
model_provider = "omniroute"
[model_providers.omniroute]
name = "OmniRoute (WS)"
base_url = "http://localhost:20128/v1" # ááąáŹááşááŻáśá¸ slash ááááˇáşááŤáážááˇáşá WS URL ááᯠáááşá¸áááşáááşááŽá¸áááş (production áá˝ááş https/wss ááᯠáĄááŻáśá¸ááźáŻááŤ)
wire_api = "responses" # Feb 2026 áážá
á ááśáˇáááŻá¸áááˇáş áá
áşááŻáááşá¸ááąáŹ value
supports_websockets = true # Responses-over-WS transport ááᯠáá˝ááˇáşááąá¸áááş
env_key = "OMNIROUTE_API_KEY" # OmniRoute API key (Bearer) ááᯠááááşá¸ááŹá¸áááş
export OMNIROUTE_API_KEY=sk-... # OmniRoute API key áá
áşáᯠ(REQUIRE_API_KEY=false ááźá
áşááŤá áááşáááˇáş key ááááŻ)
codex exec "Responda apenas: PONG"
CLI áááş base_url + /responses ááᯠWebSocket áĄááźá
áş upgrade ááŻááşááźáŽá¸ OmniRoute á áááşá¸áááŻ
áá˝áąá¸ááťááşááŹá¸ááąáŹ codex OAuth connection áááŻáˇ tunnel ááźáŻááŻááşáááşá local
server áážááˇáş áĄá
áážáĄááŻáśá¸ áĄáááşááźáŻá
ááşá¸áááşááźáŽá¸ááźá
áşáááşá ChatGPT áááş codex.rate_limits + response.created ááᯠááźááşááąá¸ááźáŽá¸ completion áááŻ
stream ááŻááşáááşá
áá˝á˛áááşá¸ááťáŹá¸áážááˇáş ááźáżááŹáááşááźááźááşá¸
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /v1/quotas/check |
áážááşááŻáśáááşááŹá¸ááąáŹ key áá
áşááŻááᯠááŻááşááąá¸ááźááşá¸áááźáŻáᎠprovider + accountId áĄáá˝ááş áá˝á˛áááşá¸ááᯠááźááŻáááşá
á
áşááąá¸áááş |
| POST | /v1/issues/report |
áá˝á˛áááşá¸/key ááŻááşááąá¸áážáŻ ááĄáąáŹááşááźááşááźááşá¸ááᯠGitHub áááŻáˇ áááşááźáááş (GITHUB_ISSUES_REPO + token áááŻáĄááşáááş) |
áĄááąáŹááşáĄááŹá¸á
áá
á
áşáážáŻ: Bearer API key (isAuthenticated)á
áááŻááşáááŻááşáááşááąáŹááşáážáŻ áĄááŻáśá¸ááźáŻáážáŻ (/api/usage/om-usage)
áááşáááˇáş API key áááᯠá áŽááśáááˇáşáá˝á˛áážáŻ áĄááąáŹááşáĄááŹá¸á áá á áşááźááşá¸ááááŻáᲠáááşá¸ááááŻááşáááŻááş áĄááŻáśá¸ááźáŻáážáŻáážááˇáş áá˝á˛áááşá¸ááťáŹá¸ááᯠáááşáážáŻáááŻááşáááşá ᤠendpoint ááᯠclient (CLIá OmniCopilot panel) á key áááŻááşááąáŹááşáá°áĄáŹá¸ áááşá¸ááĄááŻáśá¸á ááááşááᯠááźááááş áĄááŻáśá¸ááźáŻáááşá
# á
áŹááŹá¸ááŻáśá
áś (áá°ááááşáážááşááťááş â terminal áĄáá˝ááş áááŻá¸áááŻá¸á
áŹááŹá¸)
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"
Key áá˝ááş allowUsageCommand ááᯠáá˝ááˇáşááŹá¸ááááş (áá°ááĄáŹá¸ááźááˇáş ááááşááŹá¸áááş â dashboard á API-key
manager á key áá
áşááŻááťááşá¸á
áŽáĄáááŻááş áá˝ááˇáş/ááááş ááźáŻááŻááşááąá¸áááş)á áááşá¸ááážáááŤá endpoint á 403 ááźááˇáş ááŻáśáˇááźááşáááşá
?format=json áááş ááźááşá¸áááşááŹá¸áážáŻáá
áşááŻááž data field ááᯠááąáŤáşáá°áá°á áááşáááˇáşáĄááŤááťáž ááááşááá
áąáááş áá˝á˛ááźáŹá¸áááşáážááşááŹá¸ááąáŹ áá˝á˛áˇá
ááşá¸ááŻáśááᯠááźááşááąá¸áááşá
áĄáąáŹááşááźááşáááˇáşáĄááŤ-
{
"allowed": true,
// key á key áá
áşááŻááťááşá¸á
áŽáĄáááŻááş áĄááŻáśá¸ááźáŻáážáŻáááˇáşáááşááťááşááťáŹá¸ (ááąáˇá
ááş/áĄáááşá
ááş USD) ááᯠáááşáážááşááŹá¸áááˇáşáĄááŤáážáᏠááŤáááşáááş-
"personal": {
"dailySpentUsd": 1.25,
"dailyLimitUsd": 5,
"dailyResetAtIso": "âŚ",
"weeklySpentUsd": 8,
"weeklyLimitUsd": 20,
"weeklyResetAtIso": "âŚ" /* ⌠*/,
},
// áá˝áąá¸ááťááşááŹá¸ááąáŹ provider á áá˝á˛áááşá¸ snapshotá áááŻáˇáááŻááş áááşáážááĄááťáááşáĄáá cache ááŹá¸áááˇáşáĄááŹááážáááŤá null-
"provider": {
"connectionId": "âŚ",
"provider": "claude",
"plan": "âŚ",
"quotas": {/* ⌠*/},
},
// UI á provider áĄááťáŹá¸áĄááźáŹá¸ááᯠááąá¸ááťááşá¸áážááş ááąáŹáşááźáááŻááşáááş connection áá
áşááŻá
áŽá snapshot-
"providers": [
{ "connectionId": "âŚ", "provider": "claude" /* ⌠*/ },
{ "provider": "codex" /* ⌠*/ },
],
}
ááźááşá¸áááşáááˇáşáĄá፠(401 ááážááşáááşááąáŹ key / 403 áá˝ááˇáşáááźáŻááŹá¸ááźááşá¸) áá°ááŽááąáŹ route á
{ "allowed": false, "error": { "message": "âŚ" } } ááᯠááźááşááąá¸áááş â ááŤáááşááąáŹáşáááşá¸ áááŹááźá
áşááąááąáŹ personal/provider
(key ááᯠáá˝ááˇáşááźáŻááŹá¸ááąáŹáşáááşá¸ áĄááťááşáĄáááş áááážáááąá¸ááźááşá¸) áááş ááźááşá¸áááşááźááşá¸áážááˇáş áá˝á˛ááźáŹá¸áááˇáşáĄááźáąáĄááąááźá
áşááźáŽá¸ JSON ááŻáśá
áśáá
áşááŻáááşá¸áááŹ
áááşá¸áááŻáˇááᯠáá˝á˛ááźáŹá¸ááąá¸áááşá
áĄááąáŹááşáĄááŹá¸á
áá
á
áşáážáŻ: ááąáŤáşáá°áá°á áááŻááşáááŻááş Bearer API key ááᯠisValidApiKey ááźááˇáş áĄáááşááźáŻá
á
áşááąá¸áááş â áááşá¸áááş
requireManagementAuth á ááąáŹááşáá˝ááşáá˝ááş áááşáááşáážáááąáááˇáş á
áŽááśáááˇáşáá˝á˛áážáŻáááŻááşáᏠááťááşáážáŹááźááş (/api/keys/âŚ) áááŻááşááŤá
Semantic Cache
# Cache á
áŹáááşá¸áĄááşá¸ááťáŹá¸ ááá°áááş
GET /api/cache/stats
# Cache áĄáŹá¸ááŻáśá¸ áážááşá¸áááşá¸áááş
DELETE /api/cache/stats
ááŻáśáˇááźááşááťááş áĽáááŹ-
{
"semanticCache": {
"memorySize": 42,
"memoryMaxSize": 500,
"dbSize": 128,
"hitRate": 0.65
},
"idempotency": {
"activeKeys": 3,
"windowMs": 5000
}
}
ááźáŹááťáááşáĄááąáŤáş áááşááąáŹááşáážáŻ
Semantic cache HIT áá
áşááŻáááş upstream ááąáŤáşáááŻáážáŻááážááᲠcache ááž ááŻáśáˇááźááşááťááşááᯠááąá¸áááŻáˇááąáŹááźáąáŹááˇáş
áááşááźááŹá¸ááąáŹ X-OmniRoute-Response-Latency áááş áá°á upstream ááźáŹááťáááşáážááˇáş ááááşáááŻááşáá˛
ááŻáááŽá¸ááŤá¸ ááźá
áşáááşá ááźáŹááťáááşáĄááąáŤáş áĄáá°á¸áĄáŹááŻáśá
ááŻááşááąáŹ client ááťáŹá¸
(á
á˝ááşá¸ááąáŹááşáááşá
ááşá¸áááşááźááşá¸á p50/p99 á
áąáŹááˇáşááźááˇáşááźááşá¸) áááş
X-OmniRoute-Cache-Latency ááŻáśáˇááźááşááťááş header ááᯠá
á
áşááąá¸áááˇáşáááş-
| áááşáááŻá¸ | áĄáááášááŹááş |
|---|---|
synthetic |
ááŻáśáˇááźááşááťááşááᯠcache ááž ááąá¸áááŻáˇááŹá¸áááşá ááźáŹááťáááşáááş áĄáážááşááááş upstream áĄááťáááş áááŻááşá፠|
| (áááŤáážá) | áĄáážááşááááş upstream ááąáŤáşáááŻáážáŻááž ááŻáśáˇááźááşááťááş ááźá áşáááş |
Key áá áşááŻááťááşá¸á áŽáĄáááŻááş cache ááťáąáŹáşáá˝áŹá¸ááźááşá¸
API key ááťáŹá¸áááş cacheDefaultMode áážáá
áşáááˇáş semantic cache áááşáážáŻáážáŻááťáŹá¸ááᯠáááŻáśá¸áááş áá˝áąá¸ááťááşáááŻááşáááş-
| áááşáááŻá¸ | ááŻááşááąáŹááşááŻáś |
|---|---|
legacy |
ááŻáśáážááş cache ááŻááşááąáŹááşááŻáś (áá°ááááşáážááşááťááş) |
bypass |
Cache áážáŹáá˝áąáážáŻááᯠááŻáśá¸áááťáąáŹáşáá˝áŹá¸ááźáŽá¸ upstream ááᯠáĄááźá˛ááąáŤáşáááŻáááş |
Key áááşááŽá¸ááťáááşáá˝ááş áááşáážááşá፠(POST /api/keys) áááŻáˇáááŻááş áĄááşááááşááŻááşá፠(PATCH /api/keys/[id])-
{ "cacheDefaultMode": "bypass" }
Request áá áşááŻááťááşá¸á áŽáĄáááŻááş ááťáąáŹáşáá˝áŹá¸ááźááşá¸
áááşáááˇáş request áááᯠkey áááşáááşááťáŹá¸áážááˇáş ááááşáááŻááşáᲠcache ááᯠááťáąáŹáşáá˝áŹá¸áááŻááşáááş-
X-OmniRoute-No-Cache: true
áááşáážáşááŻááşáážááˇáş á áŽááśáááˇáşáá˝á˛áážáŻ
á
áŽááśáááˇáşáá˝á˛áážáŻ route ááťáŹá¸ (/api/*á áĄááťáŹá¸ááŻáśá¸ auth/login áážáĄá) áááŻ
ááŹáááş inference API key ááťáŹá¸ááźááˇáş áá˝ááˇáşááźáŻááŹá¸ááźááşá¸ ááážáááŤá Credential áĄááťááŻá¸áĄá
áŹá¸ááťáŹá¸á scope ááťáŹá¸áážááˇáş curl ááá°ááŹááťáŹá¸-
á
áŽááśáááˇáşáá˝á˛áážáŻáááŻááşáᏠáĄááąáŹááşáĄááŹá¸á
áá
á
áşááźááşá¸á
áĄááąáŹááşáĄááŹá¸á áá á áşááźááşá¸
| Endpoint | Method | ááąáŹáşááźááťááş |
|---|---|---|
/api/auth/login |
POST | áĄááąáŹááˇáşáááşáááş |
/api/auth/logout |
POST | áĄááąáŹááˇáşáá˝ááşáááş |
/api/settings/require-login |
GET/PUT | áĄááąáŹááˇáşáááşáááş áááŻáĄááşáážáŻááᯠááźáąáŹááşá¸áááş |
Provider á áŽááśáááˇáşáá˝á˛áážáŻ
| Endpoint | Method | ááąáŹáşááźááťááş |
|---|---|---|
/api/providers |
GET/POST | Provider ááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş / áááşááŽá¸áááş |
/api/providers/[id] |
GET/PUT/DELETE | Provider áá áşááŻááᯠá áŽááśáááˇáşáá˝á˛áááş |
/api/providers/[id]/test |
POST | Provider ááťáááşáááşáážáŻááᯠá ááşá¸áááşáááş |
/api/providers/[id]/models |
GET | Provider á model ááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş |
/api/providers/validate |
POST | Provider config ááᯠáĄáááşááźáŻá á áşááąá¸áááş |
/api/providers/bulk |
POST | Provider áá áşááŻáááşá¸áĄáá˝ááş API key ááťáŹá¸ááᯠáĄá áŻáááŻááşáááˇáşáááş |
/api/providers/import |
POST | Parse ááŻááşááŹá¸ááąáŹ CSV/JSON áááŻááşááž ááá°ááŽáááˇáş provider á áŹáááşá¸ááᯠimport ááŻááşáááş (#6836)á row áá áşááŻááťááşá¸á áŽáĄáááŻááş áá áşá áááşáá áşáááŻááşá¸ ááĄáąáŹááşááźááşáážáŻááááşááťáŹá¸ |
/api/provider-nodes* |
áĄááťááŻá¸ááťááŻá¸ | Provider node á áŽááśáááˇáşáá˝á˛áážáŻ |
/api/provider-models |
GET/POST/PATCH/DELETE | á áááşááźááŻááş model ááťáŹá¸ (áááˇáşáááşá áĄááşááááşááŻááşáááşá ááťáąáŹááşáááş/ááźáááşá ááťááşáááş) |
OAuth ááŻááşáááşá¸á ááşááťáŹá¸
| Endpoint | Method | ááąáŹáşááźááťááş |
|---|---|---|
/api/oauth/[provider]/[action] |
áĄááťááŻá¸ááťááŻá¸ | Provider áĄáááŻááş ááŽá¸ááźáŹá¸ OAuth |
Routing áážááˇáş Config
| Endpoint | Method | ááąáŹáşááźááťááş |
|---|---|---|
/api/models/alias |
GET/POST | Model alias ááťáŹá¸ |
/api/models/catalog |
GET | Provider áážááˇáş áĄááťááŻá¸áĄá áŹá¸áĄáááŻááş model áĄáŹá¸ááŻáśá¸ |
/api/combos* |
áĄááťááŻá¸ááťááŻá¸ | Combo á áŽááśáááˇáşáá˝á˛áážáŻ |
/api/keys* |
áĄááťááŻá¸ááťááŻá¸ | API key á áŽááśáááˇáşáá˝á˛áážáŻ |
/api/pricing |
GET | Model á áťáąá¸áážáŻááşá¸ááťáŹá¸ |
áĄááŻáśá¸ááźáŻáážáŻáážááˇáş áááŻááşá¸ááźáŹá¸á áááşááźáŹáážáŻ
| Endpoint | Method | Description |
|---|---|---|
/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 key áá áşááŻááťááşá¸á áŽáĄáááŻááş token áááˇáşáááşááťááş áááşááťááşááťáŹá¸ |
/api/usage/model-latency-stats |
GET | Provider/model áá
áşááŻááťááşá¸á
áŽáĄáááŻááş áá˝áąáˇááťáŹá¸ latency á
áŻá
ááşá¸ááááşá¸ááťáŹá¸ (ááťááşá¸ááťáž/p50/p95/p99á áĄáąáŹááşááźááşáážáŻáážáŻááşá¸)á á
á
áşááŻááşáážáŻááťáŹá¸- windowHours/minSamples/maxRows/provider/model (#6873) |
/api/usage/cache-health |
GET | call_logs áĄááąáŤáşáĄááźáąááśáááˇáş prompt-cache áĄááźáąáĄááą áĄáážá
áşááťáŻááş â ááąá¸ááŹá¸áážáŻ/áááşáážáŻáážáŻ áĄááťááŻá¸á p50/p90/p99 ááąá¸ááŹá¸áážáŻáĄáá˝ááşáĄá
áŹá¸ ááźááˇáşááąáážáŻá ááźáŽá¸ááŹá¸ááąáŹááąá¸ááŹá¸áážáŻ á
áŻá
ááşá¸ááąáážáŻá model áá
áşááŻááťááşá¸á
áŽáĄáááŻááş áá˝á˛ááźáŹá¸áážáŻáážááˇáş healthy/degraded/thrash/no-data áĄáá˛ááźááşááťááşá query parameter ááťáŹá¸áážáŹ range (1h|24h|7d|30dá áá°ááááşáááŻá¸ 24h) áážááˇáş áá˝áąá¸ááťááşáááŻááşááąáŹ model (#8827) |
áááşáááşááťáŹá¸
| Endpoint | Method | Description |
|---|---|---|
/api/settings |
GET/PUT/PATCH | áĄáá˝áąáá˝áą áááşáááşááťáŹá¸ |
/api/settings/proxy |
GET/PUT | áá˝ááşáááş proxy áá˝á˛áˇá ááşá¸áážáŻ |
/api/settings/proxy/test |
POST | Proxy ááťáááşáááşáážáŻááᯠá ááşá¸áááşáááş |
/api/settings/ip-filter |
GET/PUT | IP áá˝ááˇáşááźáŻá áŹáááşá¸/ááááşáááşá áŹáááşá¸ |
/api/settings/thinking-budget |
GET/PUT | áá˝áąá¸ááąáŤáşáážáŻ/áááşááźááşáážáŻ ááąáŹááşá¸áááŻááťááş ááźááşáááşááąá¸ááŹá¸áááˇáş mode (passthrough / auto-strip / custom / adaptive)á Compression áážááˇáş ááŽá¸ááźáŹá¸ááźá áşáááşá THINKING_BUDGET.md ááᯠááźááˇáşááŤá |
/api/settings/system-prompt |
GET/PUT | ááášááŹááŻáśá¸áááŻááşáᏠsystem prompt |
/api/settings/compression |
GET/PUT | ááášááŹááŻáśá¸áááŻááşáᏠcompression áá˝á˛áˇá ááşá¸áážáŻ |
/api/settings/purge-request-history |
POST | ááąáŹááşá¸áááŻáážáŻáážááşáááşá¸ row ááťáŹá¸áážááˇáş á ááşáá˝ááşá¸ call-log artifact ááťáŹá¸ááᯠáážááşá¸áááşá¸áááş |
Context áážááˇáş Compression
| áĄááŻáśá¸áážááş | áááşá¸áááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
/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 | á áŹááŹá¸ payload áá áşááŻáĄááąáŤáş RTK áĄá ááşá¸ááźááˇáşáážáŻáážáŻ/á ááşá¸áááşáážáŻááᯠááŻááşááąáŹááşáááş |
/api/context/rtk/raw-output/[id] |
GET | pointer id ááźááˇáş ááááşá¸ááááşá¸ááŹá¸ááąáŹ ááŻáśá¸áá˝ááşááźááşáááşááźáŽá¸ áĄááźááşá¸ááŻááşááąá¸ááťááşááᯠáááşáááş |
/api/context/combos |
GET/POST | ááťáŻáśáˇááźááşá¸ combo á áŹáááşá¸/áááşááŽá¸áážáŻ |
/api/context/combos/[id] |
GET/PUT/DELETE | ááťáŻáśáˇááźááşá¸ combo áĄááąá¸á áááş/áĄááşááááş/ááťááşááźááşá¸ |
/api/context/combos/[id]/assignments |
GET/PUT | routing combo ááťáŹá¸áááŻáˇ ááťáŻáśáˇááźááşá¸ combo ááťáŹá¸ áááşáážááşáááş |
/api/context/analytics |
GET | ááťáŻáśáˇááźááşá¸ áááşá¸á á áşááťááş áĄáááşáá˝ážá˛ |
á áąáŹááˇáşááźááˇáşááźááşá¸
| áĄááŻáśá¸áážááş | áááşá¸áááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
/api/sessions |
GET | áááşáážááĄááŻáśá¸ááźáŻááąááąáŹ session ááťáŹá¸ááᯠááźáąááŹááśááźááşá¸ |
/api/rate-limits |
GET | áĄááąáŹááˇáşáá áşááŻááťááşá¸á áŽáĄáááŻááş rate limit ááťáŹá¸ |
/api/monitoring/health |
GET | ááťááşá¸ááŹááąá¸á
á
áşááąá¸áážáŻ + provider áĄááťááşá¸ááťáŻááş (catalogCount, configuredCount, activeCount, monitoredCount)á á
áŽááśáááˇáşáá˝á˛áážáŻááźááşáá˝ááşá¸áá˝ááş credentialHealth ááŤáááşáááş- probe-cache scalar ááťáŹá¸á failed>0 ááźá
áşáááˇáşáĄá፠failedConnections áážááˇáş staleDbNonOkCount (gauge áááŻááşáᲠSQLite áá˝ááş áááşááťááşáážáááąááąáŹ test_status)á MONITORING_GUIDE.md ááᯠááźááˇáşááŤá |
/api/cache/stats |
GET/DELETE | Cache ááááşá¸ááááşá¸ááťáŹá¸ / áážááşá¸áááşá¸ááźááşá¸ |
/api/modality-bridge/stats |
GET | Memory áĄáá˝ááşá¸áážá attemptsá áĄáąáŹááşááźááşáážáŻááťáŹá¸/bridgedá ááťáážáŻáśá¸áážáŻááťáŹá¸á cache hit ááťáŹá¸á totalLatencyMsá latencySamplesá sample áĄááąáĄáá˝ááşááᯠáááŻááşá¸ááźáąáĄááźá
áş ááŻáśá¸ááŹá¸ááąáŹ averageLatencyMs áážááˇáş ááąáŹááşááŻáśá¸áĄááŻáśá¸ááźáŻááťáááş (ááźááşáááşá
áááşááťáááşáá˝ááş reset ááźá
áşáááşá á
áŽááśáááˇáşáá˝á˛áážáŻ authentication áááŻáĄááşáááş) |
/api/modality-bridge/video/runtime |
GET | á áŽááśáááˇáşáá˝á˛áážáŻ authentication/probe ááááŻááşáᎠáááşá¸ááťááşááąáŹ ááŻáśááźááşááááˇáş loopback á á áşááąá¸áážáŻá áááˇáşá ááşááŹá¸ááąáŹ FFmpeg/ffprobe ááážááááŻááşáážáŻáážááˇáş version ááťáŹá¸ (no-store) |
/api/modality-bridge/video/extract |
POST | áĄáá˝ááşá¸áááŻááşá¸ authentication ááźáŻááŻááşááŹá¸ááąáŹ ááŻáśááźááşááááˇáş loopback byte brokerá 50 MiB inputá áááˇáşáááşááŹá¸ááąáŹ queue/32 MiB outputá capacity áĄáá˝ááş 503á ááťáááşáááşáážáŻááźááşááąáŹááşáážáŻáĄáá˝ááş 499á deadline áĄáá˝ááş 504á áĄááťáŹá¸ááźááşáá°ááŻáśá¸ upload API áááŻááşá፠|
áĄáááşááááşá¸ááźááşá¸áážááˇáş Export/Import
| Endpoint | Method | Description |
|---|---|---|
/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 archive áĄááźá áş ááąáŤááşá¸ááŻááşááŻááşáááş |
Cloud Sync
| Endpoint | Method | Description |
|---|---|---|
/api/sync/cloud |
áĄááťááŻá¸ááťááŻá¸ | Cloud sync ááŻááşááąáŹááşááťááşááťáŹá¸ |
/api/sync/initialize |
POST | Sync ááᯠá áááşáááşáážááşáááş |
/api/cloud/* |
áĄááťááŻá¸ááťááŻá¸ | Cloud á áŽááśáááˇáşáá˝á˛áážáŻ |
Tunnels
| Endpoint | Method | Description |
|---|---|---|
/api/tunnels/cloudflared |
GET | Dashboard áĄáá˝ááş Cloudflare Quick Tunnel á áááˇáşáá˝ááşá¸áážáŻ/runtime áĄááźáąáĄááąááᯠáááşáááş |
/api/tunnels/cloudflared |
POST | Cloudflare Quick Tunnel ááᯠáá˝ááˇáşáááş áááŻáˇáááŻááş ááááşáááş (action=enable/disable) |
/api/tunnels/ngrok |
GET | Dashboard áĄáá˝ááş ngrok Tunnel á runtime áĄááźáąáĄááąááᯠáááşáááş |
/api/tunnels/ngrok |
POST | ngrok Tunnel ááᯠáá˝ááˇáşáááş áááŻáˇáááŻááş ááááşáááş (action=enable/disable) |
CLI Tools
| Endpoint | Method | Description |
|---|---|---|
/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 Agents
| Endpoint | Method | Description |
|---|---|---|
/api/acp/agents |
GET | áážáŹáá˝áąáá˝áąáˇáážáááŹá¸ááąáŹ agent áĄáŹá¸ááŻáśá¸ááᯠáĄááźáąáĄááąáážááˇáşááá˝ á áŹáááşá¸ááźáŻá áŻáááş (built-in + custom) |
/api/acp/agents |
POST | á áááşááźááŻááş agent áááˇáşáááş áááŻáˇáááŻááş áážáŹáá˝áąáážáŻ cache ááᯠááźááşáááşá áááşáááş |
/api/acp/agents |
DELETE | id query param ááźááˇáş á
áááşááźááŻááş agent áá
áşááŻááᯠáááşáážáŹá¸áááş |
GET ááŻáśáˇááźááşááťááşáá˝ááş agents[] (id, name, binary, version, installed, protocol, isCustom) áážááˇáş summary (total, installed, notFound, builtIn, custom) áááŻáˇ ááŤáááşáááşá
ááťááŻáˇáá˝ááşá¸áážáŻááśáááŻááşáááşáážááˇáş Rate Limits
| Endpoint | Method | Description |
|---|---|---|
/api/resilience |
GET/PATCH | ááąáŹááşá¸áááŻáážáŻ queueá ááťáááşáááşáážáŻ cooldowná provider breaker áážááˇáş á áąáŹááˇáşáááŻááşá¸áážáŻáááŻááşáᏠáááşáážááşááťááşááťáŹá¸ááᯠááá°áááş/áĄááşááááşááŻááşáááş |
/api/resilience/reset |
POST | Provider circuit breaker ááťáŹá¸ááᯠááźááşáááşáááşáážááşáááş |
/api/resilience/model-cooldowns |
GET | áááşáážááĄáááşáááşááąááąáŹ (provider, connection, model) áá áşááŻááťááşá¸áĄáááŻááş lockout ááťáŹá¸ááᯠááťááşáážáááťáááşáĄáááŻááş á áŽááźáŽá¸ á áŹáááşá¸ááźáŻá áŻáááş |
/api/resilience/model-cooldowns |
DELETE | Model lockout áá
áşááŻááᯠáážááşá¸áááşá¸áááş â body {provider, model} áááŻáˇáááŻááş áĄáŹá¸ááŻáśá¸ááᯠááťááşáááş {all: true} |
/api/rate-limits |
GET | Account áá áşááŻááťááşá¸áĄáááŻááş rate limit áĄááźáąáĄááą |
/api/rate-limit |
GET | Global rate limit configuration |
/api/resilience/*route ááąá¸ááŻá ááŻáśá¸áá˝ááş á áŽááśáááˇáşáá˝á˛áážáŻ authentication (requireManagementAuth) áááŻáĄááşáááşá Provider breakerá connection cooldown áážááˇáş model lockout áááŻáˇá áĄááźááˇáşáĄá áŻáś áá˝á˛ááźáŹá¸áážááşá¸áááşá¸ááťááşáĄáá˝ááş ááťááŻáˇáá˝ááşá¸áážáŻááśáááŻááşáááş (áĄááąá¸á áááş) ááᯠááźááˇáşááŤá
Evals
| Endpoint | Method | Description |
|---|---|---|
/api/evals |
GET/POST | Eval suite ááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş / áĄáá˛ááźááşáážáŻááᯠááŻááşááąáŹááşáááş |
áá°ááŤáááťáŹá¸
| Endpoint | Method | Description |
|---|---|---|
/api/policies |
GET/POST/DELETE | Routing áá°ááŤáááťáŹá¸ááᯠá áŽááśáááˇáşáá˝á˛áááş |
á ááşá¸ááťááşá¸áááŻááşááŹáážáŻ
| Endpoint | Method | Description |
|---|---|---|
/api/compliance/audit-log |
GET | á ááşá¸ááťááşá¸áááŻááşááŹáážáŻáááŻááşáᏠaudit log (ááąáŹááşááŻáśá¸ N ááŻ) |
v1beta (Gemini áážááˇáş áááŻááşááŽááąáŹ)
| Endpoint | Method | Description |
|---|---|---|
/v1beta/models |
GET | Model ááťáŹá¸ááᯠGemini format ááźááˇáş á áŹáááşá¸ááźáŻá áŻáááş |
/v1beta/models/{...path} |
POST | Gemini generateContent endpoint |
ᤠendpoint ááťáŹá¸áááş áá°áááşá¸ Gemini SDK áážááˇáş áááŻááşááŽáážáŻááᯠááťážáąáŹáşáááˇáşáááˇáş client ááťáŹá¸áĄáá˝ááş Gemini á API format ááᯠáááşáááşááąá¸áááşá
áĄáá˝ááşá¸áááŻááşá¸ / System API ááťáŹá¸
| Endpoint | Method | ááąáŹáşááźááťááş |
|---|---|---|
/api/init |
GET | áĄáááŽááąá¸áážááşá¸ á áááşááźááşá¸ á á áşááąá¸áážáŻ (áááááŻáśá¸ áĄááŻáśá¸ááźáŻááťáááşáá˝ááş áĄááŻáśá¸ááźáŻáááş) |
/api/tags |
GET | Ollama áážááˇáş áá˝á˛áááşáĄááŻáśá¸ááźáŻáááŻááşááąáŹ ááąáŹáşáááş áááşááťáŹá¸ (Ollama client ááťáŹá¸áĄáá˝ááş) |
/api/restart |
POST | ááŹááŹááᯠááťáąáŹáá˝áąáˇá á˝áŹ ááźááşáááşá áááşáááş ááŻááşááąáŹááşáááş |
/api/shutdown |
POST | ááŹááŹááᯠááťáąáŹáá˝áąáˇá á˝áŹ ááááşáááş ááŻááşááąáŹááşáááş |
/api/system/env/repair |
POST | OAuth provider áááşáááşá¸ááťááş variable ááťáŹá¸ááᯠááźáŻááźááşáááş |
áážááşááťááş: ᤠendpoint ááťáŹá¸ááᯠá áá áşáĄáá˝ááşá¸áááŻááşá¸á áááŻáˇáááŻááş Ollama client áážááˇáş áá˝á˛áááşáĄááŻáśá¸ááźáŻáááŻááşáááş áĄááŻáśá¸ááźáŻáááşá ááŻáśáážááşáĄáŹá¸ááźááˇáş ááąáŹááşááŻáśá¸áĄááŻáśá¸ááźáŻáá°ááťáŹá¸á áááşá¸áááŻáˇááᯠááąáŤáşáá°áĄááŻáśá¸ááźáŻááźááşá¸ ááážáááŤá
OAuth áááşáááşá¸ááťááş ááźáŻááźááşááźááşá¸ (v3.6.1+)
POST /api/system/env/repair
Content-Type: application/json
{
"provider": "claude-code"
}
áááşáážááşááŹá¸ááąáŹ provider áá áşááŻáĄáá˝ááş ááťáąáŹááşááŻáśá¸ááąááąáŹ áááŻáˇáááŻááş ááťááşá áŽá¸ááąááąáŹ OAuth áááşáááşá¸ááťááş variable ááťáŹá¸ááᯠááźáŻááźááşáááşá áĄáąáŹááşááŤáááŻáˇááᯠááźááşááąá¸áááş-
{
"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 provider áááŻáááᯠáĄááŻáśá¸ááźáŻá áĄááśáááŻááşááťáŹá¸ááᯠá
áŹááŹá¸áĄááźá
áş áá°á¸ááźáąáŹááşá¸ááŤá áááááŻáśá¸ path
segment áááş áá°áááşá¸ provider (openai/âŚ, deepgram/âŚ) ááᯠáá˝áąá¸ááťááşááąá¸áááşá áĄááźáŹá¸ vendor á model áááŻ
ááźááşáááşááŻááşááąá¸áááˇáş gateway ááťáŹá¸áá˝ááş áĄááźááˇáşáĄá
áŻáśáááşáážááşááŹá¸ááąáŹ 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
}
ááá°áᏠmodel id ááťáŹá¸: openai/whisper-1 (OpenAI key áá
áşáᯠáááŻáĄááşáááş),
openrouter/deepgram/nova-3 (OpenRouter key áá
áşáᯠáááŻáĄááşáááş),
deepgram/nova-3 (áá°áááşá¸ Deepgram key áá
áşáᯠáááŻáĄááşáááş)á deepgram/nova-3 ááŻááŹ
ááąáŹááşá¸áááŻááźááşá¸áááş OpenRouter ááᯠáĄááŻáśá¸áááźáŻááŤá
ááśáˇáááŻá¸ááŹá¸ááąáŹ format ááťáŹá¸: mp3, wav, m4a, flac, ogg, webmá
Ollama áážááˇáş áááŻááşááŽáážáŻ
Ollama á API format ááᯠáĄááŻáśá¸ááźáŻááąáŹ client ááťáŹá¸áĄáá˝ááş:
# Chat endpoint (Ollama format)
POST /v1/api/chat
# Model á
áŹáááşá¸ (Ollama format)
GET /api/tags
ááąáŹááşá¸áááŻááťááşááťáŹá¸ááᯠOllama format áážááˇáş internal format ááťáŹá¸ááźáŹá¸ áĄáááŻáĄááťáąáŹááş ááźáąáŹááşá¸áá˛ááąá¸áááşá
Token ááŤááąáŹ VS Code / Header ááááŻáááˇáş Alias ááťáŹá¸
Integration áá
áşááŻá Authorization header ááᯠáááˇáşáá˝ááşá¸áááąá¸áááŻááşáᲠAPI key ááᯠbase URL áĄáá˝ááşá¸ áááˇáşáá˝ááşá¸áááş áááŻáĄááşáááˇáşáĄá፠ᤠalias ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻááŤá
# OpenAI ááŻáśá
áś catalog alias
GET /api/v1/vscode/{token}/
GET /api/v1/vscode/{token}/models
# OpenAI ááŻáśá
áś chat alias ááťáŹá¸
POST /api/v1/vscode/{token}/chat/completions
POST /api/v1/vscode/{token}/responses
# Ollama ááŻáśá
áś alias ááťáŹá¸
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"}]}'
áážááşááťááşááťáŹá¸:
- Token ááŤááąáŹ alias ááťáŹá¸áááş
/v1/*áážááˇáş/api/tagsáááŻáˇáá˛áˇáááŻáˇ handler ááťáŹá¸áááŻáááş ááźááşáááşáĄááŻáśá¸ááźáŻááąáŹááźáąáŹááˇáş ááŻáśáˇááźááşááťááşááŻáśá áśááťáŹá¸áááş áá°ááŽááąáááşááźá áşáááşá - Client á custom header ááťáŹá¸ááᯠááśáˇáááŻá¸áááˇáşáĄááŤáááŻááşá¸
Authorization: Bearer ...ááᯠáŚá¸á áŹá¸ááąá¸áĄááŻáśá¸ááźáŻááŤá - URL áĄááźáąááźáŻ token ááťáŹá¸áááş reverse-proxy log ááťáŹá¸á browser history áážááˇáş OmniRoute ááźááşááážá telemetry ááťáŹá¸áá˝ááş ááąáŤáşááŹáááŻááşáááşá áááşá¸áááŻáˇááᯠáá°á authentication mode áĄááźá áşáááŻááşáᲠáááŻááşááŽáážáŻáĄáá˝ááş áá˝áąá¸ááťááşá ááŹáá áşááŻáĄááźá áş áááşáážááşááŤá
Telemetry
# Latency telemetry áĄáážá
áşááťáŻááşááᯠááá°áááş (provider áá
áşááŻá
áŽáĄáá˝ááş 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 key áĄáŹá¸ááŻáśá¸áĄáá˝ááş áĄááŻáśá¸á
ááááşáááˇáşáááşááťááş áĄááźáąáĄááąááᯠááá°áááş
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"
}
Schema áážááşááťááşááťáŹá¸ (
setBudgetSchema):apiKeyIdááᯠáááźá áşáááą áááˇáşáá˝ááşá¸ááááşááźá áşááźáŽá¸dailyLimitUsd,weeklyLimitUsdáááŻáˇáááŻááşmonthlyLimitUsdáááŻáˇáĄáááş áĄáááşá¸ááŻáśá¸áá áşááŻáááş ááŻááááş ááźáŽá¸ááááşá áááˇáşáá˝ááşá¸áááş áááźá áşáááąááááŻááąáŹ field ááťáŹá¸áážáŹwarningThreshold(0â1),resetInterval(daily|weekly|monthly),resetTime(HH:MM) áááŻáˇááźá áşáááşá ááááş{keyId, limit, period}ááŻáśá áśáááş400 Bad Requestááᯠááźááşááąá¸áááşá
áááŻáááş áááˇáşáááşááťááşááťáŹá¸
API key áá
áşááŻááťááşá¸á
áŽáĄáááŻááş áááŻáááş áááşááťááşááťáŹá¸ (áĄáááşá፠USD áĄááźáąááźáŻ áááşááťááşáážááˇáş ááŽá¸ááźáŹá¸ááźá
áşáááş)á ááąáŹááşá¸áááŻáážáŻ áááşá¸ááźáąáŹááşá¸ááąáŤáşáá˝ááş áááŻááşáááŻááş áááşááąáŹááşá
áąáááşá key áá
áşááŻá áááşáážááĄááťáááşááŹááĄáá˝ááşá¸ áĄááŻáśá¸ááźáŻáážáŻáááŹááááş áááşá¸á áááˇáşáááşááťááşáááŻáˇ ááąáŹááşáážááá˝áŹá¸ááąáŹáĄá፠ááąáŹááşá¸áááŻáážáŻááťáŹá¸ááᯠ429 Too Many Requests ááźááˇáş ááźááşá¸áááşáááşá áááˇáşáááşááťááşááťáŹá¸ááᯠáááşáážááşááŹá¸ááąáŹ model áá
áşááŻá provider áá
áşááŻáĄáá˝ááş áááşáááşáááşáážááşáááŻááşáááş áááŻáˇáááŻááş key áá
áşááŻááŻáśá¸áĄáážáśáˇ global áĄááźá
áş áĄááŻáśá¸ááťáááŻááşáááşá ááąáŹááşá¸áááŻáážáŻáá
áşááŻáážááˇáş áááŻááşááŽááąáŹ áááˇáşáááşááťááşááťáŹá¸á
á˝áŹáážáááŤá áĄáááşá¸ááťááşááŻáśá¸ áááˇáşáááşááťááşááᯠáĄááŻáśá¸ááźáŻáááşá
# Key áá
áşááŻá áááŻáááşáááˇáşáááşááťááşááťáŹá¸ááᯠá
áŹáááşá¸ááźáŻá
áŻáááş (áááŻááşáááŻááş áĄááťáááşááŹá áĄááŻáśá¸ááźáŻáážáŻ ááŤáááşáááş)
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
Schema áážááşááťááşááťáŹá¸ (
setTokenLimitSchema)áapiKeyIdáážááˇáşscopeType(model|provider|global) áááŻáˇáááş áááźá áşáááą áááŻáĄááşáááşáscopeTypeáááşglobaláááŻááşááťážááşscopeValueáááŻáĄááşáááş (áĽáááŹmodeláááşáááşáĄáá˝ááş model idáprovideráááşáááşáĄáá˝ááş provider id)átokenLimitáááş áĄááąáŤááşá¸ááááşá¸ááźááˇáş ááźá áşááááş (string ááž áĄáááŻáĄááťáąáŹááş ááźáąáŹááşá¸áá˛ááąá¸áááş)á áá˝áąá¸ááťááşáááŻááşáááşááťáŹá¸áážáŹid(áĄáá áşáááşááŽá¸áááş ááááˇáşááŤáážááˇáşá áĄááşááááşááŻááşáááş áááˇáşááŤ)áresetInterval(daily|weekly|monthlyá áá°ááááşáážááşááťááşmonthly)áresetTime(HH:MM)áenabled(áá°ááááşáážááşááťááştrue) áááŻáˇááźá áşáááşáGETááŻáśáˇááźááşáážáŻááťáŹá¸áá˝ááş áááˇáşáááşááťááşáá áşááŻááťááşá¸á áŽáááŻtokensUsedáremainingáwindowStartáperiodStartAtáážááˇáşnextResetAtáááŻáˇááźááˇáş áááşááśááźááˇáşá á˝ááşááąá¸áááşá áááşá¸áááş á áŽááśáááˇáşáá˝á˛áážáŻáĄáááˇáş endpoint áá áşááŻááźá áşáááş (authz pipeline á ááááŻááž auth ááᯠáááşááąáŹááşá áąáááş)á
ááąáŹááşá¸áááŻáážáŻ ááŻááşááąáŹááşááŻáś
- Client á ááąáŹááşá¸áááŻáážáŻáááŻ
/v1/*áááŻáˇ ááąá¸áááŻáˇáááş - Route handler á
handleChatáhandleEmbeddingáhandleAudioTranscriptionáááŻáˇáááŻááşhandleImageGenerationááᯠááąáŤáşáááş - Model ááᯠááźáąáážááşá¸áááşáážááşáááş (áááŻááşáááŻááş provider/model áááŻáˇáááŻááş alias/combo)
- Account ááážááááŻááşáážáŻ á á áşááŻááşááźááşá¸ááźááˇáş local DB ááž credentials ááťáŹá¸ááᯠáá˝áąá¸ááťááşáááş
- Chat áĄáá˝ááş
handleChatCoreá semantic/signature cache ááᯠá á áşááąá¸ááźáŽá¸ combo compression áááşáááşááťáŹá¸ááᯠááźáąáážááşá¸áááşáážááşáááş - áá˝ááˇáşááŹá¸áááˇáşáĄá፠provider ááŹááŹááźááşááźáąáŹááşá¸áá˛áážáŻááááŻááşáᎠproactive compression ááᯠááŻááşááąáŹááşáááş (
liteá Cavemaná RTK áááŻáˇáááŻááş stacked) - Provider executor á upstream ááąáŹááşá¸áááŻáážáŻááᯠááąá¸áááŻáˇáááş
- ááŻáśáˇááźááşáážáŻááᯠclient format áááŻáˇ ááźááşáááşááŹááŹááźááşááźáąáŹááşá¸áá˛áááş (chat) áááŻáˇáááŻááş áá°ááĄáááŻááşá¸ ááźááşááąá¸áááş (embeddings/images/audio)
- áĄááŻáśá¸ááźáŻáážáŻá compression analytics áážááˇáş ááąáŹááşá¸áááŻáážáŻ áážááşáááşá¸ááťáŹá¸ááᯠáážááşáááşá¸áááşáááş
- Combo á ááşá¸ááťááşá¸ááťáŹá¸áĄá áĄáážáŹá¸ááťáŹá¸ ááźá áşááąáŤáşáááˇáşáĄá፠fallback ááᯠáĄááŻáśá¸ááźáŻáááş
ááááŻááŹáá˝á˛áˇá
ááşá¸ááŻáś áĄááźááˇáşáĄá
áŻáś áááŻá¸ááŹá¸ááťááşá ARCHITECTURE.md
Combo á áŽááśáááˇáşáá˝á˛áážáŻ
áĄáááˇáşááźááˇáş routing combo ááťáŹá¸ (/api/combos* áĄáąáŹááşáá˝ááş áĄáážá
áşááťáŻááşááŹá¸ááźáŽá¸ááźá
áşáááş) ááᯠmodel id pattern áá
áşááŻááž 1:1 áĄááťááŻá¸ááźááˇáşáááşá¸ ááťáááşáááşáááşáážááşáááŻááşááźáŽá¸ OpenAI ááŻáśá
áś model id áá
áşááŻááᯠcombo áá
áşááŻáᎠáá˝ááˇáşáááşá¸ááźááşááŹá
á˝áŹ áááşá¸ááźáąáŹááşá¸ááźáąáŹááşá¸ááąá¸áááŻááşáááşá
| Method | Path | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/model-combo-mappings |
modelâcombo ááťáááşáááşáážáŻáĄáŹá¸ááŻáśá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş |
| POST | /api/model-combo-mappings |
ááťáááşáááşáážáŻ áááşááŽá¸áááş â body: {pattern, comboId, priority?, enabled?, description?} |
| GET | /api/model-combo-mappings/[id] |
ááťáááşáááşáážáŻáá áşááŻááᯠááá°áááş |
| PUT | /api/model-combo-mappings/[id] |
áážáááźáŽá¸ááŹá¸ ááťáááşáááşáážáŻáá áşááŻá field ááťáŹá¸ááᯠáĄááşááááşááŻááşáááş |
| DELETE | /api/model-combo-mappings/[id] |
ááťáááşáááşáážáŻáá áşááŻááᯠáááşáážáŹá¸áááş |
Auth: á
áŽááśáááˇáşáá˝á˛áážáŻ session/API key (requireManagementAuth)á
Webhooks
OmniRoute ááźá áşáááşááťáŹá¸ (ááąáŹááşá¸áááŻáážáŻ ááźáŽá¸ááŻáśá¸ááźááşá¸á quota ááŻááşááŻáśá¸ááźááşá¸á key áá˛áážááşááźááşá¸ á áááşáááŻáˇ) áĄáá˝ááş áĄááźááşáááşáááŻáˇ ááąá¸áááŻáˇáááˇáş webhook á áŹáááşá¸áá˝ááşá¸áážáŻááťáŹá¸á
| Method | Path | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/webhooks |
Webhook ááťáŹá¸ááᯠá
áŹáááşá¸ááźáŻá
áŻáááş (ááťážááŻáˇáážááşááťááşááťáŹá¸ááᯠ<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 áá áşáᯠááąá¸áááŻáˇááźáŽá¸ áááŻáˇááąáŹááşáážáŻáĄááźáąáĄááąááᯠááźááşááąá¸áááş |
áĄááąáŹááşáĄááŹá¸á
á
áşááąá¸ááźááşá¸: á
áŽááśáááˇáşáá˝á˛áážáŻ session/API key (requireManagementAuth)á
á áŹáááşá¸áá˝ááşá¸ááŹá¸ááąáŹ Key ááťáŹá¸ (áĄáááŻáĄááťáąáŹááşá áŽááśáááˇáşáá˝á˛áážáŻ)
ááąáˇá ááş/ááŹááŽáĄáááŻááş quota ááťáŹá¸ááźááˇáş ááąáŹááşááś provider/account áá áşááŻáážááˇáş ááťáááşáááşá API key ááťáŹá¸ááᯠááŻááşááąá¸áááşáážááˇáş áá˛áážááşáááş auto-key á áŽááśáááˇáşáá˝á˛áážáŻ subsystem á áĄááŻáśá¸ááźáŻáááşá
| Method | Path | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/v1/registered-keys |
á áŹáááşá¸áá˝ááşá¸ááŹá¸ááąáŹ key ááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş (ááŻáśá¸áá˝ááşááŹá¸ááąáŹ prefix ááŹááťážááş) |
| POST | /api/v1/registered-keys |
á
áŹáááşá¸áá˝ááşá¸ááŹá¸ááąáŹ key áĄáá
áşáá
áşáᯠááŻááşááąá¸áááş â body: {name, provider?, accountId?, idempotencyKey?, expiresAt?, dailyBudget?, hourlyBudget?}á áá°áááşá¸ key ááᯠáá
áşááźáááşáᏠááźááşááąá¸áááşá quota ááźáąáŹááˇáş ááźááşá¸áááşááŤá 429 ááᯠááźááşááąá¸áááşá |
| GET | /api/v1/registered-keys/[id] |
á áŹáááşá¸áá˝ááşá¸ááŹá¸ááąáŹ key á metadata ááᯠááá°áááş (áá°áááşá¸áĄááťááşáĄáááş áááŤáááşááŤ) |
| DELETE | /api/v1/registered-keys/[id] |
á áŹáááşá¸áá˝ááşá¸ááŹá¸ááąáŹ key ááᯠááŻááşááááşá¸áááş |
| POST | /api/v1/registered-keys/[id]/revoke |
ááŻááşááááşá¸áááş ááŽá¸ááźáŹá¸áááşáážááşááŹá¸ááąáŹ endpoint (DELETE áážááˇáş áĄááťááŻá¸áááşááąáŹááşáážáŻ áá°ááŽáááş) |
áĄááąáŹááşáĄááŹá¸á
á
áşááąá¸ááźááşá¸: Bearer API key (isAuthenticated)á /v1/quotas/check áážááˇáş /v1/issues/report áááŻáááşá¸ ááźááˇáşááŤá
Agents Protocol
OmniRoute áĄááŻáśá¸ááźáŻáá°ááťáŹá¸áááŻááşá áŹá¸ áĄááąá¸ááž ááŻááşááąáŹááşáááˇáş cloud agent ááŻááşáááşá¸ááťáŹá¸ (Claude Codeá Codex Cloudá OpenHands á áááşáááŻáˇ)á
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/agents/tasks |
ááŻááşáááşá¸ááťáŹá¸ááᯠá
áŹáááşá¸ááźáŻá
áŻáááş â áá˝áąá¸ááťááşáááŻááşááąáŹ ?provider=á ?status=á ?limit= (1â500á áá°ááááşáááŻá¸ 50) |
| POST | /api/v1/agents/tasks |
ááŻááşáááşá¸áááşááŽá¸áááş â body ááᯠCreateCloudAgentTaskSchema (providerIdá promptá sourceá options?) ááźááˇáş á
á
áşááąá¸áĄáááşááźáŻáááşá task envelope áážááˇáşáĄáá° 201 ááᯠááźááşááąá¸áááş |
| DELETE | /api/v1/agents/tasks?id=... |
ááŻááşáááşá¸áá áşááŻááᯠááťááşáááş |
| GET | /api/v1/agents/tasks/[id] |
ááŻááşáááşá¸ááᯠáááşáááş â external_id áááşáážááşááŹá¸ááŤá upstream cloud agent ááśááž status ááᯠsynchronous ááŻáśá
áśááźááˇáş ááźááşáááşáĄááşááááşááŻááşáááş |
| POST | /api/v1/agents/tasks/[id] |
áá˝á˛ááźáŹá¸áááşáážááşááŹá¸ááąáŹ action: {action: "approve"}á {action: "message", message} áááŻáˇáááŻááş {action: "cancel"} |
| DELETE | /api/v1/agents/tasks/[id] |
id ááźááˇáş ááŽá¸ááźáŹá¸ááŻááşáááşá¸áá áşááŻááᯠááťááşáááş |
Auth: method áááŻááşá¸áá˝ááş management auth áááŻáĄááşáááş (
requireCloudAgentManagementAuth)á v3.8.0 ááááŻááşááŽáá˝ááş áááşá¸áááŻáˇáááş authentication ááááŻáĄááşáá˛áˇá፠â breaking change áĄáá˝ááş commit588a0333ááᯠááźááˇáşááŤá
# Claude Code cloud ááŻááşáááşá¸áá
áşáᯠáááşááŽá¸áááş
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":"..."}}'
Management Proxies
Provider ááťáŹá¸á account ááťáŹá¸ áááŻáˇáááŻááş global áĄáááˇáşáá˝ááş áááşáážááşááąá¸áááŻááşááąáŹ outbound HTTP(S)/SOCKS proxy ááťáŹá¸á
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/management/proxies |
Proxy ááťáŹá¸ááᯠá
áŹáááşá¸ááźáŻá
áŻáááş (?id= ááźááˇáş áá
áşááŻááᯠááźááşááąá¸ááźáŽá¸ ?id=&where_used=1 ááźááˇáş assignment graph ááᯠááźááşááąá¸áááş) |
| POST | /api/v1/management/proxies |
Proxy áááşááŽá¸áááş â body ááᯠcreateProxyRegistrySchema ááźááˇáş á
á
áşááąá¸áĄáááşááźáŻáááş |
| PATCH | /api/v1/management/proxies |
Proxy ááᯠáĄááşááááşááŻááşáááş â body ááᯠupdateProxyRegistrySchema ááźááˇáş á
á
áşááąá¸áĄáááşááźáŻáááş (id áááŻáĄááşáááş) |
| DELETE | /api/v1/management/proxies?id=...&force=1 |
Proxy ááᯠááťááşáááş (assignment ááťáŹá¸ááᯠááźáŻááşáááş force=1 ááᯠáĄááŻáśá¸ááźáŻááŤ) |
| GET | /api/v1/management/proxies/assignments |
Assignment ááťáŹá¸ááᯠá
áŹáááşá¸ááźáŻá
áŻáááş â proxy_idá scopeá scope_id ááźááˇáş á
á
áşááŻááşáááŻááşáááşá connection áá
áşááŻáĄáá˝ááş áááşáážááĄááŻáśá¸ááźáŻááąááąáŹ proxy ááᯠááźáąáážááşá¸áááş resolve_connection_id=<id> ááᯠááąá¸áááŻáˇá፠|
| PUT | /api/v1/management/proxies/assignments |
áááşáážááşááąá¸áááş â body ááᯠproxyAssignmentSchema ({scope, scopeId?, proxyId?}) ááźááˇáş á
á
áşááąá¸áĄáááşááźáŻáááşá dispatcher cache ááᯠáážááşá¸áááşá¸áááş |
| PUT | /api/v1/management/proxies/bulk-assign |
áĄá
áŻáááŻááşáááşáážááşááąá¸áááş â body ááᯠbulkProxyAssignmentSchema ({scope, scopeIds[], proxyId?}) ááźááˇáş á
á
áşááąá¸áĄáááşááźáŻáááş |
| GET | /api/v1/management/proxies/health?hours=24 |
áááşáážááşááŹá¸ááąáŹ áĄááťáááşááŹááá áşááŻáĄáá˝ááşá¸ proxy health (áĄáąáŹááşááźááş/ááĄáąáŹááşááźááş áĄááąáĄáá˝ááşááťáŹá¸á latency) ááᯠá áŻá ááşá¸ááąáŹáşááźáááş |
Auth: route áááŻááşá¸áá˝ááş management session/API key áááŻáĄááşáááş (requireManagementAuth)á
ááŻááşáááşá¸ááąáŹáşááźááťááşáá˛áážá
POST /api/v1/management/proxies/[id]/assignmentsáážááˇáşPOST /api/v1/management/proxies/[id]/healtháááŻáˇááᯠáĄáááşáá˝ááşááźááŹá¸ááąáŹ flat/assignmentsáážááˇáş/healthroute ááťáŹá¸á ááąáŹááşáá˝ááşááąá¸áááş â codebase áá˛áá˝ááş id áá áşááŻááťááşá¸áĄáááŻááş subroute ááťáŹá¸ ááážáááŤá
ááśáááŻááşáááşáážááážáŻ (áááŻá¸ááťá˛áˇ)
OmniRoute áááş áá áşááŻáážááˇáşáá áşáᯠááŽá¸ááźáŹá¸ááźá áşááąáŹ ááŹááŽááťááŻáˇáá˝ááşá¸áážáŻ áááŻááşáá˝ááşááąá¸ ááášáááŹá¸ ááŻáśá¸ááťááŻá¸ááᯠááąáŹáşááŻááşááąá¸ááŹá¸áááşá áĄáąáŹááşá፠á áŽááśáááˇáşáá˝á˛áážáŻ endpoint ááťáŹá¸áážáá áşáááˇáş áĄáąáŹáşáááąááŹááťáŹá¸áááş áááşá¸áááŻáˇááᯠáááşáážáŻáááŻááşááźáŽá¸ áá°ááááşáážááşááťááşááᯠááźáąáŹááşá¸áá˛áááşáážááşáááŻááşáááş-
| áĄáááŻááşá¸áĄáᏠ| áĄááźáąáĄááąááááşá¸áááşá¸áážáŻ | áááşáážáŻáááş | ááźááşáááşáááşáážááşáááş / áážááşá¸áááşá¸áááş |
|---|---|---|---|
| Provider breaker | domain_circuit_breakers + memory áĄáá˝ááşá¸ |
/api/monitoring/health |
POST /api/resilience/reset |
| Connection cooldown | provider connection ááťáŹá¸áážá rateLimitedUntil |
/api/rate-limits, /api/providers/[id] |
(áááŻáĄááşááťáááşáá˝ááş ááźááşáááşáá˝ááˇáşááąá¸áááşá provider PUT áážáá áşáááˇáş áážááşá¸áááşá¸ááŤ) |
| Model lockout | Memory áĄáá˝ááşá¸áážá model-availability registry | GET /api/resilience/model-cooldowns |
DELETE /api/resilience/model-cooldowns |
PATCH /api/resilience áááş providerBreaker.oauth áážááˇáş providerBreaker.apikey áĄáąáŹááşáážá provider breaker override ááťáŹá¸ááᯠáááşááśáááşá Profile áá
áşááŻá
áŽáááş degradationThreshold, failureThreshold áážááˇáş resetTimeoutMs áááŻáˇááᯠááśáˇáááŻá¸ááźáŽá¸ áá°ááŽááąáŹ field ááťáŹá¸ááᯠDashboard â Settings â Resilience áá˝ááşáááşá¸ ááážááááŻááşáááşá
# Model lockout áá
áşááŻááᯠáážááşá¸áááşá¸áááş
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"}'
# Lockout áĄáŹá¸ááŻáśá¸ááᯠáážááşá¸áááşá¸áááş
curl -X DELETE http://localhost:20128/api/resilience/model-cooldowns \
-H "Cookie: auth_token=..." \
-d '{"all":true}'
áĄáá°áĄááááŻááşáᏠáááşáá˝ážááşá¸ááťááşáĄááźááˇáşáĄá
áŻáśáážááˇáş breaker áá°ááááşáážááşááťááşááťáŹá¸áĄáá˝ááş CLAUDE.md â "Resilience Runtime State" ááᯠááźááˇáşááŤá
Skill ááťáŹá¸
OmniRoute ááᯠá áááşááźááŻááş executable handler ááťáŹá¸áážááˇáş marketplace ááąáŤááşá¸á ááşá¸áážáŻááťáŹá¸ááźááˇáş áááŻá¸ááťá˛áˇáááşáĄáá˝ááş Skill framework ááźá áşáááşá
| Method | Path | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/skills |
áááˇáşáá˝ááşá¸ááŹá¸ááąáŹ skill ááťáŹá¸ááᯠá
áŹáááşá¸ááźáŻá
áŻáááş â ?q=, ?mode=on|off|auto, ?source=skillsmp|skillssh|local áááŻáˇááźááˇáş á
á
áşááŻááşáááŻááşááźáŽá¸ á
áŹááťááşáážáŹáá˝á˛ááŹá¸áááş |
| GET | /api/skills/[id] |
Skill áá áşááŻááᯠááá°áááş |
| PUT | /api/skills/[id] |
Skill ááᯠáĄááşááááşááŻááşáááş (áĄáááşá ááąáŹáşááźááťááşá modeá schemaá handlerá tag ááťáŹá¸) |
| DELETE | /api/skills/[id] |
Skill áá áşááŻááᯠááźáŻááşááťáááş |
| POST | /api/skills/install |
Raw manifest áá
áşááŻááž skill ááᯠáááˇáşáá˝ááşá¸áááş â body: {name, version, description, schema:{input, output}, handlerCode, apiKeyId?} |
| GET | /api/skills/executions |
áááşáááąáŹ skill ááŻááşááąáŹááşáážáŻááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş (input/output/duration ááŤáááşááąáŹ audit trail) |
| GET | /api/skills/marketplace?q=... |
SkillsMP marketplace ááž áážáŹáá˝áąáážáŻ/áá°ááźááŻááşááťáŹá¸ááąáŹá
áŹáááşá¸ (skillsmpApiKey setting áááŻáĄááşáááş) |
| POST | /api/skills/marketplace/install |
SkillsMP ááž id ááźááˇáş skill áá áşááŻááᯠáááˇáşáá˝ááşá¸áááş |
| GET | /api/skills/skillssh?q=&limit= |
skills.sh registry áá˝ááş áážáŹáá˝áąáááş |
| POST | /api/skills/skillssh/install |
skills.sh ááž id ááźááˇáş skill áá áşááŻááᯠáááˇáşáá˝ááşá¸áááş |
áĄááąáŹááşáĄááŹá¸á
áá
á
áşááźááşá¸: á
áŽááśáááˇáşáá˝á˛áážáŻ session/API keyá Marketplace áážáŹáá˝áąáážáŻ route ááťáŹá¸áááş á
áŽááśáááˇáşáá˝á˛áážáŻ áĄááąáŹááşáĄááŹá¸á
áá
á
áşááźááşá¸ áááŻáˇáááŻááş Bearer API key (isAuthenticated) áá
áşááŻááŻááᯠáááşááśáááşá
áááşáááŻááŽ
API key / session áá áşááŻááťááşá¸á áŽáĄáááŻááş ááŽá¸ááźáŹá¸áááşáážááşááŹá¸áááˇáş ááąáážááşáááşááśáˇááąáŹ á ááŹá¸áááŻááşá¸áááŻááşááŹ/áĄááťááşáĄáááşáááŻááşáᏠáááşáááŻááŽáááŻáážáąáŹááşáážáŻá
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/memory |
áááşáááŻááŽááťáŹá¸ááᯠá
áŹáááşá¸ááźáŻá
áŻááźááşá¸ â ?apiKeyId=, ?type=, ?sessionId=, ?q=, offset/limit áááŻáˇáááŻááş page/limit á
áŹááťááşáážáŹáá˝á˛ááźááşá¸áážááˇáşáĄáá° |
| POST | /api/memory |
áááşáááŻááŽáááşááŽá¸ááźááşá¸ â Zod ááźááˇáş á
á
áşááąá¸áĄáááşááźáŻááŹá¸ááąáŹ body: {content, key, type?, sessionId?, apiKeyId?, metadata?, expiresAt?} |
| GET | /api/memory/[id] |
áááşáááŻááŽáá áşááŻááᯠááá°ááźááşá¸ |
| DELETE | /api/memory/[id] |
áááşáááŻááŽáá áşááŻááᯠááťááşááźááşá¸ |
| GET | /api/memory/health |
áááşáááŻááŽá áá áşáá˝á˛á áááşáááşáážáŻáĄááźáąáĄááą (DB ááťáááşáááşáááŻááşáážáŻá embeddings backendá vector index áĄááźáąáĄááą) |
áĄááąáŹááşáĄááŹá¸á
áá
á
áşááźááşá¸: á
áŽááśáááˇáşáá˝á˛áážáŻ session/API key (requireManagementAuth)á type enum: FACTUAL, EPISODIC, SEMANTIC, PROCEDURAL (src/lib/memory/types.ts áážá MemoryType áááŻááźááˇáşááŤ)á
MCP ááŹááŹ
OmniRoute áá˝ááş transport á ááťááŻá¸ (stdio, SSE, streamable-http) áážááˇáş scope áááşáážááşááŹá¸ááąáŹ tools ááťáŹá¸ááŤáááşáááˇáş áááˇáşáá˝ááşá¸áááşááąáŹááşááŹá¸ááąáŹ Model Context Protocol ááŹááŹáá áşáᯠááŤáážááááşá áĄáąáŹááşá፠dashboard endpoint ááťáŹá¸áááş áĄááźáąáĄááą/audit ááąááŹááᯠáááşáážáŻááźáŽá¸ HTTP transport ááťáŹá¸ááᯠproxy ááŻááşááąá¸áááşá
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş | |
|---|---|---|---|
| GET | /api/mcp/status |
Heartbeatá transportá áĄá˝ááşáááŻááşá¸áĄááźáąáĄááąá ááąáŹááşááŻáśá¸ááąáŤáşáááŻáážáŻá áĄááŻáśá¸áĄááťáŹá¸ááŻáśá¸ tools áážááˇáş 24 ááŹááŽáĄáá˝ááşá¸ áĄáąáŹááşááźááşáážáŻáážáŻááşá¸ | |
| GET | /api/mcp/tools |
name, description, scopes, phase, auditLevel, sourceEndpoints áááŻáˇááŤáááşááąáŹ MCP tools á
áŹáááşá¸ |
|
| GET | /api/mcp/sse |
SSE transport áĄáá˝ááş SSE stream ááᯠáá˝ááˇáşááźááşá¸ (MCP ááááşááŹá¸ááťážááş áááŻáˇáááŻááş transport ááááŻááşááŽááťážááş 503 ááźááşááąá¸áááş) |
|
| POST | /api/mcp/sse |
SSE transport ááąáŤáşáá˝ááş JSON-RPC frame ááąá¸áááŻáˇááźááşá¸ | |
| GET | /api/mcp/stream |
Streamable HTTP transport á SSE áááşááźááşá¸ááᯠáá˝ááˇáşááźááşá¸ (ááŹááŹááž á áááşááąá¸áááŻáˇááąáŹ áááşááąáˇááťáşááťáŹá¸) | |
| POST | /api/mcp/stream |
Streamable HTTP transport ááąáŤáşáá˝ááş JSON-RPC frame ááąá¸áááŻáˇááźááşá¸ | |
| DELETE | /api/mcp/stream |
Streamable HTTP session áá áşááŻááᯠáĄááŻáśá¸áááşááźááşá¸ | |
| GET | /api/mcp/audit |
Audit áážááşáááşá¸ááᯠááąá¸ááźááşá¸ááźááşá¸ â ?limit=, ?offset=, ?tool=, `?success=true |
false, ?apiKeyId=` |
| GET | /api/mcp/audit/stats |
á áŻá ááşá¸ááŹá¸ááąáŹ audit ááááşá¸ááááşá¸ááťáŹá¸ (á áŻá áŻááąáŤááşá¸á áĄáąáŹááşááźááşáážáŻáážáŻááşá¸á ááťááşá¸ááťážááźáŹááťáááşá áĄááŻáśá¸áĄááťáŹá¸ááŻáśá¸ tools) |
áĄááąáŹááşáĄááŹá¸á
áá
á
áşááźááşá¸: sse/stream transport ááťáŹá¸áááş MCP ááŽá¸áááˇáş áĄááąáŹááşáĄááŹá¸á
áá
á
áşáážáŻááťááşáážáŹááźááş (mcp scope ááŤááąáŹ Bearer API key) ááᯠáááŻááşááŹáááşá status/tools/audit* route ááťáŹá¸ááᯠdashboard ááž áááşáážáŻáááŻááşáááş (dashboard host áááŻáˇ ááąáŹááşáážááááŻááşááźááşá¸áĄááźááş ááąáŹááşáááşáĄááąáŹááşáĄááŹá¸á
áá
á
áşáážáŻ ááááŻáĄááşááŤ)á
HTTP transport áážá áşááťááŻá¸ááŻáśá¸áááŻ
settings.mcpEnabledáážááˇáşsettings.mcpTransportáááŻáˇááźááˇáş ááááşá¸ááťáŻááşááŹá¸áááş â transport ááááŻááşááŽááŤá400ááźááşááąá¸ááźáŽá¸ MCP ááááşááŹá¸ááŤá503ááźááşááąá¸áááşá
A2A ááŹááŹ
OmniRoute áááş A2A (Agent-to-Agent) JSON-RPC 2.0 endpoint áá áşááŻáážááˇáş á á áşááąá¸ááźááşá¸/dashboard áĄááŻáśá¸ááźáŻáážáŻáĄáá˝ááş REST wrapper áá áşááŻááᯠááąáŹáşááŻááşááąá¸ááŹá¸áááşá
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": "ᤠcoding task ááᯠáááşá¸ááźáąáŹááşá¸áá˝áąá¸ááąá¸ááŤ"}]
}
}
ááśáˇáááŻá¸ááŹá¸ááąáŹ method ááťáŹá¸ (áĄáŹá¸ááŻáśá¸ááᯠsettings.a2aEnabled ááźááˇáş ááááşá¸ááťáŻááşááŹá¸áááş)-
| Method | ááąáŹáşááźááťááş |
|---|---|
message/send |
áá
áşááźááŻááşáááşá¸ááŻááşááąáŹááşááąáŹ skill execution; {task, artifacts, metadata} ááᯠááźááşááąá¸áááş |
message/stream |
áá°ááŽááąáŹ skill áĄá áŻá streaming SSE execution |
tasks/get |
taskId ááźááˇáş task áá
áşááŻááᯠááá°áááş |
tasks/cancel |
taskId ááźááˇáş task áá
áşááŻááᯠáááşááťááşáááş |
áĄáááˇáşááŤáážáááąáŹ skill ááťáŹá¸- smart-routing, quota-management, provider-discovery, cost-analysis, health-reportá
Agent Card
GET /.well-known/agent.json
áĄááťáŹá¸ááŻáśá¸ A2A agent card (áĄáááşá ááąáŹáşááźááťááşá á á˝ááşá¸ááąáŹááşáááşááťáŹá¸á skill catalogá auth scheme) ááᯠááźááşááąá¸áááş â áĄááťáŹá¸ááŻáśá¸áĄááźá áş 1h ááźáŹ cache ááŻááşááŹá¸áááşá auth ááááŻáĄááşááŤá
REST áĄáá°áĄááŽááťáŹá¸
| Method | Path | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/a2a/status |
A2A áá˝ááˇáşááŹá¸áážáŻ + task á áŹáááşá¸áĄááşá¸ááťáŹá¸ + cache ááŻááşááŹá¸ááąáŹ agent card áĄáážá áşááťáŻááş |
| GET | /api/a2a/tasks |
task ááťáŹá¸ááᯠá
áŹáááşá¸ááźáŻá
áŻáááş â ?state=submitted|working|completed|failed|cancelled, ?skill=, ?limit= (â¤200), ?offset= |
| POST | /api/a2a/tasks |
(REST helper áĄááźá
áş ááááşááąáŹááşáááąá¸á፠â JSON-RPC message/send áážáá
áşáááˇáş áááşááŽá¸ááŤ) |
| GET | /api/a2a/tasks/[id] |
task áá áşááŻááᯠááá°áááş |
| POST | /api/a2a/tasks/[id]/cancel |
task áá áşááŻááᯠáááşááťááşáááş |
Auth: REST helper ááťáŹá¸áááş management auth áááŤáᲠáĄááŻááşááŻááşáááş (dashboard ááž áááşáážáŻáááŻááşáááş); JSON-RPC /a2a route áááş ááźááşáááşáááşáážááşááŹá¸ááŤá Bearer OMNIROUTE_API_KEY ááᯠáĄááŻáśá¸ááźáŻáááşá
Cloudá Evals áážááˇáş Assess
| Method | Path | ááąáŹáşááźááťááş | ||
|---|---|---|---|---|
| POST | /api/cloud/auth |
Bearer key áá áşááŻááᯠáĄáááşááźáŻááźáŽá¸ cloud sync client ááťáŹá¸áĄáá˝ááş ááŻáśá¸áá˝ááşááŹá¸ááąáŹ provider connection ááťáŹá¸ + model alias ááťáŹá¸ááᯠááźááşááąá¸áááş | ||
| POST | /api/cloud/credentials/update |
cloud áážááˇáş sync ááŻááşááŹá¸ááąáŹ provider áá áşááŻáĄáá˝ááş ááŻááşáážááşááŹá¸áááˇáş credential ááťáŹá¸ááᯠáĄááşááááşááŻááşáááş | ||
| POST | /api/cloud/model/resolve |
local routing table ááᯠáĄááŻáśá¸ááźáŻá logical model id áá áşááŻááᯠááááťááąáŹ provider/model áĄááźá áş ááźáąáážááşá¸áááşáážááşáááş | ||
| GET | /api/cloud/models/alias |
cloud sync áááŻáˇ ááąáŹáşááŻááşááŹá¸áááˇáş model alias ááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş | ||
| GET | /api/assess |
ááąáŹááşááŻáśá¸ assessment áĄááťááŻá¸áĄá áŹá¸áá˝á˛ááźáŹá¸áážáŻááťáŹá¸ááᯠáááşáážáŻáááş (provider/model áá áşááŻááťááşá¸á áŽáĄáááŻááş) | ||
| POST | /api/assess |
assessment áá áşááŻááᯠááŻááşááąáŹááşáááş â body: `{scope: {type:"all"} | {type:"provider", providerId} | {type:"model", modelId}, trigger?}` |
| GET | /api/evals |
áĄáááˇáşááŤáážáááąáŹ eval suite ááťáŹá¸ + ááąáŹááşááŻáśá¸ run ááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş | ||
| POST | /api/evals |
eval run áá áşááŻááᯠá áááşá áąáááş | ||
| POST | /api/evals/suites |
á
áááşááźááŻááş eval suite áá
áşááŻááᯠáááşááŽá¸áááş â body ááᯠevalSuiteSaveSchema ááźááˇáş áĄáááşááźáŻáááş |
||
| GET | /api/evals/suites/[id] |
á áááşááźááŻááş eval suite áá áşááŻááᯠááá°áááş |
Auth: /api/cloud/auth áááş Bearer key áá
áşááŻááᯠáááŻááşáááŻááşáĄáááşááźáŻáááş; áĄááźáŹá¸ /api/cloud/*, /api/evals/* áážááˇáş /api/assess route ááťáŹá¸áá˝ááş management session/API key áááŻáĄááşáááşá /api/assess POST áááş discriminated-union scope schema ááŤááąáŹ validateBody ááᯠáĄááŻáśá¸ááźáŻáááşá
ACP (Agent Client Protocol) á áŽááśáááˇáşáá˝á˛áážáŻ
áááąá¸ááŻááşáááşá¸á ááşááťáŹá¸áĄááźá áş ááŻááşááąáŹááşáááşá ᤠendpoint ááťáŹá¸áááş ACP agent áážáŹáá˝áąáááşáážááşááźááşá¸áážááˇáş á áááşááźááŻááş agent áážááşááŻáśáááşááźááşá¸áááŻáˇááᯠá áŽááśáááˇáşáá˝á˛áááşá
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/acp/agents |
áááážáááŹá¸áááˇáş CLI agent áĄáŹá¸ááŻáśá¸ááᯠ(áááşáááŤáááşááąáŹ + á áááşááźááŻááş) áááˇáşáá˝ááşá¸áážáŻáĄááźáąáĄááąá ááŹá¸áážááşá¸á binary áááŻáˇáážááˇáşáĄáá° á áŹáááşá¸ááźáŻá áŻááąáŹáşááźáááş |
| POST | /api/acp/agents |
á
áááşááźááŻááş ACP agent áá
áşááŻááᯠáážááşááŻáśáááşáááş áááŻáˇáááŻááş cache ááᯠááźááşáááşá
áááşáááş â body: {id, name, binary, versionCommand, providerAlias, spawnArgs, protocol} áááŻáˇáááŻááş {action: "refresh"} |
| DELETE | /api/acp/agents |
á
áááşááźááŻááş ACP agent áá
áşááŻááᯠáááşáážáŹá¸áááş â query parameter: ?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
}
á
á
áşáážááşááźáąáŹááşá¸áĄáááşááźáŻááźááşá¸: á
áŽááśáááˇáşáá˝á˛áážáŻ session (dashboard auth_token cookie) áááŻáˇáááŻááş
á
áŽááśáááˇáşáá˝á˛áážáŻáááşáááşáááşáážááşááŹá¸áááˇáş API key áááŻáĄááşáááşá
áĄááąá¸á áááşáĄááťááşáĄáááşáĄááźááˇáşáĄá áŻáśáĄáá˝ááş ACP Framework ááᯠááźááˇáşááŤá
áá˝á˛ááźááşá¸á áááşááźáŹáážáŻáážááˇáş á áąáŹááˇáşááźááˇáşááąáˇááŹáááŻááşáážáŻ
routingá compression áážááˇáş provider ááťááŻá¸á
áŻáśáá˝á˛ááźáŹá¸áážáŻáááŻáˇááᯠá
áąáŹááˇáşááźááˇáşáááş áĄááťáááşáážááˇáşáá
áşááźáąá¸áᎠáá˝á˛ááźááşá¸á
áááşááźáŹáážáŻ endpoint ááťáŹá¸ááźá
áşáááşá áááşá¸áááŻáˇáááş /dashboard/analytics/* á
áŹááťááşáážáŹááťáŹá¸ááᯠááśáˇáááŻá¸ááąá¸áááşá
áĄáááŻáĄááťáąáŹááş routing áá˝á˛ááźááşá¸á áááşááźáŹáážáŻ
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/analytics/auto-routing |
á áŻá ááşá¸ááŹá¸ááąáŹ áĄáááŻáĄááťáąáŹááş routing ááááşá¸ááááşá¸ááťáŹá¸- ááąáŤáşáááŻáážáŻá áŻá áŻááąáŤááşá¸á strategy ááźááˇáşááťááşáážáŻá tier ááźááˇáşááťááşáážáŻá ááááşáááşá¸ provider ááťáŹá¸ |
| 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 }
]
}
Compression áá˝á˛ááźááşá¸á áááşááźáŹáážáŻ
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/analytics/compression |
á áŻá ááşá¸ááŹá¸ááąáŹ compression ááááşá¸ááááşá¸ááťáŹá¸- ááťá˝áąááŹááŹá¸áááˇáş token ááťáŹá¸á ááťá˝áąááŹáážáŻ ááŹáááŻááşáážáŻááşá¸á mode ááźááˇáşááťááşáážáŻá engine áĄááŻáśá¸ááźáŻáážáŻ |
ááŻáśáˇááźááşáážáŻ ááá°ááŹ:
{
"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
}
}
Provider ááťááŻá¸á áŻáśáá˝á˛ááźáŹá¸áážáŻ ááźáąááŹááśááźááşá¸
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/analytics/diversity |
Shannon entropy áĄááźáąááźáŻ ááťááŻá¸á áŻáśáá˝á˛ááźáŹá¸áážáŻ ááźáąááŹááśááźááşá¸- provider ááťáŹá¸áĄááźáŹá¸ ááźááˇáşááťááşáážáŻááᯠáááŻááşá¸ááŹááźááşá¸ááźááˇáş áá áşááąááŹáááşá¸ááž ááťááŻáˇáá˝ááşá¸áááŻááşáááˇáş áĄááźáąáĄááąááťáŹá¸ááᯠááŹáá˝ááşáááş |
ááŻáśáˇááźááşáážáŻ ááá°ááŹ:
{
"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"]
}
á á áşáážááşááźáąáŹááşá¸áĄáááşááźáŻááźááşá¸: á áŽááśáááˇáşáá˝á˛áážáŻ session áááŻáˇáááŻááş á áŽááśáááˇáşáá˝á˛áážáŻáááşáááşáááşáážááşááŹá¸áááˇáş API key áááŻáĄááşáááşá
á áŽááśáááˇáşáá˝á˛áá° ááŻááşááąáŹááşááťááşááťáŹá¸
ááŻááşáááşá¸áááşáááşáážáŻáááŻááşáᏠá áŽááśáááˇáşáá˝á˛áážáŻáĄáá˝ááş á áŽááśáááˇáşáá˝á˛áá°ááťáŹá¸áᏠáĄááŻáśá¸ááźáŻáááŻááşáááˇáş endpoint ááťáŹá¸á
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/admin/concurrency |
áááşáážá áá áşááźááŻááşáááşááŻááşááąáŹááşáááŻááşáážáŻ áááˇáşáááşááťááşááťáŹá¸ááᯠáááşáážáŻáááş (global + provider áá áşááŻááťááşá¸áĄáááŻááş) |
| POST | /api/admin/concurrency |
áá
áşááźááŻááşáááşááŻááşááąáŹááşáááŻááşáážáŻ áááˇáşáááşááťááşááťáŹá¸ááᯠáĄááşááááşááŻááşáááş â body: {global?: number, perProvider?: Record<string, number>} |
áĄááąáŹááşáĄááŹá¸á áá á áşááźááşá¸: admin scope ááŤáááşáááˇáş management session áááŻáĄááşáááşá
CLI ááááááŹááťáŹá¸ á áŽááśáááˇáşáá˝á˛áážáŻ
OmniRoute áážááˇáş ááąáŤááşá¸á ááşá¸áĄááŻáśá¸ááźáŻáááˇáş CLI ááááááŹááťáŹá¸ (antigravity, chipotle, commandCode, devin-cli á áááşáááŻáˇ) ááᯠá áŽááśáááˇáşáá˝á˛áááşá á áŹáááşá¸áĄááźááˇáşáĄá áŻáśáĄáá˝ááş Provider áááŻá¸ááŹá¸ááťááş ááᯠááźááˇáşááŤá
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/cli-tools/all-statuses |
CLI ááááááŹáĄáŹá¸ááŻáśá¸á áĄááźáąáĄááą (áááˇáşáá˝ááşá¸ááŹá¸áážáŻá versioná ááąáŹááşááŻáśá¸áá˝áąáˇáážáááťáááş) |
| GET | /api/cli-tools/status |
CLI ááááááŹáá
áşááŻá áĄááźáąáĄááąáĄááąá¸á
áááş (?tool= query) |
| POST | /api/cli-tools/apply |
ááááááŹáá
áşááŻá ááŻááşááŻááşááŹá¸ááąáŹ config ááᯠááąá¸ááŹá¸áááş (dryRun ááźááˇáş áĄá
ááşá¸ááźááˇáşáááŻááşáááşá container áĄáá˝ááşá¸ ááŻááşááąáŹááşáááˇáşáĄá፠422 + containerEphemeralTargetá migration áááş áĄááąáŹááşá¸ Codex YAML ááᯠáážááşááŹá¸ááąáŹáşááźáááş) |
| GET | /api/cli-tools/backups |
CLI áááááᏠconfiguration backup ááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş |
| POST | /api/cli-tools/backups |
CLI áááááᏠconfiguration áĄáŹá¸ááŻáśá¸á backup áá áşáᯠáááşááŽá¸áááş |
| POST | /api/cli-tools/backups |
ááźááşáááşááá°áááş- body áá˛áá˝ááş {tool, backupId} áááˇáşááźáŽá¸ áá°ááŽááąáŹ endpoint ááᯠáĄááŻáśá¸ááźáŻááŤá ááᯠbackup ááᯠááźááşáááşááá°ááąá¸áááş |
| GET | /api/cli-tools/antigravity-mitm |
Antigravity MITM proxy áĄááźáąáĄááą ("antigravity-mitm" CLI ááááááŹ) |
| POST | /api/cli-tools/antigravity-mitm/alias |
antigravity-mitm alias ááťáŹá¸ááᯠá áŽá ááşáááşáážááşáááş |
áĄááąáŹááşáĄááŹá¸á áá á áşááźááşá¸: management session áááŻáĄááşáááşá
Agent ááťá˝ááşá¸ááťááşáážáŻááťáŹá¸
AI agent ááťá˝ááşá¸ááťááşáážáŻááťáŹá¸ááᯠá áŽááśáááˇáşáá˝á˛áááş (OpenAI á custom GPT ááťáŹá¸áážááˇáş áááşáá°ááąáŹáşáááşá¸ agent ááťáŹá¸áĄáá˝ááş ááźá áşáááş)á
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/agent-skills |
agent ááťá˝ááşá¸ááťááşáážáŻáĄáŹá¸ááŻáśá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş (ááŤáážáááźáŽá¸ááŹá¸ + á áááşááźááŻááş) |
| GET | /api/agent-skills/[id] |
áááşáážááşááŹá¸ááąáŹ agent ááťá˝ááşá¸ááťááşáážáŻáá áşááŻááᯠááá°áááş |
| POST | /api/agent-skills |
á
áááşááźááŻááş agent ááťá˝ááşá¸ááťááşáážáŻáá
áşáᯠáááşááŽá¸áááş â body: {name, description, prompt, model?, temperature?} |
| PUT | /api/agent-skills/[id] |
á áááşááźááŻááş agent ááťá˝ááşá¸ááťááşáážáŻáá áşááŻááᯠáĄááşááááşááŻááşáááş |
| DELETE | /api/agent-skills/[id] |
á áááşááźááŻááş agent ááťá˝ááşá¸ááťááşáážáŻáá áşááŻááᯠááťááşáááş |
| GET | /api/agent-skills/[id]/raw |
áá°áááşá¸ prompt + metadata ááᯠááá°áááş (ááŻááşááąáŹááşáážáŻááážá) |
| POST | /api/agent-skills/generate |
áááŹáááŹááŹá ááŹá¸ ááąáŹáşááźááťááşáá áşááŻááž ááťá˝ááşá¸ááťááşáážáŻáĄáá áşáá áşááŻááᯠAI ááźááˇáş ááŻááşááŻááşáááş |
áĄááąáŹááşáĄááŹá¸á áá á áşááźááşá¸: management session áááŻáˇáááŻááş management scope ááŤáááşáááˇáş API key áááŻáĄááşáááşá
Cache á áŽááśáááˇáşáá˝á˛áážáŻ
Semantic cache áážááˇáş reasoning cache ááᯠá áŽááśáááˇáşáá˝á˛ááŤá
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/cache |
Cache áĄáážá áşááťáŻááş- á áŻá áŻááąáŤááşá¸ entry áĄááąáĄáá˝ááşá hit rate áážááˇáş disk ááąáŤáşáážá áĄáá˝ááşáĄá áŹá¸ |
| GET | /api/cache/entries |
Cache ááŻááşááŹá¸ááąáŹ entry ááťáŹá¸ááᯠá áŹááťááşáážáŹáá˝á˛ááźááşá¸ááźááˇáş á áŹáááşá¸ááźáŻá áŻáááş |
| DELETE | /api/cache/entries |
Cache entry ááťáŹá¸ááᯠááťááşáááş (query parameter ááťáŹá¸ááźááˇáş á á áşááŻááşáááş) |
| GET | /api/cache/stats |
áĄááąá¸á áááş cache ááááşá¸ááááşá¸ááťáŹá¸ (provider áá áşááŻááťááşá¸á model áá áşááŻááťááşá¸áĄáááŻááş) |
| GET | /api/cache/reasoning |
Reasoning cache áĄááźáąáĄááą (reasoning ááźááşáááşáá˝ááˇáşááźááşá¸áĄáá˝ááş) |
| DELETE | /api/cache/reasoning |
Reasoning cache ááᯠáážááşá¸áááşá¸áááş â query params: ?toolCallId=<id> (áá
áşááŻáááşá¸) áááŻáˇáááŻááş ?provider=<p> áááŻáˇáááŻááş parameter áááŤáᲠ(áĄáŹá¸ááŻáśá¸) |
áĄááąáŹááşáĄááŹá¸á áá á áşááźááşá¸: Management session áááŻáĄááşáááşá
Memory á áá áş
áĄááźá˛áááşá¸ááááşá¸áááşá¸ááŹá¸ááąáŹ memory (FTS5 + vector embeddings) ááᯠá áŽááśáááˇáşáá˝á˛ááŤá
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/memory |
Memory entry ááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş (scopeá typeá search query áááŻáˇááźááˇáş á á áşááŻááşáááş) |
| POST | /api/memory |
Memory entry áĄáá
áşáá
áşáᯠáááşááŽá¸áááş â body: {scope, type, content, metadata?} |
| GET | /api/memory/[id] |
áááşáážááşááŹá¸ááąáŹ memory entry áá áşááŻááᯠááá°áááş |
| PUT | /api/memory/[id] |
Memory entry áá áşááŻááᯠáĄááşááááşááŻááşáááş |
| DELETE | /api/memory/[id] |
Memory entry áá áşááŻááᯠááťááşáááş |
| GET | /api/memory?q= |
Memory ááᯠáážáŹáá˝áąáááş (FTS5 + vector) â áá°ááŽááąáŹ response áá˝ááş ááááşá¸ááááşá¸ááťáŹá¸ ááŤáááşáááş |
áĄááąáŹááşáĄááŹá¸á áá á áşááźááşá¸: Management session áááŻáˇáááŻááş management scope ááŤááąáŹ API key áááŻáĄááşáááşá
Webhook ááťáŹá¸
Event ááťáŹá¸áĄáá˝ááş webhook subscription ááťáŹá¸ááᯠá áŽááśáááˇáşáá˝á˛ááŤá
| áááşá¸áááşá¸ | áááşá¸ááźáąáŹááşá¸ | ááąáŹáşááźááťááş |
|---|---|---|
| GET | /api/webhooks |
Webhook subscription áĄáŹá¸ááŻáśá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş |
| POST | /api/webhooks |
Webhook subscription áá
áşáᯠáááşááŽá¸áááş â body: {url, events[], secret?, active?} |
| GET | /api/webhooks/[id] |
áááşáážááşááŹá¸ááąáŹ webhook subscription áá áşááŻááᯠááá°áááş |
| PUT | /api/webhooks/[id] |
Webhook subscription áá áşááŻááᯠáĄááşááááşááŻááşáááş |
| DELETE | /api/webhooks/[id] |
Webhook subscription áá áşááŻááᯠááťááşáááş |
| GET | /api/webhooks/[id]/deliveries |
Webhook áá áşááŻáĄáá˝ááş ááąá¸áááŻáˇáážáŻáážááşáááşá¸ááᯠá áŹáááşá¸ááźáŻá áŻáááş (áĄáąáŹááşááźááşáážáŻ/ááĄáąáŹááşááźááşáážáŻ áážááşáááşá¸) |
| POST | /api/webhooks/[id]/test |
Webhook áá áşááŻáááŻáˇ á ááşá¸áááş event áá áşáᯠááąá¸áááŻáˇáááş |
áĄááąáŹááşáĄááŹá¸á áá á áşááźááşá¸: Management session áááŻáĄááşáááşá
Event áĄááťááŻá¸áĄá áŹá¸ áĄááźááˇáşáĄá áŻáśáĄáá˝ááş Webhooks Framework ááᯠááźááˇáşááŤá
Skills Framework
Skills (agentic extensions framework) ááᯠá áŽááśáááˇáşáá˝á˛ááŤá
| Method | Path | Description |
|---|---|---|
| GET | /api/skills |
áááˇáşáá˝ááşá¸ááŹá¸ááąáŹ skills áĄáŹá¸ááŻáśá¸ááᯠá áŹáááşá¸ááźáŻá áŻá፠(built-in + custom) |
| POST | /api/skills/install |
local path áááŻáˇáááŻááş URL ááž skill áá áşááŻááᯠáááˇáşáá˝ááşá¸á፠|
| DELETE | /api/skills/[id] |
skill áá áşááŻááᯠáááşáážáŹá¸á፠|
| PUT | /api/skills/[id] |
skill áá
áşááŻááᯠáá˝ááˇáş áááŻáˇáááŻááş ááááşá፠â body: {enabled?: boolean, mode?: "on" | "off" | "auto"} |
| POST | /api/skills/executions |
skill áá
áşááŻááᯠááŻááşááąáŹááşá፠â body: {skillName, apiKeyId, input?, sessionId?} |
| GET | /api/skills/executions |
skills áĄáŹá¸ááŻáśá¸áĄáá˝ááş ááŻááşááąáŹááşáážáŻáážááşáááşá¸ááᯠá
áŹáááşá¸ááźáŻá
áŻá፠(?apiKeyId= ááźááˇáş á
á
áşááŻááşáááŻááşáááş) |
Auth: management session áááŻáˇáááŻááş management scope ááŤááąáŹ API key áááŻáĄááşáááşá
áĄááąá¸á áááşáĄááźááˇáşáĄá áŻáśáĄáá˝ááş Skills Framework ááᯠááźááˇáşááŤá
Plugins
OmniRoute plugins (third-party extensions) ááᯠá áŽááśáááˇáşáá˝á˛ááŤá
| Method | Path | Description |
|---|---|---|
| GET | /api/plugins |
áááˇáşáá˝ááşá¸ááŹá¸ááąáŹ plugins ááťáŹá¸ááᯠá áŹáááşá¸ááźáŻá áŻá፠|
| POST | /api/plugins/marketplace/install |
marketplace ááž plugin áá áşááŻááᯠáááˇáşáá˝ááşá¸á፠|
| DELETE | /api/plugins/[name] |
plugin áá áşááŻááᯠáááşáážáŹá¸á፠|
| POST | /api/plugins/[name]/activate |
plugin áá áşááŻááᯠáĄáááşáá˝ááşá¸á፠|
| POST | /api/plugins/[name]/deactivate |
plugin áá áşááŻááᯠááááşá፠|
| GET | /api/plugins/[name]/config |
plugin configuration ááᯠááá°á፠|
| PUT | /api/plugins/[name]/config |
plugin configuration ááᯠáĄááşááááşááŻááşá፠|
Auth: management session áááŻáĄááşáááşá
áĄááąá¸á áááşáĄááźááˇáşáĄá áŻáśáĄáá˝ááş Plugins Framework ááᯠááźááˇáşááŤá
Shadow Routing
Provider ááťáŹá¸á Shadow / A-B áážááŻááşá¸áážááşáážáŻáááş ááŽá¸ááźáŹá¸ REST surface áááŻááşá፠â áááşá¸ááᯠcombo routing áážáá
áşáááˇáş ááźááşáááşáááşáážááşááááş (Auto-Combo ááᯠááźááˇáşááŤ)á Combo áá
áşááŻááťááşá¸á
áŽáĄáááŻááş áážááŻááşá¸áážááşáážáŻ metrics ááťáŹá¸ááᯠGET /api/combos/metrics ááž ááąá¸ááŤáááşá
Guardrails
Runtime guardrails (PII áážáŹáá˝áąááźááşá¸á prompt injection áážáŹáá˝áąááźááşá¸á vision bridging) ááᯠá
á
áşááąá¸ááŤá Guardrails ááťáŹá¸áááş request áááŻááşá¸áá˝ááş ááŻááşááąáŹááşáááşá Call áá
áşááŻááťááşá¸á
áŽáĄáá˝ááş opt-out ááŻááşáááş x-omniroute-disabled-guardrails request header ááᯠáĄááŻáśá¸ááźáŻáááŻááşáááş â áĄááźá˛áááşá¸ááááşá¸áááşá¸ááŹá¸ááąáŹ enable/disable surface ááážáááŤá
| Method | Path | Description |
|---|---|---|
| GET | /api/guardrails |
áážááşááŻáśáááşááŹá¸ááąáŹ guardrails ááťáŹá¸áážááˇáş áááşá¸áááŻáˇá status (name / enabled / priority) ááᯠá áŹáááşá¸ááźáŻá áŻá፠|
| POST | /api/guardrails/test |
ááá°áᏠinput áá
áşááŻááąáŤáşáá˝ááş pre-call pipeline ááᯠdry-run ááŻááşá፠â body: {input, disabledGuardrails?} |
Auth: management session áááŻáĄááşáááşá
áĄááąá¸á áááşáĄááźááˇáşáĄá áŻáśáĄáá˝ááş Security > Guardrails ááᯠááźááˇáşááŤá
á á áşáážááşááźáąáŹááşá¸áĄáááşááźáŻááźááşá¸
áĄááąáŹááşáĄááŹá¸áĄááťááŻá¸áĄá
áŹá¸ ááąá¸ááťááŻá¸ (dashboard sessioná local CLI tokená oma_live_⌠Access Tokená manage-scoped API key) áážááˇáş áááşá¸áááŻáˇáááş inference key ááťáŹá¸áážááˇáş áááşáááŻáˇáá˝áŹááźáŹá¸áááşááᯠManagement Authentication áá˝ááş ááźááˇáşááŤá
- Dashboard route ááťáŹá¸ (
/dashboard/*) áááşauth_tokencookie ááᯠáĄááŻáśá¸ááźáŻáááş - Login áááş ááááşá¸áááşá¸ááŹá¸ááąáŹ password hash ááᯠáĄááŻáśá¸ááźáŻááźáŽá¸á áááážáááŤá
INITIAL_PASSWORDááᯠáĄá áŹá¸áááŻá¸áĄááŻáśá¸ááźáŻáááş requireLogináááŻ/api/settings/require-logináážáá áşáááˇáş áá˝ááˇáş/ááááş ááźáąáŹááşá¸áá˛áááŻááşáááşREQUIRE_API_KEY=trueááźá áşáááˇáşáĄááŤ/v1/*route ááťáŹá¸áááş Bearer API key ááᯠáááŻáĄááşáááŻááşáááş- á¤áĄáááŻá¸áĄááŹá¸áá˝ááş "management token" / "management-scoped API key" áááŻáááşáážáŹ áĄáááşááŤáááşá¸áá˝ážááşáážá áĄááťááŻá¸áĄá áŹá¸ááťáŹá¸áá˛ááž áá áşááŻááᯠáááŻáááŻááźááşá¸ááźá áşááźáŽá¸ áááşáážááşáááŹá¸ááąáŹ ááťážááŻáˇáážááşáĄááťááŻá¸áĄá áŹá¸áá áşááŻááᯠáááşááśáááŻáááŻááźááşá¸ áááŻááşááŤ
ááąáŹááşááźááşáááŻááşáááşáážáŻááážáááąáŹ ááźáąáŹááşá¸áá˛áážáŻ (v3.8.0) â
/api/v1/agents/tasks/*áážááˇáş cooldown á áŽááśáááˇáşáá˝á˛áážáŻ endpoint ááťáŹá¸áááş áááŻáĄá፠management auth (dashboardauth_tokencookie áááŻáˇáááŻááş management-scoped API key) ááᯠáááŻáĄááşáááşá ááááşá áĄááąáŹááşáĄááŹá¸áááźáᲠᤠroute ááťáŹá¸ááᯠááąáŤáşáá°áá˛áˇááąáŹ client ááťáŹá¸áááş401 Unauthorizedááᯠáááşááśááážááááşááźá áşáááşá commit588a0333(fix(auth): require management auth for agent and cooldown APIs) ááᯠááźááˇáşááŤá