
Description
Query OpenRouter's Benchmarks API for model benchmark rankings and scores. Use when the user asks for benchmark-backed model selection, model rankings by coding/intelligence/agentic ability, Artificial Analysis or Design Arena ELO/win-rate results, benchmark citations, or wants to call GET /api/v1/benchmarks. Also use alongside openrouter-models when the user asks what model should power an app, product, workflow, or use case and benchmark evidence could inform or rule out part of the recommendation, including creative writing, editing, coding, design, agentic, or intelligence-heavy apps. Do not use for OpenRouter usage analytics, billing/spend analysis, generation metadata, provider uptime/latency, generic model pricing/capability lookup without any selection or benchmark-relevance decision, or creating an evaluation suite for a local app.
SKILL.md
OpenRouter Benchmarks
Use OpenRouter's unified benchmarks endpoint to answer benchmark-backed model ranking and model-selection questions. The endpoint aggregates Artificial Analysis and Design Arena data and returns citation metadata that should be preserved when reporting results.
Prerequisites
Set OPENROUTER_API_KEY to any valid OpenRouter API key. Benchmarks do not require a management key.
export OPENROUTER_API_KEY=sk-or-v1-...
Decision Tree
| User wants to... | Action |
|---|---|
| See benchmark-ranked models across sources | Call GET /api/v1/benchmarks and preserve source/citation metadata |
| Choose a model for an app/use case | Check whether Artificial Analysis or Design Arena contains a relevant signal; say when no direct benchmark exists |
| Find best coding, intelligence, or agentic models | Use task_type=coding, task_type=intelligence, or task_type=agentic |
| Query Artificial Analysis only | Use source=artificial-analysis |
| Query Design Arena only | Use source=design-arena, plus arena and category when relevant |
| Get raw API-shaped data for integration work | Return the raw data/meta shape from the endpoint |
| Understand all response fields or direct curl usage | Read references/benchmarks-api.md |
Use openrouter-models instead when the user needs pricing, context length, supported parameters, modalities, or provider endpoint performance without asking for benchmark rankings.
For creative writing, storytelling, or editorial apps, this endpoint currently has no direct writing-quality benchmark. Treat Artificial Analysis intelligence_index as a weak general-capability signal, and use agentic_index only if the app performs multi-step planning/revision. Do not imply that Design Arena visual/code categories measure prose quality.
Availability Gate
Do not recommend a benchmark-ranked model until it passes an availability check through the models/endpoints API. Benchmark rows can contain dated or benchmark-specific model_permaslug values that are useful for attribution but are not always the exact routable OpenRouter model ID.
Before recommending a benchmark candidate:
- Check
GET /api/v1/modelsfor an exactidmatch to the benchmarkmodel_permaslug. - If there is no exact
idmatch but a model hascanonical_slugequal to the benchmarkmodel_permaslug, treat the benchmark row as evidence for that model family, not as a directly recommendable ID. Use the model's actualidonly after verifying availability. - Check
GET /api/v1/models/{author}/{slug}/endpointsor useopenrouter-modelsget-endpoints.tsfor provider status. - Prefer candidates with at least one clearly usable endpoint. If all endpoints are degraded, have
uptime_last_30m: 0, or the OpenRouter model page/API indicates the model is unavailable, exclude it from primary recommendations and explain that the benchmark result is not currently actionable. - When availability is ambiguous, say so and recommend a verified available alternative instead of presenting the benchmark leader as the default choice.
Do not rely on endpoint status: 0 alone. Model-level availability signals such as routing error messages, warning messages, zero request limits, empty endpoint lists, or provider-specific access restrictions can make a benchmark leader non-actionable even when one endpoint appears operational. If availability signals disagree, explain the ambiguity and avoid making that model the primary recommendation.
API Usage
Query parameters:
| Flag | Values | Notes |
|---|---|---|
source | artificial-analysis, design-arena | Omitting it returns all sources. |
task_type | coding, intelligence, agentic | Maps to source-specific indices/categories. |
arena | models, builders, agents | Design Arena only; defaults server-side to models. |
category | codecategories, uicomponent, gamedev, 3d, dataviz, image, video, svg, etc. | Design Arena only. |
max_results | positive integer | Maximum number of rows returned by the API. |
Always preserve meta.citation, meta.source_url, and meta.as_of; include attribution when republishing benchmark data.
When results include both sources, do not present them as a single absolute leaderboard: Artificial Analysis indices and Design Arena ELO use different scales. Compare within each source, or rerun with source=artificial-analysis or source=design-arena for a source-specific ranking.
Interpreting Results
- Artificial Analysis rows include
intelligence_index,coding_index, andagentic_index; higher is better. - Design Arena rows include
elo,win_rate,avg_generation_time_ms,arena,category, andtournament_stats; higherelo/win_rateis better, lower generation time is faster. pricing.promptandpricing.completionare USD per token as decimal strings. Multiply by 1,000,000 for per-million-token costs.model_permaslugidentifies the benchmarked model entry. Verify it againstGET /api/v1/modelsbefore using it as a chat/completions model ID.meta.model_countcounts unique models in the response, which can differ fromdata.lengthwhen multiple Design Arena categories are returned.
Direct API Call
curl 'https://openrouter.ai/api/v1/benchmarks?source=artificial-analysis&task_type=coding&max_results=10' \
-H "Authorization: Bearer $OPENROUTER_API_KEY"
Read references/benchmarks-api.md when implementing against the raw API or handling source-specific response shapes.
More skills from the skills repository
View all 16 skillscreate-agent-tui
scaffold terminal agents with OpenRouter
Jul 14AgentsCLIOpenRouterTypeScriptcreate-headless-agent
scaffold headless agents with OpenRouter
Jul 14AgentsCLITypeScriptopen-responses
implement Open Responses-compliant APIs
Jul 14API DevelopmentInteroperabilityLLMopenrouter-agent-migration
migrate OpenRouter SDK to agent patterns
Jul 14MigrationSDKTypeScriptopenrouter-analytics
analyze OpenRouter usage and spend
Jul 14AnalyticsOpenRouteropenrouter-analytics-query
execute analytics queries against OpenRouter
Jul 14AnalyticsAPI Development
More from OpenRouter
View publisheropenrouter-analytics-schema
query OpenRouter analytics schema
skills
Jul 14AnalyticsLLMReportingopenrouter-generations
retrieve metadata for OpenRouter generations
skills
Jul 14LLMOpenRouteropenrouter-images
generate images with OpenRouter
skills
Jul 14Image GenerationOpenRouteropenrouter-models
query OpenRouter model metadata and pricing
skills
Jul 14LLMOpenRouteropenrouter-oauth
implement OpenRouter OAuth authentication
skills
Jul 14AuthOAuthOpenRouter