> ## Documentation Index
> Fetch the complete documentation index at: https://gomodel-feat-cache-economic-optimization.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Providers Overview

> Supported AI providers in GoModel and which ones have dedicated configuration guides.

GoModel routes OpenAI-compatible requests to many AI providers through one
gateway. For most providers, setting the API key is the whole setup. The pages
in this section exist for the ones whose setup is **not** purely "set an API
key" — auth flows from cloud credentials, deployment-based URLs, region or
project requirements, dual native + OpenAI-compatible API surfaces, or other
quirks.

## Configuring providers without env vars

Every credential below (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, ...) can
instead be set from the **Providers** page in the admin dashboard
(`/admin/dashboard`) — no restart required. This is the easiest way to run
GoModel with zero provider env vars: start the gateway with none configured
(the catalog starts empty; the gateway still boots and serves the dashboard),
then add providers from the UI. A provider added this way registers into the
running gateway immediately.

Providers declared via env vars or `config.yaml` always take precedence: a
name configured either way is **read-only** in the dashboard (shown with a
"Config" badge), the same rule GoModel already applies to MCP servers,
virtual models, and rate limits. API keys and service-account secrets are
masked (`***`) once saved — editing a provider re-sends `***` for anything you
didn't change, and the gateway keeps the stored value. Disabling a provider
(rather than deleting it) unregisters it from routing but keeps its
configuration on file. The same multi-key rotation env vars support
(`api_keys`, an ordered list) is available from the dashboard form.

## Supported providers

Example model identifiers are illustrative and subject to change; consult
provider catalogs for current models. Feature columns reflect gateway API
support, not every individual model capability exposed by an upstream provider.

| Provider                             | Credential                                                        | Example Model                              | Chat | `/responses` | Embed | Files | Batches | Passthru | Guide                                            |
| ------------------------------------ | ----------------------------------------------------------------- | ------------------------------------------ | :--: | :----------: | :---: | :---: | :-----: | :------: | ------------------------------------------------ |
| OpenAI                               | `OPENAI_API_KEY`                                                  | `gpt-5.5`                                  |   ✅  |       ✅      |   ✅   |   ✅   |    ✅    |     ✅    | —                                                |
| Anthropic                            | `ANTHROPIC_API_KEY`                                               | `claude-sonnet-4-20250514`                 |   ✅  |       ✅      |   ❌   |   ❌   |    ✅    |     ✅    | [Anthropic](/providers/anthropic)                |
| Cohere                               | `COHERE_API_KEY`                                                  | `command-a-plus-05-2026`                   |   ✅  |       ✅      |   ✅   |   ❌   |    ❌    |     ✅    | [Cohere](/providers/cohere)                      |
| Google Gemini                        | `GEMINI_API_KEY`                                                  | `gemini-2.5-flash`                         |   ✅  |       ✅      |   ✅   |   ✅   |    ✅    |     ❌    | [Google Gemini](/providers/gemini)               |
| Google Vertex AI                     | `VERTEX_PROJECT` + `VERTEX_LOCATION` + GCP credentials            | `google/gemini-2.5-flash`                  |   ✅  |       ✅      |   ✅   |   ❌   |    ❌    |     ❌    | [Google Vertex AI](/providers/vertex)            |
| DeepSeek                             | `DEEPSEEK_API_KEY`                                                | `deepseek-v4-pro`                          |   ✅  |       ✅      |   ❌   |   ❌   |    ❌    |     ✅    | [DeepSeek](/providers/deepseek)                  |
| Groq                                 | `GROQ_API_KEY`                                                    | `llama-3.3-70b-versatile`                  |   ✅  |       ✅      |   ✅   |   ✅   |    ✅    |     ❌    | —                                                |
| Fireworks AI                         | `FIREWORKS_API_KEY` (`FIREWORKS_BASE_URL` optional)               | `accounts/fireworks/models/gpt-oss-120b`   |   ✅  |       ✅      |   ✅   |   ❌   |    ❌    |     ✅    | —                                                |
| Meta (Muse Spark)                    | `META_API_KEY` (`META_BASE_URL` optional)                         | `muse-spark-1.1`                           |   ✅  |       ✅      |   ❌   |   ❌   |    ❌    |     ✅    | —                                                |
| OpenRouter                           | `OPENROUTER_API_KEY`                                              | `google/gemini-2.5-flash`                  |   ✅  |       ✅      |   ✅   |   ✅   |    ✅    |     ✅    | —                                                |
| Kilo AI                              | `KILO_API_KEY` (`KILO_BASE_URL` optional)                         | `anthropic/claude-sonnet-4.5`              |   ✅  |       ✅      |   ❌   |   ❌   |    ❌    |     ✅    | —                                                |
| Z.ai                                 | `ZAI_API_KEY` (`ZAI_BASE_URL` optional)                           | `glm-5.1`                                  |   ✅  |       ✅      |   ✅   |   ❌   |    ❌    |     ✅    | —                                                |
| xAI (Grok)                           | `XAI_API_KEY`                                                     | `grok-4.5`                                 |   ✅  |       ✅      |   ✅   |   ✅   |    ✅    |     ❌    | [xAI (Grok)](/providers/xai)                     |
| Alibaba Cloud Model Studio (Bailian) | `BAILIAN_API_KEY` (`BAILIAN_BASE_URL` optional)                   | `qwen3-max`                                |   ✅  |       ✅      |   ✅   |   ✅   |    ✅    |     ✅    | [Alibaba Cloud Model Studio](/providers/bailian) |
| MiniMax                              | `MINIMAX_API_KEY` (`MINIMAX_BASE_URL` optional)                   | `MiniMax-M3`                               |   ✅  |       ✅      |   ✅   |   ❌   |    ❌    |     ✅    | —                                                |
| Xiaomi MiMo                          | `XIAOMI_API_KEY` (`XIAOMI_BASE_URL` optional)                     | `mimo-v2.5-pro`                            |   ✅  |       ✅      |   ❌   |   ❌   |    ❌    |     ✅    | [Xiaomi MiMo](/providers/xiaomi)                 |
| OpenCode Go                          | `OPENCODE_GO_API_KEY` (`OPENCODE_GO_BASE_URL` optional)           | `glm-5.1`                                  |   ✅  |       ✅      |   ❌   |   ❌   |    ❌    |     ❌    | [OpenCode Go](/providers/opencode-go)            |
| Kimi Code                            | `KIMICODE_API_KEY`                                                | `kimi-for-coding`                          |   ✅  |       ✅      |   ✅   |   ❌   |    ❌    |     ✅    | [Kimi Code](/providers/kimicode)                 |
| Azure OpenAI                         | `AZURE_API_KEY` + `AZURE_BASE_URL` (`AZURE_API_VERSION` optional) | `gpt-5`                                    |   ✅  |       ✅      |   ✅   |   ✅   |    ✅    |     ✅    | [Azure OpenAI](/providers/azure)                 |
| Oracle GenAI                         | `ORACLE_API_KEY` + `ORACLE_BASE_URL`                              | `openai.gpt-oss-120b`                      |   ✅  |       ✅      |   ❌   |   ❌   |    ❌    |     ❌    | [Oracle GenAI](/providers/oracle)                |
| Ollama                               | `OLLAMA_BASE_URL`                                                 | `llama3.2`                                 |   ✅  |       ✅      |   ✅   |   ❌   |    ❌    |     ❌    | [Ollama](/providers/multiple-ollama)             |
| vLLM                                 | `VLLM_BASE_URL` (`VLLM_API_KEY` optional)                         | `meta-llama/Llama-3.1-8B-Instruct`         |   ✅  |       ✅      |   ✅   |   ❌   |    ❌    |     ✅    | [vLLM](/providers/vllm)                          |
| Amazon Bedrock                       | `BEDROCK_BASE_URL` (region or endpoint) + AWS credentials         | `anthropic.claude-3-5-haiku-20241022-v1:0` |   ✅  |       ✅      |   ❌   |   ❌   |    ❌    |     ❌    | [Amazon Bedrock](/providers/bedrock)             |
| Amazon Bedrock Mantle                | `BEDROCK_MANTLE_API_KEY` or AWS credentials                       | `openai.gpt-5.6-sol`                       |   ✅  |       ✅      |   ❌   |   ❌   |    ❌    |     ❌    | [Bedrock Mantle](/providers/bedrock-mantle)      |

✅ Supported ❌ Unsupported

## Provider notes

* **Z.ai GLM Coding Plan** — set
  `ZAI_BASE_URL=https://api.z.ai/api/coding/paas/v4`.
* **MiniMax regions and current text models** — the default global endpoint is
  `https://api.minimax.io/v1`; accounts on the China platform should set
  `MINIMAX_BASE_URL=https://api.minimaxi.com/v1`. The current text model IDs
  are `MiniMax-M3` (1,000,000-token context; text, image, and video input) and
  `MiniMax-M2.7` (204,800-token context; text input). Per-million-token USD
  pricing is $0.60 input, $2.40 output, and $0.12 cached input for M3, and
  $0.30 input, $1.20 output, $0.06 cached input, and \$0.375 cache writes for
  M2.7. M3 supports adaptive or disabled thinking; M2.7 always thinks.
* **Amazon Bedrock Mantle** — GPT-5.6 Sol, Terra, and Luna accept only the
  Responses API on Mantle. GoModel sends `/v1/responses` requests directly to
  AWS and selects the required `/openai/v1/responses` upstream path.
* **Fireworks AI** — model IDs are account-scoped paths such as
  `accounts/fireworks/models/gpt-oss-120b`; use them verbatim in requests and
  in `FIREWORKS_MODELS`.
* **Meta (Muse Spark)** — the Meta Model API is OpenAI-compatible; set
  `META_API_KEY` and route to `muse-spark-1.1`. Muse Spark models are not in
  the upstream model catalog yet, so declare `context_window` and `pricing`
  under `providers.meta.models` metadata in `config.yaml` if you want cost
  tracking and context-window reporting.
* **Kilo AI** — model IDs use `provider/model` (for example,
  `anthropic/claude-sonnet-4.5`) and are forwarded unchanged. GoModel serves
  `/v1/responses` by translating it to Kilo's chat-completions endpoint. If
  another configured provider exposes the same raw model ID, select Kilo
  explicitly with `kilo/anthropic/claude-sonnet-4.5`; GoModel removes only the
  outer `kilo/` routing qualifier before forwarding.
* **Xiaomi MiMo** — TTS (`mimo-v2.5-tts*`) and ASR (`mimo-v2.5-asr`) are served
  through `/v1/audio/speech` and `/v1/audio/transcriptions` (translated to
  MiMo's chat-completions audio dialect) as well as directly via chat
  completions; for 1M context append `[1m]` to the model ID and list it in
  `XIAOMI_MODELS`.
* **OpenCode Go (OpenCode Zen)** — routes per model: most models use
  OpenAI-style `/chat/completions`, while `/messages`-only models (default
  `qwen3.7-max`, override with `OPENCODE_GO_MESSAGES_MODELS`) are sent to the
  Anthropic-native endpoint. Set `OPENCODE_GO_API_KEY`; the base URL defaults to
  `https://opencode.ai/zen/go/v1`.
* **Kimi Code** — no per-token pricing; quota refreshes weekly and is also
  constrained by a rolling 5-hour window. Usage-cost tracking reports zero for
  Kimi Code, so `cost` load-balancing cannot price it; prefer conservative
  retry strategies.
* **Configured model lists** — available for every provider with
  `<PROVIDER>_MODELS`, for example
  `OPENROUTER_MODELS=openai/gpt-oss-120b,anthropic/claude-sonnet-4` or
  `ORACLE_MODELS=openai.gpt-oss-120b,xai.grok-3`. DeepSeek defaults to
  `https://api.deepseek.com`; set `DEEPSEEK_BASE_URL` only when using a
  compatible proxy or alternate DeepSeek endpoint. By default,
  `CONFIGURED_PROVIDER_MODELS_MODE=fallback` uses those lists only when upstream
  `/models` is unavailable or empty. Set
  `CONFIGURED_PROVIDER_MODELS_MODE=allowlist` to expose only configured models
  for providers that define a list, skipping their upstream `/models` calls.
* **vLLM** — set `VLLM_API_KEY` only if the upstream server was started with
  `--api-key`.
* **Multiple API keys for one provider** — set `OPENAI_API_KEY_2`,
  `OPENAI_API_KEY_3`, and so on to spread sessions across keys while keeping
  each conversation on one key for prompt-cache affinity. See
  [API key rotation](/providers/key-rotation).
* **Multiple instances of one provider type** — without `config.yaml`, use
  suffixed env vars such as `OPENAI_EAST_API_KEY` and `OPENAI_EAST_BASE_URL`;
  add `OPENAI_EAST_MODELS` to configure that instance's model list. This
  registers provider `openai-east` with type `openai`. Vertex AI follows the
  same suffix pattern — `VERTEX_US_PROJECT` registers provider `vertex-us`.
  Vertex project and location env vars must match the instance prefix: for a
  suffixed instance such as `VERTEX_US_PROJECT`, also set `VERTEX_US_LOCATION`
  and any other suffixed settings for that instance, rather than the generic
  `VERTEX_PROJECT` / `VERTEX_LOCATION`. `VERTEX_AUTH_TYPE` defaults to
  Application Default Credentials (`gcp_adc`).

## Why some providers have dedicated pages

These are the providers most users hit friction on:

* **Google Vertex AI** — needs a GCP project, region, and either Application
  Default Credentials or a service-account JSON key.
* **Amazon Bedrock** — no API key of its own; uses the AWS credential chain
  and requires explicit model access in the Bedrock console.
* **Azure OpenAI** — deployment-scoped base URLs, the `api-version` query
  parameter, and the `api-key` header instead of `Authorization: Bearer`.
* **Oracle GenAI** — requires an OCI IAM policy for `generativeaiapikey` and a
  region-specific OpenAI-compatible endpoint URL.
* **Google Gemini (AI Studio)** — two routing modes (native `generateContent`
  vs OpenAI-compatible) with different image-input behavior.
* **Anthropic** — reasoning effort maps to Claude's adaptive thinking and
  effort control, which differ across model generations.
* **DeepSeek** — reasoning effort mapping quirks for DeepSeek V4.
* **Ollama / vLLM** — local-model hosting with optional multi-instance setup
  through suffixed env vars and provider-qualified model IDs.
* **Xiaomi MiMo** — thinking mode on by default, a `[1m]` context suffix, and
  TTS/ASR that run through chat completions rather than native audio endpoints.
* **OpenCode Go** — OpenCode Zen splits models across OpenAI-style
  `/chat/completions` and Anthropic-native `/messages`; GoModel routes per model
  (the `/messages`-only set is maintained manually, default `qwen3.7-max`).

<Tip>
  Every provider page shows three launch forms in one CodeGroup: Docker with
  `--env-file .env` (recommended), Docker with inline `-e` flags, and a
  prebuilt binary from `make build`. Once you have more than a couple of
  variables, copy `.env.template`, fill in the values you need, and reuse the
  same file for both Docker and the native binary.
</Tip>

Providers without a dedicated page (OpenAI, Groq, Fireworks AI, Meta,
OpenRouter, Kilo AI, Z.ai, xAI, MiniMax) follow the same pattern: set the API key (and
optional base URL where supported), start GoModel, route by model ID. The full env-var reference
lives in [Configuration](/advanced/configuration).

## Provider status

The admin dashboard (`/admin/dashboard`) shows live status for every
configured provider in the **Providers Overview** section of the
**Overview** page.

<img src="https://mintcdn.com/gomodel-feat-cache-economic-optimization/63KXA85lQTJP7k79/providers/provider-status.png?fit=max&auto=format&n=63KXA85lQTJP7k79&q=85&s=b6ce7cf9ffdf95eff2b5fabc5119223e" alt="GoModel dashboard Providers Overview with a Degraded openai card showing a failing model and a Healthy vllm card" style={{ width: "100%", maxWidth: "1280px", height: "auto" }} className="rounded-lg" width="930" height="780" data-path="providers/provider-status.png" />

Each card's status pill combines two signals — **model discovery** (can the
provider's model inventory be fetched?) and **request health** (are real
requests through the gateway succeeding?). Real-traffic signals only ever
worsen a status, never mask a discovery failure. Hover over the pill for the
classification reason and the most recent error.

| Pill           | Meaning                                                                                                             |
| -------------- | ------------------------------------------------------------------------------------------------------------------- |
| `Healthy`      | Model discovery succeeded and recent traffic (if any) looks fine                                                    |
| `Starting`     | Configured and awaiting first model discovery                                                                       |
| `Configured`   | Configured but no models exposed yet                                                                                |
| `Degraded`     | The latest refresh failed (previous inventory still serves), **or** a specific model's recent requests keep failing |
| `Recovering`   | The circuit breaker is half-open and probing whether the provider recovered                                         |
| `Circuit Open` | The circuit breaker is open; traffic to the provider is paused                                                      |
| `Unhealthy`    | Model discovery failed and no models are available                                                                  |

Expand a card (the arrow strip at the bottom, or the section-wide
**Show Details** switch) to see request health details:

* **Recent Requests** — requests and errors through the gateway in the last
  10 minutes.
* **Breaker State** — the provider's live circuit-breaker state
  (see [Resilience](/advanced/resilience#circuit-breaker-and-dashboard-provider-health)).
* **Models (Recent Traffic)** — per-model request/error counts. A model with
  at least 3 errors making up half or more of its windowed requests is
  flagged in red — this catches a single broken model on an otherwise
  healthy provider, which model discovery alone cannot see. Hover a row for
  the model's latest error message.

Request-health tracking is passive: it observes traffic your clients already
send (the gateway's own background probes — model discovery and availability
checks — are excluded), so an idle provider simply shows no recent requests. Counters are in-memory per gateway instance and
reset on restart.

The same data is available as JSON from `GET /admin/providers/status` for
scripting and external monitoring.
