Setup guide

Connect your client.

Choose your client, add your key and base URL, then test the connection.

Copy the two values

Every OpenAI-compatible client takes the same base URL and adds /chat/completions itself.

Base URLhttps://api.minirouter.sh/v1
API keyGet a key →Starts with mr-live-

Configure OpenClaw

~/.openclaw/openclaw.json

  1. models.providers.minirouter.baseUrlhttps://api.minirouter.sh/v1
  2. models.providers.minirouter.apiopenai-completions
  3. models.providers.minirouter.apiKey${MINIROUTER_KEY}
  4. agents.defaults.model.primaryminirouter/zai/glm-5.3-flash
~/.openclaw/openclaw.json
{
  agents: {
    defaults: {
      model: { primary: "minirouter/zai/glm-5.3-flash" }
    }
  },
  models: {
    providers: {
      minirouter: {
        baseUrl: "https://api.minirouter.sh/v1",
        apiKey: "${MINIROUTER_KEY}",
        api: "openai-completions",
        timeoutSeconds: 300,
        // cost is OpenClaw's own accounting field, in USD per million
        // tokens. Copy the current rates for each model you add from
        // https://minirouter.sh/models rather than leaving these stale.
        models: [
          {
            id: "zai/glm-5.3-flash",
            name: "GLM 5.3 Flash (minirouter)",
            reasoning: true,
            input: ["text", "image"],
            cost: { input: 0.1575, output: 0.525 },
            contextWindow: 1000000,
            maxTokens: 131000
          }
        ]
      }
    }
  }
}
Full OpenClaw guide →

Check the connection

Run this after saving. A reply confirms the base URL, key, and model together.

Terminal
# bash / zsh: enter the full key at the hidden prompt
printf 'MiniRouter API key: '
read -rs MINIROUTER_KEY
export MINIROUTER_KEY
printf '\n'
curl https://api.minirouter.sh/v1/chat/completions \
  -H "Authorization: Bearer $MINIROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"meta/llama-3.3-70b","messages":[{"role":"user","content":"ping"}]}'

SDK examples

Calling from code instead? The base URL stays the same.

OpenAI SDK
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.MINIROUTER_KEY,
  baseURL: "https://api.minirouter.sh/v1",
});

const result = await client.chat.completions.create({
  model: "meta/llama-3.3-70b",
  messages: [{ role: "user", content: "ping" }],
});
console.log(result.choices[0]?.message.content);

Models and errors

Model IDs are author/name from the model catalog. Failed requests are explained in the error reference.