What LLM Providers Are Supported by OmniRoute? Complete Registry Guide
OmniRoute supports over 20 LLM providers including OpenAI, Anthropic, Google Gemini, Azure OpenAI, and local inference engines like Ollama and LLaMA.cpp, all centralized in the REGISTRY map within open-sse/config/providerRegistry.ts.
OmniRoute is an open-source intelligent routing layer designed to unify access to diverse large language model APIs and local inference backends. Understanding what LLM providers are supported by OmniRoute enables developers to configure resilient multi-provider architectures with automatic failover. At release v3.8.51, the platform maintains a comprehensive Provider Registry that defines supported upstream services, authentication methods, and routing capabilities.
Provider Registry Architecture
The canonical source of truth for supported providers resides in open-sse/config/providerRegistry.ts. This file exports a constant REGISTRY map where each key represents a unique provider identifier string (e.g., "openai", "anthropic", "ollama").
Every entry in the registry includes metadata that drives routing decisions, authentication handling, and model discovery. You can retrieve the complete list of supported providers at runtime using the getRegisteredProviders() helper function, which returns an array of all registered provider identifiers.
Complete List of Supported LLM Providers
As of release v3.8.51, OmniRoute officially supports the following provider categories:
Cloud API Providers (API-Key Authentication)
These providers require standard API key headers for authentication:
openai– OpenAI GPT-4, ChatGPT, and embedding modelsanthropic– Claude family (Claude-3, Claude-2, Claude Instant)cohere– Command-R, Command-R-plus, and embedding modelsmistral– Mistral-7B, Mixtral, and OpenMixtral variantsgroq– Groq-hosted Llama-3.1 and Mixtral implementationsxai– xAI Titan model seriestogether– Together.ai hosted models (Llama-2, MPT, and others)deepseek– DeepSeek-Chat and DeepSeek-Coderopenrouter– OpenRouter aggregation service covering many third-party modelsai21– Jurassic-2 series modelsalephalpha– Aleph Alpha Luminous modelsfireworks– Fireworks AI hosted modelsperplexity– Perplexity AI chat models
Cloud Providers (OAuth Authentication)
These providers use OAuth flows or service-specific authentication schemes:
google– Gemini models (Gemini-1.5-Flash, Gemini-1.5-Pro)azure– Azure OpenAI Service deployment-specific modelshuggingface– Hugging Face Inference API for any Hub model
AWS Bedrock Integration
OmniRoute supports model access through Amazon Bedrock using OAuth-based credentials:
anthropic/bedrock– Anthropic models via AWS Bedrockgoogle/bedrock– Google models via AWS Bedrockazure/bedrock– Azure-hosted Bedrock providers
Local and Self-Hosted Inference
For on-premises or development environments:
ollama– Ollama server integration for any locally available modelllama.cpp– LLaMA.cpp static binary integration
Querying Providers at Runtime
Retrieve all supported providers programmatically to build dynamic UIs or validation logic:
import { getRegisteredProviders } from "@omniroute/open-sse/config/providerRegistry";
const providers = getRegisteredProviders();
console.log("Supported providers:", providers);
// Output: ['openai', 'anthropic', 'google', 'ollama', ...]
Checking Provider Authentication Types
Determine whether a provider uses OAuth or API-key authentication using getProviderCategory():
import { getProviderCategory } from "@omniroute/open-sse/config/providerRegistry";
function isOAuth(provider: string): boolean {
return getProviderCategory(provider) === "oauth";
}
console.log(isOAuth("google")); // true
console.log(isOAuth("openai")); // false
console.log(isOAuth("ollama")); // false
Provider Validation in API Routes
When handling requests, validate providers against the registry before routing:
// src/app/api/v1/providers/[provider]/chat/completions/route.ts
import { getRegistryEntry } from "@omniroute/open-sse/config/providerRegistry";
export async function POST(
req: Request,
{ params }: { params: { provider: string } }
) {
const { provider } = params;
const entry = getRegistryEntry(provider);
if (!entry) throw new Error(`Unknown provider: ${provider}`);
// Use entry.metadata to build HTTP requests, auth headers, etc.
}
Integration Architecture and Key Files
OmniRoute's provider support extends across several critical system components:
-
open-sse/config/providerRegistry.ts– DefinesREGISTRYand lookup utilities (getRegisteredProviders,getProviderCategory,getRegistryEntry) -
src/lib/providers/validation/*.ts– Provider-specific validation logic that checks model constraints against registry metadata (e.g.,openaiFormat.ts) -
src/app/api/v1/providers/[provider]/chat/completions/route.ts– Dynamic API route that dispatches requests by consulting the registry at runtime -
src/lib/proxyHealth/providerProbeTarget.ts– Health monitoring system that usesgetRegisteredProviders()to build probing targets for resilience checking -
src/lib/usage/comboScoringInspector.ts– Combo-routing logic that filters providers based on registry metadata for quota management and scoring
Adding a new LLM provider requires only extending the REGISTRY map in the configuration file—surrounding systems automatically recognize and validate the new entry.
Summary
- OmniRoute maintains a centralized Provider Registry in
open-sse/config/providerRegistry.tsthat defines all supported LLM providers as of v3.8.51. - The platform supports 20+ providers ranging from cloud APIs (OpenAI, Anthropic, Google) to local inference (Ollama, LLaMA.cpp) and AWS Bedrock integrations.
- Providers are categorized by authentication type: API-key, OAuth, or Local access.
- Use
getRegisteredProviders()to retrieve the full list at runtime for dynamic routing interfaces. - The registry architecture enables automatic validation, health checking, and failover across all supported providers without code changes to core routing logic.
Frequently Asked Questions
How do I add a custom LLM provider to OmniRoute?
Create a new entry in the REGISTRY map within open-sse/config/providerRegistry.ts. Define the provider ID, authentication category (api-key, oauth, or local), and any provider-specific metadata. Once added, getRegisteredProviders() automatically includes the new provider, and validation utilities in src/lib/providers/validation/ will recognize it for request processing.
What authentication methods does OmniRoute support for LLM providers?
OmniRoute supports three authentication categories as defined in the registry: API-key authentication for most cloud providers (sent via headers), OAuth flows for services like Google Gemini and Azure OpenAI, and Local connections for self-hosted Ollama or LLaMA.cpp instances requiring no remote authentication. Check specific provider requirements using getProviderCategory(providerId).
Does OmniRoute support local LLM inference without cloud dependencies?
Yes. OmniRoute natively supports ollama for Ollama server integration and llama.cpp for direct binary execution. These providers are categorized as "Local" in the registry and do not require API keys, enabling fully offline or on-premises LLM deployments alongside cloud providers.
How does OmniRoute handle routing to unsupported providers?
Requests to providers not present in the REGISTRY map return validation errors before reaching external APIs. The getRegistryEntry() function returns undefined for unknown providers, allowing middleware in routes like src/app/api/v1/providers/[provider]/chat/completions/route.ts to throw descriptive errors and prevent misconfigured requests from consuming resources.
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 →