Providers
The Ferro Labs AI Gateway speaks to 30 LLM providers behind a single
OpenAI-compatible API. Point any client written against the OpenAI SDK at the
gateway and it reaches every provider unchanged โ the gateway translates each
request and response to and from the OpenAI shape, whether the upstream is an
OpenAI-compatible surface or a native wire (Anthropic Messages, Gemini
generateContent, Cohere v2, Bedrock InvokeModel, Vertex, Replicate).
This page is the provider directory: the logo grid links each provider to its per-provider setup, and the endpoint-support matrix shows which surfaces each one implements. For the catalogue of individual models (2,500+ across all providers), browse ferrolabs.ai/models โ this page does not list models.
targets is an allowlist (v1.4.0+)Setting a provider's environment variable registers it, but registration is
not routing. A provider only serves traffic when it is listed under targets[]
in your config. A request for a model owned only by an unlisted provider returns
404 model_not_found, even though the provider is present in the process and
healthy. Registration is driven by which credentials the environment holds;
routing is driven by which names the config lists โ the two sets can be disjoint.
See Routing and Provider configuration.
Supported providersโ
Endpoint-support matrixโ
Which OpenAI-compatible surface each provider implements, as of v1.5.2. This
mirrors the machine-checked matrix in the gateway source (providers/README.md),
which fails the build if a provider's real interface set ever drifts from it.
- โ โ a typed surface (
Complete,Embed,Rerank, โฆ), or a working/v1/*pass-through for the Proxy column. - โ โ not implemented, or (for Proxy) a native-wire provider whose raw
/v1/*pass-through returns 501 by design. Reach those through the translated surfaces to their left.
Audio groups transcription (STT) and speech (TTS) โ โ if a provider serves either. Rerank uses the Cohere-v2 contract; every other column uses the OpenAI contract. Every provider implements Chat and Stream by definition.
| Provider | Chat | Stream | Embed | Image | Audio | Rerank | Moder. | Batch | Responses | Proxy |
|---|---|---|---|---|---|---|---|---|---|---|
| AI21 Labs | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Anthropic | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Azure AI Foundry | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Azure OpenAI | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| AWS Bedrock | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Cerebras | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Cloudflare Workers AI | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Cohere | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Databricks | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| DeepInfra | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| DeepSeek | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Fireworks AI | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Google Gemini | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Groq | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Hugging Face | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Mistral AI | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Moonshot AI | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Novita | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| NVIDIA NIM | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Ollama | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Ollama Cloud | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| OpenAI | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| OpenRouter | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Perplexity | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Qwen | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Replicate | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| SambaNova | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Together AI | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| Google Vertex AI | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
| xAI | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Totals โ Chat / Stream: 30 ยท Embeddings: 21 ยท Images: 10 ยท Audio: 9 ยท Rerank:
5 (bedrock, cohere, deepinfra, nvidia-nim, together) ยท Moderations: 2
(openai, mistral) ยท Batch: 5 (openai, azure-openai, groq, novita,
qwen) ยท Responses: 2 (openai, xai) ยท Proxy pass-through: 21.
Nine providers show โ for Proxy. Eight are native-wire โ Anthropic, AWS
Bedrock, Cohere, Google Gemini, Google Vertex AI, Replicate, and the two Azure
surfaces โ whose raw /v1/* pass-through returns 501 by design (reach them
through the translated columns). Ollama Cloud is the one provider that is not
proxiable at all. A โ in a capability column is not a routing limitation:
those providers still route every model the catalog, live discovery, or
targets[].models names.
How a provider is declaredโ
A provider has two independent parts: credentials (from the environment) and a target (in your config). Both must be present for the provider to serve.
Credentials never live in config.yaml. Each provider reads its API key and
any special settings from environment variables โ OPENAI_API_KEY,
ANTHROPIC_API_KEY, AZURE_OPENAI_ENDPOINT, and so on. A provider is
auto-registered the moment its required environment variables are present; no
main.go edit and no config entry is needed to register it.
A target names a provider by virtual_key. In config, a routing target
refers to a registered provider by its id โ that id is the whole declaration:
strategy:
mode: fallback
targets:
- virtual_key: openai # the provider id โ this is the declaration
retry:
attempts: 3
- virtual_key: anthropic
Only providers listed under targets[] route traffic (see the allowlist warning
above). For every provider's exact environment variables, optional
<PROVIDER>_BASE_URL override, and any special configuration keys, see
Provider configuration.
Relatedโ
- Provider configuration โ per-provider environment variables and special settings
- Routing โ how
targets[], strategies, and failover work - Model catalogue โ every model across all 30 providers
- Quickstart โ send your first request through the gateway
- API reference โ the OpenAI-compatible endpoints each column maps to