OpenAI
Chat Completions, embeddings, images, audio and files, unchanged.
/v1/chat/completionsOmniRoute / API surface
Chat, embeddings, reranking, images, video, music, speech, OCR, files and batches, in the request format your client already speaks.
Wire formats
One process accepts several formats, so a tool built against one vendor's SDK needs a base URL change and nothing else.
Chat Completions, embeddings, images, audio and files, unchanged.
/v1/chat/completionsThe Messages wire format, including token counting.
/v1/messagesThe Responses API shape, with tool-output compaction.
/v1/responsesgenerateContent and the Gemini model listing.
/v1beta/modelsDrop-in for tools that speak the local Ollama API.
/v1/api/chatCohere/Voyage reranking plus Jina classify and segment.
/v1/rerankEndpoints
Grouped by what you are trying to do rather than by which provider happens to serve it.
Three request shapes reach the same router, so a client keeps the format it already speaks.
/v1/chat/completionsOpenAI Chat Completions, streaming or buffered/v1/messagesAnthropic Messages/v1/responsesOpenAI Responses/v1/messages/count_tokensCount tokens before spending themThe retrieval half of a RAG stack behind the same endpoint and the same key.
/v1/embeddingsText and multimodal embeddings/v1/rerankCohere and Voyage compatible reranking/v1/searchWeb search abstraction across providers/v1/classifyJina text classification/v1/segmentJina content segmentation/v1/web/fetchReadable page extractionGeneration routes through the same fallback and cost accounting as text.
/v1/images/generationsImage synthesis/v1/images/editsEditing and inpainting/v1/videos/generationsVideo generation/v1/music/generationsMusic synthesisSpeech in both directions, plus OCR for scanned source material.
/v1/audio/transcriptionsSpeech to text/v1/audio/translationsTranslating transcription/v1/audio/speechText to speech/v1/ocrDocument OCRUpload once, then run work asynchronously instead of holding a connection open.
/v1/filesUpload a file/v1/files/{id}/contentStream file contents back/v1/batchesCreate a batch job/v1/batches/{id}Poll batch status/v1/batches/{id}/cancelCancel a running batchEverything a client needs to choose a model and stay inside a budget.
/v1/modelsProvider-grouped model catalog/v1/quotas/checkPre-validate remaining quota/v1/moderationsContent moderation/v1/wsWebSocket upgrade for streaming clientsAn MCP server with 110 tools and an A2A agent card, served by the same process.
/api/mcp/streamMCP over HTTP, 33 scopes/api/mcp/sseMCP over Server-Sent Events/a2aJSON-RPC 2.0, 6 agent skills/.well-known/agent.jsonPublic agent cardHeaders
Routing is not a black box: the decision, the cost and the compression that produced a response all travel back with it.
X-OmniRoute-DecisionStrategy, provider alias and latency that served the requestX-OmniRoute-ProviderThe provider alias actually routed toX-OmniRoute-ModelThe resolved model identifierX-OmniRoute-Latency-MsUpstream latency in millisecondsX-OmniRoute-Tokens-InInput token countX-OmniRoute-Tokens-OutOutput token countX-OmniRoute-Response-CostUSD cost of this responseX-OmniRoute-Cost-SavedUSD avoided on a cache hitX-OmniRoute-CacheHIT or MISS on non-streaming requestsX-OmniRoute-CompressionApplied compression mode and where it came fromX-OmniRoute-Fallback-AttemptsFallback hops taken, when there were anyX-OmniRoute-Request-IdCorrelation id for the request logx-omniroute-compressionOverride the compression profile for one requestX-OmniRoute-No-CacheBypass the semantic cachex-omniroute-no-memorySkip memory and skills injectionX-Session-IdSession affinity and cost attribution keyIdempotency-KeyDeduplicate a retried request