# LMArena API

> LMArena returns AI model rankings, scores, and votes, available as a workflow and API.

LMArena, also called Chatbot Arena, returns ranked models, scores, votes, confidence intervals, organizations, licenses, and update dates. Get leaderboard takes an arena category and model limit, returning ranked entries for up to 200 models.

- Page: https://fous.com/workflows/lmarena
- Handle: `@lmarena`
- Category: [AI](https://fous.com/workflows/category/ai)
- Source website: https://arena.ai/leaderboard
- Last verified: Sep 29, 2026
- Fous is not affiliated with LMArena.

## Methods

### Get leaderboard

Operation `get_leaderboard`, version 1. 1 credit per call.

Get ranked AI models, scores, votes, confidence intervals, organizations, licenses, and the last-updated date for an Arena leaderboard. Covers the overall rankings in seven listed arenas; up to 200 models.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `category` | string | no | `"webdev"` | Arena to rank, for example text or webdev. Available: text, webdev, vision, text_to_image, image_edit, search, text_to_video. |
| `max_results` | integer | no | `5` | Maximum models to return, for example 25 (up to 200). |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "default": "text",
      "description": "Arena to rank, for example text or webdev. Available: text, webdev, vision, text_to_image, image_edit, search, text_to_video.",
      "examples": [
        "webdev",
        "text",
        "text_to_image"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 200,
      "minimum": 1,
      "description": "Maximum models to return, for example 25 (up to 200).",
      "x-fous-developer": true,
      "examples": [
        5,
        25,
        4
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "category": "webdev",
      "max_results": 5
    },
    {
      "category": "text",
      "max_results": 25
    },
    {
      "category": "text_to_image",
      "max_results": 4
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `models` | array |  | Models in the order shown on the leaderboard. |
| `models[].rank` | integer | `1` | Rank on the selected leaderboard. |
| `models[].votes` | integer | `1607` | Number of votes for this model. |
| `models[].license` | string or null | `"Proprietary"` | Displayed model license. |
| `models[].model_name` | string | `"claude-opus-5.5-max"` | Displayed model name. |
| `models[].arena_score` | integer | `1827` | Displayed Arena score. |
| `models[].organization` | string or null | `"Anthropic"` | Organization behind the model. |
| `models[].leaderboard_link` | string | `"https://arena.ai/leaderboard/code/webdev"` | Public page for this leaderboard. |
| `models[].confidence_interval` | string or null | `"+18/-18"` | Confidence interval exactly as displayed, such as ±12 or +18/-18. |
| `last_updated` | string | `"2026-09-25"` | Date the selected leaderboard was last updated (YYYY-MM-DD). |

**Example input**

```json
{
  "category": "webdev",
  "max_results": 5
}
```

**Example output**

```json
{
  "models": [
    {
      "rank": 1,
      "votes": 1607,
      "license": "Proprietary",
      "model_name": "claude-opus-5.5-max",
      "arena_score": 1827,
      "organization": "Anthropic",
      "leaderboard_link": "https://arena.ai/leaderboard/code/webdev",
      "confidence_interval": "+18/-18"
    },
    {
      "rank": 2,
      "votes": 4908,
      "license": "Proprietary",
      "model_name": "gpt-6-astra-max",
      "arena_score": 1792,
      "organization": "OpenAI",
      "leaderboard_link": "https://arena.ai/leaderboard/code/webdev",
      "confidence_interval": "+11/-11"
    },
    {
      "rank": 3,
      "votes": 5313,
      "license": "Proprietary",
      "model_name": "claude-fable-5.1-max",
      "arena_score": 1751,
      "organization": "Anthropic",
      "leaderboard_link": "https://arena.ai/leaderboard/code/webdev",
      "confidence_interval": "+10/-10"
    }
  ],
  "last_updated": "2026-09-25"
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@lmarena",
  "visibility": "public",
  "operation": "get_leaderboard",
  "version": 1,
  "input": {
    "category": "webdev",
    "max_results": 5
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@lmarena\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_leaderboard\",\n  \"version\": 1,\n  \"input\": {\n    \"category\": \"webdev\",\n    \"max_results\": 5\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@lmarena",
  "visibility": "public",
  "operation": "get_leaderboard",
  "version": 1,
  "input": {
    "category": "webdev",
    "max_results": 5
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@lmarena","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Compare model rankings across arena categories
- Track Arena scores and vote counts
- Review model organizations and displayed licenses
- Monitor confidence intervals for ranked models
- Check when a selected leaderboard was last updated

## FAQ

### Is Fous affiliated with LMArena?

No. Fous is not affiliated with LMArena. This workflow reads the public arena.ai website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a LMArena account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from arena.ai when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 29, 2026.

### Which AI models rank highest in an arena?

Get leaderboard returns models in leaderboard order, with each model’s rank and Arena score.

### How many votes does each model have?

Get leaderboard returns the vote count for each model.

### When was the selected leaderboard last updated?

Get leaderboard returns the selected leaderboard’s last-updated date.

## Related

- [Hugging Face API](https://fous.com/workflows/hugging-face.md): Hugging Face returns public model, dataset, and demo search results, model details, or weekly trending models; unpublished information may be missing, and demo availability can change.
- [Sports Reference API](https://fous.com/workflows/sports-reference.md): Sports Reference provides regular-season career stats, awards and season records across basketball, football, baseball and hockey, plus season leaders using the latest published season if unspecified.
- [Chess.com API](https://fous.com/workflows/chess-com.md): Chess.com returns public player profiles, ratings, records, puzzle scores, top-player rankings, and completed public games for a selected month, defaulting to the current UTC month.
- [OpenRouter API](https://fous.com/workflows/openrouter.md): OpenRouter lets you browse and compare AI models by price, context, supported inputs, release date, hosting providers, and reported one-day uptime when available.
- [Twitch API](https://fous.com/workflows/twitch.md): Twitch returns channel profiles, live status, up to 10 broadcasts, top streams, viewer-ranked categories, up to 100 public videos/clips, and 1–30-day schedules; counts change.
- [Polymarket API](https://fous.com/workflows/polymarket.md): Polymarket shows searchable markets with search-time odds and sometimes-unavailable 24-hour volume, ranks open markets by trading, and tracks chances over time, sometimes without recent points.
- [CoinGecko API](https://fous.com/workflows/coingecko.md): CoinGecko returns cryptocurrency prices and histories, sector rankings and details, and trending coins; non-USD historical values cover 365 days, histories 7–365 days, and today’s prices may change.
- [Roblox API](https://fous.com/workflows/roblox.md): Explore and play community-created Roblox experiences, find experiences by name or link, and browse current Charts rankings with player counts and other details.
- [All AI workflows](https://fous.com/workflows/category/ai)
