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
141 KiB
API_REFERENCE (á ááá)
đ Languages: đşđ¸ English ¡ đ¸đŚ ar ¡ đŚđż az ¡ đ§đŹ bg ¡ đ§đŠ bn ¡ đ¨đż cs ¡ đŠđ° da ¡ đŠđŞ de ¡ đŹđˇ el ¡ đŞđ¸ es ¡ đŞđŞ et ¡ đŽđˇ fa ¡ đŤđŽ fi ¡ đŤđˇ fr ¡ đŽđŞ ga ¡ đŽđł gu ¡ đłđŹ ha ¡ đŽđą he ¡ đŽđł hi ¡ đđˇ hr ¡ đđş hu ¡ đŚđ˛ hy ¡ đŽđŠ id ¡ đłđŹ ig ¡ đŽđš it ¡ đŻđľ ja ¡ đŹđŞ ka ¡ đ°đ km ¡ đŽđł kn ¡ đ°đˇ ko ¡ đąđš lt ¡ đąđť lv ¡ đŽđł ml ¡ đŽđł mr ¡ đ˛đž ms ¡ đ˛đš mt ¡ đ˛đ˛ my ¡ đłđľ ne ¡ đłđą nl ¡ đłđ´ no ¡ đŽđł or ¡ đŽđł pa ¡ đľđ phi ¡ đľđą pl ¡ đľđš pt ¡ đ§đˇ pt-BR ¡ đˇđ´ ro ¡ đˇđş ru ¡ đąđ° si ¡ đ¸đ° sk ¡ đ¸đŽ sl ¡ đˇđ¸ sr ¡ đ¸đŞ sv ¡ đ°đŞ sw ¡ đŽđł ta ¡ đŽđł te ¡ đšđ th ¡ đšđˇ tr ¡ đşđŚ uk-UA ¡ đľđ° ur ¡ đşđż uz ¡ đťđł vi ¡ đłđŹ yo ¡ đ¨đł zh-CN ¡ đšđź zh-TW
title: "á¨API ááŁááť" version: 3.8.51 lastUpdated: 2026-08-31
á¨API ááŁááť
đ Languages: đşđ¸ English ¡ đ¸đŚ ar ¡ đŚđż az ¡ đ§đŹ bg ¡ đ§đŠ bn ¡ đ¨đż cs ¡ đŠđ° da ¡ đŠđŞ de ¡ đŹđˇ el ¡ đŞđ¸ es ¡ đŞđŞ et ¡ đŽđˇ fa ¡ đŤđŽ fi ¡ đŤđˇ fr ¡ đŽđŞ ga ¡ đŽđł gu ¡ đłđŹ ha ¡ đŽđą he ¡ đŽđł hi ¡ đđˇ hr ¡ đđş hu ¡ đŚđ˛ hy ¡ đŽđŠ id ¡ đłđŹ ig ¡ đŽđš it ¡ đŻđľ ja ¡ đŹđŞ ka ¡ đ°đ km ¡ đŽđł kn ¡ đ°đˇ ko ¡ đąđš lt ¡ đąđť lv ¡ đŽđł ml ¡ đŽđł mr ¡ đ˛đž ms ¡ đ˛đš mt ¡ đ˛đ˛ my ¡ đłđľ ne ¡ đłđą nl ¡ đłđ´ no ¡ đŽđł or ¡ đŽđł pa ¡ đľđ phi ¡ đľđą pl ¡ đľđš pt ¡ đ§đˇ pt-BR ¡ đˇđ´ ro ¡ đˇđş ru ¡ đąđ° si ¡ đ¸đ° sk ¡ đ¸đŽ sl ¡ đˇđ¸ sr ¡ đ¸đŞ sv ¡ đ°đŞ sw ¡ đŽđł ta ¡ đŽđł te ¡ đšđ th ¡ đšđˇ tr ¡ đşđŚ uk-UA ¡ đľđ° ur ¡ đşđż uz ¡ đťđł vi ¡ đłđŹ yo ¡ đ¨đł zh-CN ¡ đšđź zh-TW
á¨OmniRoute API áá ááŁááťá˘ á¨áááá /v1 áá˝áł áĽá á áĽááľ áĽá
á áá á¨ááááľá á¨á áľá°áłá°á ááłá¨áťáá˝ áá¸áááᤠá áá˝á á¨ááá á á docs/openapi.yaml áĽá á src/app/api/ áĽá áŤáá á¨ááľáá áá á¨á°áá áááŽá˝ áá¸áá˘
á¨áááľ áááŤ
- á¨ááááľ áá ááááŤáá˝
- áĽá¸á á¨áá°áłá°áŠ á¨ááá áá áŞáŤáŽá˝
- ááá°áťáá˝
- ááľá áááá¨áľ
- á¨á°ááľ OCR
- áá´áá˝á ááááá
- á¨á á áŤá˘ áááá ááááľáľ
- á¨á°áłááááľ áááá፠ááĽáŚá˝
- á¨áááá˝ API
- á¨áŁá˝ API
- á¨ááá API
- á¨WebSocket áĽá¨áľ
- á¨áŽáłáá˝ áĽá á˝ááŽá˝ áŞáááľ
- á¨ááş áá¸ááŤ
- áłá˝áŚááľ áĽá á áľá°áłá°á
- á¨áŽáጠá áľá°áłá°á
- Webhooks
- á¨á°áááᥠáááá˝ (áŤáľ-á°á á áľá°áłá°á)
- á¨ááŞáá˝ ááŽáśáŽá
- á¨á áľá°áłá°á ááŽáá˛áá˝
- á¨áááá á˝ááł (á¨á°áŤáá)
- áá ááśá˝
- áá á°á¨ áľááľáł
- MCP á áááá
- A2A á áááá
- á°ááᣠáááááá˝ áĽá ááá
- á¨áĽáŤá áá°áľ
- áá¨áááŤ
á¨ááááľ áá ááááŤáá˝
POST /v1/chat/completions
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "cc/claude-opus-4-6",
"messages": [
{"role": "user", "content": "Write a function to..."}
],
"stream": true
}
áĽá áŤáľááá˝
| áŤáľá | á á áŁáŤ | ááá፠|
|---|---|---|
X-OmniRoute-No-Cache |
áĽáŤá | áá¸ááŤáá áááá áá° true áŤááá |
x-omniroute-no-memory |
áĽáŤá | ááá
áĽáŤá á¨áá
á°á¨ áľááľáł áĽá á¨áá
ááśá˝ ááľááŁáľá ááááá áá° true áŤááá (á¨no-cache áá á°ááłáłá ááᤠá áĽáŤááłááą áĽáŞ á¨ááá¨áá á°á¨á᪠á¨áśá¨á/á᪠áŤá áŤáľáááłá) |
X-OmniRoute-Progress |
áĽáŤá | ááá°áľ áááśá˝ áá° true áŤááá |
X-Session-Id |
áĽáŤá | áááŤá á¨ááá áá áľáľáľá á¨ááŤáááá áá á¨ááá áá ááá |
x_session_id |
áĽáŤá | á¨áĽá á°á¨á ááŠááąá á°ááŁáááľ á áá (ááĽá°á HTTP) |
X-OmniRoute-Session-Id |
áĽáŤá | á á áŞá á¨áá¨á á¨ááá áá/ááááľ áá፠(ááá
á°á¨ áľááľáłá áá¨á áŤáááŁá)ᢠá˛ááᣠááĽáŤááłááą ááá áá á᪠áá°áŁ áłáááἠá call_logs.session_tag ááľáĽ ááááŁá (#8249) â á¨áá á áášá á áŤáľ-á°á á ááá áá |
Idempotency-Key |
áĽáŤá | á¨á°á°ááá áĽáŤá ááľááá ááá (á¨5 á°á¨ááľ áá ááľáŽáľ) |
X-Request-Id |
áĽáŤá | á ááŤá á¨á°á°ááá áĽáŤá ááľááá ááá |
X-OmniRoute-Cache |
ááá˝ | HIT ááá MISS (áĽá¨áľ áŤááá) |
X-OmniRoute-Idempotent |
ááá˝ | á°á°áááá á¨á°ááá° true |
X-OmniRoute-Progress |
ááá˝ | á¨áá°áľ ááľáľá á¨á ፠enabled |
X-OmniRoute-Session-Id |
ááá˝ | OmniRoute á¨á°á ááá áľ áá¤áłá á¨ááá áá ID |
X-OmniRoute-Request-Id |
ááá˝ | á¨áĽáŤá áľáľáľá id (á˛áłáá ) |
X-OmniRoute-Version |
ááá˝ | á¨OmniRoute áááŁáł áľáŞáľ (áááá áááŤá) |
X-OmniRoute-Cost-Saved |
ááá˝ | á HIT áá áá¸ááŤá áŤáľáá¨á á¨USD á᪠(ááá¸á፠áľáŹáśá˝ áĽáť) |
X-OmniRoute-Decision |
ááá˝ | á¨ááááá áąáŤáŚ strategy=<name>; provider=<alias>; latency_ms=<n> (<name> á¨áŽáጠáľáľáŤá´á ááᣠááá áŽáጠáááá áĽáŤá single) â á áá ááá፠ááážá˝ áá áááá áááŤá |
á¨Nginx ááľáłááťáŚ á áĽá á°á¨á áŤáá¸á áŤáľááá˝ áá á¨ááá¨áŽá á¨áá (áááłá
x_session_id)áŁunderscores_in_headers on;á áŤááá˘
á¨á᪠á´áááľáŞ áŤáľááá˝áŚ áĽá¨áľ á¨ááá áá áľáŹáłá ááážá˝á á¨
X-OmniRoute-*ááŞ-á´áááľáŞ áľáĽáľáĽá áááá âX-OmniRoute-Response-Cost(USDᣠáá 10 á¨á áľááŽá˝ á¤áśá˝á¤ ááá/áá ááá°áá°á0.0000000000)áŁX-OmniRoute-Tokens-In/X-OmniRoute-Tokens-OutáŁX-OmniRoute-ModeláŁX-OmniRoute-ProvideráŁX-OmniRoute-Latency-MsáŁX-OmniRoute-Cache-HitáĽáX-OmniRoute-Fallback-Attempts(> 0 á˛áá áĽáť)ᤠá á°á¨ááŞáX-OmniRoute-Request-IdáĽáX-OmniRoute-VersionᢠáĽááá á ááááľ áá ááááŤáá˝áŁ/v1/responsesáŁ/v1/messagesᣠáĽáá˛áá á áá˛áŤ áá¨á¨áť ááĽáŚá˝ â/v1/embeddingsáŁ/v1/images/generationsáŁ/v1/audio/speecháŁ/v1/audio/transcriptionsáŁ/v1/rerankáŁ/v1/videos/generationsáŁ/v1/music/generationsáĽá/v1/moderations(ááŞá áááá0) â áááŤáᢠá¨áá áá¨á á˛áá á¨áá˛áŤ á᪠á á¨ááłáá˛á (á ááľáᣠá á°á¨ááľáŁ á áááᣠá ááá-á ááľ) áá°ááᤠáŤááá áá0áááá (fail-open)á˘
á¨áá¸á፠ááááľ á᪠áľáááጠá á´ááá˛á áá¸á፠HIT (
X-OmniRoute-Cache-Hit: true) áá áá° áááá á á áŤá˘ ááá áĽáŞ á áá°á¨ááᤠáľáááX-OmniRoute-Response-Cost0.0000000000áááá (ááááąá ááá á¨áĽ á¨ááŤáľáááá á°á¨á᪠ááŞ)ᢠá¨ááááŞáŤá/ááá á¨áá á¨á á᪠áX-OmniRoute-Cost-SavedááľáĽ ááĽáťá áŞáááľ áá°á¨ááᢠá¨áá፠á á ááá áľáááśá˝X-OmniRoute-Response-Costá áá°áá á ááŁá¸á (á¨áá¸á፠ááááśá˝ ááá á᪠á¨áá¸áá)ᤠá¨áá¸á፠áľááłááá˝X-OmniRoute-Cost-Savedá áá ááá áá˝ááá˘
áĽá¸á á¨áá°áłá°áŠ á¨ááá áá ááá˝
áĽá¸á á¨áá°áłá°á á¨ááá áá áá á áá፠á¨áááᣠá¨á°áá á ááááľ ááť á¨áá á¨ááľá°ááá፠áá ááጠá ááľ áá áŁáá¤áľ á ááľ áĽá á¨OmniRoute áááááľ ááááᢠáá´á á áŤá¨áŤááᣠOAuthá á áá áá áᣠá ááľá á¨á°áá°á á°áá á á ááááᣠááá á ááľá á¨á°áá°á á á áŤá˘ á áá áá áá˘
áá¨áá፠á¨ááŤá°ááá API ááá lease:exclusive áá°á áĽá á ááá˝ á¨á°ááá áŁáś áŤááá
á¨allowedConnections áááá ááá¨á áááŁáᢠá¨ááἠááłá á¨ááἠáľáá á ááá
á˛áá áá á¨áá ááááá˝ á˛á°á¨á áááąáá ááľáŽá˝ á á፠áŤáľááľáłáá˘
POST /api/v1/session-leases
Authorization: Bearer <managed-api-key>
Content-Type: application/json
X-OmniRoute-Lease-Owner: vlo_<43-base64url-characters>
{"action":"acquire","model":"glm/glm-4.6"}
á¨á°áłáŠ á¨ááááľáŁ á¨áá°áľ áĽá á¨áááá
ááážá˝ á¨áá áá
á°áá˝áᣠstateá áĽá áľáááááá á áááłá
generation áŤáłáŤáᣠááá áá á¨á°áá¨á áá áááááľ ááá á¨áá¨áá፠áá¨ááá˝á áá˝á á áŤáłáŠáᢠáá°áľá áááá
generationá á JSON á áŤá ááľáĽ áááŤááŚ
{ "action": "renew", "generation": 1 }
{ "action": "release", "generation": 1, "reason": "OWNER_EXIT" }
áá á¨áá áŁáá¤áľ áá áá áľáľáľáŠ áááááľá á¨áá áĽá á¨ááłáŤ ááłáłáł á ááá˝ áá áá áá˝áááŚ
{ "action": "status", "generation": 1 }
{
"state": "ACTIVE",
"generation": 1,
"acquiredAt": "2026-08-28T12:00:00.000Z",
"renewedAt": "2026-08-28T12:00:30.000Z",
"expiresAt": "2026-08-28T12:02:30.000Z",
"connection": {
"displayName": "Primary Codex",
"provider": "codex"
}
}
áá
á áá፠á¨ááá á¨áááł áĽááá á ááá˝ áŁáááá áŁáá¤áľáŁ áá¨áá፠áŁá°á¨áá á¨áá°áłá°á API ááá áĽá áľááááá
áá generation á á ááľ á¨ááἠááł ááĽááľ ááľáĽ á¨áłá ᨠááᢠdisplayName á¨á°á¨á¨á¨áá á¨á°ááá¨
á¨áááááľ áľá áĽáť ááᤠá°á
áááą á¨á°á á á á¨á°ááᨠáľá á¨áá null ááááᢠOmniRoute
á˘áááá ááá á¨ááᨠá¨áá፠ááááľá á ááľáŠ áá˝á á áá áááᢠá¨á á
áŤá˘á áĽá´áľ áľáą áŤááá á¨ááłáŤ áá፠á˛áá áá˝á
á¨ááᨠá°áłáá-á á
áŤá˘ áá፠á áá°ááᢠá¨áá¨áá፠áá¨ááá˝áŁ áśá¨áá˝áŁ áŠáŞáá˝áŁ áŤáá°á°ááą á¨áááááľ ááá API
ááá áááŤáá˝áŁ á¨áŁáá¤áľ áážá˝áŁ á¨áá áŞáŤ ááľáĽáŽá˝ áĽá ááľáŁá á¨ááľá°ááá፠ááἠá ááŤá°áąáá˘
á á°áłáłá°-áááᣠá á°áłáłá°-áŁáá¤áľáŁ ááá áŁááá áľ-generationᣠá á áᣠááá áŁááá áľáŁ á á°ááá áĽá áá áŁáŁ ááá áá
áŤá áááááľ ááłáłáł á°ááłáłáŠá 409 LEASE_FENCE_STALE áľá
á°áľ ááááłáᢠá¨á á
á-áá á á፠ááá˝á á¨á°áá á á°áá á ááá¨áá¨á á¨áá˝á áá áľáľáľá á¨áááᢠááľá°ááá áá ááá
á˛áŤá¸áááᣠá°ááłáłáŠ generation áľáááá áá áááŤá áĽá áááłá á á˛áąá áľáľáľá á á áśáá ááááľ ááááłáᣠá áŽááá áá áá˝á á ááááľáá˘
ááááľáŁ áá°áľáŁ áááá
áĽá á¨áá á á፠ááážá˝ á¨ááľá á
áážáťá¸áá áľáááá ááŁá á°áá áá˝
áłáááᥠáááŤáá˘
áá
á¨á áááá áá áá°á ááá OpenAI Codex /status á áááááᢠáá°á áá Codex á á áá áá á¨áĽáąá
á¨áá´á á á
áŤá˘ áĽá á áĽáŽ á¨á°áááŁáá á¨áá¨áááŤ/áá፠áááł áŞáááľ áŤá°áááᣠááá áá á¨áááá° áĽá
á¨á á
áŤá˘ áá፠ááłáłáłá á áŤáłááᤠá¨áá°ááľ á¨á°áá á áá
á°áľ áá
á áĽááá ááĽáŤáľ áĽá
connection.displayNameá áĽáá´áľ áĽáá°ááŤáłá ááá°á á áá áľá˘
á¨á፠áĽáŤááłááą á¨áá°áłá°á á¨áááá¨áť áĽáŤá áááąáá á¨ááĽáĽá áŤáľááá˝ áááŤááŚ
X-OmniRoute-Lease-Owner: vlo_<43-base64url-characters>
X-OmniRoute-Lease-Generation: 1
áľááááá áŁáá¤áľáŁ generationᣠáá áááááľ áĽá áá¨áá፠áŤá°á¨áá API ááá á¨áĽáŤááłááą á¨áá°áá upstream áá¨áŤ áá˛áŤáá á ááľ ááłá áŤáᢠáŁáá¤áąá áĽá generationá á áá ááá áĽáá°áá ááŤááľáŁ áŤ ááá á°ááłáłáŠá áááááľ á˘áá áľá áĽááł áá¨á˝ááᢠáŤáá°á°ááą áŁáá¤áśá˝ á áá¨áášáᣠá áááἠá áááááĄáᣠá áĽáŤáá á á˝á áłá á á ááľáĽ á áááŠá ááá upstream á áá°ááááá˘
áááŤá áááá HTTP 429á á¨Retry-After áĽá á¨áá¨á°áá áá ááááłááŚ
{
"state": "WAITING_FOR_CAPACITY",
"error": { "type": "lease_error", "code": "LEASE_CAPACITY_UNAVAILABLE" },
"reason": "NO_FREE_ELIGIBLE_CONNECTION",
"retryAfter": 30
}
áá ááá˝ áááľ áá°á áá áĽá áľáĽáľáĽ áŁáś áĽááłááá á áĽá áĽáŤááłááą ááť áአá áá áá áá á°áá áĽáá°áá á áĽáť ááᢠá¨ááá°áá áá´áá˝/á á áŤá˘áá˝áŁ á¨ááᲠá áááááľáŁ á¨ááááᣠááᣠáŽáłáŁ á¤á áĽá ááá˝ áá°á á á¨áĽáááľ ááľááśá˝ ááŁá á¨OmniRoute ááážáťá¸áá áĽáá°áŤá áááŤáá˘
x-omniroute-compression
á¨áááá፠áá áąá á áĽáŤááłááą áĽáŤá áá á¨áá˝á á ááĽáᢠá¨áá°áá á áľá፠â á¨ááľá°ááááŤ-combo ááťááᣠáááá ááááŤáŁ áŤáľ-á ááłá˝á áĽá á¨áááá Default áŤá¸áááᢠáĽá´áśá˝áŚ
| áĽá´áľ | áá¤áľ |
|---|---|
off |
ááá áĽáŤá ááá áááá á ááááᢠ|
default |
á¨ááá á¨á°ááá Default ááá፠(áááá ááá፠á˝á ááá)ᢠ|
engine:<id> |
á˛áá á ááľ áá á engineᣠáááłá engine:rtkᢠ|
<combo> |
á áľá á¨ááááľ á¨á°á°á¨á combo (ááá°á á áááἠááľá¨áá˝)ᣠá¨á፠á idᢠ|
ááľáłááťáá˝áŚ
- áŤááłáá áĽá´áśá˝ á˝á ááŁáá (áĽáŤáá áá˝á ááľá á áá°á¨áá)ᤠáááłáą áá° áá°á áá á¨áŚááŹá°á á áľá፠áááĽááá˘
- áĽá combos á°ááłáłá áľá áŤáá¸áᣠááŤáĽ á¨áá ááááľ áááááľ á¨comboáá id áŤáľá°áááá˘
- áľá
offááádefaultá¨áá combo á áľá ááá¨áĽ á áá˝áá (áĽáá፠ááá áááľ á ááááŞáŤ áá°á¨ááá)ᤠáĽáá˛á áŤááá combo á idá áŤááááąá˘ - ááá á¨áááá፠ááá¨áŞáŤ áĽáĽá ááá˘áŤ ááጠáááá á ááá á áá á°á¨á á˛á°áá¨áᣠáá áŤáľá ááŤááá á áá˝ááá˘
á°ááŁáŤá á¨á°á°á¨áá áá áľ á ááá˝ áŤáľáá ááľáĽ á°áááś ááłáŤááŚ
X-OmniRoute-Compression: <mode>; source=<source>
áĽáá
<source> á¨request-headerᣠrouting-overrideᣠactive-profileᣠauto-triggerᣠdefault ááá off á ááą ááá˘
á¤áá¤á˛ááá˝
POST /v1/embeddings
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "nebius/Qwen/Qwen3-Embedding-8B",
"input": "The food was delicious"
}
á¨ááá á á áŤá˘áá˝áŚ Nebius, OpenAI, Mistral, Together AI, Fireworks, NVIDIA, OpenRouter, Jina AIá˘
á¨áŤáłáá áááŤáá˝ provider/model á
áá¸áľ á áá¸á (áááłáጠjina-ai/jina-embeddings-v5-omni-small)ᢠá áŹááľáľáŞá ááľáĽ á¨ááłáŠ á á
áŤá˘ áŤáá°á áá°áŁá¸á á¨Jina áá´á áááŤáá˝á (áááłá jina-embeddings-v5-text-smallᣠjina-reranker-v3.5) áááłáᢠá¨Jina embed/rerank/classify/segment ááłá¨áťáá˝ á ááááŞáŤ á¨áłá˝áŚááľ jina-ai áá¨áááŤáá˝á áá áááᤠJINA_AI_API_KEY á¨ááŤááááá ááá á¨áłá˝áŚááľ ááá á¨áá áĽáť áĽáá° á ááŤá ááᢠá¨jina-reader áŤááľ áReader / r.jina.ai áĽáť áá (POST /v1/web/fetch)ᤠá¤áá¤á˛ááá˝á ááá reranká áá˝á á áŤáááĽáá˘
á¨ááá˛ááłá áľáá áĽááłáá¸á á¨ááááš á¨áŹááľáľáŞ áá´áá˝ á¨á á
áŤá˘ ááť á¨áá áĽáľá¨ 32 á¨á°áááŠ
ááĽáá˝áá ááá ááᢠá¨áá˛áŤ ááĽá ááááśá˝ textᣠimageᣠaudioᣠvideo áĽá document áá¸áᢠá¨áĽááą á¨áá˛áŤ source
{"type":"url","url":"https://..."} ááá
{"type":"base64","data":"...","media_type":"..."} ááá˘
Jina v5 Omni (jina-ai/jina-embeddings-v5-omni-smallᣠjina-ai/jina-embeddings-v5-omni-nanoáŁ
áĽá á¨á¤á°á°áĄ á°ááá áľá jina-ai/jina-embeddings-v5-omni â omni-small) á¨Jina á¤á°á
EmbeddingsV5Request á°ááśá˝áá ááá ááᣠáĽáá˛áá áłááááŤá¸á áŤáľá°áááá¸áá áá° https://api.jina.ai/v1/embeddingsáŚ
{
"model": "jina-ai/jina-embeddings-v5-omni-small",
"task": "retrieval.query",
"normalized": true,
"input": [
{ "text": "a red bicycle" },
{ "image": "https://example.com/bike.png" },
{
"content": [{ "text": "caption" }, { "image": "data:image/png;base64,..." }]
}
]
}
á¤á°á { image | audio | video | pdf } áĽá´áśá˝ ááá HTTPS URLᣠdata: URI ááá áĽáŹ
base64 ááá áá˝ááᢠOmniRoute áĽáááŤá áŚáĽáááśá˝ áá° ááĽá¨ááá á ááááá ááá á¤á°á á¨ááľá URLáá˝á á áŤááŁá â Jina ááá
áá˛áŤáá áŤáą áŤááŁáᢠá°á¨á᪠á¨Jina ááľáŽá˝ (taskᣠnormalizedᣠtruncateᣠembedding_type)
áá°ááááᢠá˝áá-áĽáť á¨áá á¨Jina SKUáá˝ á˝áá áŤááá á°ááśá˝á á ááá ááľá
áŤá°áááá˘
á¨á°á áááľ áĽá á¨áááᣠáá°áŚá˝áŚ
- á¨áááľ áá˛áŤ URLáá˝ ááá HTTPS ááá á ááŁá¸áᢠáá°á á
{type,source:url}ááĽáá˝ á á°áá¨á á áŠá áááŁá (á¨áłáá-á á áŁáŤ áá¨áááŤáŁ á¨áá áá°áĽáŁ á¨áá á áá°áŚá˝áŁ ááá DNSᣠá¨áááááľ ááľáááľ) áĽá áá° á á áŤá˘á á¨áá°áá á ááľ á ááľáĄ ááŤá°áłáᢠá¨Jina á¤á°á{image:"https://..."}ááĽáá˝ á¨á°ááłáłáŠ ááá-HTTPS ááá፠á áá áĽááłá áá°ááááᤠJina URLáá áŤááŁáᢠ- á ááľáĽ á¨á°áŤá°á° base64 áá˛áŤ ááĽáŤááłááą ááĽá á á˛áŽáľ á˛á°á¨á áĽáľá¨ 8 MiBᣠá áĽáŤáá á áá á°áá á á˛áŽáľ á˛á°á¨á áĽáľá¨ 16 MiB á¨á°áá°á ááá˘
á¨á á áŤá˘ áľááá (áá°á á ááĽáá˝ áĽááłá áá˝á á áá°áááá)áŚ
- á¨Jina ááá˛ááłá áá´áá˝áŚ áĽáŤááłááą á¨áá°á-á°á¨á ááĽá á ááłáᲠááá á¨á°á°á¨á á ááľ áŚáĽáááľ
(
text/image/audio/video/pdf) ááááᤠá ááľáĽ áá°áŤá°á° áá˛áŤ data URIáá˝á áá áááᤠááĽáŤááłááą á¨áá°á-á°á¨á ááĽá á ááľ áŹáá°á áááŤáᢠ- á¨Gemini Embedding 2 á¤á°á°áĽáŚ á ááľ á¨áá°á-á°á¨á áľááľá
content.parts(textáááinline_data) áŤáá á ááľ á¤á°ámodels/{model}:embedContentáĽáŤá ááááᢠ- ááá˝ á¨ááłáᲠááłáłáł á¨ááá¸á áŤááłáá/á°áááá áá´áá˝ á¨á°ááᨠáá¤áľá á HTTP 400 ááľá áŤá°áááá˘
{
"model": "jina-ai/jina-embeddings-v5-omni-small",
"input": [
{ "type": "text", "text": "A red bicycle" },
{
"type": "image",
"source": { "type": "url", "url": "https://example.com/bicycle.png" }
}
],
"dimensions": 512,
"encoding_format": "float"
}
á¨ááá°áá á¨áá´á/ááłáᲠáĽáá¨áśá˝ ááĽáá á ááľ á¨ááá¨á ááá HTTP 400 ááááłáᢠá ááľá á¨ááĽá¨ááá/áśá¨á áĽáŤááá˝ áá áŤá áá¤áľ-áŤááá á¨á áĽáŤ ááľáŽá˝ áłááá¨áŠ áá°áááá¸áá áááĽááá˘
# áááá á¨á¤áá¤á˛áá áá´áá˝ áááá
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 á á
áŤá˘áá ááááŁáᤠá
áľá-á
áĽáŤ á¨ááá á¨áá´á áá፠(áááłá
mistral-ocr-latest) áá° á°áááá ááľ á á
áŤá˘ áááŤáᣠáĽáá˛áá model áŤáá°á áá° ááŁáŞá
Mistral (mistral-ocr-latest) ááᢠá¨á°áááᥠá á
áŤá˘áá˝ (open-sse/config/ocrRegistry.ts)áŚ
| á¨á á áŤá˘ áá፠| á¨áá´á áá፠| á¨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 + áááł áá á¨á
) â á¨áłá˝ áááá¨áąá˘ |
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 á¨áááł áá á¨á፠áá°áľ
á¨Azure Document Intelligence analyze API áŤáá°ááłá°á ááጠá¨ááááŞáŤá áĽáŤá body á¨ááááľ ááá
á¨Operation-Location header ááááłáᣠáá¤áąá áááłáá á á°á°ááá á áá á¨á
ááááľ á áá áľá˘ handler
(open-sse/handlers/ocr.ts) áŤáá URL á á¨á°á¨ááą áĽáľá¨ 30 áá¨áŤáá˝ áľá¨áľ áá áááᤠok áŤááá á¨áááł áá á¨á፠ááá˝ ááá "failed" áááł á˛áŤááĽá áá˛áŤáá áá¨á˝áá (áááłáá áá á¨áá
á áááĽáá)ᣠáĽáá˛áá á¨áá¨áŤ áá°áĄ áŤáá á áá áááá á ááá áĽá¨á°áŤ á¨áá 504 ááááłáᢠá¨áá¨á¨áťá á¨Azure ááá˝
áá° á áŞá á¨ááááą á ááľ Mistral á¨áá ááá áľá á°ááłáłá á¨pages/markdown á
áá˝ áĽáá˛áá¨á áá°á¨áááŁ
áľááá
á¨á°áá á áŽáľ áá á
áŤá˘á á¨á°áᨠá áŤáŤá ááľá¨á á áŤáľáááááá˘
á¨Vertex AI DeepSeek OCR áá¨áá፠áĽá á¨endpoint áááłáľ
vertex-deepseek-ocr OmniRoute áááááľ/ááľá áľáŤáá á áľááľá á¨áá°áááá á°ááłáłá á¨Vertex AI áá¨áááŤ
(open-sse/executors/vertex.ts) áĽáá°áá áá áááጠá¨áááááą API key ááá á¨Service Account JSON áá¨áá፠áá¨á
(á JWT-bearer áá°áľ á ááŤáááľ áá áá áá á¨áá°áŤ OAuth access token áĽáá˛áá á¨ááá¨á) ááá á áľááľá á¨á°áá á¨á áĽááłá áĽá
á áá á¨ááá OAuth access token ááᢠá¨upstream endpoint URL á¨áááááą project áĽá
region á¨áááᣠá¨Vertex á á ááá openapi/chat/completions á áá endpoint áá â á ááá˝ á¨á°á áá°
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
â áááá á¨ááááľáŁ embedding áĽá á¨ááľá áá´áá˝á + áĽáá¨áśá˝á á OpenAI á
áá¸áľ ááááłá
á¨áá´á id á
áľá á
áĽáŤáá˝ (?prefix=)
á áĽáááš áá´áá˝ á á á
áŤá˘ á
áľá á
áĽáŤ áľá ááłáááᢠá¨ááŤáááľ á
áľá á
áĽáŤ á
MODELS_CATALOG_PREFIX_MODE á¨áŁá
᪠á áá á¨áááŁá á á˛ááᣠá áĽáŤá áááŞáŤ ááĽáŤááłááą áĽáŤá áá°áŤ áá˝áá â áá
á á¨á ááááŠá á á ááá
á
ááĽá áááá˝ áá áłáááá áášá áááá ááááá á°áá á á áá áááŚ
GET /v1/models?prefix=alias # ááĽáŤááłááą áá´á á ááľ id â á áአá¨á
á˝á áľá á
áľá á
áĽáŤ
GET /v1/models?prefix=dual # áááąá á
áážá˝ (á¨á áááአááŁáŞ)
GET /v1/models?prefix=canonical # ááá á¨á á
áŤá˘-id á
áľá á
áĽáŤ áĽáť
| áááł | á¨ááŤááŁá | ááľáłááťáá˝ |
|---|---|---|
dual |
cc/claude-sonnet-4-6 áĽá claude/claude-sonnet-4-6 |
ááŁáŞá˘ áááąá ids áá° á°ááłáłá áá´á áááŤáᤠá¨áááą á áážá˝ á ááąá á ááááľ áŤáľááᥠá¨á°áá á á ááĽáŽá˝ ááľáŤáłá¸áá áĽáá˛ááĽá á°áááᢠá¨áŤáłááá áá á á áááľ áĽáĽá áŤá°ááááᢠ|
alias |
cc/claude-sonnet-4-6 |
ááĽáŤááłááą áá´á á ááľ áá¤áľá˘ á¨á°áᨠá á˝á áľá á¨ááá¸á á á áŤá˘áá˝á á ááá áá¤áłá¸áá áŤááŁáᣠáľááá ááá ááá á áá ááᢠ|
canonical |
claude/claude-sonnet-4-6 |
á ááá á¨á á
áŤá˘-id á
áľá á
áĽáŤ áľá ááĽáŤááłááą áá´á á ááľ áá¤áľá˘ á¨á°áᨠá
á˝á áľá á¨ááá¸á á á
áŤá˘áá˝ (áááłá antigravity/âŚáŁ agy/âŚ) áĽáá
á áá á idá¸áá áŤááŁáᣠáľááá
ááá ááá á áá ááᢠ|
á¨dual áááł á áá¸áŁáŤá áŤá áĽáŤá áááŞáŤáá ááłáá
áá˝ááጠáá° ááá id
á¨ááŤááááľ parent ááľá ááááá˘
á¨áá´á ááŤá á¨ááŤáłáŠ á°áá áá˝ ?prefix=alias áá á¨á
á ááŁá¸á â
OmniCopilot VS Code extension á¨ááŤá°áááá áá
áá ááá˘
áŤá-á áľá°áłá°áĽ á¨áá´á ááŠááśá˝
á áľá°áłá°áĽá ááá°áá á¨Claude áá´áá˝áŁ /v1/models idá claude-3-omniroute-no-thinking/ á¨ááá á
áľá á
áĽáŤ áŤááá áŤá-á áľá°áłá°áĽ ááŠááľá áŤáłááááŚ
claude-3-omniroute-no-thinking/<provider>/<model>
áá
á id ááá¨áĽ (áááłáᣠáááá thinking áĽáá á ááŤáŤáá á¨Claude Code á
ááĽá ááľáĽ) ááááŤáłá á áľá°áłá°áĽá á áááľ áá° áĽááá°áá <provider>/<model> áááś áááłáá â á /v1/messages ááááľ áá thinking:{type:"disabled"}ᣠááá á /v1/chat/completions ááááľ áá á¨reasoning/reasoning_effort ááľáŽá˝ ááááłáᢠááŠááą á¨ááá¨áá¨á á áľá°áłá°áĽá ááá°áá áĽá disabledá áááŤá¨áĽáŠ á¨Claude-á¤á°á°áĽ áá´áá˝ áĽáť áá (áľááá
ᣠáááłá disabledá á¨áááá á adaptive-only áá´áá˝ á ááŤá°áąá)ᢠáŚááŹá°áŽá˝ ModelSpec.noThinkingAliasá á áá áá ááŠááąá ááĽáŤááłááą áá´á á ááľ ááĽáŤáľ ááá ááĽááľ áá˝ááá˘
á¨á á áŤá˘ á°á°áŞ ááááľáľ
GET /api/v1/provider-plugin-manifest
á BifrostᣠCLIProxyAPI áĽá áá°ááľ á ááአsidecar áŤáá°áŽá˝ áĽá á áá á¨ááááá áJSON á°á áááą á¨á°á á á á¨á á áŤá˘ á°á°áŞ ááááľáľ ááááłáᢠáááš á¨TypeScript á¨á á áŤá˘ áááἠá¨ááá á á˛ááᣠáá á°áĽá OAuth á¨á°áá á ááľá˘áŽá˝áᣠá¨á ááľ áá á áŤáŁá˘ áááłáľáᣠá áľááťá á°ááŁáŤáľáᣠá¨áĽáŤá áŤáľááá˝á áĽá á¨áá፠áááĽá á áŤáŤáľáľáá˘
á ááľ sidecar á¨áá°áľ áá á˛á°áŤ áĽá
open-sse/config/providerPluginManifestRegistry.tsá á ááĽáł ááľááŁáľ áłáá˝á á˛áá áá
á á¨ááłá¨áť ááĽáĽ áá ááá˘
á¨á°áłááááľ ááłá¨áť ááĽáŚá˝
| áá´ | áąáŤ | á áá¸áľ |
|---|---|---|
| POST | /v1/chat/completions |
OpenAI |
| POST | /v1/messages |
Anthropic |
| POST | /v1/responses |
OpenAI Responses |
| POST | /v1/embeddings |
OpenAI |
| POST | /v1/images/generations |
OpenAI Images |
| POST | /v1/images/edits |
OpenAI Images (áááľá/ááááľ) |
| POST | /v1/videos/generations |
á¨OpenAI á ἠáŤáá á¨áŞá˛áŽ áááá¨áľ |
| POST | /v1/music/generations |
á¨OpenAI á ἠáŤáá á¨ááá áááá¨áľ |
| POST | /v1/audio/transcriptions |
OpenAI Audio (STT) |
| POST | /v1/audio/speech |
OpenAI TTS (á¨áľáá áááľ ááááłá) |
| POST | /v1/rerank |
á¨Cohere/Voyage á ἠáŤáá áłáá á°á¨á á á°áŁáĽ |
| POST | /v1/classify |
Jina áá°áŁ (api.jina.ai) |
| POST | /v1/segment |
Jina á¨áá (segment.jina.ai) |
| POST | /v1/moderations |
OpenAI Moderations |
| GET | /v1/models |
OpenAI |
| POST | /v1/messages/count_tokens |
Anthropic |
| GET | /v1beta/models |
Gemini |
| POST | /v1beta/models/{...path} |
Gemini generateContent |
| POST | /v1/api/chat |
Ollama |
| GET | /api/v1/vscode/{token}/ |
á¨OpenAI áŤáłáá á°ááá áľá |
| GET | /api/v1/vscode/{token}/models |
á¨OpenAI áá´áá˝ á°ááá áľá |
| POST | /api/v1/vscode/{token}/chat/completions |
á áśá¨á á¨á°á°á¨á á¨OpenAI á°ááá áľá |
| POST | /api/v1/vscode/{token}/responses |
á áśá¨á á¨á°á°á¨á á¨OpenAI Responses á°ááá áľá |
| POST | /api/v1/vscode/{token}/api/chat |
á áśá¨á á¨á°á°á¨á á¨Ollama á°ááá áľá |
| GET | /api/v1/vscode/{token}/api/tags |
á áśá¨á á¨á°á°á¨á á¨Ollama áááŤáá˝ á°ááá áľá |
ááá POST ááľááŽá˝ á°ááłáłá á
áá˝á áá¨á°ááጠBearer your-api-key + á Zod á¨á°á¨ááá JSON áááľ (v1RerankSchemaᣠv1ModerationSchemaᣠv1AudioSpeechSchemaᣠááá°á¤ src/shared/validation/schemas.tsá áááá¨áą)ᢠá¨áľáŞá áá¨ááἠá˛á¨á˝á 4xx ááááłáá˘
Authorization: Bearer ...á ááŤáŤá áááá˝á á°áá áá˝áŁ OmniRoute á URL ááľáĽ á¨API áááá˝á á áá áá
-ááĽá¨ááá á°áłááááľ (?token=...ᣠ?apiKey=...ᣠ?api_key=...ᣠ?key=...) ááá á¨áłá˝ á á°ááááĄáľ á¨á°áአ/api/v1/vscode/{token}/... ááłá¨áť ááĽáŚá˝ á áŠá ááá ááá˘
# áłáá á°á¨á á á°áŁáĽ
POST /v1/rerank { "model": "jina-ai/jina-reranker-v3.5", "query": "...", "documents": ["..."] }
# Jina áá°áŁ (á¨Foundation API áá¨áááŤáá˝)
POST /v1/classify { "model": "jina-embeddings-v5-text-small", "input": ["..."], "labels": ["a", "b"] }
# Jina á¨áá
POST /v1/segment { "content": "...", "return_chunks": true }
# Jina ááá (s.jina.aiᤠá¨á á
áŤá˘ á°ááá áľáá˝áŚ jina-search, jina-ai, jina)
POST /v1/search { "query": "...", "provider": "jina-search" }
# á¨áááľ ááĽáĽá
POST /v1/moderations { "model": "omni-moderation-latest", "input": "..." }
# TTS â á¨audio/mpeg áááľá (ááá á¨á°á á¨ááá á
áá¸áľ) ááááłá
POST /v1/audio/speech { "model": "openai/tts-1", "input": "Hello", "voice": "alloy" }
# á¨ááľá áááľá (multipart)
POST /v1/images/edits -F image=@input.png -F prompt="..." -F mask=@mask.png
# á¨áŞá˛áŽ / ááá áááá¨áľ (á á á
áŤá˘ á
áľá á
áĽáŤ á¨á°ááᨠá¨áá´á ááłáááŤ)
POST /v1/videos/generations { "model": "runway/gen-3", "prompt": "..." }
POST /v1/music/generations { "model": "suno/v3.5", "prompt": "..." }
á¨á°áአá¨á á áŤá˘ ááľááŽá˝
POST /v1/providers/{provider}/chat/completions
POST /v1/providers/{provider}/embeddings
POST /v1/providers/{provider}/images/generations
á¨á á
áŤá˘á á
áľá á
áĽáŤ á¨áá°á á áŤáľ-á°á áá¨ááŤáᢠá¨áááááą áá´áá˝ 400 ááááłáá˘
Files API
ááŁá˝ áá¤áľ/áá¤áľ áĽá á ááá ááá áá á¨áľ ááá°á¨á á°áááá˝ OpenAI-á°áłáá á¨áááá˝ ááłá¨áťá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| POST | /v1/files |
ááá ááľáá (áŁááĽá áááጠfileᣠpurposeᣠexpires_after[anchor]ᣠexpires_after[seconds]) â á¨áá°áá 512 MiB |
| GET | /v1/files |
áá°á¨ááá á API ááá áááá˝á ááááአ|
| GET | /v1/files/[id] |
á¨ááá ááłáłáłá áŤáá |
| DELETE | /v1/files/[id] |
ááá áá°áá |
| GET | /v1/files/[id]/content |
áĽáŹáá á¨ááá áááľ á áĽá¨áľ ááá°á ááአ|
áá¨áááŤáŚ Bearer API ááá â áááá˝ á getApiKeyRequestScope á ááŤáááľ ááĽáŤááłááą API ááá á°ááá°á ááá°áŁáá˘
Batches API
á¨OpenAI áá á°áłáá á¨áŁá˝ áááá áŞáŤá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| POST | /v1/batches |
áŁá˝ ááá አâ á¨áĽáŤáá áááľ á v1BatchCreateSchema áá¨áááŁá (input_file_idᣠendpointᣠcompletion_window) |
| GET | /v1/batches |
áŁážá˝á ááááአ|
| GET | /v1/batches/[id] |
á¨áŁá˝ áááł + request_counts áŤáá |
| DELETE | /v1/batches/[id] |
á¨á°á ááá/áŤáá°áłáŤ áŁá˝ áá°áá |
| POST | /v1/batches/[id]/cancel |
á áá°áľ áá áŤá áŁá˝ áá°áá |
áá¨áááŤáŚ Bearer API áááᢠáŁážá˝ ááĽáŤááłááą API ááá á°ááá°á ááá°áŁáá˘
Search API
á¨áľá/ááá á á áŤá˘ á¨áá ááĽááĽá (TavilyᣠBraveᣠExaᣠSerperᣠááá°)á˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /v1/search |
á¨á°ááአá¨ááá á á áŤá˘áá˝á + á˝ááłáá˝á ááááአ|
| POST | /v1/search |
á¨ááá áá áá
áŤááą â á¨áĽáŤáá áááľ á v1SearchSchema áá¨áááŁáᣠáá¸ááŤ/ááááľá áá°ááá |
| GET | /v1/search/analytics |
ááĽáŤááłááą á á áŤá˘ á¨áá¤áľ/áááá¨áľ/áá¸á፠áľáłá˛áľá˛ááľ |
áá¨áááŤáŚ Bearer API ááá (extractApiKey + isValidApiKey)ᢠá¨ááá ááᲠá enforceApiKeyPolicy á ááŤáááľ á°ááťá ááááá˘
Web Fetch API
á á°ááᨠweb-fetch á á áŤá˘ (Firecrawl, Jina Reader, Tavily Extract, TinyFish Fetch, Nimble Extract) á ááŤáááľ á¨URL áááľ áŤááĄá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| POST | /v1/web/fetch |
URL áŤááĄ/áááľáš â body á v1WebFetchSchema áá¨áááŁá |
áá¨áááŤ: Bearer API ááá (extractApiKey + isValidApiKey)ᢠááá˛á á enforceApiKeyPolicy áá°áá áŤáá˘
áŽáłá á¨ááŤáááἠá ááŤá (#8297): ááá˝ provider áŤáá°á°á ᣠá¨á á
áŤá˘áá˝ áľáĽáľáĽ
(firecrawl â jina-reader â tavily-search â tinyfish â nimble-search) á áá
á¨á
áľá፠á
á°á á°á¨á°á (fill-first) ááá¨áŤá â á¨áĽáŤá áá á á¨á°áá°á ááá áá á¨á°ááᨠá á
áŤá˘
áĽáŤááá áá˛áŤáá á¨ááá¨áĽ ááá
ááłáááᤠáĽáá˛áá áĽáá°áá ááá¨á á¨áá˝á/á¨áŽáł áá á¨á°áŤáŤá upstream ááľááľ
(HTTP 429 ááááᤠáFirecrawl/Tavily/TinyFish áŽáł-á áááľ áá á°á¨ááá˝ 402/403 â
áJina Reader áá á áá°ááᣠáĽáá˛áá áá°áŤ 400 á¨á°áłáłá° áĽáŤá áá˝á á áá°áá) áĽáŤáá á ááŤááľá áľ áá áá°
ááŁáŠ áá áŤáá°áá¨á¨ áĽá áá¨áá፠áŤáá á á
áŤá˘ áŤáááᢠá áľáĽáľáĄ ááľáĽ áŤá á á
áŤá˘áá˝ á áá
á˛áŤááᣠendpoint á¨ááľáá á á ááá 400 ááá
á ááľ 429 (Retry-After
header áŤáá) ááááłáᢠááá˝ provider á˛á á¨á
ᣠá áľáĽá
á¨áá°á¨á á ááŤá á¨áá â á¨áĽáŤá áá á á¨á°áá°á ááá á¨áá°á ááá˝
á á
áŤá˘ á¨áŤáąá áľá
á°áľ áŤáłáŤá (á¨áĽáŤá áá á á¨á°áá°á 429ᣠá áá áá፠á¨upstream
áááł)á˘
WebSocket áĽá¨áľ
GET /v1/ws?handshake=1
á¨WebSocket upgrade handshakeá áŤá¨áááŁá áĽá á¨wire protocol ááłá áááááśá˝á (requestᣠcancel) ááááłáᢠáľááááááš WS frames á¨Next.js route table áá á á°áŤá°á°á WS server ááŤááłáá˘
áá¨áááŤ: á handshake áá Bearer API áááá˘
Responses API á WebSocket áá (codex áĽáť)
# á¨HTTP API áá á°ááłáłá host:port (ááŁáŞ 20128)ᤠáááááąá 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 áá
á ááľáŁáá codex-responses-ws bridge á ááŤáááľ áá¨áá፠áŤá°ááá + áŤáááááŁ
codex OAuth áááááľ ááááŁáᣠáĽá á wreq-js transport á ááŤáááľ áá°
wss://chatgpt.com/backend-api/codex/responses tunnel áŤá°áááᢠcodex áŤááá models ááľá
áá°á¨áá (codex_ws_provider_required)á˘
ááŽáł-áááŤáľ 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 ááľáĽ á°á°ááĽáŻáá˘
áá¨áááŤ: á handshake áá Bearer API áááᢠá¨á°áŤá°á°á HTTP server (server-ws.mjs)
áá entrypoint ááá á áá áľ (app/server-ws.mjs á˛áá á ááŁáŞááľ áĽáá˛á áá)á˘
Model idጠáŁáśáá ChatGPT id áá áá (á¨codex/ prefix á¨ááá)
OpenAI Codex CLI supports_websockets = true á˛áá á¨model áľáá á client á áŠá
áŤá¨áááŁá áĽá áĽáá° codex/gpt-5.5 áŤá provider-prefixed ids ááľá
áŤá°ááá
(The 'codex/gpt-5.5' model is not supported when using Codex with a ChatGPT account)ᢠáŁáśáá id (áááłá gpt-5.5) áááŠá˘ OmniRoute bridge
codex-only áľáááᣠáá° upstream tunnel á¨ááľá¨á á ááľ áŁáś idá áĽáá° codex model
(resolveCodexWsModelInfo) áĽáá°áá áááłá â ááá áĽááłá áŁáś
gpt-5.5 á áá áááł á HTTP áá áá° áá á á
áŤá˘ routing á˘á°á¨ááá˘
OpenAI Codex CLIá áááá
WebSocket áľáá áŤáá custom provider áá° ~/.codex/config.toml á áá¨á Codex CLIá áá° OmniRoute
áŤááááą (ááŁá configá áááááŤáľ á¨á°áᨠCODEX_HOME áá áá)áŚ
model = "gpt-5.5" # áŁáś id â "codex/gpt-5.5" á áá°áá
model_provider = "omniroute"
[model_providers.omniroute]
name = "OmniRoute (WS)"
base_url = "http://localhost:20128/v1" # áá¨á¨áť áá slash á¨ááᤠWS URL á¨áá
ááááŤá (á production https/wss áá áá)
wire_api = "responses" # á¨Feb 2026 ááᎠá¨áá°ááá áĽá¸á áĽá´áľ
supports_websockets = true # Responses-over-WS transportá áŤááá
env_key = "OMNIROUTE_API_KEY" # á¨OmniRoute API áááá áááá (Bearer)
export OMNIROUTE_API_KEY=sk-... # á¨OmniRoute API ááá (REQUIRE_API_KEY=false á¨áá ááááá ááá)
codex exec "Responda apenas: PONG"
CLIá base_url + /responsesá áá° WebSocket upgrade áŤá°áááᣠáĽá OmniRoute áá°á°áá¨á á
codex OAuth áááááľ tunnel áŤá°ááááᢠá á áŤáŁá˘áŤáá
server áá á¨áŤá-áĽáľá¨-áŤá á°á¨ááá§áጠChatGPT codex.rate_limits + response.created ááááłá áĽá
áá ááááŤáá á áĽá¨áľ áááŤáá˘
áŽáłáá˝ áĽá á¨á˝ááŽá˝ áŞáááľ ááľá¨á
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /v1/quotas/check |
á¨á°áááá ááá á¨ááľá áľ á ááľ áprovider + accountId áŽáłáá á áľááľá áŤá¨áááŁá |
| POST | /v1/issues/report |
á¨áŽáł/ááá á á°áŁáĽ á áááłáŤáľá áGitHub áŞáááľ áŤá°ááá (GITHUB_ISSUES_REPO + token áŤáľáááá) |
áá¨áááŤ: Bearer API ááá (isAuthenticated)á˘
á¨áŤáľ-á áááááľ á á ááá (/api/usage/om-usage)
ááááá API ááá á¨áŤáąá á á ááá áĽá áŽáłáá˝ ááá ἠáá˝áá â á¨á áľá°áłá°á áá¨áá፠á áŤáľááááᢠáá á°áá á (CLIᣠá¨OmniCopilot ááá) áááá áŁáá¤áľ ááŞáá áááłá¨áľ á¨áá ááá áľ endpoint ááá˘
# á¨á˝áá á
áá˝ (áłáŞáŤáá áá â áá°áááá á°áŤ á˝áá)
curl -H "Authorization: Bearer <your-api-key>" \
http://localhost:20128/api/usage/om-usage
# á¨á°ááᨠá
áá˝ â UI á¨áá ááá áľ
curl -H "Authorization: Bearer <your-api-key>" \
"http://localhost:20128/api/usage/om-usage?format=json"
ááá allowUsageCommand á¨ááááľ ááá á áá áľ (á ááŁáŞ á¨á á áá â á¨áłá˝áŚááą API-ááá
á áľá°áłáłáŞ ááĽáŤááłááą ááá áŤá áŤáá ááá áŤá ááá)ᢠáŤááá
endpoint á¨403 ááá˝ áá°áŁáá˘
á áŞá á¨áá¨áá¨á ááá˝ áá á¨ááἠááľá á áášá áĽááłáŤááĽáŁ ?format=json áááłáá á¨ááá á
áá˝ ááááłáá˘
á˛áłáŤáŚ
{
"allowed": true,
// ááá ááĽáŤááłááą ááá á¨á á ááá áá°áŚá˝á (áááłá/áłáááłá USD) á˛ááἠáĽáť áááááŚ
"personal": {
"dailySpentUsd": 1.25,
"dailyLimitUsd": 5,
"dailyResetAtIso": "âŚ",
"weeklySpentUsd": 8,
"weeklyLimitUsd": 20,
"weeklyResetAtIso": "âŚ" /* ⌠*/,
},
// á¨á°áá¨á á á¨á á
áŤá˘ áŽáł á
á˝á áłá áá˝áłáŁ ááá áĽáľáŤáá ááá áŤáá°á¸áá nulláŚ
"provider": {
"connectionId": "âŚ",
"provider": "claude",
"plan": "âŚ",
"quotas": {/* ⌠*/},
},
// UI á ááŤáł á á
áŤá˘áá˝á áá ááá áĽáá˛áŤáłáᣠá¨áĽáŤááłááą áááááľ á
á˝á áłá áá˝áłáŚ
"providers": [
{ "connectionId": "âŚ", "provider": "claude" /* ⌠*/ },
{ "provider": "codex" /* ⌠*/ },
],
}
á áá¨áá¨á áá (401 áá áŤááá ááá / 403 áŤáá°ááá°) áŤá route
{ "allowed": false, "error": { "message": "âŚ" } } ááááłá â áŤá ááá áá áŁáś á¨áá personal/provider
(ááá á°áá
áˇáᣠáĽáľáŤáá ááá á ááłááá) á¨áá¨áá¨á á¨á°áᨠáááł á˛ááᣠáĽááá
á á¨ááá¨á á¨JSON á
áá˝ áĽáť
ááá˘
áá¨áááŤ: á isValidApiKey á¨á°á¨ááá á¨á áŞá á¨áŤáą Bearer API ááá â áá
á¨requireManagementAuth á áľá°ááᣠáĽáá°áá¨á
á¨á áľá°áłá°á á áááá˝ (/api/keys/âŚ) á áá°ááá˘
á´ááá˛á áá¸ááŤ
# á¨áá¸á፠áľáłá˛áľá˛ááľá áŤáá
GET /api/cache/stats
# áááá áá¸ááŤáá˝ áŤá˝áą
DELETE /api/cache/stats
á¨ááá˝ ááłááŚ
{
"semanticCache": {
"memorySize": 42,
"memoryMaxSize": 500,
"dbSize": 128,
"hitRate": 0.65
},
"idempotency": {
"activeKeys": 3,
"windowMs": 5000
}
}
á ááá˝ áá áá áŤáá á°á˝áá
á¨á´ááá˛á áá¸á፠HIT ááášá áá° upstream áĽáŞ áłáŤá°áá
á¨áá¸á፠áŤáááŁáᤠáľááá
áŞáááľ á¨áá°á¨áá X-OmniRoute-Response-Latency áá° áᎠá¨áá¨á áá
(á¨ááááŞáŤá upstream ááá˝ áá ááá ááá)ᢠáááá˝ áá áľáą á¨áá á°áá áá˝
(á¤áá˝ááá ááľá¨áᣠp50/p99 ááľáľá) á¨X-OmniRoute-Cache-Latency ááá˝ áŤáľáá
ááá°á˝ á ááŁá¸ááŚ
| áĽá´áľ | áľááá |
|---|---|
synthetic |
áááš á¨áá¸á፠ááá§áᤠá¨ááá˝ ááá áĽááá°á á¨upstream áá á áá°áá |
| (á¨áá) | á¨áĽááá°á á¨upstream áĽáŞ á¨áᣠááá˝ |
ááĽáŤááłááą ááá áá¸ááŤá ááá
API áááá˝ cacheDefaultMode á áá áá á¨á´ááá˛á áá¸á፠ááŁáŚá˝á áááá áá ááá¨áĽ áá˝áááŚ
| áĽá´áľ | áŁá ᪠|
|---|---|
legacy |
áá°á á á¨áá¸á፠áŁá ᪠(ááŁáŞ) |
bypass |
á¨áá¸á፠áááá áá á áá ááááᤠáááá upstream áá áá |
ááá á˛áá á (POST /api/keys) áŤááááľ ááá (PATCH /api/keys/[id]) áŤááááľáŚ
{ "cacheDefaultMode": "bypass" }
ááĽáŤááłááą áĽáŤá áá¸ááŤá ááá
á¨ááá á ááĽáŽá˝ ááá ááá ááááá áĽáŤá áá¸ááŤáá ááá áá˝áááŚ
X-OmniRoute-No-Cache: true
áłá˝áŚááľ áĽá á áľá°áłá°á
á¨á áľá°áłá°á ááľááŽá˝ (/api/*ᣠá¨ááá auth/login á áľá°áá) á áá°á á ᨠinference API áááá˝ áááľ á áŤáááᢠáľá á¨áá¨áá፠áá¨á ááááśá˝áŁ áá°áá˝ áĽá ᨠcurl ááłááá˝áŚ
á¨á áľá°áłá°á áá¨áááŤá˘
áá¨áááŤ
| ááłá¨áť | áá´ | ááá፠|
|---|---|---|
/api/auth/login |
POST | áááŁáľ |
/api/auth/logout |
POST | áááŁáľ |
/api/settings/require-login |
GET/PUT | áááŁáľ á¨ááľ áááá ááĽáŤáľ/ááĽááľ |
á¨á á áŤá˘ á áľá°áłá°á
| ááłá¨áť | áá´ | ááá፠|
|---|---|---|
/api/providers |
GET/POST | á á áŤá˘áá˝á ááááá / ááá á |
/api/providers/[id] |
GET/PUT/DELETE | á á áŤá˘á ááľá°áłá°á |
/api/providers/[id]/test |
POST | á¨á á áŤá˘áá áááááľ ááá¨á |
/api/providers/[id]/models |
GET | á¨á á áŤá˘áá áá´áá˝ ááááá |
/api/providers/validate |
POST | á¨á á áŤá˘áá áá á áá¨ááἠ|
/api/providers/bulk |
POST | áá ááľ á á áŤá˘ áĽáť API áááá˝á á á áá áá¨á |
/api/providers/import |
POST | á¨á°á°áá°á CSV/JSON ááá á¨á°ááŤáŠ á á áŤá˘áá˝á á¨áŤá áááá ááľááŁáľ (#6836)ᤠááĽáŤááłááą á¨áľá á¨áá-ááľááľ áá¤áśá˝ |
/api/provider-nodes* |
á¨á°ááŤáŠ | á¨á á áŤá˘ ááľ á áľá°áłá°á |
/api/provider-models |
GET/POST/PATCH/DELETE | áĽá áá´áá˝ (áá¨áᣠááááᣠáá°á á /ááłá¨áľáŁ áá°á¨á) |
OAuth áá°áśá˝
| ááłá¨áť | áá´ | ááá፠|
|---|---|---|
/api/oauth/[provider]/[action] |
á¨á°ááŤáŠ | áá á áŤá˘á á¨á°áᨠOAuth |
ááľá°ááá፠áĽá áá á
| ááłá¨áť | áá´ | ááá፠|
|---|---|---|
/api/models/alias |
GET/POST | á¨áá´á á°ááá áľáá˝ |
/api/models/catalog |
GET | ááá áá´áá˝ á á á áŤá˘ + á ááááľ |
/api/combos* |
á¨á°ááŤáŠ | á¨áĽáá¨áľ á áľá°áłá°á |
/api/keys* |
á¨á°ááŤáŠ | á¨API ááá á áľá°áłá°á |
/api/pricing |
GET | á¨áá´á áá á ááŁáĽ |
á á ááá áĽá áľááłá
| 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 ááá á¨áśá¨á áá°áĽ á ááśá˝ |
/api/usage/model-latency-stats |
GET | á°áá¨áŁáá á¨áĽáŤááłááą á á
áŤá˘/áá´á á¨áááá¨áľ áá áľáá áľáłá˛áľá˛ááľ (á ááŤá/p50/p95/p99ᣠá¨áľáŹáľ áá á)ᤠááŁáŞáŤáá˝áŚ windowHours/minSamples/maxRows/provider/model (#6873) |
/api/usage/cache-health |
GET | á call_logs áá á¨á°áá á¨á° á¨ááŽáááľ áá¸á፠á¤áááľ áá áá፠â á¨ááťá/ááá ἠáŹážáŁ p50/p90/p99 á¨ááťá áá á áľáááľáŁ á¨á¨áŁáľ á˝áá áľáŠá¨áľáŁ á áá´á á¨á°á¨ááá áá¤áľáŁ áĽá á¨healthy/degraded/thrash/no-data áááľá¤ á¨áá áá
áááŞáŤáá˝ range (1h|24h|7d|30dᣠááŁáŞ 24h) áĽá á ááŤá model (#8827) |
á ááĽáŽá˝
| Endpoint | Method | Description |
|---|---|---|
/api/settings |
GET/PUT/PATCH | á á ááá á ááĽáŽá˝ |
/api/settings/proxy |
GET/PUT | á¨á ááłá¨ áá¨áĽ ááŽáᲠáá á |
/api/settings/proxy/test |
POST | á¨ááŽáᲠáááááľá áááľáťá |
/api/settings/ip-filter |
GET/PUT | á¨IP áááľ áááá/áĽááł áááá |
/api/settings/thinking-budget |
GET/PUT | á¨áá°áĽ/ááááŤáłá áľáá°á áĽáŤá áĽáá°áá á¨ááťá áááł (áĽááłá ááłáá / á áŤáľ-á°á ááľáááľ / áĽá / ááááľ á¨áá˝á)ᢠá¨áááá áá ááᢠTHINKING_BUDGET.mdá áááá¨áąá˘ |
/api/settings/system-prompt |
GET/PUT | ááá á áá á¨áľáááľ ááŽáááľ |
/api/settings/compression |
GET/PUT | ááá á áá á¨áááá፠áá á |
/api/settings/purge-request-history |
POST | á¨áĽáŤá áááἠá¨áľáá˝á áĽá á¨á áŤáŁá˘áŤá áĽáŞ áááἠá ááśá˝á áŤá¸áłá |
áááľ áĽá áááá
| Endpoint | Method | Description |
|---|---|---|
/api/compression/preview |
POST | off/lite/standard/aggressive/ultra/RTK/stacked áááááŤá á áľá-áĽááł ááľá¨á |
/api/compression/language-packs |
GET | áŤááľá á¨Caveman ááá áĽá áá˝ ááááá |
/api/compression/rules |
GET | á¨Caveman á°áἠááłáłáłá ááááá |
/api/context/caveman/config |
GET/PUT | á¨Caveman-á°áŽá á ááĽáŽá˝ á°ááá áľá |
/api/context/rtk/config |
GET/PUT | áĽá ááŁáŞáŤáá˝á áĽá áŤáá°áááŁá ᨠáá¤áľ ááá¨áľá á¨áᎠá¨RTK-á°áŽá á ááĽáŽá˝ |
/api/context/rtk/filters |
GET | á¨RTK ááŁáŞáŤ áŤáłáá áĽá á¨áĽá ááŁáŞáŤ ááá፠áá¨á |
/api/context/rtk/test |
POST | á á˝áá ááááľ áá á¨RTK á áľá-áĽááł/áá¨áŤ ááľáŹáľ |
/api/context/rtk/raw-output/[id] |
GET | á á áá id á¨á°áŤááá á¨á°á°á á áŤáá°áááŁá ᨠáá¤áľ ááá ἠ|
/api/context/combos |
GET/POST | á¨áááá፠áĽáá¨áľ áááá/ááá á |
/api/context/combos/[id] |
GET/PUT/DELETE | á¨áááá፠áĽáá¨áľ áááá áá¨á/áááá/áá°á¨á |
/api/context/combos/[id]/assignments |
GET/PUT | á¨áááá፠áĽáá¨áśá˝á ááááááŞáŤ áĽáá¨áśá˝ ááá°áĽ |
/api/context/analytics |
GET | á¨áááá፠áľááłá á°ááá áľá |
ááľáľá
| Endpoint | Method | Description |
|---|---|---|
/api/sessions |
GET | áá ááá-áááá˝á áá¨áłá°á |
/api/rate-limits |
GET | á¨áĽáŤááłááą áá፠á¨ááĽááľ áá°áŚá˝ |
/api/monitoring/health |
GET | á¨á¤á ááá፠+ á¨á á
áŤá˘áá˝ áá áá፠(catalogCountᣠconfiguredCountᣠactiveCountᣠmonitoredCount)ᢠá¨á áľá°áłá°á áĽááłá credentialHealthá áŤáŤáľáłáጠá¨probe-cache scalar áĽá´áśá˝áŁ failed>0 á˛áá failedConnectionsᣠáĽá staleDbNonOkCount (á¨SQLite áá test_statusᣠgauge á áá°áá)ᢠMONITORING_GUIDE.mdá áááá¨áąá˘ |
/api/cache/stats |
GET/DELETE | á¨cache áľáłá˛áľá˛ááľ / áá˝áłáľ |
/api/modality-bridge/stats |
GET | á áá
á°á¨ áľááľáł ááľáĽ áŤá attemptsᣠáľáŹáśá˝/bridgedᣠááľááśá˝áŁ á¨cache hitsᣠtotalLatencyMsᣠlatencySamplesᣠá ááá áĽááľ á¨á°áŤáá averageLatencyMsᣠáĽá á¨áá¨á¨áť á á ááá áá (áłáá á˛ááá áá°á¨ááᤠá¨á áľá°áłá°á áá¨áá፠áŤáľáááá) |
/api/modality-bridge/video/runtime |
GET | á¨á áľá°áłá°á áá¨áááŤ/probe á ááľ áĽáĽá á¨áłáá-loopback ááááŤá¤ á¨á¸áą á¨FFmpeg/ffprobe á°ááááľ áĽá áľáŞáśá˝ (no-store) |
/api/modality-bridge/video/extract |
POST | ááľáŁáᣠáá¨áá፠áŤáá á¨áłáá-loopback áŁááľ á°ááᤠ50 MiB ááĽááľáŁ á¨á°áá°á queue/32 MiB áá¤áľáŁ 503 á¨á á
á á˝ááᣠ499 áááááľ ááá¨áĽáŁ 504 á¨áá áá°áĽá¤ ááá á¨upload API á áá°áá |
ááľáŹ áĽá áá° áá ááá/á¨áá ááľááŁáľ
| Endpoint | Method | ááá፠|
|---|---|---|
/api/db-backups |
GET | á¨ááá ááľáŹáá˝á ááá¨ááŤá |
/api/db-backups |
PUT | á áĽá á¨áá¨ááá ááľáŹ áááĽáŤá |
/api/db-backups |
POST | á¨á°áá°á ááľáŹ áá°áá á¨á áľ ááááłá |
/api/db-backups/export |
GET | á¨ááἠááłáá áĽáá° .sqlite ááá áŤáááłá |
/api/db-backups/import |
POST | á¨ááἠááłáá ááá°áŤáľ .sqlite ááá áá°á áá |
/api/db-backups/exportAll |
GET | áá ááľáŹáá áĽáá° .tar.gz áá á°á áŤáááłá |
á¨á°áá áááłá°á
| Endpoint | Method | ááá፠|
|---|---|---|
/api/sync/cloud |
á¨á°ááŤáŠ | á¨á°áá áááłá°á ááááá˝ |
/api/sync/initialize |
POST | áááłá°áá áŤáľáááŤá |
/api/cloud/* |
á¨á°ááŤáŠ | á¨á°áá á áľá°áłá°á |
áąááá˝
| Endpoint | Method | ááá፠|
|---|---|---|
/api/tunnels/cloudflared |
GET | ááłá˝áŚááą á¨Cloudflare Quick Tunnel á¨ááŤá/á¨á ááľ áá áááłá áŤááŁá |
/api/tunnels/cloudflared |
POST | Cloudflare Quick Tunnelá áŤááá ááá áŤá°áááá (action=enable/disable) |
/api/tunnels/ngrok |
GET | ááłá˝áŚááą á¨ngrok Tunnel á¨á ááľ áá áááłá áŤááŁá |
/api/tunnels/ngrok |
POST | ngrok Tunnelá áŤááá ááá áŤá°áááá (action=enable/disable) |
á¨CLI ááŁáŞáŤáá˝
| Endpoint | Method | ááá፠|
|---|---|---|
/api/cli-tools/claude-settings |
GET | á¨Claude CLI áááł |
/api/cli-tools/codex-settings |
GET | á¨Codex CLI áááł |
/api/cli-tools/droid-settings |
GET | á¨Droid CLI áááł |
/api/cli-tools/openclaw-settings |
GET | á¨OpenClaw CLI áááł |
/api/cli-tools/runtime/[toolId] |
GET | á á ááá á¨CLI á ááľ áá |
á¨CLI ááážá˝ áĽááá
á áŤáŤáľáłáጠinstalledᣠrunnableᣠcommandᣠcommandPathᣠruntimeModeᣠreasoná˘
ACP ááŞáá˝
| Endpoint | Method | ááá፠|
|---|---|---|
/api/acp/agents |
GET | áááłá¸áá á¨áᎠá¨á°áááľá ááŞáá˝ á áá (á áĽáŽ á¨á°á°áŠ + áĽá) ááá¨ááŤá |
/api/acp/agents |
POST | áĽá ááŞá áŤááá ááá á¨ááá áá¸ááŤáá áŤáľáłá |
/api/acp/agents |
DELETE | á id á¨áá áá
áááŞáŤ áĽá ááŞáá áŤáľáááłá |
á¨GET ááá˝ agents[]á (idᣠnameᣠbinaryᣠversionᣠinstalledᣠprotocolᣠisCustom) áĽá summaryá (totalᣠinstalledᣠnotFoundᣠbuiltInᣠcustom) áŤáŤáľáłáá˘
á¨áááá á˝ááł áĽá á¨ááĽááľ áá°áŚá˝
| Endpoint | Method | ááá፠|
|---|---|---|
/api/resilience |
GET/PATCH | á¨áĽáŤá áá¨ááᣠá¨áááááľ áááááŁáᣠá¨á á áŤá˘ áá¨áł ááŤáá áĽá á¨áĽá á á ááĽáŽá˝á áŤááá/áŤáááá |
/api/resilience/reset |
POST | á¨á á áŤá˘ áá¨áł ááŤáŽá˝á áłáá áŤáľáááŤá |
/api/resilience/model-cooldowns |
GET | á á᪠áá á¨á°á°á¨á°áŠ áá á¨áĽáŤááłááą-(provider, connection, model) áĽááłáá˝á ááá¨ááŤá |
/api/resilience/model-cooldowns |
DELETE | á¨áá´á áĽááłá áŤá¸áłá â á áŤá {provider, model} ááá áááá ááá˝áłáľ {all: true} |
/api/rate-limits |
GET | á¨áĽáŤááłááą áá፠á¨ááĽááľ áá°áĽ áááł |
/api/rate-limit |
GET | á á ááá á¨ááĽááľ áá°áĽ áá á |
á áŤáąá
/api/resilience/*ááľááŽá˝ á¨á áľá°áłá°á áá¨áá፠(requireManagementAuth) áááááᢠá¨á á áŤá˘ áá¨áł ááŤá á¨áááááľ ááááᣠáĽá á¨áá´á áĽááł áá áŤáá¸áá ááŠááľ áá á áá ááááá¨áľ á¨áááá á˝ááł (á¨á°áľáá)á áááá¨áąá˘
áááááá˝
| Endpoint | Method | ááá፠|
|---|---|---|
/api/evals |
GET/POST | á¨áááá áľáĽáľáŚá˝á ááá¨ááŤá / áááá áŤáľáŹáłá |
ááá˛áá˝
| Endpoint | Method | ááá፠|
|---|---|---|
/api/policies |
GET/POST/DELETE | á¨ááľá°ááá፠ááá˛áá˝á áŤáľá°áłáľáŤá |
á°áá˘ááľ
| Endpoint | Method | ááá፠|
|---|---|---|
/api/compliance/audit-log |
GET | á¨á°áá˘ááľ áŚá˛áľ áááἠ(á¨áá¨á¨áťááš N) |
v1beta (á¨Gemini áá á°áłáá)
| Endpoint | Method | ááá፠|
|---|---|---|
/v1beta/models |
GET | áá´áá˝á á Gemini á áá¸áľ ááá¨ááŤá |
/v1beta/models/{...path} |
POST | á¨Gemini generateContent endpoint |
áĽááá endpoints á¨á áááá Gemini SDK áá á°áłááááľá ááá áĽá á°áá áá˝ á¨Geminiá API á áá¸áľ áŤáá¸áŁáááá˘
ááľáŁá / á¨áľáááľ APIáá˝
| á¨ááłá¨áť ááĽáĽ | áá´ | ááá፠|
|---|---|---|
/api/init |
GET | á¨áá°áá áŞáŤ ááľáááŞáŤ áá¨áá፠(á ááááŞáŤ á á ááá áá áááá) |
/api/tags |
GET | á¨Ollama áá á°áłáá á¨áá´á áááŤáá˝ (áOllama á°áá áá˝) |
/api/restart |
POST | á áááአáŤáá˝áá áĽáá˛ááá ááľááłáľ |
/api/shutdown |
POST | á áááአáŤáá˝áá áĽáá˛áá ááľááłáľ |
/api/system/env/repair |
POST | á¨OAuth á á áŤá˘ á¨á áŤáŁá˘ á°ááááŽá˝á áá áá |
ááľáłááťáŚ áĽááá á¨ááłá¨áť ááĽáŚá˝ á áľáááą ááľáĽ áááľáŁá á áááááľ ááá á¨Ollama á°áá á áá áááŁáŁá áŤáááááᢠá á°áááś á áá á°á áááá˝ á áá áŠáá˘
á¨OAuth á áŤáŁá˘ áĽáá (v3.6.1+)
POST /api/system/env/repair
Content-Type: application/json
{
"provider": "claude-code"
}
áá ááľ á¨á°áá°á á á áŤá˘ á¨á á ááá á¨á°á ááš á¨OAuth á áŤáŁá˘ á°ááááŽá˝á áá áááᢠá¨áá¨á°ááá ááááłááŚ
{
"success": true,
"repaired": ["CLAUDE_CODE_OAUTH_CLIENT_ID", "CLAUDE_CODE_OAUTH_CLIENT_SECRET"],
"backupPath": "/home/user/.omniroute/backups/env-repair-2026-04-11.bak"
}
á¨áľáá á˝áá á á
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
á¨á°ááᨠáááááá á¨STT á á
áŤá˘ á áá áá á¨áľáá
áááá˝á áá° á˝áá ááááŠá˘ á¨ááááŞáŤá á¨áąáŤ
ááá á¤á°ááá á á
áŤá˘ (openai/âŚáŁ deepgram/âŚ) ááááŁáᢠá¨áá á á
áŤá˘á áá´á
áĽáá°áá á¨ááŤááᥠááľááŽá˝ áá áááŤ
(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": "á°ááᣠáá
áá° á˝áá á¨á°áá¨á¨á á¨áľáá
áááľ ááá˘",
"task": "transcribe",
"language": "en",
"duration": 12.5
}
á¨áá´á áááŤáá˝ ááłáጠopenai/whisper-1 (á¨OpenAI ááá áŤáľááááá)áŁ
openrouter/deepgram/nova-3 (á¨OpenRouter ááá áŤáľááááá)áŁ
deepgram/nova-3 (á¤á°á á¨Deepgram ááá áŤáľááááá)ᢠdeepgram/nova-3 áĽáť áŤáá
áĽáŤá OpenRouterá á áá áááá˘
á¨áá°áá á
áá¸áśá˝áŚ mp3ᣠwavᣠm4aᣠflacᣠoggᣠwebmá˘
á¨Ollama áá á°áłááááľ
á¨Ollamaá API á áá¸áľ ááá áá á°áá áá˝áŚ
# á¨ááááľ áááá ááĽáĽ (á¨Ollama á
áá¸áľ)
POST /v1/api/chat
# á¨áá´áá˝ áááá (á¨Ollama á
áá¸áľ)
GET /api/tags
áĽáŤááá˝ á Ollama áĽá á ááľáŁá á áá¸áśá˝ ááŤá¨á á áŤáľ-á°á áá°á¨áááá˘
áśá¨á á¨áŤá á¨VS Code / áŤáľá-á áᣠá°ááá áľáá˝
á ááľ áá
á°áľ á¨Authorization áŤáľáá áá¨á á ááá˝áá áľ áĽá á¨API áááá á áá á¨áłá URL ááľáĽ ááŤá°áľ á ááŤáľáááá áá áĽááá
á á°ááá áľáá˝ áá ááá˘
# á¨OpenAI ááááľ á¨áŤáłáá á°ááá áľá
GET /api/v1/vscode/{token}/
GET /api/v1/vscode/{token}/models
# á¨OpenAI ááááľ á¨ááááľ á°ááá áľáá˝
POST /api/v1/vscode/{token}/chat/completions
POST /api/v1/vscode/{token}/responses
# á¨Ollama ááááľ á°ááá áľáá˝
POST /api/v1/vscode/{token}/api/chat
GET /api/v1/vscode/{token}/api/tags
ááłááŚ
curl https://your-host.example/api/v1/vscode/YOUR_API_KEY/models
curl -X POST https://your-host.example/api/v1/vscode/YOUR_API_KEY/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"á°áá"}]}'
ááľáłááťáá˝áŚ
- áśá¨á á¨áŤááľ á°ááá áľáá˝ áĽáá°
/v1/*áĽá/api/tagsá°ááłáłá á°ááŁáŁáŞáá˝á áĽáá°áá áá áááᤠá¨ááá˝ á áážášá á°ááłáłá ááá áááŤáᢠ- á°áá áá áĽá áŤáľááá˝á á¨áá°áá á¨áá áááá
Authorization: Bearer ...á ááá¨áĄá˘ - á URL áá á¨á°áá á¨áą áśá¨áá˝ á¨OmniRoute áá áŁá á¨á°ááá˘áŚá˝-ááŽáᲠááááŚá˝áŁ á¨á áłá˝ áłáŞá áĽá á´áááľáŞ ááľáĽ ááłáŠ áá˝ááᢠáĽáá° ááŁáŞ á¨áá¨áá፠áá´ áłááá áĽáá° á¨á°áłááááľ á ááŤá áá áááŁá¸áá˘
á´áááľáŞ
# á¨áááá¨áľ á´áááľáŞ áá áááŤá áŤáá (ááĽáŤááłááą á á
áŤá˘ p50/p95/p99)
GET /api/telemetry/summary
ááá˝áŚ
{
"providers": {
"claudeCode": { "p50": 245, "p95": 890, "p99": 1200, "count": 150 },
"github": { "p50": 180, "p95": 620, "p99": 950, "count": 320 }
}
}
á ááľ
# á¨áááá API áááá˝ á¨á ááľ áááł áŤáá
GET /api/usage/budget
# á ááľ áŤááá ááá áŤááá
POST /api/usage/budget
Content-Type: application/json
{
"apiKeyId": "key-123",
"dailyLimitUsd": 5.00,
"weeklyLimitUsd": 30.00,
"monthlyLimitUsd": 100.00,
"warningThreshold": 0.8,
"resetInterval": "monthly"
}
á¨áľáŞá ááľáłááťáá˝ (
setBudgetSchema)áŚapiKeyIdáŤáľááááᤠá¨dailyLimitUsdáŁweeklyLimitUsdááámonthlyLimitUsdá˘áŤááľ á ááą á¨áᎠá¨áá áἠááá á áá áľá˘ á ááŤá ááľáŽá˝áŚwarningThreshold(0â1)áŁresetInterval(daily|weekly|monthly)áŁresetTime(HH:MM)ᢠá¨ááľáá{keyId, limit, period}á áá˝400 Bad Requestá ááááłáá˘
á¨áśá¨á áá°áŚá˝
ááĽáŤááłááą API ááá á¨ááá°á á¨áśá¨á á ááśá˝ (á¨áá áŤáá á USD áá á¨á°áá á¨á°á á ááľ á¨á°ááŠ)ᢠá áĽáŤáá ááľáá áá áá˛áŤáá áá°áá áŤáጠá¨á ááľ ááá á¨á áá ááľáŽáľ á á ááá áá°áĄ áá á˛á°ááľáŁ áĽáŤááá˝ á 429 Too Many Requests ááľá
áá°á¨ááᢠáá°áŚá˝ áá°áá°á modelᣠprovider ááá°á ááá á ááá áá á á á ááá global áá°áá አáá˝ááᤠá ááŤáł áá°áŚá˝ á¨á ááľ áĽáŤá áá á˛áááąáŁ á áŁá áĽáĽá áá°áĽ á°ááťá ááááá˘
# á¨á ááľá ááá á¨áśá¨á áá°áŚá˝ áááá (á¨ááĽáł ááľáŽáľ á á áááá áŤáŤáľáłá)
GET /api/usage/token-limits?apiKeyId=key-123
# á¨áśá¨á áá°áĽ áá á ááá á ááá
POST /api/usage/token-limits
Content-Type: application/json
{
"apiKeyId": "key-123",
"scopeType": "model",
"scopeValue": "openai/gpt-4o",
"tokenLimit": 1000000,
"resetInterval": "monthly",
"enabled": true
}
# á¨áśá¨á áá°áĽá á áááŤá á°áá
DELETE /api/usage/token-limits?id=tl-abc
á¨Schema ááľáłááťáá˝ (
setTokenLimitSchema)áŚapiKeyIdáĽáscopeType(model|provider|global) áŤáľááááá˘scopeTypeglobaláŤááá á áľá°ááscopeValueáŤáľáááá (áááłáᣠámodeláá°á á¨áá´á áááŤáŁ áprovideráá°á á¨á á áŤá˘ áááŤ)á˘tokenLimitá áááłá á˘áá˛áá ááá á áá áľ (á¨ááĽá¨ááá ááá¨áŤá)ᢠá ááŤááŚid(áááá á á áŤáŤáľáąáľáŁ ááááá áŤá ááĄáľ)áŁresetInterval(daily|weekly|monthlyᣠááŁáŞámonthly)áŁresetTime(HH:MM)áŁenabled(ááŁáŞátrue)ᢠá¨GETááážá˝ áĽáŤááłááąá áá°áĽ átokensUsedáŁremainingáŁwindowStartáŁperiodStartAtáĽánextResetAtáŤá áá˝ááᢠáá á¨á áľá°áłá°á á°á¨á áŤáá endpoint áá (áá¨áááŤá á authz pipeline ááá¨áá áááł áá°áá áŤá)á˘
á¨áĽáŤá áá°áľ
- á°áá áá áĽáŤááá áá°
/v1/*áááŤá - á¨Route handler
handleChatáŁhandleEmbeddingáŁhandleAudioTranscriptionáááhandleImageGenerationá áá áŤá - áá´á áááłá (ááĽá°á provider/model ááá alias/combo)
- á¨áá፠á°ááááľ ááŁáŞáŤá á áá áá áá¨áááŤáá˝ á¨á áŤáŁá˘áŤá DB ááá¨áŁá
- áááááľáŚ
handleChatCoreá¨semantic/signature cacheá áááľáťá áĽá á¨combo compression á ááĽáŽá˝á áááłá - á˛ááᣠá¨provider translation á ááľ ááľá á¨áá°á¨á compression áá¨áááá (
liteᣠCavemanᣠRTK ááá stacked) - á¨Provider executor áĽáŤááá áá° upstream áááŤá
- áááš áá° á°áá áá á áá¸áľ á°áááś áá°á¨ááá (ááááľ) ááá áĽááłá ááááłá (embeddings/images/audio)
- á á áááᣠá¨compression analytics áĽá á¨áĽáŤá áááἠááľáłááťáá˝ áááááŁá
- áľá á°áśá˝ á˛á¨á°áą fallback á combo á°ááŚá˝ áá á¨áľ áá°áá áŤá
áá á¨á ááá´áá¸á ááŁááťáŚ ARCHITECTURE.md
á¨Combo á áľá°áłá°á
á¨áá°á á°á¨á áŤáá¸á á¨routing combos (áá°á á˛á á /api/combos* áĽá á°á ááá á¨áá¨áĄ) á¨áá´á áá፠áĽááľ áá 1:1 ááá°áĄ áá˝ááᤠáá
á á¨OpenAI-á
ἠáá´á áááŤá á ááá˝ááľ áá° combo ááá áŤáľá˝ááá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/model-combo-mappings |
áááá á¨modelâcombo áá°áŁáá˝ áááá |
| POST | /api/model-combo-mappings |
áá°áŁ áá á â á¨áĽáŤá á áŤáጠ{pattern, comboId, priority?, enabled?, description?} |
| GET | /api/model-combo-mappings/[id] |
á ááľ áá°áŁ á áᣠ|
| PUT | /api/model-combo-mappings/[id] |
áŤááá áá°áŁ ááľáŽá˝ á ááá |
| DELETE | /api/model-combo-mappings/[id] |
áá°áŁ á áľáááľ |
áá¨áááŤáŚ á¨á áľá°áłá°á session/API key (requireManagementAuth)á˘
Webhooks
áOmniRoute ááľá°áśá˝ (á¨áĽáŤá áá ááá ᣠá¨áŽáł ááá ᣠá¨ááá áááᣠááá°) á¨á᪠webhook ááááŁáá˝á˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/webhooks |
Webhook-áá˝á ááááአ(ááľáĽáŽá˝ áá° <prefix>... á°á¸ááá ááłáŤá) |
| POST | /api/webhooks |
Webhook ááá አâ á¨áĽáŤá á áŤáጠ{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 |
á¨áá¨áŤ payload áá° webhook URL ááአáĽá á¨ááľá¨áť áááłáá ááááą |
áá¨áááŤáŚ á¨á áľá°áłá°á session/API key (requireManagementAuth)á˘
á¨á°áááᥠáááá˝ (áŤáľ-á°á á áľá°áłá°á)
á á¨áá/á á¨á°ááą áŽáłáá˝ á áá ááᣠá¨áŤáľ-á°á ááá á áľá°áłá°á áááľ-áľáááą á°áá provider/accountá á áá áá API keysá áĽáá˛áŤááŁá áĽáá˛áŤáá áá áááŁá¸ááá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/v1/registered-keys |
á¨á°áááᥠáááá˝á ááááአ(á¨á°á¸áá prefix áĽáť) |
| POST | /api/v1/registered-keys |
á á˛áľ á¨á°áááá ááá áŤáᥠâ á¨áĽáŤá á áŤáጠ{name, provider?, accountId?, idempotencyKey?, expiresAt?, dailyBudget?, hourlyBudget?}ᢠáĽáŹ áááá á ááľ áá áĽáť ááááłáᢠá áŽáł ááááŤáľ ááľá
á˛á°á¨á 429 ááááłáᢠ|
| GET | /api/v1/registered-keys/[id] |
á¨á°áááá ááá metadata áŤáá (áĽáŹ áááľ á¨áá) |
| DELETE | /api/v1/registered-keys/[id] |
á¨á°áááá ááá ááťáŠ |
| POST | /api/v1/registered-keys/[id]/revoke |
ááá˝ á¨áľá¨á endpoint (á¨DELETE áá á°ááłáłá áá¤áľ) |
áá¨áááŤáŚ Bearer API key (isAuthenticated)ᢠáĽáá˛áá /v1/quotas/check áĽá /v1/issues/reportá áááá¨áąá˘
á¨Agents ááŽáśáŽá
á OmniRoute á°á áááá˝ áľá á áááľ á¨ááá¸á á¨cloud agent á°ááŁáŤáľ (Claude Code, Codex Cloud, OpenHands, ááá°)á˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/v1/agents/tasks |
á°ááŁáŤáľá áááá â á ááŤá ?provider=, ?status=, ?limit= (1â500ᣠááŁáŞá 50) |
| POST | /api/v1/agents/tasks |
á°ááŁá áá á â bodyá á CreateCloudAgentTaskSchema (providerId, prompt, source, options?) áá¨áááŁáᢠá¨á°ááŁá envelope á¨201 áá ááááłá |
| DELETE | /api/v1/agents/tasks?id=... |
á°ááŁá á°áá |
| GET | /api/v1/agents/tasks/[id] |
á°ááŁá á ááĽáĽ â external_id á¨á°ááᨠáááłáá á¨áááá cloud agent áá á á°ááłá°á áááł áŤáľáłá |
| POST | /api/v1/agents/tasks/[id] |
á¨á°áᨠáľáááľáŚ {action: "approve"}, {action: "message", message} ááá {action: "cancel"} |
| DELETE | /api/v1/agents/tasks/[id] |
á id á¨á°áá°á á°ááŁá á°áá |
áá¨áááŤáŚ á áĽáŤááłááą áá´ áá á¨á áľá°áłá°á áá¨áá፠áŤáľáááá (
requireCloudAgentManagementAuth)ᢠá¨v3.8.0 á ááľ áĽááá áŤááá¨áá፠ááá áá á â ááá áá°á¨áłá ááἠ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":"..."}}'
á¨á áľá°áłá°á Proxies
áprovidersᣠaccounts ááá á á á ááá ááá°áĄ á¨áá˝á áá° áá á¨ááአHTTP(S)/SOCKS proxiesá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/v1/management/proxies |
proxiesá áááá (?id= á˛á¨áá á ááąá ááááłáᤠ?id=&where_used=1 á˛á¨áá á¨áá°áŁ ááŤáá ááááłá) |
| 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 á°áá (áá°áŁáá˝á ááááá
force=1á áá áá) |
| GET | /api/v1/management/proxies/assignments |
áá°áŁáá˝á áááá â á 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 á¤áááľ (á¨áľáŹáľ/ááľááľ áĽááľáŁ latency) |
áá¨áááŤáŚ á áĽáŤááłááą route áá á¨á áľá°áłá°á session/API key áŤáľáááá (requireManagementAuth)á˘
á á°ááŁáŠ ááá፠ááľáĽ áŤááľ
POST /api/v1/management/proxies/[id]/assignmentsáĽáPOST /api/v1/management/proxies/[id]/healthá¨áá á áłáŠáľ ááĽá°á/assignmentsáĽá/healthroutes ááľá°áááłá â á codebaseá ááľáĽ ááĽáŤááłááą id á¨á°áአsubroutes á¨ááá˘
á¨áááá á˝ááł (á¨á°áľáá)
OmniRoute áŚáľáľ áĽááľ á ááłá¸á áá á¨áá áááŤá ááľááľ á áľá°ááá áá´áá˝á áŤáááŁáᤠá¨áłá˝ áŤááľ á¨á áľá°áłá°á áááááá˝ áŚááŹá°áŽá˝ áááłá¸áá áĽáá˛áŤáᥠáĽá áĽáá˛á°áŠ áŤáľá˝áááŚ
| áá°á | á¨áááł áá¨ááť | ááá á˘áŤ | áłáá ááľááá / áá˝áłáľ |
|---|---|---|---|
| á¨á á áŤá˘ áá¨áł á ááŤá | domain_circuit_breakers + á áá
á°á¨ áľááľáł ááľáĽ |
/api/monitoring/health |
POST /api/resilience/reset |
| á¨áááááľ ááááᣠáá | á á á
áŤá˘ áááááśá˝ áá rateLimitedUntil |
/api/rate-limits, /api/providers/[id] |
(á˛áŤáľááá áĽáť áłáá ááááᤠá á á áŤá˘ PUT á áŠá áŤá˝áą) |
| á¨áá´á áĽááł | á áá á°á¨ áľááľáł áŤá á¨áá´á á°ááááľ áááἠ| GET /api/resilience/model-cooldowns |
DELETE /api/resilience/model-cooldowns |
PATCH /api/resilience á providerBreaker.oauth áĽá providerBreaker.apikey áľá á¨á á
áŤá˘ áá¨áł á ááŤá ááťáťáŤáá˝á ááá ááᢠáĽáŤááłááą ááá፠degradationThresholdᣠfailureThreshold áĽá resetTimeoutMsá áá°áááᤠá°ááłáłá ááľáŽá˝ á áłá˝áŚááľ â á
ááĽáŽá˝ â á¨áááá á˝ááł ááľáĽá ááááá˘
# á ááľ á¨áá´á áĽááłá áŤá˝áą
curl -X DELETE http://localhost:20128/api/resilience/model-cooldowns \
-H "Cookie: auth_token=..." \
-H "Content-Type: application/json" \
-d '{"provider":"openai","model":"gpt-4o-mini"}'
# áááá áĽááłáá˝ áŤá˝áą
curl -X DELETE http://localhost:20128/api/resilience/model-cooldowns \
-H "Cookie: auth_token=..." \
-d '{"all":true}'
ááá á˝áá°-ááłáŁá ááŁááť áĽá á¨áá¨áł á ááŤá ááŁáŞ á
ááĽáŽá˝áŚ CLAUDE.md â "á¨áááá á˝ááł á¨á ááľ áá áááł"á áááá¨áąá˘
áá ááśá˝
OmniRouteá á áĽá ááá¸á á áá˝á á áľá°áááá˝ áááľááľ á¨ááŤáááá á¨áá ááľ ááááᣠá¨áá ፠áŚáł áá á°áśá˝ ááá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/skills |
á¨á°áŤá áá
ááśá˝á ááááአâ á ?q=ᣠ?mode=on|off|autoᣠ?source=skillsmp|skillssh|local ááŁáŤáľ á¨ááťáᣠá áá˝ á¨á°á¨ááá |
| GET | /api/skills/[id] |
á ááľ áá ááľ áŤáá |
| PUT | /api/skills/[id] |
áá ááľá áŤááá (áľáᣠááááŤáŁ áááłáŁ ááľáᣠá áľá°ááá ᣠáááŤáá˝) |
| DELETE | /api/skills/[id] |
áá ááľá áŤáŤáá |
| POST | /api/skills/install |
áá
ááľá á¨áĽáŹ ááááľáľ ááŤá â á¨áĽáŤá á áŤáጠ{name, version, description, schema:{input, output}, handlerCode, apiKeyId?} |
| GET | /api/skills/executions |
á¨á áἠáá á¨áá ááľ á ááťá¸áá˝á ááááአ(ááĽááśá˝á/áá¤áśá˝á/áááłá á¨áŤá á¨áŚá˛áľ ááááĽ) |
| GET | /api/skills/marketplace?q=... |
á¨SkillsMP áá ፠áŚáł ááá/áłáá ááááá áŤáá (skillsmpApiKey á
ááĽáá ááááá) |
| POST | /api/skills/marketplace/install |
áá ááľá á¨SkillsMP á id ááŤá |
| GET | /api/skills/skillssh?q=&limit= |
á¨skills.sh ááááĽá áááá |
| POST | /api/skills/skillssh/install |
áá ááľá á¨skills.sh á id ááŤá |
áá¨áááŤáŚ á¨á áľá°áłá°á ááá áá/API áááᢠá¨áá ፠áŚáł ááá ááľááŽá˝ á¨á áľá°áłá°á áá¨áááŤá ááá Bearer API áááá (isAuthenticated) ááá ááá˘
áá á°á¨ áľááľáł
á API ááá / ááá áá á¨á°áá°á ááá á¨ááááľ/áĽáááłá áá á°á¨ áľááľáł áá¨ááťá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/memory |
áá
á°á¨ áľááľáłáá˝á áááá â ?apiKeyId=, ?type=, ?sessionId=, ?q=ᣠá¨offset/limit ááá page/limit áá˝ áááá áá |
| POST | /api/memory |
áá
á°á¨ áľááľáł áá á â á¨áĽáŤá á áŤá á Zod á¨á°á¨ááá ጠ{content, key, type?, sessionId?, apiKeyId?, metadata?, expiresAt?} |
| GET | /api/memory/[id] |
á ááľ áá á°á¨ áľááľáł á°ááľá |
| DELETE | /api/memory/[id] |
áá á°á¨ áľááľáł á°áá |
| GET | /api/memory/health |
á¨áá á°á¨ áľááľáł áááľ áľáááľ á¤áááľ (á¨DB áááááľáŁ á¨embeddings ááᣠáľáááľáŁ á¨vector index áááł) |
áá¨áááŤáŚ á¨á áľá°áłá°á ááá áá/API ááá (requireManagementAuth)ᢠtype enumጠFACTUAL, EPISODIC, SEMANTIC, PROCEDURAL (src/lib/memory/types.ts ááľáĽ MemoryTypeá áááá¨áą)á˘
MCP á áááá
OmniRoute 3 á¨áááᣠáá´áá˝ (stdio, SSE, streamable-http) áĽá áá°á áŤáá¸á ááŁáŞáŤáá˝ áŤááľá á¨á°áŤá°á° Model Context Protocol á áááá áá áááŁáᢠá¨áłá˝ áŤááľ á¨áłá˝áŚááľ ááłá¨áťáá˝ á¨áááł/áŚá˛áľ áááĽá áŤááŁá áĽá á¨HTTP ááááŁáá˝á á áááá áŤáľá°ááááá˘
| áá´ | áąáŤ | ááá፠| |
|---|---|---|---|
| GET | /api/mcp/status |
á¨áἠááľáŁ ááááŁáŁ á¨ááľáá áá áááłáŁ á¨áá¨á¨áť áĽáŞáŁ ááłá ááŁáŞáŤáá˝áŁ á¨24 á°ááľ á¨áľáŹáľ áá á | |
| GET | /api/mcp/tools |
á¨MCP ááŁáŞáŤáá˝ áááá á¨name, description, scopes, phase, auditLevel, sourceEndpoints áá |
|
| GET | /api/mcp/sse |
áSSE ááááŁá áááľ SSE áĽá¨áľ (MCP á¨á°á°áá¨á ááá ááááŁá áŤáá°ááá° 503 ááááłá) |
|
| POST | /api/mcp/sse |
á SSE ááááŁá áá JSON-RPC ááŹá áá | |
| GET | /api/mcp/stream |
á¨Streamable HTTP ááááŁáá SSE áá áááľ (á á áááአá¨áááአáááááśá˝) | |
| POST | /api/mcp/stream |
á Streamable HTTP ááááŁá áá JSON-RPC ááŹá áá | |
| DELETE | /api/mcp/stream |
á¨Streamable HTTP ááá ááá á¨ááľ | |
| GET | /api/mcp/audit |
á¨áŚá˛áľ áááἠááááĽá á áá
â ?limit=, ?offset=, ?tool=, `?success=true |
false, ?apiKeyId=` |
| GET | /api/mcp/audit/stats |
á¨á°á ááá á¨áŚá˛áľ áľáłá˛áľá˛ááśá˝ (á á áá ááĽáŽá˝áŁ á¨áľáŹáľ áá áᣠá ááŤá áááłáŁ ááłá ááŁáŞáŤáá˝) |
áá¨áááŤáŚ á¨sse/stream ááááŁáá˝ áMCP á¨á°áá¨áá á¨áá¨áá፠áá˝áł áŤá¨áĽáŤá (mcp áá°á áŤáá Bearer API ááá)ᤠá¨status/tools/audit* ááááśá˝ á¨áłá˝áŚááą ááá ᥠáá˝áá (á¨áłá˝áŚááą á áľá°ááá
áá á¨ááľá¨áľ áŁáá á°á¨á᪠áá¨áá፠á áŤáľáááá)á˘
áááąá á¨HTTP ááááŁáá˝ á
settings.mcpEnabledáĽásettings.mcpTransportá¨á°áá°áĄ áá¸á â á¨áááᣠá áááááľ400á ááááłáᣠMCP á¨á°á°áá¨áá áľ áááł503á ááááłáá˘
A2A á áááá
OmniRoute á¨A2A (Agent-to-Agent) JSON-RPC 2.0 áá¨á¨áť ááĽáĽáᣠáĽáá˛áá áááááŤ/áłá˝áŚááľ á á ááá á¨REST áá á ááŤá áŤáááŁáá˘
JSON-RPC
POST /a2a
Authorization: Bearer your-api-key # OMNIROUTE_API_KEY áŤáá°ááᨠá áľá°áá á ááŤá áá
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "message/send",
"params": {
"skill": "smart-routing",
"messages": [{"role": "user", "content": "Route this coding task"}]
}
}
á¨áá°áá áá´áá˝ (ááá á settings.a2aEnabled á¨áááŁá áŠ):
| áá´ | ááá፠|
|---|---|
message/send |
á¨á°ááłá°á á¨áá
ááľ á ááťá¸áᤠ{task, artifacts, metadata} ááááłá |
message/stream |
á¨á°ááłáłáŠá á¨áá ááľ áľáĽáľáĽ á SSE áĽá¨áľ ááá áŤáľáá˝áá |
tasks/get |
á°ááŁáá á taskId áŤááŁá |
tasks/cancel |
á°ááŁáá á taskId áá°ááá |
á áĽá¨á á¨á°áŤá°áą áá
ááśá˝áŚ smart-routingᣠquota-managementᣠprovider-discoveryᣠcost-analysisᣠhealth-reportá˘
á¨ááŞá áŤááľ
GET /.well-known/agent.json
ááááá á¨A2A ááŞá áŤááľ (áľáᣠááááŤáŁ á˝ááłáá˝áŁ á¨áá ááľ áááŤáŁ á¨áá¨áá፠áááááĽá) ááááłá â á1 á°ááľ á áá áá¸á፠ááľáĽ áááŤáᢠáá¨áá፠á áŤáľááááá˘
á¨REST á áἠááááśá˝
| áá´ | ááááľ | ááá፠|
|---|---|---|
| GET | /api/a2a/status |
A2A ááááąá + á¨á°ááŁá áľáłá˛áľá˛ááľá + á áá¸á፠á¨á°ááá áá á¨ááŞá áŤááľ áá áá፠áŤáłáŤá |
| GET | /api/a2a/tasks |
á°ááŁáŤáľá ááá¨ááŤá â ?state=submitted|working|completed|failed|cancelledᣠ?skill=ᣠ?limit= (â¤200)ᣠ?offset= |
| POST | /api/a2a/tasks |
(áĽáá° REST á áἠá áá°á°áá á¨á â á JSON-RPC message/send ááá áŠ) |
| GET | /api/a2a/tasks/[id] |
á ááľ á°ááŁá áŤááŁá |
| POST | /api/a2a/tasks/[id]/cancel |
á°ááŁáá áá°ááá |
áá¨áááŤáŚ á¨REST á áἠááááśá˝ áŤá á¨á áľá°áłá°á áá¨áá፠áá°áŤá (á áłá˝áŚááľ ááá ᥠá¨áá˝á)ᤠá¨JSON-RPC /a2a ááááľ á¨á°ááᨠBearer OMNIROUTE_API_KEYá áá áááá˘
á°ááᣠáááááá˝ áĽá áłá°áł
| áá´ | ááááľ | ááá፠| ||
|---|---|---|---|---|
| POST | /api/cloud/auth |
á¨Bearer áááá áŤá¨áááŁáᣠáĽáá˛áá áá°áá áááłá°áŤ á°áá áá˝ á¨á°á¸áá á¨á á áŤá˘ áááááśá˝á + á¨áá´á á°ááá áľáá˝á ááááłá | ||
| POST | /api/cloud/credentials/update |
á á°áá áá°ááłá°á á á áŤá˘ á¨á°áá°á አá¨áá¨áá፠áá¨ááá˝á áŤáááá | ||
| POST | /api/cloud/model/resolve |
á ááááŽá á á¨áá´á idá á¨á áŤáŁá˘áá á¨áááŞáŤ á°áá á¨áĽ á áá áá áá° á°áá°á á á áŤá˘/áá´á áááłá | ||
| GET | /api/cloud/models/alias |
áá°áá áááłá°á á¨áááᥠá¨áá´á á°ááá áľáá˝á ááá¨ááŤá | ||
| GET | /api/assess |
á¨á áἠáááášá á¨áłá°áł áá°áŁáá˝ (á á¨á á áŤá˘á/áá´á) áŤááŁá | ||
| POST | /api/assess |
áłá°áł áŤáŤááłá â áááľáŚ `{scope: {type:"all"} | {type:"provider", providerId} | {type:"model", modelId}, trigger?}` |
| GET | /api/evals |
á áĽá¨á á¨á°áŤá°áą á¨áááá áľáĽáľáŚá˝á + á¨á áἠáá á ááśá˝á ááá¨ááŤá | ||
| POST | /api/evals |
á¨áááá á ááľá áŤáľáááŤá | ||
| POST | /api/evals/suites |
áĽá á¨áááá áľáĽáľáĽ áááĽáŤá â áááą á evalSuiteSaveSchema áá¨áááŁá |
||
| GET | /api/evals/suites/[id] |
áĽá á¨áááá áľáĽáľáĽá áŤááŁá |
áá¨áááŤáŚ /api/cloud/auth á¨Bearer áááá á ááĽáł áŤá¨áááŁáᤠáááš /api/cloud/*ᣠ/api/evals/* áĽá /api/assess ááááśá˝ á¨á áľá°áłá°á ááá áá/API ááá áŤáľáááá¸ááᢠ/api/assess POST á¨á°áá¨-áŠáá¨á á¨áá°á áááááĽá áŤááá validateBody áá áááá˘
ACP (Agent Client Protocol) á áľá°áłá°á
áĽáá° áá áá°áśá˝á˘ áĽááá á¨áá¨á¨áť ááĽáŚá˝ á¨ACP ááŞá ááááľá áĽá áĽá ááŞá ááááŁá áŤáľá°áłáľáŤáá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/acp/agents |
áááá á¨áłáá CLI ááŞáá˝ (á áĽáŽááἠ+ áĽá) á¨ááŤá áááłáŁ áľáŞáľ áĽá binary áá ááá¨ááŤá |
| POST | /api/acp/agents |
áĽá ACP ááŞá áááááŁá ááá áá¸ááŤáá áŤáľáłá â body: {id, name, binary, versionCommand, providerAlias, spawnArgs, protocol} ááá {action: "refresh"} |
| DELETE | /api/acp/agents |
áĽá ACP ááŞáá áŤáľáááłá â query param: ?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
}
áá¨áááŤ: á¨á áľá°áłá°á ááá áá (á¨dashboard auth_token cookie) ááá
á¨á áľá°áłá°á áá°á áŤáá API ááá áŤáľááááá˘
ááá ááááŽá˝ ACP Frameworká áááá¨áąá˘
áľááłá áĽá áłáá˘ááľ
ááááááᣠáááá
á áĽá á¨á á
áŤá˘ áĽááááľá ááá¨áłá°á á¨áĽááá°á áá áľááłá á¨áá¨á¨áť ááĽáŚá˝á˘ áĽááá
á/dashboard/analytics/* áážá˝
ááá áá°áŁáá˘
á¨áŤáľ-á°á ááááá áľááłá
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/analytics/auto-routing |
á¨á°á ááá á¨áŤáľ-á°á ááááá áľáłá˛áľá˛ááľáŚ á á ááá áĽáŞáá˝áŁ á¨áľáľáŤá´á áľáááľáŁ á¨á°á¨á áľáááľáŁ áá á á áŤá˘áá˝ |
| GET | /api/analytics/auto-routing?days=7 |
á áá ááľáŽáľ á¨á°áá°áĄ áľáłá˛áľá˛ááľ (ááŁáŞá 24h) |
á¨ááá˝ ááłá:
{
"window": "24h",
"totalCalls": 1234,
"strategyBreakdown": {
"rules": 800,
"cost": 200,
"latency": 150,
"sla-aware": 50,
"lkgp": 34
},
"tierBreakdown": {
"ultra": 100,
"pro": 500,
"standard": 400,
"free": 234
},
"topProviders": [
{ "provider": "openai", "calls": 500, "avgLatencyMs": 850 },
{ "provider": "anthropic", "calls": 300, "avgLatencyMs": 1200 }
]
}
á¨áááá áľááłá
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/analytics/compression |
á¨á°á ááá á¨áááá áľáłá˛áľá˛ááľáŚ á¨á°áá ᥠtokensᣠá¨áá ᣠ%ᣠá¨áááł áľáááľáŁ á¨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
}
}
á¨á á áŤá˘ áĽááááľ ááľáľá
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/analytics/diversity |
á Shannon entropy áá á¨á°áá á¨á° á¨áĽááááľ ááľáľáጠá¨á á áŤá˘áá˝á áľáááľ á áááŤáľ áá á á¨áĽáá˝áľ ááĽáŚá˝á áá¨áá¨áá |
á¨ááá˝ ááłá:
{
"window": "24h",
"shannonEntropy": 2.45,
"maxEntropy": 3.17,
"diversityRatio": 0.77,
"providerUsage": {
"openai": 0.4,
"anthropic": 0.25,
"google": 0.2,
"kiro": 0.15
},
"warnings": ["OpenAI á¨áľáŤáአ40% áááá â áĽááááľá áá¨áá áŤáľáĄá áľ"]
}
áá¨áááŤ: á¨á áľá°áłá°á ááá áá ááá á¨á áľá°áłá°á áá°á áŤáá API ááá áŤáľááááá˘
á¨á áľá°áłáłáŞ ááááá˝
áááá á áľá°áłá°á á¨ááŤáááá áá áľá°áłáłáŞáá˝ áĽáť á¨á°áááą áá¨á¨áť ááĽáŚá˝á˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/admin/concurrency |
á¨á ááá á¨áľáአááá áá°áŚá˝ áŤááĽáĄ (á á ááá + ááĽáŤááłááą á á áŤá˘) |
| POST | /api/admin/concurrency |
á¨áľáአááá áá°áŚá˝á áŤááá â á¨áĽáŤá áááľáŚ {global?: number, perProvider?: Record<string, number>} |
áá¨áááŤáŚ á¨á áľá°áłáłáŞ áá°á áŤáá á¨á áľá°áłá°á ááá áá áŤáľááááá˘
á¨CLI ááŁáŞáŤáá˝ á áľá°áłá°á
á¨OmniRoute áá á¨ááááą á¨CLI ááŁáŞáŤáá˝á (antigravityᣠchipotleᣠcommandCodeᣠdevin-cliᣠááá°) áŤáľá°áłáľáŠá˘ áááá áááá ááá¨áľ á¨á á áŤá˘áá˝ ááŁááťá áááá¨áąá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/cli-tools/all-statuses |
á¨ááá á¨CLI ááŁáŞáŤáá˝ áááł (á¨á°áŤáᣠáľáŞáľáŁ ááá¨á¨áť áá á¨áłá¨á áľ) |
| GET | /api/cli-tools/status |
á¨á ááľ á¨CLI ááŁáŞáŤ áááá áááł (?tool= áá áá
) |
| POST | /api/cli-tools/apply |
á ááŁáŞáŤá á¨á°áá á¨áá áá
á ááťá (dryRun á
áľá áááł áŤáłáŤáᤠá áŽáá´ááá á˛á¨ááá 422 + containerEphemeralTargetᤠmigration á¨áᨠCodex YAMLá áá á
áłá) |
| GET | /api/cli-tools/backups |
á¨CLI ááŁáŞáŤ áá á ááľáŹáá˝á ááááአ|
| POST | /api/cli-tools/backups |
á¨ááá á¨CLI ááŁáŞáŤ áá áŽá˝ ááľáŹ ááá አ|
| POST | /api/cli-tools/backups |
áááľáŚ á áĽáŤáá áááľ ááľáĽ {tool, backupId} á áá áá áŤá áá¨á¨áť ááĽáĽ áŤáá ááľáŹ ááááłá |
| GET | /api/cli-tools/antigravity-mitm |
á¨Antigravity MITM á°áŞ áááł (á¨"antigravity-mitm" CLI ááŁáŞáŤ) |
| POST | /api/cli-tools/antigravity-mitm/alias |
á¨antigravity-mitm á á˝á áľáá˝á áŤáá አ|
áá¨áááŤáŚ á¨á áľá°áłá°á ááá áá áŤáľááááá˘
á¨ááŞá áá ááśá˝
á¨AI ááŞá áá ááśá˝á áŤáľá°áłáľáŠ (á¨OpenAI áĽá GPTs áá á°ááłáłáᣠááá áá áááŞáá˝)á˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/agent-skills |
áááá á¨ááŞá áá ááśá˝ ááááአ(á áĽá¨á á¨á°áŤá°áą + áĽá) |
| GET | /api/agent-skills/[id] |
á¨á°áá°á á¨ááŞá áá ááľ áŤáá |
| POST | /api/agent-skills |
áĽá á¨ááŞá áá
ááľ ááá አâ á¨áĽáŤá áááľáŚ {name, description, prompt, model?, temperature?} |
| PUT | /api/agent-skills/[id] |
áĽá á¨ááŞá áá ááľá áŤááá |
| DELETE | /api/agent-skills/[id] |
áĽá á¨ááŞá áá ááľá áá°áá |
| GET | /api/agent-skills/[id]/raw |
áĽáŹ áĽáŤáá + ááłáłáłá áŤáá (áŤá ááľáŹáľ) |
| POST | /api/agent-skills/generate |
á¨á°ááĽáŻá ááá ááá፠á á˛áľ áá ááľá á AI áŤááአ|
áá¨áááŤáŚ á¨á áľá°áłá°á ááá áá ááá á á áľá°áłá°á á¨á°áá°á API ááá áŤáľááááá˘
áá¸á፠á áľá°áłá°á
á¨ááş áá¸ááŤáá áĽá á¨ááááá áá¸ááŤáá áŤáľá°áłáľáŠá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/cache |
á¨áá¸á፠á á ááá áĽááłáŚ á á áá áá¤áśá˝áŁ á¨ááááľ áá áᣠá á˛áľá áá áŤáá áá á |
| GET | /api/cache/entries |
á¨á°á¸áᥠáá¤áśá˝á ááááአ(á¨áá˝ áááá áá) |
| DELETE | /api/cache/entries |
á¨áá¸á፠áá¤áśá˝á áá°áá (á áĽáŤá áááŞáŤáá˝ áŤáŁáŠ) |
| GET | /api/cache/stats |
áááá á¨áá¸á፠áľáłá˛áľá˛ááľ (ááĽáŤááłááą á á áŤá˘áŁ ááĽáŤááłááą áá´á) |
| GET | /api/cache/reasoning |
á¨ááááá áá¸á፠áááł (áááááá áĽáá°áá áááŤááľ) |
| DELETE | /api/cache/reasoning |
á¨ááááá áá¸ááŤáá áŤá˝áą â á¨áĽáŤá áááŞáŤáá˝áŚ ?toolCallId=<id> (áá á) ááá ?provider=<p> ááá áŤá áááŞáŤáá˝ (ááá) |
áá¨áááŤáŚ á¨á áľá°áłá°á ááá-áá áŤáľááááá˘
á¨áá á°á¨ áľááľáł áĽáááľ
áá áá á°á¨ áľááľáłá (FTS5 + á¨áŹáá°á áááááá˝) áŤáľá°áłáľáŠá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/memory |
á¨áá á°á¨ áľááľáł áá¤áśá˝á ááááአ(á áá°áᣠááááľáŁ á¨ááá áĽáŤá áŤáŁáŠ) |
| POST | /api/memory |
á á˛áľ á¨áá
á°á¨ áľááľáł áá¤áľ ááá አâ á¨áĽáŤá á áŤáጠ{scope, type, content, metadata?} |
| GET | /api/memory/[id] |
á¨á°áá°á á¨áá á°á¨ áľááľáł áá¤áľ áŤáá |
| PUT | /api/memory/[id] |
á¨áá á°á¨ áľááľáł áá¤áľá áŤááá |
| DELETE | /api/memory/[id] |
á¨áá á°á¨ áľááľáł áá¤áľá áá°áá |
| GET | /api/memory?q= |
áá á°á¨ áľááľáłá áááá (FTS5 + áŹáá°á) â áľáłá˛áľá˛ááľ á ááŤá ááá˝ ááľáĽ á°áŤáľáˇá |
áá¨áááŤáŚ á¨á áľá°áłá°á ááá-áá ááá á á áľá°áłá°á áá°á á¨á°áá°á API ááá áŤáľááááá˘
Webhooks
áááľá°áśá˝ á¨webhook ááááŁáá˝á áŤáľá°áłáľáŠá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/webhooks |
áááá á¨webhook ááááŁáá˝ ááááአ|
| POST | /api/webhooks |
á¨webhook áááᣠááá አâ á¨áĽáŤá á áŤáጠ{url, events[], secret?, active?} |
| GET | /api/webhooks/[id] |
á¨á°áá°á á¨webhook áááᣠáŤáá |
| PUT | /api/webhooks/[id] |
á¨webhook ááááŁá áŤááá |
| DELETE | /api/webhooks/[id] |
á¨webhook ááááŁá áá°áá |
| GET | /api/webhooks/[id]/deliveries |
áá ááľ webhook á¨ááľá¨áľ áłáŞáá ááááአ(á¨áľáŹáľ/ááľááľ ááááĽ) |
| POST | /api/webhooks/[id]/test |
á¨áá¨áŤ ááľá°áľ áá° webhook ááአ|
áá¨áááŤáŚ á¨á áľá°áłá°á ááá-áá áŤáľááááá˘
ááá á¨ááľá°áľ ááááśá˝ á¨Webhooks ááááá áááá¨áąá˘
á¨áá ááśá˝ áááá
áá ááśá˝á (á¨ááŞáá á áĽáŤáá˝ áááá) áŤáľá°áłáľáŠá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/skills |
áááá á¨á°áŤá áá ááśá˝ (á áĽáŽááἠ+ áĽá) ááááአ|
| POST | /api/skills/install |
á¨á áŤáŁá˘áŤá áąáŤ ááá URL áá ááľ ááŤá |
| DELETE | /api/skills/[id] |
áá ááľ áŤáŤáá |
| PUT | /api/skills/[id] |
áá
ááľá áŤáá ááá áŤá°ááá â á¨áĽáŤá á áŤáጠ{enabled?: boolean, mode?: "on" | "off" | "auto"} |
| POST | /api/skills/executions |
áá
ááľá áŤáľáá˝á â á¨áĽáŤá á áŤáጠ{skillName, apiKeyId, input?, sessionId?} |
| GET | /api/skills/executions |
á¨áááá áá
ááśá˝ á¨á ááťá¸á áłáŞá ááááአ(á ?apiKeyId= áŤáŁáŠ) |
áá¨áááŤáŚ á¨á áľá°áłá°á ááá áá ááá á¨á áľá°áłá°á áá°á áŤáá API ááá áŤáľááááá˘
ááá ááááŽá˝ á¨áá ááśá˝ ááááá áááá¨áąá˘
á°á°áŞáá˝
á¨OmniRoute á°á°áŞáá˝á (á¨áśáľá°á ááá á áĽáŤáá˝) áŤáľá°áłáľáŠá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/plugins |
á¨á°áŤá á°á°áŞáá˝á ááááአ|
| POST | /api/plugins/marketplace/install |
á¨áá ፠áŚáłá á°á°áŞ ááŤá |
| DELETE | /api/plugins/[name] |
á°á°áŞ áŤáŤáá |
| POST | /api/plugins/[name]/activate |
á°á°áŞ áŤáá |
| POST | /api/plugins/[name]/deactivate |
á°á°áŞ áŤáŚáá |
| GET | /api/plugins/[name]/config |
á¨á°á°áŞáá áá á áŤáá |
| PUT | /api/plugins/[name]/config |
á¨á°á°áŞáá áá á áŤááá |
áá¨áááŤáŚ á¨á áľá°áłá°á ááá áá áŤáľááááá˘
ááá ááááŽá˝ á¨á°á°áŞáá˝ ááááá áááá¨áąá˘
áĽá ááááá
á¨á á
áŤá˘áá˝ áĽá / A-B áá˝á˝á áŤáąá á¨áťá REST á áááá˝ á áá°áá â á áĽáá ááááá á áŠá ááááŤá (áŤáľ-á°á áĽááá áááá¨áą)ᢠá¨áĽáŤááłááą áĽáá á¨áá˝á˝á áááŞáŤáá˝ á GET /api/combos/metrics ááááŁáá˘
á¨á°á áááľ áá°áŚá˝
á áŠáŤ áá á¨áá°áá አá¨á°á
áááľ áá°áŚá˝á (PII ááá
ᣠá¨áĽáŤá ááá ááá
ᣠá¨ááľá áááááľ) áááááŠá˘ á¨á°á
áááľ áá°áŚá˝ á áĽáŤááłááą áĽáŤá áá áá°áŤáᤠááĽáŤááłááą áĽáŞ á áááłá°á á x-omniroute-disabled-guardrails á¨áĽáŤá áŤáľá á áŠá áá â á ááááľ á¨á°ááá á¨ááááľ/áá°áá¨á á áááá˝ á¨ááá˘
| áá´ | áąáŤ | ááá፠|
|---|---|---|
| GET | /api/guardrails |
á¨á°áááᥠá¨á°á áááľ áá°áŚá˝áá áááłá¸áá (áľá / á¨áá / á áľááŤ) ááááአ|
| POST | /api/guardrails/test |
á¨á
áľá-áĽáŞ áá°áąá á ááá ááĽááľ áá áłáŤáľáá˝á áááአâ á¨áĽáŤá á áŤáጠ{input, disabledGuardrails?} |
áá¨áááŤáŚ á¨á áľá°áłá°á ááá áá áŤáľááááá˘
ááá ááááŽá˝ á°á áááľ > á¨á°á áááľ áá°áŚá˝á áááá¨áąá˘
áá¨áááŤ
áľá á áŤáą á¨áá¨áá፠áá¨á ááľáŚá˝ (á¨áłá˝áŚááľ ááá ááᣠá¨á áŤáŁá˘áŤá CLI áśá¨áᣠoma_live_⌠á¨ááłá¨áť áśá¨áᣠá¨á áľá°áłá°á áá°á áŤáá API ááá) áĽá ᨠinference áááá˝ áĽáá´áľ áĽáá°ááአáááá
á¨á áľá°áłá°á áá¨áááŤá áááá¨áąá˘
- á¨áłá˝áŚááľ ááááśá˝ (
/dashboard/*) á¨auth_tokenáŠáŞá áá ááá - áááŁáľ á¨á°ááá áá á¨ááá áá hash áá áááᤠáŤáá°áá áá°
INITIAL_PASSWORDááááłá requireLoginá/api/settings/require-loginá áŠá ááĽáŤáľá ááĽááľ ááťááREQUIRE_API_KEY=trueá˛áá á¨/v1/*ááááśá˝ áĽáá° á ááŤá Bearer API ááá áá ááá- á áá ááŁááť ááľáĽ "management token" / "management-scoped API key" áááľ á á፠áááŞáŤ ááľáĽ áŤááľ ááľáŚá˝ á ááąá áá â áŤáá°ááḠá°á¨á᪠á¨ááľáĽá á áááľá á áŤááááľá
á°áłááááľá á¨ááŤáááľ ááἠ(v3.8.0) â
/api/v1/agents/tasks/*áĽá ᨠcooldown á áľá°áłá°á endpoints á áá á¨á áľá°áłá°á áá¨áááŤá (á¨áłá˝áŚááľauth_tokenáŠáŞ ááá á¨á áľá°áłá°á áá°á áŤáá API ááá) áá áááᢠá¨áá áá°á áĽááá á ááááśá˝ áŤááá¨áá፠á¨á አá°áá áá˝401 Unauthorizedááá ááᢠcommit588a0333(fix(auth): require management auth for agent and cooldown APIs)á áááá¨áąá˘