Install any skill in seconds. Free to start, no credit card required.
Get Started Free →The core OpenAI-compatible inference endpoints: chat completions, embeddings, images, audio (TTS/STT), moderations, rerank, and the Responses API. The primary integration surface for AI agents.
.claude/skills/diegosouzapw-omni-inference/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 1043% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 954% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 710% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 864% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 649% | 0% |
<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->
The core OpenAI-compatible inference endpoints: chat completions, embeddings, images, audio (TTS/STT), moderations, rerank, and the Responses API. The primary integration surface for AI agents.
All requests require a valid Bearer token or session cookie. Obtain a token via POST /api/auth/login or configure REQUIRE_API_KEY=false for local development.
Acquire, inspect, renew, or release an exclusive managed connection lease
Requires an API key with lease:exclusive and an explicit non-empty allowedConnections policy. The opaque owner is bound to the authenticated API key; the lease owns an eligible connection, not a provider or model. Managed inference requests present the owner and exact generation headers. Temporary foreign occupancy returns 429 WAITING_FOR_CAPACITY with Retry-After. Acquire, renew, and release retain their connection-free response shapes. The explicit status action is owner-, key-, and generation-fenced and returns only privacy-safe display metadata for an active binding.
bashcurl -X POST https://localhost:20128/api/v1/session-leases \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
List search providers
Lists configured search providers and their supported search types.
bashcurl https://localhost:20128/api/v1/search \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Run a unified search
Searches the web, news, or X through a configured provider. Set provider to xquik-search to use Xquik for X search. The aliases xquik and xquik_search resolve to the same provider. AnySearch (anysearch-search, aliases anysearch / anysearch_search) provides free fallback-only web search.
bashcurl -X POST https://localhost:20128/api/v1/search \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Create chat completion
OpenAI-compatible chat completions endpoint. Routes to configured providers.
bashcurl -X POST https://localhost:20128/api/v1/chat/completions \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Chat completion over WebSocket (handshake + upgrade)
OpenAI-compatible chat over a WebSocket connection. GET with ?handshake=1 returns the connection descriptor (auth path, message protocol and live-event channels) as JSON; a plain GET without an Upgrade returns 426 Upgrade Required. After upgrading, the client exchanges JSON frames — {type:"request", id, payload:{model, messages}} to start a completion and {type:"cancel", id} to abort it. A separate live channel (default port LIVE_WS_PORT=20129, path /live) streams dashboard events on the requests, combo and credentials topics with a 15s heartbeat. Requires an API key.
bashcurl https://localhost:20128/api/v1/ws \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Create chat completion (provider-specific)
Routes to a specific provider by name.
bashcurl -X POST https://localhost:20128/api/v1/providers/{provider}/chat/completions \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Ollama-compatible chat endpoint
Provides compatibility with Ollama's /api/chat format.
bashcurl -X POST https://localhost:20128/api/v1/api/chat \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Create message (Anthropic-compatible)
Anthropic Messages API endpoint. Routes to Claude providers.
bashcurl -X POST https://localhost:20128/api/v1/messages \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Count tokens for a message
bashcurl -X POST https://localhost:20128/api/v1/messages/count_tokens \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Create response (OpenAI Responses API)
OpenAI Responses API endpoint.
bashcurl -X POST https://localhost:20128/api/v1/responses \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Create embeddings
bashcurl -X POST https://localhost:20128/api/v1/embeddings \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
List embedding models (Jina multimodal-embeddings alias)
bashcurl https://localhost:20128/api/v1/multimodal-embeddings \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Create embeddings (Jina multimodal-embeddings alias)
Same handler as POST /api/v1/embeddings. Provided so Jina-compatible clients that call /v1/multimodal-embeddings do not receive HTTP 404 unknown_route.
bashcurl -X POST https://localhost:20128/api/v1/multimodal-embeddings \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Create embeddings (provider-specific)
bashcurl -X POST https://localhost:20128/api/v1/providers/{provider}/embeddings \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Generate images
bashcurl -X POST https://localhost:20128/api/v1/images/generations \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Generate images (provider-specific)
bashcurl -X POST https://localhost:20128/api/v1/providers/{provider}/images/generations \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Generate speech audio
Text-to-speech endpoint. Routes to configured TTS providers.
bashcurl -X POST https://localhost:20128/api/v1/audio/speech \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Transcribe audio
Audio-to-text transcription endpoint.
bashcurl -X POST https://localhost:20128/api/v1/audio/transcriptions \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Create moderation
Content moderation endpoint. Routes to configured moderation providers.
bashcurl -X POST https://localhost:20128/api/v1/moderations \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Rerank documents
Document reranking endpoint.
bashcurl -X POST https://localhost:20128/api/v1/rerank \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
API v1 root endpoint
Returns basic API info and status.
bashcurl https://localhost:20128/api/v1 \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
List models for a specific provider
Returns only models for the selected provider with provider prefix removed from each model id.
bashcurl https://localhost:20128/api/v1/providers/{provider}/models \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
List proxy subscriptions
Lists all operator-supplied proxy subscription links. Also starts the background auto-refresh scheduler (idempotent) so enabled subscriptions stay in sync. Credentials embedded in url are redacted in the response.
bashcurl https://localhost:20128/api/v1/management/proxy-subscriptions \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Create a proxy subscription
Creates a subscription record. If mode is rule, at least one entry in ruleProviders is required. updateIntervalMinutes defaults to 60 and enabled defaults to false when omitted or not exactly true.
bashcurl -X POST https://localhost:20128/api/v1/management/proxy-subscriptions \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Get a proxy subscription
bashcurl https://localhost:20128/api/v1/management/proxy-subscriptions/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Update a proxy subscription
Partial update — only fields present in the body are changed (name/url/mode/ruleProviders/localCoreEndpoint/updateIntervalMinutes/enabled).
bashcurl -X PATCH https://localhost:20128/api/v1/management/proxy-subscriptions/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Delete a proxy subscription
Removes the subscription record and unbinds/drops its synced proxy_registry rows.
bashcurl -X DELETE https://localhost:20128/api/v1/management/proxy-subscriptions/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Get a subscription's last-parsed node summary
Returns the last-parsed node list without re-fetching the (possibly slow) subscription URL.
bashcurl https://localhost:20128/api/v1/management/proxy-subscriptions/{id}/nodes \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Refresh a proxy subscription
Re-fetches and re-parses the subscription URL, syncs its nodes into proxy_registry, and (re)binds the pool.
bashcurl -X POST https://localhost:20128/api/v1/management/proxy-subscriptions/{id}/refresh \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Document OCR
Multi-provider document OCR endpoint (Mistral OCR–compatible request and response shape). Accepts a JSON body referencing a document/image and returns extracted text. model selects the provider via a provider/model prefix (e.g. mistral/mistral-ocr-latest, azure-document-intelligence/prebuilt-read, vertex-deepseek-ocr/deepseek-ocr-maas); a bare model id (e.g. mistral-ocr-latest) resolves to its registered provider, and an omitted model defaults to Mistral. Azure Document Intelligence is asynchronous upstream — the handler polls the returned operation until it succeeds or fails before responding, so this endpoint can take longer to return for that provider. Success responses carry the X-OmniRoute-* cost-telemetry headers.
bashcurl -X POST https://localhost:20128/api/v1/ocr \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Translate audio to English
OpenAI Whisper–compatible audio translation (multipart/form-data). Unlike /api/v1/audio/transcriptions, output is always English regardless of the source language. Success responses carry the X-OmniRoute-* cost-telemetry headers.
bashcurl -X POST https://localhost:20128/api/v1/audio/translations \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
List ElevenLabs voices
Proxies GET https://api.elevenlabs.io/v1/voices using the stored elevenlabs provider credentials (the caller never sends xi-api-key). The incoming query string is forwarded unchanged.
bashcurl https://localhost:20128/api/v1/voices \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
ElevenLabs speech-to-text
Streams the request body to POST https://api.elevenlabs.io/v1/speech-to-text using the stored elevenlabs provider credentials. content-type and accept are forwarded; the upstream body is relayed unchanged.
bashcurl -X POST https://localhost:20128/api/v1/speech-to-text \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
ElevenLabs text-to-speech
Streams the request body to POST https://api.elevenlabs.io/v1/text-to-speech/{voiceId} using the stored elevenlabs provider credentials. voiceId must match ^[A-Za-z0-9_-]+$ or the request is rejected with 400 before any upstream call.
bashcurl -X POST https://localhost:20128/api/v1/text-to-speech/{voiceId} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Routing explainability snapshot
Returns the most recent routing events (bounded in-memory ring buffer) plus the per-provider/model quality snapshot from open-sse/services/routing. Routing metadata only — never prompts, bodies, headers or credentials. Auth mirrors /api/v1/combos: a valid Bearer API key or a dashboard session; with REQUIRE_API_KEY=false anonymous reads are allowed.
bashcurl https://localhost:20128/api/v1/explain/routing \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Suggested media models
Read-only server-side proxy to the public HuggingFace Hub models search API, used by the dashboard to suggest models for a media provider kind without exposing an HF token client-side. Never accepts or returns credentials.
bashcurl https://localhost:20128/api/v1/providers/suggested-models \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Provider plugin manifest
Returns the manifest describing installed provider plugins.
bashcurl https://localhost:20128/api/v1/provider-plugin-manifest \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET <omnirouteCatchAll>
bashcurl https://localhost:20128/api/v1/{omnirouteCatchAll} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST <omnirouteCatchAll>
bashcurl -X POST https://localhost:20128/api/v1/{omnirouteCatchAll} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
PUT <omnirouteCatchAll>
bashcurl -X PUT https://localhost:20128/api/v1/{omnirouteCatchAll} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
PATCH <omnirouteCatchAll>
bashcurl -X PATCH https://localhost:20128/api/v1/{omnirouteCatchAll} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
DELETE <omnirouteCatchAll>
bashcurl -X DELETE https://localhost:20128/api/v1/{omnirouteCatchAll} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET accounts › <id> › limits
bashcurl https://localhost:20128/api/v1/accounts/{id}/limits \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
PUT accounts › <id> › limits
bashcurl -X PUT https://localhost:20128/api/v1/accounts/{id}/limits \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET agents › credentials
bashcurl https://localhost:20128/api/v1/agents/credentials \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST agents › credentials
bashcurl -X POST https://localhost:20128/api/v1/agents/credentials \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET agents › health
bashcurl https://localhost:20128/api/v1/agents/health \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET agents › tasks
bashcurl https://localhost:20128/api/v1/agents/tasks \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST agents › tasks
bashcurl -X POST https://localhost:20128/api/v1/agents/tasks \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
DELETE agents › tasks
bashcurl -X DELETE https://localhost:20128/api/v1/agents/tasks \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET agents › tasks › <id>
bashcurl https://localhost:20128/api/v1/agents/tasks/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST agents › tasks › <id>
bashcurl -X POST https://localhost:20128/api/v1/agents/tasks/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
DELETE agents › tasks › <id>
bashcurl -X DELETE https://localhost:20128/api/v1/agents/tasks/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST antigravity
bashcurl -X POST https://localhost:20128/api/v1/antigravity \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET auto combo › <channel> › candidates
bashcurl https://localhost:20128/api/v1/auto-combo/{channel}/candidates \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET batches
bashcurl https://localhost:20128/api/v1/batches \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST batches
bashcurl -X POST https://localhost:20128/api/v1/batches \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET batches › <id>
bashcurl https://localhost:20128/api/v1/batches/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
DELETE batches › <id>
bashcurl -X DELETE https://localhost:20128/api/v1/batches/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST batches › <id> › cancel
bashcurl -X POST https://localhost:20128/api/v1/batches/{id}/cancel \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
DELETE batches › delete completed
bashcurl -X DELETE https://localhost:20128/api/v1/batches/delete-completed \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST classify
bashcurl -X POST https://localhost:20128/api/v1/classify \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET combos
bashcurl https://localhost:20128/api/v1/combos \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST completions
bashcurl -X POST https://localhost:20128/api/v1/completions \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET files
bashcurl https://localhost:20128/api/v1/files \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST files
bashcurl -X POST https://localhost:20128/api/v1/files \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET files › <id>
bashcurl https://localhost:20128/api/v1/files/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
DELETE files › <id>
bashcurl -X DELETE https://localhost:20128/api/v1/files/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET files › <id> › content
bashcurl https://localhost:20128/api/v1/files/{id}/content \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST images › edits
bashcurl -X POST https://localhost:20128/api/v1/images/edits \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET images › upscale
bashcurl https://localhost:20128/api/v1/images/upscale \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST images › upscale
bashcurl -X POST https://localhost:20128/api/v1/images/upscale \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
POST issues › report
bashcurl -X POST https://localhost:20128/api/v1/issues/report \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET management › proxies
bashcurl https://localhost:20128/api/v1/management/proxies \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST management › proxies
bashcurl -X POST https://localhost:20128/api/v1/management/proxies \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
PATCH management › proxies
bashcurl -X PATCH https://localhost:20128/api/v1/management/proxies \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
DELETE management › proxies
bashcurl -X DELETE https://localhost:20128/api/v1/management/proxies \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET management › proxies › assignments
bashcurl https://localhost:20128/api/v1/management/proxies/assignments \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
PUT management › proxies › assignments
bashcurl -X PUT https://localhost:20128/api/v1/management/proxies/assignments \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
PUT management › proxies › bulk assign
bashcurl -X PUT https://localhost:20128/api/v1/management/proxies/bulk-assign \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET management › proxies › health
bashcurl https://localhost:20128/api/v1/management/proxies/health \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET me › status
bashcurl https://localhost:20128/api/v1/me/status \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET muse code › models
bashcurl https://localhost:20128/api/v1/muse-code/models \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET music › generations
bashcurl https://localhost:20128/api/v1/music/generations \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST music › generations
bashcurl -X POST https://localhost:20128/api/v1/music/generations \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET providers › <provider> › limits
bashcurl https://localhost:20128/api/v1/providers/{provider}/limits \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
PUT providers › <provider> › limits
bashcurl -X PUT https://localhost:20128/api/v1/providers/{provider}/limits \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET quotas › check
bashcurl https://localhost:20128/api/v1/quotas/check \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET registered keys
bashcurl https://localhost:20128/api/v1/registered-keys \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST registered keys
bashcurl -X POST https://localhost:20128/api/v1/registered-keys \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET registered keys › <id>
bashcurl https://localhost:20128/api/v1/registered-keys/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
DELETE registered keys › <id>
bashcurl -X DELETE https://localhost:20128/api/v1/registered-keys/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST registered keys › <id> › revoke
bashcurl -X POST https://localhost:20128/api/v1/registered-keys/{id}/revoke \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
POST relay › chat › completions
bashcurl -X POST https://localhost:20128/api/v1/relay/chat/completions \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
POST relay › chat › completions › bifrost
bashcurl -X POST https://localhost:20128/api/v1/relay/chat/completions/bifrost \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
POST responses › <path>
bashcurl -X POST https://localhost:20128/api/v1/responses/{path} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET search › analytics
bashcurl https://localhost:20128/api/v1/search/analytics \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST segment
bashcurl -X POST https://localhost:20128/api/v1/segment \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET video bridge › drilldown
bashcurl https://localhost:20128/api/v1/video-bridge/drilldown \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
DELETE video bridge › drilldown
bashcurl -X DELETE https://localhost:20128/api/v1/video-bridge/drilldown \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET videos › generations
bashcurl https://localhost:20128/api/v1/videos/generations \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST videos › generations
bashcurl -X POST https://localhost:20128/api/v1/videos/generations \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET vscode › <token>
bashcurl https://localhost:20128/api/v1/vscode/{token} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST vscode › <token> › api › chat
bashcurl -X POST https://localhost:20128/api/v1/vscode/{token}/api/chat \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
POST vscode › <token> › api › show
bashcurl -X POST https://localhost:20128/api/v1/vscode/{token}/api/show \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET vscode › <token> › api › tags
bashcurl https://localhost:20128/api/v1/vscode/{token}/api/tags \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET vscode › <token> › api › version
bashcurl https://localhost:20128/api/v1/vscode/{token}/api/version \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST vscode › <token> › chat › completions
bashcurl -X POST https://localhost:20128/api/v1/vscode/{token}/chat/completions \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET vscode › <token> › combos
bashcurl https://localhost:20128/api/v1/vscode/{token}/combos \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET vscode › <token> › models
bashcurl https://localhost:20128/api/v1/vscode/{token}/models \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST vscode › <token> › responses
bashcurl -X POST https://localhost:20128/api/v1/vscode/{token}/responses \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
POST vscode › <token> › v1 › chat › completions
bashcurl -X POST https://localhost:20128/api/v1/vscode/{token}/v1/chat/completions \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET vscode › <token> › v1 › models
bashcurl https://localhost:20128/api/v1/vscode/{token}/v1/models \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET vscode › combos › <token> › <{slug>}
bashcurl https://localhost:20128/api/v1/vscode/combos/{token}/{{slug}} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST vscode › combos › <token> › <{slug>}
bashcurl -X POST https://localhost:20128/api/v1/vscode/combos/{token}/{{slug}} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET vscode › raw › <token>
bashcurl https://localhost:20128/api/v1/vscode/raw/{token} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST vscode › raw › <token> › api › chat
bashcurl -X POST https://localhost:20128/api/v1/vscode/raw/{token}/api/chat \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
POST vscode › raw › <token> › api › show
bashcurl -X POST https://localhost:20128/api/v1/vscode/raw/{token}/api/show \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET vscode › raw › <token> › api › tags
bashcurl https://localhost:20128/api/v1/vscode/raw/{token}/api/tags \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET vscode › raw › <token> › api › version
bashcurl https://localhost:20128/api/v1/vscode/raw/{token}/api/version \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST vscode › raw › <token> › chat › completions
bashcurl -X POST https://localhost:20128/api/v1/vscode/raw/{token}/chat/completions \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET vscode › raw › <token> › combos
bashcurl https://localhost:20128/api/v1/vscode/raw/{token}/combos \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET vscode › raw › <token> › models
bashcurl https://localhost:20128/api/v1/vscode/raw/{token}/models \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST vscode › raw › <token> › responses
bashcurl -X POST https://localhost:20128/api/v1/vscode/raw/{token}/responses \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
POST vscode › raw › <token> › v1 › chat › completions
bashcurl -X POST https://localhost:20128/api/v1/vscode/raw/{token}/v1/chat/completions \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET vscode › raw › <token> › v1 › models
bashcurl https://localhost:20128/api/v1/vscode/raw/{token}/v1/models \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST web › fetch
bashcurl -X POST https://localhost:20128/api/v1/web/fetch \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
See the full OpenAPI specification at GET /api/openapi/spec or docs/openapi.yaml for detailed request/response schemas.
<!-- skill:custom-start --> <!-- Aggregated from: omniroute-chat, omniroute-image, omniroute-tts, omniroute-stt, omniroute-embeddings, omniroute-web-search, omniroute-web-fetch -->
Requires OMNIROUTE_URL and OMNIROUTE_KEY. See entry-point SKILL for setup.
POST $OMNIROUTE_URL/v1/chat/completions — OpenAI formatPOST $OMNIROUTE_URL/v1/messages — Anthropic Messages formatPOST $OMNIROUTE_URL/v1/responses — OpenAI Responses APIbashcurl $OMNIROUTE_URL/v1/models | jq '.data[].id'
Combos (e.g. auto, cost-optimized, subscription) auto-fallback through multiple providers.
bashcurl -X POST $OMNIROUTE_URL/v1/chat/completions \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-opus-4-7", "messages": [{"role": "user", "content": "Refactor this function"}], "stream": true }'
bashcurl -X POST $OMNIROUTE_URL/v1/messages \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-opus-4-7", "max_tokens": 4096, "messages": [{"role": "user", "content": "Hi"}] }'
Supports OpenAI tools array and Anthropic tools block. Tool results auto-compressed via RTK (47 filters: git-diff, grep, test-jest, terraform-plan, docker-logs, etc.) — 20-40% token savings. Disable per-request with X-Omniroute-Rtk: off header.
Anthropic extended thinking and OpenAI Responses reasoning blocks are forwarded verbatim. Cached automatically via reasoning cache.
401 → invalid API key400 invalid_model → model not in registry; check /v1/models503 circuit_open → provider circuit breaker tripped; retry later or use combo429 rate_limited → honor Retry-After; consider using a combo for auto-fallbackRequires OMNIROUTE_URL and OMNIROUTE_KEY. See entry-point SKILL for setup.
POST $OMNIROUTE_URL/v1/images/generations — Text-to-imagePOST $OMNIROUTE_URL/v1/images/edits — Image edit (mask)POST $OMNIROUTE_URL/v1/images/variations — Variationsbashcurl $OMNIROUTE_URL/v1/models/image | jq '.data[]'
Returns { id, owned_by, sizes:[...], capabilities:[...] } per model.
bashcurl -X POST $OMNIROUTE_URL/v1/images/generations \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "dall-e-3", "prompt": "a red bicycle on a wet street, photoreal", "n": 1, "size": "1024x1024", "response_format": "b64_json" }'
Response: { created, data: [{ url? or b64_json, revised_prompt }] }
400 invalid_size → not supported by this model; check /v1/models/image400 content_policy_violation → blocked by provider safety503 → provider unavailable; try another model in /v1/models/imageRequires OMNIROUTE_URL and OMNIROUTE_KEY. See entry-point SKILL for setup.
POST $OMNIROUTE_URL/v1/audio/speech — returns binary audio (mp3/opus/wav/flac)bashcurl $OMNIROUTE_URL/v1/models/tts | jq '.data[]'
Each entry includes voices:[...] for the available voice names per provider.
bashcurl -X POST $OMNIROUTE_URL/v1/audio/speech \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "tts-1", "input": "Hello from OmniRoute.", "voice": "alloy", "response_format": "mp3" }' --output speech.mp3
Voice names vary by provider. Check /v1/models/tts — each entry has voices:[...]. Common OpenAI voices: alloy, echo, fable, onyx, nova, shimmer.
400 invalid_voice → voice not supported by this model400 input_too_long → input exceeds model character limit503 → provider unavailable; try another model in /v1/models/ttsRequires OMNIROUTE_URL and OMNIROUTE_KEY. See entry-point SKILL for setup.
POST $OMNIROUTE_URL/v1/audio/transcriptions — multipart upload, returns textPOST $OMNIROUTE_URL/v1/audio/translations — transcribe + translate to Englishbashcurl $OMNIROUTE_URL/v1/models/stt | jq '.data[]'
bashcurl -X POST $OMNIROUTE_URL/v1/audio/transcriptions \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -F "file=@audio.mp3" \ -F "model=whisper-1" \ -F "response_format=verbose_json"
Response: { text, language, duration, segments?:[{ start, end, text }] }
Audio: mp3, mp4, mpeg, mpga, m4a, wav, webm. Response formats: json, text, srt, verbose_json, vtt.
400 invalid_file_format → unsupported audio format400 file_too_large → exceeds provider limit (usually 25MB)503 → provider unavailable; try another model in /v1/models/sttRequires OMNIROUTE_URL and OMNIROUTE_KEY. See entry-point SKILL for setup.
POST $OMNIROUTE_URL/v1/embeddingsbashcurl $OMNIROUTE_URL/v1/models/embedding | jq '.data[]'
Each entry: { id, owned_by, dimensions, max_input_tokens }.
bashcurl -X POST $OMNIROUTE_URL/v1/embeddings \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "text-embedding-3-large", "input": ["first text", "second text"], "encoding_format": "float" }'
Response: { data:[{ embedding:[...], index }], usage:{ prompt_tokens, total_tokens } }
input accepts a string or array of strings (up to provider batch limit, typically 2048 items).
400 input_too_long → input exceeds max_input_tokens for this model400 invalid_encoding_format → use float or base64503 → provider unavailable; try another model in /v1/models/embeddingRequires OMNIROUTE_URL and OMNIROUTE_KEY. See entry-point SKILL for setup.
POST $OMNIROUTE_URL/v1/web/search — unified search formatbashcurl $OMNIROUTE_URL/v1/models/web | jq '.data[] | select(.kind == "webSearch")'
bashcurl -X POST $OMNIROUTE_URL/v1/web/search \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "tavily/search", "query": "OmniRoute github latest release", "max_results": 5, "include_answer": true }'
Response: { answer?, results:[{ url, title, content, score }] }
| Field | Type | Description | | ---------------- | ------- | ------------------------------------ | | model | string | Provider model from /v1/models/web | | query | string | Search query | | max_results | number | Max results (default: 5) | | include_answer | boolean | Include AI-synthesized answer | | search_depth | string | basic or advanced (Tavily) |
400 query_too_long → shorten the search query503 → provider unavailable; try another model in /v1/models/webRequires OMNIROUTE_URL and OMNIROUTE_KEY. See entry-point SKILL for setup.
POST $OMNIROUTE_URL/v1/web/fetchbashcurl $OMNIROUTE_URL/v1/models/web | jq '.data[] | select(.kind == "webFetch")'
bashcurl -X POST $OMNIROUTE_URL/v1/web/fetch \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "jina/reader", "url": "https://anthropic.com", "format": "markdown" }'
Response: { url, title, markdown, links?:[...], images?:[...] }
| Field | Type | Description | | -------- | ------ | ----------------------------------------------------------------------- | | model | string | Provider from /v1/models/web (e.g. jina/reader, firecrawl/scrape) | | url | string | URL to fetch | | format | string | markdown (default), html, text |
400 invalid_url → URL must be http/https403 blocked → provider blocked by target site; try a different model503 → provider unavailable; try another model in /v1/models/web<!-- skill:custom-end -->
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 11,148 | 11,442 | +3% | 1 | 1 | 0% | 1,367 | 15,625 | +1043% | 0 | 0 | — |
case-02 | fail→pass | 31,709 | 7,418 | -77% | 1 | 1 | 0% | 1,400 | 14,754 | +954% | 0 | 0 | — |
case-03 | fail→pass | 15,867 | 7,903 | -50% | 1 | 1 | 0% | 1,839 | 14,903 | +710% | 0 | 0 | — |
case-04 | fail→pass | 10,245 | 8,482 | -17% | 1 | 1 | 0% | 1,552 | 14,967 | +864% | 0 | 0 | — |
case-05 | fail→pass | 16,163 | 7,360 | -54% | 1 | 1 | 0% | 1,973 | 14,777 | +649% | 0 | 0 | — |
case-06 | fail→pass | 17,454 | 8,236 | -53% | 1 | 1 | 0% | 2,013 | 14,991 | +645% | 0 | 0 | — |
case-07 | fail→pass | 16,141 | 2,900 | -82% | 1 | 1 | 0% | 1,794 | 14,885 | +730% | 0 | 0 | — |
case-08 | pass→pass | 14,738 | 10,069 | -32% | 1 | 1 | 0% | 1,783 | 15,279 | +757% | 0 | 0 | — |
case-09 | pass→pass | 20,294 | 7,354 | -64% | 1 | 1 | 0% | 2,455 | 14,802 | +503% | 0 | 0 | — |
case-14 | fail→pass | 9,725 | 8,394 | -14% | 1 | 1 | 0% | 1,828 | 14,964 | +719% | 0 | 0 | — |
case-10 | fail→pass | 17,495 | 8,911 | -49% | 1 | 1 | 0% | 2,202 | 15,067 | +584% | 0 | 0 | — |
case-11 | pass→pass | 9,102 | 7,541 | -17% | 1 | 1 | 0% | 588 | 14,800 | +2417% | 0 | 0 | — |
case-12 | fail→pass | 9,190 | 8,128 | -12% | 1 | 1 | 0% | 1,507 | 14,907 | +889% | 0 | 0 | — |
case-13 | fail→pass | 16,734 | 7,743 | -54% | 1 | 1 | 0% | 1,887 | 14,835 | +686% | 0 | 0 | — |
case-20 | fail→pass | 21,155 | 7,268 | -66% | 1 | 1 | 0% | 2,475 | 14,703 | +494% | 0 | 0 | — |
case-15 | pass→pass | 14,175 | 8,775 | -38% | 1 | 1 | 0% | 1,614 | 15,043 | +832% | 0 | 0 | — |
case-16 | fail→pass | 16,541 | 8,006 | -52% | 1 | 1 | 0% | 1,886 | 14,813 | +685% | 0 | 0 | — |
case-17 | fail→pass | 13,017 | 7,308 | -44% | 1 | 1 | 0% | 1,147 | 14,778 | +1188% | 0 | 0 | — |
case-18 | fail→pass | 9,816 | 9,579 | -2% | 1 | 1 | 0% | 1,720 | 15,230 | +785% | 0 | 0 | — |
case-19 | fail→pass | 42,525 | 7,391 | -83% | 1 | 1 | 0% | 1,994 | 14,758 | +640% | 0 | 0 | — |
case-21 | pass→pass | 8,085 | 8,741 | +8% | 1 | 1 | 0% | 574 | 15,047 | +2521% | 0 | 0 | — |
case-22 | pass→pass | 8,405 | 8,310 | -1% | 1 | 1 | 0% | 569 | 15,016 | +2539% | 0 | 0 | — |
case-23 | pass→pass | 7,150 | 8,005 | +12% | 1 | 1 | 0% | 313 | 14,847 | +4643% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +70 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 9/1/2026 | +55% |
| gemini-3.6-flash | verified | 8/24/2026 | +50% |
| gemini-3.6-flash | verified | 8/17/2026 | +59% |
| gemini-3.6-flash | verified | 8/7/2026 | +85% |
Other measured skills in the registry, with their headline benchmark lift.