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