Which LLM Providers Does OmniRoute Support? A Complete Technical Reference
OmniRoute aggregates over 300 LLM providers—including OpenAI, Anthropic, Google Gemini, Azure, Ollama, and custom HTTP endpoints—with the canonical list defined in [src/shared/constants/providers.ts](https://github.com/diegosouzapw/OmniRoute/blob/main/src/shared/constants/providers.ts) and runtime registration handled by [open-sse/config/providerRegistry.ts](https://github.com/diegosouzapw/OmniRoute/blob/main/open-sse/config/providerRegistry.ts).
OmniRoute is an open-source LLM routing gateway developed by diegosouzapw/OmniRoute that unifies disparate AI providers under a single API interface. Understanding which LLM providers OmniRoute supports enables developers to configure intelligent failover strategies and optimize model selection across cloud, local, and custom infrastructure.
Complete Provider Catalog
OmniRoute categorizes its supported providers into distinct groups based on API compatibility and deployment architecture. The [providers.ts](https://github.com/diegosouzapw/OmniRoute/blob/main/src/shared/constants/providers.ts) file contains the Zod-validated schema defining each provider's name, default endpoint, authentication method, and supported model families.
Cloud API Providers
- OpenAI-compatible:
openai,azure-openai,openrouter - Anthropic:
anthropic,claude - Google:
gemini,vertex - Enterprise AI:
cohere,mistral,together,deepseek,grok,xai,fireworks,perplexity,replicate,huggingface
Local and Edge Providers
- Local Inference:
ollama,llama-cpp,lmstudio,vllm - Custom Endpoints:
generic-rest(configurable arbitrary HTTP endpoints)
The full, version-specific catalog auto-generates in [docs/reference/PROVIDER_REFERENCE.md](https://github.com/diegosouzapw/OmniRoute/blob/main/docs/reference/PROVIDER_REFERENCE.md).
Provider Registration Architecture
The provider registry [open-sse/config/providerRegistry.ts](https://github.com/diegosouzapw/OmniRoute/blob/main/open-sse/config/providerRegistry.ts) loads provider definitions from the constants file and initializes three critical components per provider:
- Executor: Handles provider-specific HTTP implementations (e.g.,
OpenAIExecutor,AnthropicExecutor) - Translator: Maps between OmniRoute's unified schema and provider-native request/response formats located in
open-sse/translator/ - OAuth Configuration: For providers requiring OAuth flows, credentials resolve securely via [
src/lib/oauth/providers.ts](https://github.com/diegosouzapw/OmniRoute/blob/main/src/lib/oauth/providers.ts)
Listing Providers via CLI and Code
Developers can discover available LLM providers through both command-line interface and programmatic APIs.
Command Line Interface
omniroute providers list
This command reads the same constants used by the server runtime and outputs all registered provider IDs.
Programmatic Model Discovery
import { getProviderRegistry } from '@omniroute/open-sse/config/providerRegistry';
async function listModels(providerId: string) {
const registry = await getProviderRegistry();
const provider = registry.get(providerId);
if (!provider) throw new Error(`Unknown provider: ${providerId}`);
const models = await provider.executor.listModels();
console.log(`Models for ${providerId}:`, models);
}
listModels('openai');
The getProviderRegistry() function returns a singleton instance that manages executor lifecycle and cached provider configurations.
Multi-Provider Routing Strategies
OmniRoute's combo routing system distributes requests across multiple providers using strategies defined in [open-sse/services/combo.ts](https://github.com/diegosouzapw/OmniRoute/blob/main/open-sse/services/combo.ts).
import { handleChatCore } from 'open-sse/handlers/chatCore';
import { resolveComboTargets } from 'open-sse/services/combo';
const comboSpec = {
strategy: 'fill-first',
targets: ['openai', 'anthropic', 'gemini'],
};
const request = {
model: 'gpt-4o',
messages: [{ role: 'user', content: 'Explain the difference between GPT and Claude' }],
};
const response = await handleChatCore({
combo: comboSpec,
body: request,
});
console.log(response);
The fill-first strategy routes to the first available provider in the sequence, automatically failing over to subsequent targets if the primary returns an error or timeout.
Summary
- OmniRoute supports over 300 LLM providers ranging from commercial APIs to local inference engines
- Provider definitions reside in
src/shared/constants/providers.tswith Zod schema validation for type safety - The
open-sse/config/providerRegistry.tsfile handles runtime registration of executors and translators - Use
omniroute providers listto enumerate available providers via CLI - Combo routing enables intelligent failover across multiple providers using strategies like
fill-firstdefined inopen-sse/services/combo.ts
Frequently Asked Questions
How many LLM providers does OmniRoute support?
OmniRoute aggregates over 300 distinct LLM providers including major cloud APIs, local model servers, and custom HTTP endpoints. The exact count varies by release and is documented in the auto-generated [PROVIDER_REFERENCE.md](https://github.com/diegosouzapw/OmniRoute/blob/main/docs/reference/PROVIDER_REFERENCE.md).
Where is the provider configuration stored in the OmniRoute source code?
The canonical provider list is defined in [src/shared/constants/providers.ts](https://github.com/diegosouzapw/OmniRoute/blob/main/src/shared/constants/providers.ts). This file exports a Zod-validated configuration object that specifies each provider's endpoint, authentication type, and supported capabilities.
Can I add custom LLM providers to OmniRoute?
Yes. OmniRoute supports the generic-rest provider type for arbitrary HTTP endpoints, and the modular architecture in open-sse/config/providerRegistry.ts allows developers to register custom executors and translators for proprietary APIs without modifying core library code.
How does OmniRoute handle authentication for different providers?
Authentication logic is provider-specific and centralized in [src/lib/oauth/providers.ts](https://github.com/diegosouzapw/OmniRoute/blob/main/src/lib/oauth/providers.ts). The system supports API keys, OAuth 2.0 flows, and custom header injection, with credentials resolved securely at request time rather than being exposed in public configuration files.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →