LMArena APIlmarena.ai ↗
Access LMArena.ai leaderboard rankings across text, code, vision, image, video, and search arenas. Get model ratings, votes, licenses, and capabilities via 13 endpoints.
What is the LMArena API?
This API exposes 13 endpoints covering every leaderboard category on lmarena.ai — text, code, vision, image editing, text-to-image, text-to-video, image-to-video, and search — plus a full model catalog. The get_top_models_by_category endpoint lets you query any arena by name and cap results with a limit parameter, while list_available_models returns per-model capability flags, organization, and cross-modality rank in a single call.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/e3e90e15-f9f2-49dc-a1e2-de9030d6d41d/get_leaderboard_overview' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace lmarena-ai-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""LMArena leaderboard exploration: compare models across categories."""
from parse_apis.lmarena_leaderboard_api import LMArena, Category, CategoryInvalid
client = LMArena()
# Get top 5 text models by rating using the parametric endpoint
for ranking in client.rankings.top(category=Category.TEXT, limit=5):
print(ranking.model_display_name, ranking.rating, ranking.model_organization)
# Fetch the code leaderboard directly and take the leader
leader = client.rankings.code(limit=1).first()
if leader:
print(leader.model_display_name, leader.rank, leader.votes)
# Search for a model family across the text leaderboard
result = client.rankings.search(query="claude", category=Category.CODE, limit=1).first()
if result:
print(result.model_display_name, result.rank, result.input_price_per_million)
# List available models and inspect capabilities
model = client.availablemodels.list(limit=1).first()
if model:
print(model.display_name, model.organization, model.user_selectable)
# Handle a bad category gracefully
try:
client.rankings.top(category=Category.VISION, limit=3).first()
except CategoryInvalid as exc:
print(f"Invalid category: {exc.category}")
print("exercised: rankings.top / rankings.code / rankings.search / availablemodels.list")
Fetch the default leaderboard overview showing ranked models on the main leaderboard page. Returns the full entries array and metadata. Useful as a quick summary of top-performing models across the default category.
No input parameters required.
{
"type": "object",
"fields": {
"entries": "array of model ranking objects with rank, modelDisplayName, rating, votes, modelOrganization, license, and pricing fields",
"metadata": "object containing leaderboard metadata"
},
"sample": {
"data": {
"entries": [
{
"rank": 1,
"votes": 1289,
"rating": 1379.33,
"license": "Proprietary",
"modelKey": "k2-video-edit",
"modelUrl": "https://seed.bytedance.com/en/seedance2_0",
"rankLower": 1,
"rankUpper": 1,
"ratingLower": 1363.72,
"ratingUpper": 1394.94,
"contextLength": null,
"pricePerImage": null,
"pricePerSecond": null,
"modelDisplayName": "dreamina-seedance-2.0-720p",
"modelOrganization": "Bytedance",
"inputPricePerMillion": null,
"outputPricePerMillion": null
}
],
"metadata": {}
},
"status": "success"
}
}About the LMArena API
Leaderboard Endpoints
Each arena has a dedicated endpoint: get_text_leaderboard, get_code_leaderboard, get_vision_leaderboard, get_text_to_image_leaderboard, get_image_edit_leaderboard, get_search_leaderboard, get_text_to_video_leaderboard, and get_image_to_video_leaderboard. Every leaderboard response includes an entries array and an initialModels list. The entries objects carry rank, modelDisplayName, rating, votes, modelOrganization, license, and pricing. Text and code entries also expose contextLength. The initialModels list includes id, organization, displayName, and capabilities, making it easy to cross-reference ranked models with what is currently available for use.
Flexible Querying
get_top_models_by_category accepts a required category string (matching any supported arena) and an optional limit integer, returning a models array sorted by rank along with echo fields for both parameters. search_leaderboard_models takes a required query and an optional category, performing a case-insensitive substring match against model display names and organization names — useful for tracking a specific provider's models across an arena without fetching the full leaderboard. The response echoes query, category, and a results array of matching ranking objects.
Specialized Summaries
get_best_coding_models returns two parallel arrays in one call: code_leaderboard (all code arena entries sorted by rank) and text_leaderboard_snapshot (the top 10 text arena entries). This is useful for quickly comparing code-specialized model performance against the broader text model landscape without making two separate requests.
Full Model Catalog
list_available_models is independent of any single leaderboard. It returns a models array where each object includes id, organization, displayName, capabilities (input/output modalities), userSelectable (whether users can pick the model directly), and rankByModality (the model's rank within each relevant arena). This endpoint gives a complete, modality-aware picture of what is active on the platform at any moment.
The LMArena API is a managed, monitored endpoint for lmarena.ai — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when lmarena.ai changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official lmarena.ai API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track weekly rank and rating changes for a specific model organization using
search_leaderboard_modelswith the org name as the query. - Build a model selection widget that filters by modality using the
capabilitiesanduserSelectablefields fromlist_available_models. - Compare code model ratings against general text model ratings using the dual-array response from
get_best_coding_models. - Monitor which open-source (license field) models rank in the top 10 of each arena using
get_top_models_by_categorywith a low limit. - Aggregate vote counts across all arenas to identify which models have the broadest evaluation coverage.
- Populate a leaderboard dashboard showing context length alongside rating for text models via the
contextLengthfield inget_text_leaderboardentries. - Identify which image-generation models are currently selectable by users by joining
get_text_to_image_leaderboardentries withlist_available_modelson model id.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does lmarena.ai have an official developer API?+
What does `list_available_models` return that the leaderboard endpoints don't?+
list_available_models returns the full model catalog independent of any arena ranking. Each object includes capabilities (input and output modalities), userSelectable (whether the model can be chosen directly), and rankByModality (rank within each applicable arena). Leaderboard endpoints only expose ranking data within a single arena at a time.Can I retrieve historical leaderboard data or track rating changes over time?+
Does the API expose individual battle results or per-prompt evaluation data?+
How does `search_leaderboard_models` handle category selection?+
category parameter is optional. When omitted, the search runs against a default leaderboard. When provided, it scopes the match to that specific arena. The match is a case-insensitive substring against both modelDisplayName and modelOrganization fields in the response entries.