Skip to content

Provider catalog

Complete catalog of 50+ providers with IDs, aliases, base URLs, auth, capabilities, and temperature compatibility.

Revka talks to more than 50 AI provider back-ends through a single unified Provider trait. This page is the reference catalog: every canonical provider ID, its aliases, base URL, the credential it expects, and which capabilities it supports. Use it to look up the exact default_provider value to put in config.toml, to find the right env var for a key, or to confirm whether a provider supports vision or native tool calling.

If you just want to get a single provider running, start with the Provider quickstart. For the deeper, provider-family guides — cloud APIs, local servers, OAuth/subscription, and China-region endpoints — follow the cross-links in each section below.

Terminal window
revka providers # print the live provider list from your build

Providers fall into four implementation categories:

  • First-party API providers with custom implementations: anthropic, openai, gemini, bedrock, ollama, openrouter, azure_openai, openai-codex, telnyx, copilot, glm.
  • OpenAI-compatible providers that share one implementation (OpenAiCompatibleProvider) — the largest family, covering Groq, Mistral, DeepSeek, xAI, Together, Fireworks, and dozens more.
  • CLI subprocess providers that spawn an authenticated local binary instead of hitting an API directly: claude-code, gemini-cli, kilocli. See OAuth & subscription providers.
  • Routing / reliability wrappers (RouterProvider, ReliableProvider) that add hint-based dispatch, fallbacks, and retries on top of any primary provider. See Routing, reliability & tuning.

Every provider resolves its credential through the same three-step priority chain:

  1. Explicit credential from config or CLI (api_key).
  2. The provider-specific env var(s) listed in the catalog below (e.g. OPENROUTER_API_KEY).
  3. Generic fallbacks: REVKA_API_KEY, then API_KEY.

For resilience chains (reliability.fallback_providers), each fallback provider resolves its credential independently — the primary provider’s explicit key is not reused for fallbacks.

The capability columns reflect what the named provider implementation supports: Vision (image inputs), Tools (native tool calling), and Local (runs on your own machine). Empty cells mean the capability is not enabled for that provider.

Canonical IDAliasesBase URLAuth env var(s)ToolsVision
openrouterprovider-managedOPENROUTER_API_KEY
anthropicAnthropic Messages APIANTHROPIC_OAUTH_TOKEN, ANTHROPIC_API_KEY
openaihttps://api.openai.comOPENAI_API_KEY
geminigoogle, google-geminigenerativelanguage.googleapis.com/v1betaGEMINI_API_KEY, GOOGLE_API_KEY
bedrockaws-bedrockAWS Converse APIAWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY (or BEDROCK_API_KEY)
azure_openaiazure-openai, azureresource/deployment URIAZURE_OPENAI_API_KEY
groqhttps://api.groq.com/openai/v1GROQ_API_KEY
mistralhttps://api.mistral.ai/v1MISTRAL_API_KEY
xaigrokhttps://api.x.aiXAI_API_KEY
deepseekhttps://api.deepseek.comDEEPSEEK_API_KEY
togethertogether-aihttps://api.together.xyzTOGETHER_API_KEY
fireworksfireworks-aihttps://api.fireworks.ai/inference/v1FIREWORKS_API_KEY
novitahttps://api.novita.ai/openaiNOVITA_API_KEY
perplexityhttps://api.perplexity.aiPERPLEXITY_API_KEY
coherehttps://api.cohere.com/compatibilityCOHERE_API_KEY
venicehttps://api.venice.aiVENICE_API_KEY
vercelvercel-aihttps://ai-gateway.vercel.sh/v1VERCEL_API_KEY
cloudflarecloudflare-aihttps://gateway.ai.cloudflare.com/v1CLOUDFLARE_API_KEY
nvidianvidia-nim, build.nvidia.comhttps://integrate.api.nvidia.com/v1NVIDIA_API_KEY
synthetichttps://api.synthetic.new/openai/v1SYNTHETIC_API_KEY
opencodeopencode-zenhttps://opencode.ai/zen/v1OPENCODE_API_KEY
opencode-gohttps://opencode.ai/zen/go/v1OPENCODE_GO_API_KEY
telnyxhttps://api.telnyx.com/v2/aiTELNYX_API_KEY
aihubmixcustomAIHUBMIX_API_KEY
siliconflowsilicon-flowcustomSILICONFLOW_API_KEY
astraicustomASTRAI_API_KEY
aviancustomAVIAN_API_KEY
deepmystdeep-mystcustomDEEPMYST_API_KEY
ovhcloudovhcustomOVH_AI_ENDPOINTS_ACCESS_TOKEN

For Gemini, Bedrock, and Azure OpenAI setup — including Vertex AI, AWS SigV4 vs. Bearer auth, and Azure resource/deployment config — see Cloud API providers.

These providers route to a Global or CN base URL depending on the alias you choose (or MINIMAX_OAUTH_REGION). See China-region providers for the full alias and region-routing tables.

Canonical IDKey aliasesBase URL (Global / CN)Auth env var(s)
zaiz.ai, zai-global, zai-cnhttps://api.z.ai/api/coding/paas/v4 / https://open.bigmodel.cn/api/coding/paas/v4ZAI_API_KEY
glmzhipu, glm-global, glm-cn, bigmodelhttps://api.z.ai/api/paas/v4 / https://open.bigmodel.cn/api/paas/v4GLM_API_KEY
minimaxminimax-intl, minimax-cn, minimaxi, minimax-oauthhttps://api.minimax.io/v1 / https://api.minimaxi.com/v1MINIMAX_OAUTH_TOKEN, MINIMAX_API_KEY
moonshotkimi, moonshot-intl, moonshot-cn, kimi-cnhttps://api.moonshot.ai/v1 / .cnMOONSHOT_API_KEY
kimi-codekimi_coding, kimi_for_codinghttps://api.kimi.com/coding/v1KIMI_CODE_API_KEY, MOONSHOT_API_KEY
qwendashscope, qwen-intl, qwen-us, qwen-code, qwen-oauthregion-specific DashScopeDASHSCOPE_API_KEY, QWEN_OAUTH_TOKEN
bailianaliyun-bailian, aliyunhttps://coding.dashscope.aliyuncs.com/v1BAILIAN_API_KEY, DASHSCOPE_API_KEY
qianfanbaiduhttps://qianfan.baidubce.com/v2QIANFAN_API_KEY
doubaovolcengine, ark, doubao-cnhttps://ark.cn-beijing.volces.com/api/v3ARK_API_KEY, DOUBAO_API_KEY

Local servers default to a localhost endpoint with optional authentication — you do not need a dummy key. Override the host/port with api_url. See Local, self-hosted & custom endpoints.

Canonical IDAliasesDefault endpointAPI key
ollamahttp://localhost:11434 (native /api/chat)OLLAMA_API_KEY (optional)
llamacppllama.cpphttp://localhost:8080/v1LLAMACPP_API_KEY (optional; vision enabled)
lmstudiolm-studiohttp://localhost:1234/v1optional (default: lm-studio)
vllmhttp://localhost:8000/v1VLLM_API_KEY (optional)
sglanghttp://localhost:30000/v1SGLANG_API_KEY (optional)
osaurushttp://localhost:1337/v1OSAURUS_API_KEY (optional; default: osaurus)

These reuse a subscription authenticated through a native CLI or an OAuth flow instead of a direct API key. See OAuth & subscription providers.

Canonical IDAliasesAuth method
claude-codeLocal Claude Code CLI session (binary path: CLAUDE_CODE_PATH)
gemini-cliGemini CLI OAuth (~/.gemini/oauth_creds.json); GEMINI_API_KEY fallback
kiloclikiloLocal KiloCLI session (binary path: KILO_CLI_PATH)
openai-codexcodexOAuth via revka auth login --provider openai-codex (cached under ~/.revka/auth/)
copilotgithub-copilotGitHub device-code flow; GitHub OAuth token via config or API_KEY fallback

A single implementation, OpenAiCompatibleProvider, backs every provider that speaks the OpenAI /v1/chat/completions (or /v1/responses) JSON format. It handles Bearer or X-Api-Key auth, a custom User-Agent, vision via base64 images, an optional responses-API fallback on 404, native tool calling using the OpenAI JSON schema, reasoning-effort forwarding, extra HTTP headers, a configurable timeout, a custom API path, and a max-tokens cap.

You almost always select one of the named OpenAI-compatible providers (Groq, Mistral, etc.) by its ID. When you need an endpoint that isn’t registered, use the custom: prefix:

~/.revka/config.toml
default_provider = "custom:https://your-api.example.com/v1"
api_key = "your-key"
default_model = "your-model-name"

A few named providers have implementation quirks worth knowing:

  • MiniMax sets merge_system_into_userrole: system messages are merged into the first user turn, because the MiniMax API rejects a standalone system role. This affects channel conversations whose system prompts carry delivery guidance.
  • GLM and NVIDIA disable the responses-API fallback (no_responses_fallback), so a 404 is surfaced rather than retried against /v1/responses.
  • Venice has without_native_tools — tool calls are emulated through prompt injection instead of the native tool API.

See Local, self-hosted & custom endpoints for the full treatment of custom:, api_url, api_path, and extra_headers.

OpenRouter is the default provider out of the box and gives you access to 200+ models behind one key. Model IDs use the provider/model-name format.

~/.revka/config.toml
default_provider = "openrouter"
default_model = "anthropic/claude-sonnet-4-6"
FieldValue
Auth env varOPENROUTER_API_KEY (keys start with sk-or-)
provider_timeout_secs120 (default)
provider_max_tokensoptional output cap

Direct integration with the Anthropic Messages API. Supports native tool calling, vision (base64 inline images), prompt caching (cache_control), SSE streaming, and reasoning-content pass-through.

~/.revka/config.toml
default_provider = "anthropic"
default_model = "claude-sonnet-4-6-20250514"

One-shot from the CLI:

Terminal window
revka agent -p anthropic --model claude-opus-4-6 -m "Hello"
FieldValue
ANTHROPIC_API_KEYStandard Anthropic API key (sk-ant-…)
ANTHROPIC_OAUTH_TOKENSetup/OAuth token — checked before ANTHROPIC_API_KEY; meant for the auth setup flow, not normal API usage
Default max_tokens4096 (override with provider_max_tokens)

Direct integration with the OpenAI Chat Completions API (/v1/chat/completions). Supports native tool calling and reasoning-content handling — the o/o3 family return reasoning_content instead of content, and when content is empty the provider transparently falls back to reasoning_content so callers always receive text.

~/.revka/config.toml
default_provider = "openai"
default_model = "gpt-4o"
api_url = "https://api.openai.com" # optional custom base
FieldValue
OPENAI_API_KEYAPI key (sk-…)
api_url / --api-urlOverrides the default base URL
provider_max_tokensCaps output tokens

See OpenAI temperature compatibility below for which model families accept which temperature values.

Telnyx AI inference via an OpenAI-compatible endpoint at /v2/ai/chat/completions, giving access to 50+ models — GPT-4o, Claude, Llama, Mistral — through a single Telnyx key.

~/.revka/config.toml
default_provider = "telnyx"
default_model = "openai/gpt-4o"
FieldValue
Auth env varTELNYX_API_KEY (keys start with KEY-)
Base URLhttps://api.telnyx.com/v2/ai
HTTP timeout120 seconds

Model IDs use the provider/model format, for example openai/gpt-4o or anthropic.claude-sonnet-4-6.

Before constructing a provider, Revka checks the resolved key’s prefix against the selected provider and raises a readable error if they clearly don’t match — for example an sk-ant- key paired with the openai provider. This is a guardrail against a common copy-paste mistake.

Key prefixLikely provider
sk-ant-anthropic
sk-or-openrouter
sk-openai
gsk_groq
pplx-perplexity
xai-xai
nvapi-nvidia
KEY-telnyx

When a provider API call fails, the error body may echo back part of the request — including a key. Revka scrubs token-like patterns from every provider error before it reaches a log file or a chat reply, and truncates the message to 500 characters.

Scrubbed patterns include keys starting with sk-, xoxb-, xoxp-, ghp_, gho_, ghu_, and github_pat_. If a key leaks into an upstream error body, you’ll see [REDACTED] in its place. This is automatic for all providers — no configuration required.

OpenAI model families have different temperature requirements. The openai provider adjusts the value automatically (via adjust_temperature_for_model()), but the table is useful when you hit a temperature error or are choosing a model.

  • Reasoning models (o-series, gpt-5 base variants): accept only temperature=1.0.
  • Standard models (gpt-3.5, gpt-4, gpt-4o, gpt-4.1, chat-latest variants): accept the full 0.0–2.0 range.
Family / modelTemperature behavior
o1, o3, o3-mini, o4-mini (and dated variants)Requires temperature=1.0
gpt-5, gpt-5-mini, gpt-5-nano (and dated variants)Requires temperature=1.0
gpt-5.1-chat-latest, gpt-5.2-chat-latest, gpt-5.3-chat-latestRequires temperature=1.0
gpt-3.5-turbo, gpt-4, gpt-4-turbo, gpt-4o, gpt-4o-mini, gpt-4.1 (all variants)Accepts 0.0–2.0
gpt-5-chat-latest, gpt-5.2, gpt-5.4 (and dated variants)Accepts 0.0–2.0
Terminal window
revka doctor models --provider <id> # probe one provider: ok / auth-error / error
revka models refresh --provider <id> # pull the live model catalog
revka doctor # validate the resolved provider, key, and model

revka doctor models reports ok with a model count when a provider is reachable and the key is valid, auth-error when the credential is wrong, and a connectivity error when the endpoint is unreachable. Some providers (e.g. copilot) don’t support live model discovery and show as skipped.