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.
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 |
| Google Gemini | GEMINI_API_KEY | gemini-2.5-flash | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | Google Gemini |
| Google Vertex AI | VERTEX_PROJECT + VERTEX_LOCATION + GCP credentials | google/gemini-2.5-flash | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | Google Vertex AI |
| DeepSeek | DEEPSEEK_API_KEY | deepseek-v4-pro | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | DeepSeek |
| Groq | GROQ_API_KEY | llama-3.3-70b-versatile | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | — |
| OpenRouter | OPENROUTER_API_KEY | google/gemini-2.5-flash | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| Z.ai | ZAI_API_KEY (ZAI_BASE_URL optional) | glm-5.1 | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | — |
| xAI (Grok) | XAI_API_KEY | grok-4 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | — |
| Alibaba Cloud Model Studio (Bailian) | BAILIAN_API_KEY (BAILIAN_BASE_URL optional) | qwen3-max | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Alibaba Cloud Model Studio |
| 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 |
| OpenCode Go | OPENCODE_GO_API_KEY (OPENCODE_GO_BASE_URL optional) | glm-5.1 | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | OpenCode Go |
| Azure OpenAI | AZURE_API_KEY + AZURE_BASE_URL (AZURE_API_VERSION optional) | gpt-5 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Azure OpenAI |
| Oracle GenAI | ORACLE_API_KEY + ORACLE_BASE_URL | openai.gpt-oss-120b | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | Oracle GenAI |
| Ollama | OLLAMA_BASE_URL | llama3.2 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | Ollama |
| vLLM | VLLM_BASE_URL (VLLM_API_KEY optional) | meta-llama/Llama-3.1-8B-Instruct | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | vLLM |
| Amazon Bedrock | BEDROCK_BASE_URL (region or endpoint) + AWS credentials | anthropic.claude-3-5-haiku-20241022-v1:0 | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | Amazon Bedrock |
✅ Supported ❌ Unsupported
Provider notes
- Z.ai GLM Coding Plan — set
ZAI_BASE_URL=https://api.z.ai/api/coding/paas/v4.
- 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.
- 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 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).
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.
Providers without a dedicated page (OpenAI, Groq, OpenRouter, 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.