OpenRouter updates Auto Router with 30 task types and 7-day spend-based routing
OpenRouter upgraded Auto Router to classify prompts into about 30 task types, then route by anonymized 7-day spend share and cost tier. OpenRouter says the max tier beat the old router across five benchmark domains.

TL;DR
- OpenRouter rewired
openrouter/autoaround market usage: the router now follows workload migrations to new models within days, according to OpenRouter's launch thread. - The new path classifies each prompt into about 30 task types, ranks models by anonymized 7-day spend share, then applies a
cost_tier, per OpenRouter's routing explainer. - The max tier beat the old router across all five tested domains, including SWE-Atlas QnA at 60.7% versus 2.4%, according to OpenRouter's benchmark post.
- The default tier is a cost play: MMLU Pro landed within 1.4 points of the old router at $140.93 versus $393.34, while sticky routing keeps multi-turn sessions on one model until it stops being a leading choice, per OpenRouter's cost note.
- The integration surface stays small:
model: "openrouter/auto", optionalcost_tier, optional allowed-model filters, no extra router fee, according to OpenRouter's API note.
The official blog post says the router is informed by more than 55T weekly tokens on OpenRouter. The routing docs add a useful metadata hook: X-OpenRouter-Metadata: enabled exposes the chosen task tag at openrouter_metadata.pipeline. The model page says Auto Router currently has 38 candidate models, refreshed automatically.
Market-spend routing
The clever part is the data source: spend becomes the routing signal. OpenRouter says the router uses aggregate, anonymized model spend from the trailing 7-day window for each task type, so model migrations show up without retraining or manual curation.
The routing loop is four steps, according to OpenRouter's explainer and the Auto Router docs:
- Classify the prompt with a lightweight classifier into about 30 task types, such as
code:debugging,agent:multi_step_planning,qa_knowledge,math,customer_support, orresearch_report. - Rank models by real-world spend share for that task type over the trailing 7 days.
- Apply
cost_tier:low,medium,high,xhigh, ormax. - Route to the top surviving model, with fallbacks after account restrictions, guardrails, ZDR policies, allowed-model filters, and output-modality requirements.
Prompts are classified in-flight without retention, according to OpenRouter's routing explainer. The docs say classification or ranking failures degrade to a default model set rather than failing the request.
Benchmark deltas
OpenRouter tested the router on five domains: MMLU Pro for knowledge, τ³-bench Banking for agents, WideSearch for search, DSQA for research, and SWE-Atlas QnA for coding. The official benchmark table linked from OpenRouter's benchmark pointer gives these score deltas.
Default tier
- MMLU Pro: 86.6% old to 85.2% new, -1.4 points.
- τ³-bench Banking: 21.0% old to 20.6% new, -0.4 points.
- WideSearch: 53.1% old to 61.6% new, +8.5 points.
- DSQA: 43.2% old to 62.9% new, +19.7 points.
- SWE-Atlas QnA: 30.4% old to 30.4% new, flat.
Max tier
- MMLU Pro: 88.8% old to 91.4% new, +2.6 points.
- τ³-bench Banking: 7.2% old to 31.6% new, +24.4 points.
- WideSearch: 54.8% old to 61.9% new, +7.1 points.
- DSQA: 42.3% old to 63.0% new, +20.7 points.
- SWE-Atlas QnA: 2.4% old to 60.7% new, +58.3 points.
The max-tier SWE-Atlas gap is the cartoonishly large number in the launch. It also explains why OpenRouter framed the router as a live market index instead of a static model leaderboard.
Cost tiers and sticky sessions
The default comparison was cost-sensitive. OpenRouter's blog defines new default as cost_tier=low and old default as cost_quality_tradeoff=7; max compares cost_tier=max to the old router's cost_quality_tradeoff=0.
The cost table has one caveat under the headline claim. New default was cheaper on MMLU Pro, τ³-bench Banking, WideSearch, and SWE-Atlas QnA, but DSQA cost rose from $147.11 on the old default to $276.00 on the new default while score rose from 43.2% to 62.9%.
OpenRouter added stickiness because multi-model routing can rebuild input caches. The router remembers the model a conversation landed on, using an explicit session_id or a message fingerprint, then reuses that model while it remains among the top candidates for the next turn, according to the session stickiness docs.
A separate cache-cost post by Martin Alderson put numbers on the same pressure point: in one hypothetical agentic session, cache reads were nearly half the bill.
API surface
The call path still looks like a model swap. The Auto Router model page says OpenRouter's OpenAI-compatible API works by changing the model slug to openrouter/auto, and the response model field shows which underlying model answered.
The request knobs are small:
model:openrouter/auto.plugins[].id:auto-routerfor per-request Auto Router settings.cost_tier:low,medium,high,xhigh, ormax.allowed_models: wildcard filters such asanthropic/*oropenai/gpt-5*.excluded_models: wildcard exclusions applied after allowed-model filters.session_id: the sticky routing key for multi-turn sessions.X-OpenRouter-Metadata: enabled: opt-in metadata that can exposedata.task_type.
OpenRouter says there is no separate fee for the router. The bill uses the standard rate for whichever model runs, and the selected model appears in Activity or the response's model field.
Auto beta and parameter precedence
The docs describe openrouter/auto-beta as the early-access track where new routing behaviors land before openrouter/auto. Settings for that slug must use plugins[].id: "auto-beta-router"; settings sent under auto-router are accepted but silently ignored for beta requests, according to the Auto Router docs.
One launch-day wrinkle is a precedence mismatch. The blog post says deprecated cost_quality_tradeoff still takes precedence if both it and cost_tier are sent, while the docs say cost_tier takes precedence.