By default the router tries our listings in routing order and fails over before the first byte — never mid-answer. The price is the provider's own list price; you pay $0.21 in / $1.90 out per 1M. Uptime is our own 24h measurement; a dash means too few requests to measure yet. Open the row for the provider's specs and policies.
curl -N https://api.routerplus.com/v1/chat/completions \
-H "Authorization: Bearer $TM_API_KEY" -H "content-type: application/json" \
-d '{"model":"qwen/qwen3-vl-235b-a22b-instruct","stream":true,"max_tokens":256,
"messages":[{"role":"user","content":"hi"}]}'# OpenAI SDK — only the base URL changes from openai import OpenAI client = OpenAI(base_url="https://api.routerplus.com/v1", api_key=os.environ["TM_API_KEY"]) client.chat.completions.create(model="qwen/qwen3-vl-235b-a22b-instruct", stream=True, messages=[{"role":"user","content":"hi"}])
import Anthropic from "@anthropic-ai/sdk"; // the Anthropic surface serves every chat model, not just Claude const client = new Anthropic({ baseURL: "https://api.routerplus.com", apiKey: process.env.TM_API_KEY }); await client.messages.create({ model: "qwen/qwen3-vl-235b-a22b-instruct", max_tokens: 256, messages: [{ role: "user", content: "hi" }] });
| prompt | $0.21 |
| cached prompt | $0.1155 |
| cache write | $0.2625 |
| completion | $1.9 |
Every billed response carries usage.cost — recompute your bill from the wire.