Chess APIchess.com ↗
Get real-time Chess.com activity data: current players online and total games played today. Single endpoint, no params required, continuously updated snapshots.
What is the Chess API?
The Chess.com Live Stats API exposes 2 real-time activity fields from Chess.com through a single endpoint, get_live_stats. Call it with no parameters and receive a point-in-time snapshot of how many players are currently active on the platform and how many games have been played since midnight. Values update continuously as activity on the platform changes.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/91703e7a-c4ca-4eee-9d9f-a4ee74088ba6/get_live_stats' \ -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 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_api SDK — bounded, re-runnable; every call capped."""
from parse_apis.chess_com_api import ChessCom, ParseError
client = ChessCom()
# Fetch current live activity statistics
try:
activity = client.activities.get()
print(activity.players_online, activity.games_today)
except ParseError as e:
print(f"error: {e}")
print("exercised: activities.get")
Returns the current number of players playing on Chess.com and the total number of games played today. Values are point-in-time snapshots that change continuously.
No input parameters required.
{
"type": "object",
"fields": {
"games_today": "Total number of games played today",
"players_online": "Current number of players actively playing"
},
"sample": {
"data": {
"games_today": 21968449,
"players_online": 148667
},
"status": "success"
}
}About the Chess API
What the API Returns
The get_live_stats endpoint returns two fields: players_online, the count of players actively in games at the moment of the request, and games_today, the cumulative total of games completed or started since the current calendar day began. Neither field requires any input — the endpoint takes no parameters.
Data Freshness
Both values are point-in-time snapshots. players_online reflects the live concurrent player count at request time, so repeated calls within seconds can return different values. games_today is a running total that resets daily. If you need a time-series view, you must poll the endpoint at your own cadence and store results.
Scope and Coverage
This API covers platform-wide aggregate activity only. It does not expose per-player data, game-type breakdowns (bullet, blitz, rapid, classical), or regional splits. The two returned fields are sufficient for dashboards tracking Chess.com's overall activity level over time.
The Chess API is a managed, monitored endpoint for chess.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when 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 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.
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?+
- Display a live Chess.com activity widget showing current concurrent players on a gaming analytics dashboard
- Poll
players_onlineat regular intervals to build an intraday time-series chart of Chess.com traffic patterns - Alert when
players_onlinecrosses a threshold, indicating peak or off-peak platform load - Track daily game volume via
games_todayto compare Chess.com activity across different dates or events - Combine with tournament schedule data to correlate platform activity spikes with major chess events
| 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 Chess.com have an official developer API?+
What exactly does `get_live_stats` return?+
get_live_stats returns two integer fields: players_online (the number of players currently in active games at request time) and games_today (the cumulative game count since the start of the current day). There are no filter parameters — every call returns the same two platform-wide aggregate values.Can I get a breakdown of activity by game type, such as bullet, blitz, or rapid?+
players_online and games_today, with no breakdown by time control or game variant. You can fork this API on Parse and revise it to add an endpoint targeting game-type-specific activity data.How often do the returned values change, and is historical data available?+
players_online changes continuously; games_today increments throughout the day and resets at midnight. The API delivers only the current snapshot — no historical records are stored or returned. To build a historical dataset, you need to poll the endpoint and persist the results yourself.