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.
Download the app from GitHub Releases.
curl -L https://raw.githubusercontent.com/kwaroran/Risuai/refs/heads/main/docker-compose.yml | docker compose -f - up -dThen open http://localhost:6001.
2. Create a key
Create a key. Optionally test it before opening RisuAI.
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.
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.
Recommended modelsBrowse every model in the catalog.
zai/glm-5.3-flash- Best current intelligence/input-cost balance with a 1M-token window.
openai/gpt-5.6-luna- High-intelligence alternative with a 1.05M-token window.
deepseek/deepseek-v4-flash-0731- Lowest input rate on this list for repeatedly sent chat history.
google/gemini-3.8-flash- Higher-cost multimodal alternative with a 1M-token window.
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.