Integrations

RisuAI

Chat with any MiniRouter model in RisuAI.

RisuAI is a character chat app for the web, desktop or your own server. Its Custom API model runs on any chat model in the catalog, or the curated roleplay list, from one balance. See Roleplay for data handling and accountless keys.

1. Open RisuAI

Open risuai.net. Nothing to install.

2. Create a key

Create a key. Optionally test it before opening RisuAI.

Terminal
export MINIROUTER_KEY=mr-live-YOUR-KEY-HERE
curl https://api.minirouter.sh/v1/chat/completions \
  -H "Authorization: Bearer $MINIROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"zai/glm-5.3-flash","messages":[{"role":"user","content":"ping"}]}'

3. Connect

Open Settings → Chat Bot → Model → Custom API and fill in:

Model
Custom API
URL
https://api.minirouter.sh/v1Autofill Request URL is on by default and appends /chat/completions. With it off, enter the full URL ending in /chat/completions.
Key/Password
mr-live-… (your key)
Request Model
zai/glm-5.3-flash
Format
OpenAI Compatible

4. Send a message

Chat with any character, then open Activity. The request lists its model, tokens and exact cost.

Switch models

Request Model takes any model ID.

minirouter/auto:roleplay
A long-context, low-input-cost model Auto picks.
@preset/your-slug
Your saved preset, with up to three models as fallbacks.

Use a cheaper auxiliary model

The Auxiliary Model handles emotion images and suggestions. With Custom API it uses your chat model. Give it a cheaper one:

1. Add

Settings → Advanced Settings → Custom Models → +.

2. Fill

Name
Any label, such as MiniRouter Flash.
URL
https://api.minirouter.sh/v1/chat/completions
Request Model
deepseek/deepseek-v4-flash-0731
Format
OpenAICompatible
Key/Password
Your key.

3. Pick

Choose it under Chat Bot → Auxiliary Model.

Size each turn

Max Context Size
Most RisuAI sends as the prompt. Lower it to cut input cost.
Max Response Size
Most the model writes back.

Keep Max Context Size below the window on the model's page in Models. A prompt over the window fails with context_too_long.

Keep spend in check

Every reroll is a new, billed request.

Troubleshooting

Requests fail only after the chat gets long

The character card, the lore book and the whole history are re-sent every turn, so a thread that worked at message 20 can exceed the window at message 200. Pick a longer-context model or trim the lore book.

Error: 400 context_too_long.

404, HTML, or a parse error on every request

Almost always the base URL. Use https://api.minirouter.sh/v1 — the bare host without /v1 also works, but never append /chat/completions to the base URL field; the client adds that path itself.

Error: 400 invalid_request.

401 on every request

Wrong or rotated key. Keys start with mr-live-; after a rotation the old key keeps working for 24 hours, then dies.

Error: 401 invalid_api_key.

Response stops mid-sentence with a credits message

Balance hit $0 mid-stream. The stream ends with a terminal error naming the exact charge for tokens delivered — never a silent close.

Error: 402 insufficient_credits.

Every error code, with its fix: Errors.

Next steps

Esc