DEV Community

Wu Long
Wu Long

Posted on • Originally published at oolong-tea-2026.github.io

I Built an Auto-Updating Archive of Every AI Arena Leaderboard

Arena AI (formerly LMSYS Chatbot Arena) is the gold standard for AI model rankings. But it has no public API and no historical data.

So I built arena-ai-leaderboards — a GitHub repo that auto-fetches all 10 Arena AI leaderboards daily into structured JSON.

What It Does

A GitHub Actions workflow runs daily, auto-discovers all leaderboard categories from arena.ai, fetches full model rankings, parses them into structured JSON, validates against a schema, and commits to data/{YYYY-MM-DD}/.

No hardcoded category list — when Arena AI adds a new leaderboard, it gets picked up automatically.

10 Categories, 300+ Models

Text (LLM), Code, Vision, Text-to-Image, Text-to-Video, Image-to-Video, Image Edit, Document, Search, Video Edit.

Every model includes: rank, name, vendor, license type, ELO score, confidence interval, vote count.

Quick Access

REST API

Free, no auth. Hosted at api.wulong.dev:

# List all leaderboards
curl https://api.wulong.dev/arena-ai-leaderboards/v1/leaderboards

# Get LLM rankings
curl https://api.wulong.dev/arena-ai-leaderboards/v1/leaderboard?name=text

# Get a specific date
curl https://api.wulong.dev/arena-ai-leaderboards/v1/leaderboard?name=text-to-video\&date=2026-03-21
Enter fullscreen mode Exit fullscreen mode

Raw GitHub JSON

curl https://raw.githubusercontent.com/oolong-tea-2026/arena-ai-leaderboards/main/data/latest.json
Enter fullscreen mode Exit fullscreen mode

Python

import requests

text = requests.get(
    "https://api.wulong.dev/arena-ai-leaderboards/v1/leaderboard?name=text"
).json()

for m in text["models"][:10]:
    print(f"#{m["rank"]} {m["model"]} ({m["vendor"]}) — ELO {m["score"]}")
Enter fullscreen mode Exit fullscreen mode

Why?

Arena AI is great for a quick glance but useless for trend analysis, automated monitoring, or research. No API, no historical data. This repo fixes that.

Star the repo if useful!

Top comments (0)