---
title: "List Benchmarks"
method: GET
path: "/benchmarks"
tags: ["Benchmarks"]
---

# List Benchmarks

`GET /benchmarks`

Unified benchmark endpoint that aggregates scores from multiple benchmark sources (Artificial Analysis, Design Arena, and OpenRouter's own tau-bench, GPQA, and web-search evals). Filter by source to reproduce the exact shapes from the legacy per-source endpoints, or use task_type to find models suited for specific workloads. Use task_type=search (or a search_* benchmark_type) for OpenRouter's search benchmarks, which publish each model's highest-scoring eligible evaluation configuration with same-configuration runs combined by task-weighted mean. Authenticate with any valid OpenRouter API key. Rate-limited to 30 requests/minute per key and 500 requests/day per account.

## Query parameters

- `source` 'artificial-analysis' | 'design-arena' | 'openrouter' — Benchmark source to query. Determines the shape of the returned items. When omitted, returns results from all sources.
- `task_type` 'coding' | 'intelligence' | 'agentic' | 'search' — Filter results by task type. For Artificial Analysis, maps to the corresponding index. For Design Arena, maps to the matching category. `search` returns OpenRouter search benchmark results only.
- `benchmark_type` 'gpqa_diamond' | 'tau_bench_verified_airline' | 'search_browsecomp' | 'search_hle' | 'search_dsqa' | 'search_widesearch' — Return results for one exact OpenRouter benchmark. A `search_*` value narrows the response to search results only; a classic value narrows the OpenRouter items and leaves other sources' items as they are.
- `include_run_config` boolean — Search benchmarks only: include the published lane configuration whitelist in each search item. Defaults to false. The whitelist is limited to agent turn count, reasoning effort, and temperature so future harness configuration changes do not change the public contract.
- `search_engine` string — OpenRouter search benchmarks only: filter by the search engine used.
- `search_surface` 'server-tool' | 'plugin' — OpenRouter search benchmarks only: filter by the request surface the lane ran on.
- `arena` 'models' | 'builders' | 'agents' — Design Arena only: arena to query. Defaults to `models` when source is `design-arena`.
- `category` string — Design Arena only: category within the arena (e.g. `codecategories`, `uicomponent`, `gamedev`, `3d`, `dataviz`, `image`, `video`, `svg`). When omitted, returns all categories.
- `max_results` integer — Maximum number of items to return. When omitted, all matching results are returned.

## Response `200`

Benchmark results filtered by the specified source and optional task type.

- UnifiedBenchmarksResponse
  - `data` union[], required
    - union
      - UnifiedBenchmarksAAItem
        - `agentic_index` number, double, nullable, required — Artificial Analysis Agentic Index composite score. Higher is better.
        - `coding_index` number, double, nullable, required — Artificial Analysis Coding Index composite score. Higher is better.
        - `display_name` string, required — Model name as listed on Artificial Analysis.
        - `intelligence_index` number, double, nullable, required — Artificial Analysis Intelligence Index composite score. Higher is better.
        - `model_permaslug` string, required — Stable OpenRouter model identifier.
        - `pricing` UnifiedBenchmarkPricing, nullable, required — OpenRouter pricing per token for this model. Null if pricing is unavailable.
          - `completion` string, required — Cost per output token (USD, decimal string).
          - `prompt` string, required — Cost per input token (USD, decimal string).
        - `source` 'artificial-analysis', required — Benchmark source discriminator.
      - UnifiedBenchmarksDAItem
        - `arena` string, required — Arena this ranking belongs to.
        - `avg_generation_time_ms` number, double, nullable, required — Average generation time in milliseconds.
        - `category` string, required — Category within the arena.
        - `display_name` string, required — Human-readable model name from Design Arena.
        - `elo` number, double, required — ELO rating from head-to-head arena battles.
        - `model_permaslug` string, required — Stable OpenRouter model identifier when mapped; otherwise the upstream Design Arena model id.
        - `pricing` UnifiedBenchmarkPricing, nullable, required — OpenRouter pricing per token for this model. Null if pricing is unavailable.
          - `completion` string, required — Cost per output token (USD, decimal string).
          - `prompt` string, required — Cost per input token (USD, decimal string).
        - `source` 'design-arena', required — Benchmark source discriminator.
        - `tournament_stats` object, required — Placement distribution from tournament matches.
          - `first_place` integer, nullable, required
          - `fourth_place` integer, nullable, required
          - `second_place` integer, nullable, required
          - `third_place` integer, nullable, required
          - `total` integer, nullable, required
        - `win_rate` number, double, required — Win rate as a percentage (0–100).
      - UnifiedBenchmarksORItem
        - `accuracy` number, double, required — Aggregate accuracy score from 0 to 1. Higher is better.
        - `accuracy_stddev` number, double, nullable, required — Standard deviation of run accuracy, or null for a single run.
        - `avg_cost_per_task` number, double, nullable, required — Average cost per task in USD, or null if unavailable.
        - `benchmark_type` 'gpqa_diamond' | 'tau_bench_verified_airline', required — OpenRouter benchmark evaluation type.
        - `display_name` string, required — Human-readable model name.
        - `last_run_timestamp` string, required — Timestamp of the most recent public benchmark run.
        - `model_permaslug` string, required — Stable OpenRouter model identifier.
        - `source` 'openrouter', required — Benchmark source discriminator.
        - `total_tasks` integer, required — Total benchmark tasks across runs.
      - UnifiedBenchmarksSearchItem
        - `avg_cost_per_task` number, double, nullable, required — Average cost per task in USD, or null if unavailable.
        - `avg_latency_per_task_ms` number, double, nullable, required — Average wall-clock latency per task in milliseconds, or null if unavailable.
        - `benchmark_type` 'search_browsecomp' | 'search_hle' | 'search_dsqa' | 'search_widesearch', required — OpenRouter search benchmark.
        - `display_name` string, required — Human-readable model name.
        - `last_run_timestamp` string, required — Timestamp of the newest qualifying run in the published configuration's lane.
        - `model_permaslug` string, required — Stable OpenRouter model identifier.
        - `primary_metric` 'accuracy' | 'f1_by_item', required — Identifies the meaning of `primary_score`: `f1_by_item` for WideSearch, `accuracy` for all other search benchmarks.
        - `primary_score` number, double, required — The benchmark's headline score from 0 to 1. Its meaning is identified by `primary_metric`: item-weighted F1 for WideSearch or strict accuracy for the other search benchmarks. Higher is better.
        - `run_config` UnifiedBenchmarksSearchRunConfig — Published lane configuration, included only when include_run_config=true. Only the agent turn count, reasoning effort, and temperature are exposed; other harness settings are intentionally not part of the public contract.
          - `max_agent_turns` integer, nullable, required — Agent-turn count for the published lane, or null for plugin lanes.
          - `reasoning_effort` string, nullable, required — Reasoning effort configured for the published lane, or null when omitted.
          - `temperature` number, double, nullable, required — Sampling temperature configured for the published lane, or null when omitted.
        - `search_engine` string, required — Search engine the published configuration used.
        - `search_surface` 'server-tool' | 'plugin', required — Request surface the published configuration went through.
        - `source` 'openrouter', required — Benchmark source discriminator.
        - `total_tasks` integer, required — Tasks evaluated across the published configuration's runs.
  - `meta` UnifiedBenchmarksMeta, required
    - `as_of` string, required — ISO-8601 timestamp of when this data was last updated.
    - `citation` string, nullable, required — Required attribution when republishing this data, or null when results span multiple sources (attribute each item individually by its `source` discriminator).
    - `model_count` integer, required — Number of unique models in the response.
    - `source` 'artificial-analysis' | 'design-arena' | 'openrouter' | 'null', nullable, required — The source filter applied, or null when all sources are returned.
    - `source_url` string, nullable, required — URL of the upstream data source, or null when results span multiple sources.
    - `task_type` string, nullable, required — The task_type filter applied, or null if showing all.
    - `version` 'v1', required — Dataset version.

## Other responses

- `400` — Bad Request - Invalid request parameters or malformed input
- `401` — Unauthorized - Authentication required or invalid credentials
- `429` — Too Many Requests - Rate limit exceeded
- `500` — Internal Server Error - Unexpected server error

---

[API](https://skmtc.net/openrouterteam/apis/openrouter-api.md) · [All operations](https://skmtc.net/openrouterteam/apis/openrouter-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openrouterteam/openrouter-api/revisions/b0e4c71ef36a/schema)
