Documentation
DzRouter speaks the OpenAI and Anthropic APIs. If your tool can change its base URL, it works.
The basics
Base URL
https://dzrouter.com/v1Authentication
Send your key as Authorization: Bearer YOUR_KEY or x-api-key: YOUR_KEY.
Model names
Use the exact id from the models page, for example claude-opus-5-5. GET /v1/models returns the full list.
Quickstart
from openai import OpenAI
client = OpenAI(
base_url="https://dzrouter.com/v1",
api_key="sk-dz-…",
)
reply = client.chat.completions.create(
model="claude-opus-5-5",
messages=[{"role": "user", "content": "Salam!"}],
)
print(reply.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://dzrouter.com/v1",
apiKey: process.env.DZROUTER_API_KEY,
});
const reply = await client.chat.completions.create({
model: "claude-opus-5-5",
messages: [{ role: "user", content: "Salam!" }],
});
console.log(reply.choices[0].message.content);curl https://dzrouter.com/v1/chat/completions \
-H "Authorization: Bearer $DZROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-5-5",
"messages": [{"role": "user", "content": "Salam!"}],
"stream": true
}'from anthropic import Anthropic
client = Anthropic(
base_url="https://dzrouter.com",
api_key="sk-dz-…",
)
msg = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Salam!"}],
)
print(msg.content[0].text)Coding tools
In any tool, choose an "OpenAI compatible" (or "Anthropic") provider, then fill in:
| Base URL | https://dzrouter.com/v1 |
|---|---|
| API key | sk-dz-… |
| Model | claude-opus-5-5 |
opencode — opencode.json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"dzrouter": {
"npm": "@ai-sdk/openai-compatible",
"name": "DzRouter",
"options": {
"baseURL": "https://dzrouter.com/v1",
"apiKey": "{env:DZROUTER_API_KEY}"
},
"models": { "claude-opus-5-5": {} }
}
}
}Claude Code
export ANTHROPIC_BASE_URL="https://dzrouter.com"
export ANTHROPIC_AUTH_TOKEN="sk-dz-…"
export ANTHROPIC_MODEL="claude-opus-5-5"
claude
Cursor · Cline · Roo Code · Continue
OpenAI Compatible → Base URL + API key + Model.
Endpoints
POST /v1/chat/completions | OpenAI chat (stream: true) |
POST /v1/messages | Anthropic messages (stream: true) |
GET /v1/models | Model catalog |
POST /v1/embeddings | Embeddings |
Errors
401 | Missing, invalid or revoked API key. |
402 | Your balance is empty. Top up and retry. |
429 | Too many requests — slow down (600 requests per minute per key). |
5xx | The model provider failed. The request is not billed; retry. |
Limits
600 requests per minute per key, 50 MB maximum request body, streaming responses time out after 2 minutes of silence.