Routeplane fronts 14 providers through one OpenAI-compatible API. Dedicated adapters handle the native wire formats (Anthropic Messages, Gemini generateContent, Cohere /v2/chat, Azure OpenAI deployments); the large family of OpenAI-wire-compatible providers shares one parameterized adapter, so each is a base-URL + key.
| Family | Providers (the x-routeplane-provider value) |
|---|---|
| Dedicated adapters | openai, azure_openai, anthropic, gemini, cohere, bedrock |
| OpenAI-wire compatible | groq, mistral, deepseek, together, fireworks, xai, openrouter |
| Self-hosted / OpenAI-compatible | self_hosted — point it at Ollama, vLLM, LocalAI, or any other OpenAI-compatible endpoint (e.g. Perplexity, Cerebras, DeepInfra) |
Embeddings (/v1/embeddings) are served by the providers that offer them (OpenAI, Azure OpenAI, Gemini, Mistral, OpenRouter); others return a typed embeddings_not_supported (422). Bring your own self-hosted OpenAI-compatible endpoint by adding it to the registry.
Two optional headers shape how a request is routed when no saved config applies:
| Header | Default | Description |
|---|---|---|
x-routeplane-provider | openai | A provider, or comma-separated fallback chain (e.g. openai,anthropic). |
x-routeplane-strategy | priority | Candidate ordering: priority, weighted, cost, or latency. |
Both are superseded by a routing config when one is supplied, and both are overridden by sovereign routing whenever regulated data and a residency jurisdiction apply, see Sovereign routing.