Discover/Chess API
live

Chess APIapi.chess.com

Retrieve top-ranked Chess.com players by category — blitz, rapid, bullet, and more. Access ratings, win/loss/draw counts, titles, and profile data for up to 50 players.

This API takes change requests — .
Endpoint health
verified 4h ago
get_leaderboard
1/1 passing latest checkself-healing
Endpoints
1
Updated
5h ago

What is the Chess API?

The Chess.com Leaderboards API exposes 12 response fields per player — including rating, title, win/loss/draw counts, and country — through the get_leaderboard endpoint. Pass a category parameter to target game formats such as blitz, rapid, bullet, or daily chess, and use the top parameter to limit results to between 1 and 50 pre-ranked players. No sorting or post-processing is required; the server returns players in rank order.

This call costs1 credit / call— charged only on success
Try it
Maximum number of players to return (1–50).
Leaderboard category to retrieve.
api.parse.bot/scraper/5b5d974a-70f7-4ed0-b196-21f57600856d/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/5b5d974a-70f7-4ed0-b196-21f57600856d/get_leaderboard?top=5&category=daily' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 api-chess-com-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.

"""Walkthrough: Chess.com Leaderboards SDK — bounded, re-runnable; every call capped."""
from parse_apis.api_chess_com_api import ChessCom, Category, InvalidCategory

client = ChessCom()

# Fetch top blitz players — limit= caps total items returned.
for player in client.leaderboards.get(category=Category.LIVE_BLITZ, limit=3):
    print(player.username, player.rating, player.title)

# Drill-down: take the #1 rapid player with .first().
top_rapid = client.leaderboards.get(category=Category.LIVE_RAPID, limit=1).first()
if top_rapid:
    print(top_rapid.name, top_rapid.country, top_rapid.win_count)

# Typed error: catch an invalid-category response.
try:
    client.leaderboards.get(category=Category.LIVE_BULLET, limit=2).first()
except InvalidCategory as e:
    print(f"bad category: {e.category}")

print("exercised: leaderboards.get")
All endpoints · 1 totalmissing one? ·

Retrieve the top N players from a Chess.com leaderboard category. Each category contains up to 50 ranked players with their rating, title, win/loss/draw counts, and profile URL. Results are pre-ranked by the server; no client-side sorting is needed.

Input
ParamTypeDescription
topintegerMaximum number of players to return (1–50).
categorystringLeaderboard category to retrieve.
Response
{
  "type": "object",
  "fields": {
    "players": "array of player objects with rank, username, rating, score, title, name, country, url, win_count, loss_count, draw_count, status",
    "category": "string — the leaderboard category returned",
    "total_in_category": "integer — total players available in this category (up to 50)"
  },
  "sample": {
    "data": {
      "players": [
        {
          "url": "https://www.chess.com/member/ManuDavid2910",
          "name": "Manu David",
          "rank": 1,
          "score": 2966,
          "title": "FM",
          "rating": 2966,
          "status": "premium",
          "country": "IN",
          "username": "ManuDavid2910",
          "win_count": 289,
          "draw_count": 16,
          "loss_count": 37
        },
        {
          "url": "https://www.chess.com/member/GutovAndrey",
          "name": "Andrey Gutov",
          "rank": 2,
          "score": 2938,
          "title": "GM",
          "rating": 2938,
          "status": "premium",
          "country": "US",
          "username": "GutovAndrey",
          "win_count": 153,
          "draw_count": 3,
          "loss_count": 1
        }
      ],
      "category": "live_rapid",
      "total_in_category": 50
    },
    "status": "success"
  }
}

About the Chess API

What get_leaderboard Returns

The get_leaderboard endpoint returns an array of player objects, each containing rank, username, rating, score, title (e.g. GM, IM, FM), name, country, url, win_count, loss_count, draw_count, and status. The response also includes a top-level category string confirming which leaderboard was queried and a total_in_category integer indicating how many players are available (capped at 50).

Input Parameters

Two optional parameters control the response. category selects the game format — supported values include blitz, rapid, bullet, daily, and variants like chess960. top accepts an integer from 1 to 50 and trims the result to only the requested number of leading players. If neither parameter is provided, the endpoint returns the default leaderboard in full.

Data Coverage and Freshness

Leaderboard data reflects Chess.com's public rankings, which are updated periodically by Chess.com's own systems. Ratings shown are the players' current published ratings for the selected time control. Fields like title and country are pulled from each player's public profile and may be empty if the player has not set them. The url field links directly to the player's Chess.com profile page.

Reliability & maintenanceVerified

The Chess API is a managed, monitored endpoint for api.chess.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when api.chess.com 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 api.chess.com 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.

Last verified
4h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a live ratings tracker that monitors rank and rating changes for top blitz or rapid players over time.
  • Populate a chess tournament seeding tool using current rating and win_count data from a specific category.
  • Display a country-filtered leaderboard by reading the country field on each returned player object.
  • Create an analytics dashboard comparing win/loss/draw ratios across the top 50 players in a given format.
  • Generate weekly reports on which titled players (GM, IM, FM) appear in a leaderboard category using the title field.
  • Feed a sports data aggregator with current chess standings alongside other competitive game rankings.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Chess.com have an official public developer API?+
Yes. Chess.com publishes a free public data API documented at https://www.chess.com/news/view/published-data-api. The leaderboards endpoint at api.chess.com/pub/leaderboards is part of that official surface.
What does the `category` parameter accept, and how does it affect results?+
The category parameter selects the game format for the leaderboard. Supported values include blitz, rapid, bullet, daily, chess960daily, live960, and others published by Chess.com. Each category returns an independent ranked list; ratings and records shown are specific to that time control or variant.
Does the API return historical leaderboard snapshots or trend data?+
No. The get_leaderboard endpoint returns the current standings only — a single snapshot of up to 50 players at the time of the request. Historical snapshots and rating trend data are not part of this API. You can fork it on Parse and revise it to add a scheduled data-collection endpoint that stores periodic snapshots for trend analysis.
Can I retrieve data for players ranked below the top 50?+
The endpoint is limited to the top 50 players per category as defined by Chess.com's public leaderboards. Rankings beyond position 50 are not covered. You can fork this API on Parse and revise it to add endpoints drawing from Chess.com's player search or club data to extend coverage.
Are game-specific stats like accuracy or opening repertoire included in player objects?+
No. The player objects returned by get_leaderboard cover rating, win_count, loss_count, draw_count, title, country, and status. Accuracy scores, opening repertoires, and per-game breakdowns are not exposed by this endpoint. You can fork this API on Parse and revise it to pull from Chess.com's per-player stats endpoint to add those fields.
Page content last updated . Spec covers 1 endpoint from api.chess.com.
Related APIs in SportsSee all →
ratings.fide.com API
Find chess players and track their FIDE ratings, rankings, and performance history by searching the official ratings database or browsing the world's top-ranked players. Get detailed player profiles with complete rating trends and game statistics to analyze any player's competitive record.
chess.com API
Monitor real-time activity statistics for Chess.com players, including their current online status, recent game performance, and live rating changes. Track player engagement metrics instantly to stay updated on how active players are performing across the platform.
chess.org.il API
Search and find detailed information about chess players registered with the Israel Chess Federation, including their ratings, rankings, and tournament history. Get comprehensive player profiles to research opponents, track performance statistics, or explore the Israeli chess community.
chess-results.com API
Track chess tournaments across any federation by viewing schedules, pairings, and upcoming games, or browse available tournaments to find competitions of interest. Get detailed round-by-round matchups and game information to stay updated on tournament progress and player performance.
theopen.com API
Track player performances and tournament standings in real-time with hole-by-hole scoring details and live leaderboard rankings for The Open Championship. Get comprehensive scorecard information for any player to follow their round progress throughout the tournament.
lmarena.ai API
lmarena.ai API
designarena.ai API
Track AI coding agent performance by viewing ELO rankings and model metadata on the Design Arena Agent leaderboard. Monitor signal metrics to compare how different agents compete and rank against each other.
csstats.gg API
Access Counter-Strike 2 player statistics, match history, and leaderboard rankings from csstats.gg. Search players by Steam ID or name, retrieve detailed performance metrics and recent match results, explore scoreboard data, view played-with history, and check global ban statistics.