Models & routing

Fusion

Send minirouter/fusion. MiniRouter balances price and quality, choosing a model and reasoning effort for your request.

Send a requestExamples read your key from MINIROUTER_KEY.

Fusion request
curl https://api.minirouter.sh/v1/chat/completions \
  -H "Authorization: Bearer $MINIROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "minirouter/fusion",
  "messages": [
    {
      "role": "user",
      "content": "Explain an API gateway in one sentence."
    }
  ],
  "max_tokens": 256
}'

How it chooses

  1. ReadTypeSafe Jev, in about half a second.A classifier reads the request.
  2. LabelTask type and complexity.
  3. PickUse the published frontier for that label.
  4. CheckThe same checks as Auto.Allowed, affordable, healthy, fits.

Task types

  • CodingAny request with tools counts as coding.Code, agents, extraction.
  • ReasoningMaths, analysis, planning.
  • WritingDrafts, copy, long-form.
  • ChatConversation and roleplay.

Complexity

Light
Lookups, rewrites, short answers.
Mid
Everyday multi-step work.
Strong
Hard reasoning, large changes.
Frontier
Expert-level work.

Variants

minirouter/fusion:cheap
Prioritises cost with a lower quality floor. Published picks.
minirouter/fusion
Balances quality above the floor against cost. Published picks.
minirouter/fusion:max
Prioritises quality within the latency budget. Published picks.

Available variants appear in /v1/models.

Pareto frontier

The frontier highlights model and reasoning-effort combinations where no cheaper option scores as well. Choose a task to compare estimated cost and benchmark quality.

Loading the frontier…

Published picks

Each variant has 16 task-and-complexity cells. Its published frontier sets the model, effort and ordered fallbacks for each cell.

Candidates balance benchmark quality, estimated request cost and latency. Quality floors guide selection; when no candidate fits, constraints can relax. Fallbacks favour different labs.

Picks can change over time. Check each variant's published picks for its current models and fallbacks. Benchmark scores and cost estimates do not guarantee results for a particular request.

Reasoning effort

  • Set for youSkipped where it would raise the amount held for the call. The model's default effort applies then.Fusion sends the effort in its published pick.
  • Yours winsMessages requests keep the model's default effort.Send reasoning, reasoning_effort or think and Fusion leaves it.

Response

  • Chosen modelNamed in model and x-minirouter-model.
  • Whyx-minirouter-route-reason: task=code; tier=mid; effort=high.
  • PriceProvider cost plus 10%, classification included. If classification is unavailable, the Auto rate of 8% applies.

PrivacyFusion variants use the same classifier. Auto and named models do not send prompts to it.

System prompt
Yes, the first 2,000 characters.
Latest user message
Yes, up to 6,000 characters.
Tool names
Yes, up to 32.
Tool results, images, replies
Never.

Limits

Endpoints
Chat Completions, Responses and Messages.
Conversations
Labels are cached for 10 idle minutes. New turns keep the cached tier.
Retry escalation
Repeating a turn with the same prompt_cache_key can raise complexity one tier, up to Frontier. Without a session key, retries keep their tier.Use a distinct, nonempty prompt_cache_key for each conversation, up to 512 characters.
Codex and Claude Code
Both work. Codex lists Fusion first in its model picker.Context blocks the client adds are skipped, not classified.
Classifier down
Uses the router's published fallback candidates.
Fallback lists
Not combinable with models or fallbacks.
No match
503 auto_unresolvable. Retry after 15 seconds.
Esc