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 Continue

~/.continue/config.yaml (or the gear icon → Configure)

  1. provideropenai
  2. apiBasehttps://api.minirouter.sh/v1
  3. apiKeymr-live-… (your key)Use your full key. Placeholders will not authenticate.
  4. modelzai/glm-5.3-flash
config.yaml
models:
  - name: GLM 5.3 Flash (minirouter)
    provider: openai
    model: zai/glm-5.3-flash
    apiBase: https://api.minirouter.sh/v1
    apiKey: mr-live-YOUR-KEY-HERE
    roles: [chat, edit, apply]
  - name: GPT 5.6 Sol (minirouter)
    provider: openai
    model: openai/gpt-5.6-sol
    apiBase: https://api.minirouter.sh/v1
    apiKey: mr-live-YOUR-KEY-HERE
    roles: [chat, edit, apply]
Full Continue 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.

Vercel AI SDK
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { generateText } from "ai";

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

const { text } = await generateText({
  model: minirouter("meta/llama-3.3-70b"),
  prompt: "ping",
});
console.log(text);

Models and errors

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