See how models are actually chosen by most teams. Someone remembers a
tutorial, tweet or key. The slug goes into a config file. Nobody touches it for a year.
The difference between a chosen model and a fashionable one is usually 5–10 times greater in cost, or the difference between an agent loop that finishes and one that
stalls. The data needed to make the right decision is free.
The two questions that nobody separates:
Is this model any good? is a property of the model. It does not change
based on who runs it.
Can I use it — at what price, what speed?: That is a property of the model
Deployment: one model can have up to five different answers.
Artificial Analysis answers the first one. They run
the same independent evaluation suite across models and publish comparable scores.
One is for reasoning, one is for coding and one is for agentic tool use. Not vendor
— the same tests for everyone.
OpenRouter answers the second question. Hundreds of models
are behind one API, with live pricing, context limits, and capability flags.
You need both. OpenRouter's own metrics are latency, throughput, price, and popularity — none of which indicate whether the model is correct. Sort by speed
You're alone, and you're shipping the 470 ms model that gave the wrong answer.
The practical aspect of this is:
You can use almost any AI(Claude, GPT, Gemini or any other LLM) to select and even run the most suitable model for you.
Let's take an example
Measured intelligence has ranked them as follows:
anthropic/claude-opus-5 63.1 coding 78 $5/M
openai/gpt-5.6-sol 60.9 coding 77.4 $5/M
moonshotai/kimi-k3 59.7 coding 76.2 $3/M
qwen/qwen3.8-max 58.1 coding 71.8 $2/M
openai/gpt-5.6-terra 56.6 coding 76.7 $1/M
Terra is fifth in terms of intelligence. For a coding job, it is 1.3 coding points
Below the leader, at one-fifth of the price. You only see that because of the
The indices disagree with each other — if you pick the headline number, you'll end up overpaying Multiply by five.
So the right question is never 'What scores highest?' It is "What is the [...] cheapest model that meets my requirements" — and that is a question, not an opinion.
Get a free key
export OPENROUTER_API_KEY="sk-or-v1-..."
Reading the catalogue is free. You can decide before you spend a penny.
Hand it to your AI
You don't have to juggle two platforms manually. Paste this into Claude Code:
Cursor or any agent with shell access, then fill in the first two lines.
Pick the best model for this job: <ONE SENTENCE DESCRIBING THE TASK>.
My constraints: <max price $/M, min context, must support tools/structured outputs>.
Use OpenRouter's model catalog. It carries Artificial Analysis benchmark scores
inside it, so one query gives you both quality and price. Do NOT recommend a
model from memory — show me the query and its output.
1. Say which Artificial Analysis index matches this job and why:
- intelligence_index → open-ended reasoning, analysis, explanation
- coding_index → generation, refactoring, review
- agentic_index → multi-step tool loops (also use min_tool_success_rate)
2. Query with a FLOOR on that index plus my constraints, sorted by price:
https://openrouter.ai/api/v1/models?min_<index>=<floor>&max_price=<ceiling>&sort=pricing-low-to-high
3. Table: model, the relevant index, prompt price, context length. Mark models
with no Artificial Analysis entry as "not evaluated" — never treat a missing
score as zero.
4. Recommend the CHEAPEST model that clears the floor, not the highest scorer.
Tell me what I give up versus the frontier, in index points.
5. List which providers serve it and at what price; say whether pinning one
with provider: { only: ["..."] } is worth it for latency.
6. Tell me what the indices CANNOT tell me about my task, and what I should
test myself before committing.
What it runs underneath:
curl -s "https://openrouter.ai/api/v1/models?min_coding_index=50&max_price=1&sort=pricing-low-to-high" \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
| jq -r '.data[] | [.id,
(.benchmarks.artificial_analysis.coding_index // "-"),
.pricing.prompt] | @tsv' | column -t
min_intelligence_index, min_coding_index, min_agentic_index,
min_tool_success_rate (0–1 — the proportion of calls that end in a real tool call),
the number that predicts whether your agent loop works), max_price,
context, supported_parameters.
Then pin the deployment because one slug equals many.
body: JSON.stringify({
model: "meta-llama/llama-3.1-8b-instruct",
provider: { only: ["Groq"] }, // `sort` is a hint; `only` is binding
messages: [{ role: "user", content: "…" }],
})
If a pin fails with No allowed providers are available, catch it and try again
Unpin it.
'But I already use Claude Code/ChatGPT.'
In that case, you do not need to switch to anything else. Add OpenRouter's MCP server to your tool
You already have it, and your existing assistant gains access to the entire catalogue
You can query, compare and call any model on it directly.
This includes those that are not chat-based. Image generation, video and speech
All the transcription keys are behind the same button, so click on 'Make me a hero image'
'Transcribe this' becomes something that your coding agent can do without you
This means you don't have to sign up to another vendor or leave the editor.
I have previously written about integrating MCP servers into an existing assistant —
Same pattern, different catalogue.
What it cannot do:
The indices reduce the number of models from four hundred to three. They cannot tell you
which of the three handles your prompt, jargon or edge cases.
That is step 6, and it is the only step that knows about you. Steps 1–5 are
What makes it affordable: testing three candidates takes an afternoon; testing four
Testing four hundred is not feasible.
set a Sort by price. Test the survivors.
Top comments (0)