v126

OpenAPI 3.1.0MITraw.githubusercontent.com2026-08-04957391.2 MB
Datasets

Daily token totals for top 50 models

Returns the top 50 public models per day by total token usage on OpenRouter, plus a single aggregated other row per day that sums every model outside that top 50. Token totals are prompt_tokens + completion_tokens, matching the public rankings chart on openrouter.ai/rankings.

Each row is a distinct (date, model_permaslug) pair. The other row uses the reserved permaslug other and is always returned last within its date, so callers can compute top-50 traffic / total daily traffic without a second request.

Optional filters slice the dataset. period (day/week/month) sets the time grain. modality and context_bucket narrow the exact dataset by output/input modality (or tool-calling activity) and request context length. category and language_type instead read a sampled, upsampled dataset whose total_tokens are weekly-grain estimates — they cannot be combined with each other or with the exact filters, and reject period=day with a 400.

Authenticate with any valid OpenRouter API key (same key used for inference). Rate-limited to 30 requests/minute per key and 500 requests/day per account.

When republishing or quoting this dataset, OpenRouter must be cited as: "Source: OpenRouter (openrouter.ai/rankings), as of {as_of}."

Token counts come from each upstream provider's own tokenizer (Anthropic counts are as reported by Anthropic, OpenAI counts are as reported by OpenAI, etc.), so a token in one row is not directly comparable to a token in another row from a different provider.

get/datasets/rankings-daily

Query parameters

start_datestring

Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before end_date. The dataset begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is echoed in meta.start_date.

Example:2026-04-12

Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before end_date. The dataset begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is echoed in meta.start_date.

end_datestring

End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must be on or after 2025-01-01; earlier values are rejected with a 400.

Example:2026-05-11

End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must be on or after 2025-01-01; earlier values are rejected with a 400.

period'day' | 'week' | 'month'

Time grain of each row. day (default) returns the per-UTC-day series; week buckets by ISO week start; month buckets by month start. With category or language_type only week (default) and month are available — day is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets period=month buckets each week by its week-start month, so totals are approximate at month boundaries.

Example:day

Time grain of each row. day (default) returns the per-UTC-day series; week buckets by ISO week start; month buckets by month start. With category or language_type only week (default) and month are available — day is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets period=month buckets each week by its week-start month, so totals are approximate at month boundaries.

modality'text' | 'image' | 'image_output' | 'audio' | 'tool_calling'

Restrict to models for a modality surface: text / image_output match output modality, image / audio match input modality, and tool_calling keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with category or language_type.

Example:text

Restrict to models for a modality surface: text / image_output match output modality, image / audio match input modality, and tool_calling keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with category or language_type.

context_bucket'1K' | '10K' | '100K' | '1M' | '10M'

Restrict to requests whose context length falls in this bucket (1K, 10K, 100K, 1M, or 10M). Exact dataset — cannot be combined with category or language_type.

Example:100K

Restrict to requests whose context length falls in this bucket (1K, 10K, 100K, 1M, or 10M). Exact dataset — cannot be combined with category or language_type.

category'programming' | 'roleplay' | 'marketing' | 'marketing/seo' | 'technology' | 'science' | 'translation' | 'legal' | 'finance' | 'health' | 'trivia' | 'academia'

Restrict to a use-case category (e.g. programming, roleplay). Sourced from a sampled, upsampled dataset, so total_tokens is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past end_date). Cannot be combined with modality, context_bucket, or language_type.

Example:programming

Restrict to a use-case category (e.g. programming, roleplay). Sourced from a sampled, upsampled dataset, so total_tokens is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past end_date). Cannot be combined with modality, context_bucket, or language_type.

language_type'natural' | 'programming'

Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so total_tokens is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past end_date). Cannot be combined with modality, context_bucket, or category.

Example:natural

Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so total_tokens is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past end_date). Cannot be combined with modality, context_bucket, or category.

Response

Up to 51 rows per day — the top 50 public models by total_tokens plus a single aggregated other row covering every model outside that top 50. Sorted by date ascending, then by total_tokens descending, with other pinned last within its date.

Example response

{
  "data": [
    {
      "date": "2026-05-11",
      "model_permaslug": "openai/gpt-4o-2024-05-13",
      "total_tokens": "12345678"
    },
    {
      "date": "2026-05-11",
      "model_permaslug": "anthropic/claude-3.5-sonnet-20241022",
      "total_tokens": "9876543"
    }
  ],
  "meta": {
    "as_of": "2026-05-12T02:00:00Z",
    "end_date": "2026-05-11",
    "start_date": "2026-04-12",
    "version": "v1"
  }
}