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.
✅ 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 setMINIMAX_BASE_URL=https://api.minimaxi.com/v1. The current text model IDs areMiniMax-M3(1,000,000-token context; text, image, and video input) andMiniMax-M2.7(204,800-token context; text input). Per-million-token USD pricing is 2.40 output, and 0.30 input, 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/responsesrequests directly to AWS and selects the required/openai/v1/responsesupstream path. - Fireworks AI — model IDs are account-scoped paths such as
accounts/fireworks/models/gpt-oss-120b; use them verbatim in requests and inFIREWORKS_MODELS. - Meta (Muse Spark) — the Meta Model API is OpenAI-compatible; set
META_API_KEYand route tomuse-spark-1.1. Muse Spark models are not in the upstream model catalog yet, so declarecontext_windowandpricingunderproviders.meta.modelsmetadata inconfig.yamlif 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/responsesby translating it to Kilo’s chat-completions endpoint. If another configured provider exposes the same raw model ID, select Kilo explicitly withkilo/anthropic/claude-sonnet-4.5; GoModel removes only the outerkilo/routing qualifier before forwarding. - Xiaomi MiMo — TTS (
mimo-v2.5-tts*) and ASR (mimo-v2.5-asr) are served through/v1/audio/speechand/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 inXIAOMI_MODELS. - OpenCode Go (OpenCode Zen) — routes per model: most models use
OpenAI-style
/chat/completions, while/messages-only models (defaultqwen3.7-max, override withOPENCODE_GO_MESSAGES_MODELS) are sent to the Anthropic-native endpoint. SetOPENCODE_GO_API_KEY; the base URL defaults tohttps://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
costload-balancing cannot price it; prefer conservative retry strategies. - Configured model lists — available for every provider with
<PROVIDER>_MODELS, for exampleOPENROUTER_MODELS=openai/gpt-oss-120b,anthropic/claude-sonnet-4orORACLE_MODELS=openai.gpt-oss-120b,xai.grok-3. DeepSeek defaults tohttps://api.deepseek.com; setDEEPSEEK_BASE_URLonly when using a compatible proxy or alternate DeepSeek endpoint. By default,CONFIGURED_PROVIDER_MODELS_MODE=fallbackuses those lists only when upstream/modelsis unavailable or empty. SetCONFIGURED_PROVIDER_MODELS_MODE=allowlistto expose only configured models for providers that define a list, skipping their upstream/modelscalls. - vLLM — set
VLLM_API_KEYonly 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. - Multiple instances of one provider type — without
config.yaml, use suffixed env vars such asOPENAI_EAST_API_KEYandOPENAI_EAST_BASE_URL; addOPENAI_EAST_MODELSto configure that instance’s model list. This registers provideropenai-eastwith typeopenai. Vertex AI follows the same suffix pattern —VERTEX_US_PROJECTregisters providervertex-us. Vertex project and location env vars must match the instance prefix: for a suffixed instance such asVERTEX_US_PROJECT, also setVERTEX_US_LOCATIONand any other suffixed settings for that instance, rather than the genericVERTEX_PROJECT/VERTEX_LOCATION.VERTEX_AUTH_TYPEdefaults 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-versionquery parameter, and theapi-keyheader instead ofAuthorization: Bearer. - Oracle GenAI — requires an OCI IAM policy for
generativeaiapikeyand a region-specific OpenAI-compatible endpoint URL. - Google Gemini (AI Studio) — two routing modes (native
generateContentvs 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/completionsand Anthropic-native/messages; GoModel routes per model (the/messages-only set is maintained manually, defaultqwen3.7-max).
Provider status
The admin dashboard (/admin/dashboard) shows live status for every
configured provider in the Providers Overview section of the
Overview page.

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).
- 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.
GET /admin/providers/status for
scripting and external monitoring.