# Which LLM Providers Does OmniRoute Support? A Complete Technical Reference

> Discover which LLM providers OmniRoute supports. Explore integrations with OpenAI, Anthropic, Google Gemini, Azure, Ollama, and more in this technical reference.

- Repository: [Diego Rodrigues de Sa e Souza/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
- Tags: api-reference
- Published: 2026-08-27

---

**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)](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)](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/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)](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)](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:

1. **Executor**: Handles provider-specific HTTP implementations (e.g., `OpenAIExecutor`, `AnthropicExecutor`)
2. **Translator**: Maps between OmniRoute's unified schema and provider-native request/response formats located in `open-sse/translator/`
3. **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)](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

```bash
omniroute providers list

```

This command reads the same constants used by the server runtime and outputs all registered provider IDs.

### Programmatic Model Discovery

```typescript
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)](https://github.com/diegosouzapw/OmniRoute/blob/main/open-sse/services/combo.ts).

```typescript
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.ts`](https://github.com/diegosouzapw/OmniRoute/blob/main/src/shared/constants/providers.ts)** with Zod schema validation for type safety
- The **[`open-sse/config/providerRegistry.ts`](https://github.com/diegosouzapw/OmniRoute/blob/main/open-sse/config/providerRegistry.ts)** file handles runtime registration of executors and translators
- Use **`omniroute providers list`** to enumerate available providers via CLI
- **Combo routing** enables intelligent failover across multiple providers using strategies like `fill-first` defined in [`open-sse/services/combo.ts`](https://github.com/diegosouzapw/OmniRoute/blob/main/open-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/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)](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`](https://github.com/diegosouzapw/OmniRoute/blob/main/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)](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.