Drop-in
Agent setup
Point Claude Code, Cursor, Codex, or a Gemini client at ModelMux. Authenticate with a customer mmux_ key from the dashboard. Upstream credentials never leave the gateway.
Public API
https://api.modelmux.xyz
- Anthropic ANTHROPIC_BASE_URL is the origin without /v1
- OpenAI / Cursor base_url includes /v1
- Codex base_url includes /v1 and wire_api = "responses"
Claude Code
POST /v1/messages · origin must not end in /v1
export ANTHROPIC_BASE_URL=https://api.modelmux.xyz export ANTHROPIC_API_KEY=mmux_YOUR_KEY claude --model claude-sonnet-5
Claude Code (PowerShell)
Same variables, Windows session
$env:ANTHROPIC_BASE_URL = "https://api.modelmux.xyz" $env:ANTHROPIC_API_KEY = "mmux_YOUR_KEY" claude --model claude-sonnet-5
OpenAI SDK
POST /v1/chat/completions · base_url includes /v1
export OPENAI_BASE_URL=https://api.modelmux.xyz/v1 export OPENAI_API_KEY=mmux_YOUR_KEY
Cursor
OpenAI-compatible override
Base URL: https://api.modelmux.xyz/v1 API key: mmux_YOUR_KEY Model: openai/gpt-6-astra
Codex
~/.codex/config.toml — model and model_provider must sit above the table
model = "claude-sonnet-5" model_provider = "modelmux" [model_providers.modelmux] name = "ModelMux" base_url = "https://api.modelmux.xyz/v1" env_key = "MODELMUX_API_KEY" wire_api = "responses"
Codex env
Name must match env_key in config.toml
export MODELMUX_API_KEY=mmux_YOUR_KEY codex
Gemini generateContent
x-goog-api-key or ?key=
POST https://api.modelmux.xyz/v1beta/models/claude-sonnet-5:generateContent Header: x-goog-api-key: mmux_YOUR_KEY # also accepted: Authorization: Bearer mmux_YOUR_KEY or ?key=
cURL · Chat Completions
Raw OpenAI wire format
curl https://api.modelmux.xyz/v1/chat/completions \
-H "Authorization: Bearer mmux_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-5","messages":[{"role":"user","content":"hi"}]}'Model ids
Accepted: claude-opus-5, claude-sonnet-5, claude-fable-5.1, z-ai/glm-5.3, gpt-6-astra, and the prefixed anthropic/ / openai/ variants.