Endpoints
Use the models where you already code
One mmux_ key, four API formats. Claude Code, Codex CLI, OpenAI SDKs, and Gemini clients work with no plugin. Mint a key in the dashboard. Signup is invite-only — an admin generates the passcode.
Public API
https://api.modelmux.xyz
- Anthropic ANTHROPIC_BASE_URL is the origin without /v1
- OpenAI / Cursor / Codex base_url includes /v1
- Gemini uses /v1beta/models/{model}:generateContent
Anthropic Messages · Claude Code
POST /v1/messages · ANTHROPIC_BASE_URL 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
cURL · Messages
x-api-key or Authorization: Bearer
curl https://api.modelmux.xyz/v1/messages \
-H "x-api-key: mmux_YOUR_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":64,"messages":[{"role":"user","content":"hi"}]}'OpenAI Chat Completions
POST /v1/chat/completions · base_url includes /v1
from openai import OpenAI
client = OpenAI(
api_key="mmux_YOUR_KEY",
base_url="https://api.modelmux.xyz/v1",
)
client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "hello"}],
)OpenAI env
OPENAI_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
cURL · Chat Completions
Bearer mmux_ key
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"}]}'OpenAI Responses / Codex CLI
~/.codex/config.toml — model and model_provider sit BEFORE the [model_providers.modelmux] 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
POST /v1beta/models/{model}: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=
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.
Agent-specific walkthroughs: /docs/agents