DzRouter

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/v1

Authentication

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)

Coding tools

In any tool, choose an "OpenAI compatible" (or "Anthropic") provider, then fill in:

Base URLhttps://dzrouter.com/v1
API keysk-dz-…
Modelclaude-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/completionsOpenAI chat (stream: true)
POST /v1/messagesAnthropic messages (stream: true)
GET /v1/modelsModel catalog
POST /v1/embeddingsEmbeddings

Errors

401Missing, invalid or revoked API key.
402Your balance is empty. Top up and retry.
429Too many requests — slow down (600 requests per minute per key).
5xxThe 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.