Two environment variables — Claude Code speaks the native Anthropic protocol.
This guide connects Claude Code to the platform so you can reach Claude, GPT, Gemini and others with a single token. Three values are all you need: endpoint, token, model name.
Create a token (starting with sk-) in the console first and make sure the account has credit. New here? Start with your first request in 5 minutes.
Claude Code reads its endpoint from environment variables. Set them and start as usual.
| Field | Value |
|---|---|
| ANTHROPIC_BASE_URL | https://api.router.ai |
| ANTHROPIC_AUTH_TOKEN | your sk- token |
| Model | claude-sonnet-5 |
export ANTHROPIC_BASE_URL=https://api.router.ai
export ANTHROPIC_AUTH_TOKEN=sk-your-token
claude --model claude-sonnet-5
Before running anything complex, just say hello and check you get a reply. To test the token on its own, call the API directly:
curl https://api.router.ai/v1/chat/completions \
-H "Authorization: Bearer sk-your-token" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-5","messages":[{"role":"user","content":"hello"}]}'
A JSON response containing choices means you are connected. The call shows up in your billing records shortly after.
Do not append /v1 to the base URL — Claude Code appends /v1/messages itself, so adding it yields /v1/v1/messages and a 404. Put both lines in ~/.zshrc or ~/.bashrc to make them permanent.
Wrong token, a stray space, or a copy that dropped the leading sk-. Copy it again in full.
Almost always the URL suffix. The OpenAI-compatible format needs a trailing /v1; the native Anthropic and Gemini formats must not have it. Check the table above.
The account is out of credit. See top-up methods.
Model names must match the catalog exactly, including case and hyphens. Copy the exact name from the models page.