Chess.com Published Data API
Free Chess.com published-data API with no key: player profiles, ratings, monthly game archives, clubs, tournaments and daily puzzles. Tested example.
Endpoint tested and returned HTTP 200 on 20 Aug 2026
What is the Chess.com Published Data API?
The Chess.com Published-Data API is a free, key-free API providing public player profiles, rating statistics, monthly game archives in PGN, club and tournament data, and the daily puzzle.
Chess.com is the largest chess platform, and its published-data API exposes everything public about a player: profile, current ratings across time controls, and complete game archives organised by month.
The monthly archive structure is deliberate and worth planning for. You first fetch a list of archive URLs — one per month the player was active — then fetch each. A player active for years means dozens of requests, so cache aggressively.
Quick facts
- Base URL
https://api.chess.com/pub- Authentication
- No API key required. Chess.com asks for a descriptive User-Agent with contact details.
- Rate limit
- No published hard limit, but parallel requests to the same endpoint are throttled — serialise them.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Chess.com Published Data API
Every request below was executed against the live API on 20 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. Fetch a player profile
GET https://api.chess.com/pub/player/hikaru
curl 'https://api.chess.com/pub/player/hikaru'const res = await fetch("https://api.chess.com/pub/player/hikaru");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.chess.com/pub/player/hikaru", timeout=20)
res.raise_for_status()
print(res.json()){
"avatar": "https://images.chesscomfiles.com/uploads/v1/user/15448422.88c010c1.200x200o.3c5619f5441e.png",
"player_id": 15448422,
"@id": "https://api.chess.com/pub/player/hikaru",
"url": "https://www.chess.com/member/Hikaru",
"name": "Hikaru Nakamura",
"username": "hikaru",
"title": "GM",
"followers": 1406493,
"country": "https://api.chess.com/pub/country/US",
"location": "Florida",
"last_online": 1787160848,
"joined": 1389043258,
"status": "premium",
"is_streamer": true,
"twitch_url": "https://twitch.tv/gmhikaru",
"verified": false,
"league": "Legend",
"streaming_platforms": [
{
"type": "twitch",
"channel_url": "https://twitch.tv/gmhikaru"
}
]
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
player/<username> | path | Optional | Player profile. player/hikaru |
player/<username>/stats | path | Optional | Ratings and records per time control. stats |
player/<username>/games/archives | path | Optional | List of monthly archive URLs. games/archives |
puzzle | path | Optional | The daily puzzle. puzzle |
Response fields
player_id / usernameinteger|string- Player identifiers.
titlestring- Chess title such as GM or IM, when held.
followersinteger- Follower count.
countrystring- URL of the country resource — follow it for the name.
statusstring- Account status such as premium or basic.
last_online / joinedinteger- Unix timestamps.
What you can build with the Chess.com Published Data API
- Track a player's rating progression over time
- Download and analyse game archives
- Build a club or tournament leaderboard
- Embed the daily puzzle in a chess site
Common errors and how to fix them
Parallel requests throttled
Chess.com serialises concurrent requests to the same endpoint.
Fix: Make requests sequentially rather than in parallel, or you will be rate limited.
Country is a URL, not a name
Several fields are resource links.
Fix: Follow the URL to get the country name and code.
Enormous archive lists
One archive per active month.
Fix: Cache aggressively; historical months never change once complete.
Chess.com Published Data API — frequently asked questions
Is the Chess.com API free?
Yes, the published-data API is free with no key. Chess.com asks that you send a descriptive User-Agent with contact details.
How do I download someone's games?
Fetch /games/archives for a list of monthly archive URLs, then request each. A long-active player has many months, so cache — completed months never change.
Why do my parallel requests fail?
Chess.com serialises concurrent requests to the same endpoint and throttles the rest. Make requests sequentially.
How does it compare with the Lichess API?
Chess.com has far more players; Lichess is open source with a more generous API including an opening explorer. Both are free for public data.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Timestamp Converter
Convert timestamps to human-readable dates and dates back to timestamps. Auto-detects seconds vs milliseconds, shows local, UTC and ISO 8601 formats.
Alternatives to Chess.com Published Data API
If Chess.com Published Data does not fit, these game & anime apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| PokéAPI | Free Pokémon API with no key: stats, types, abilities, moves, evolutions and sprites for 1,000+ species. The most popular API for learning REST. Tested example. | No key | Yes | 19 Aug 2026 |
| Rick and Morty API | Free Rick and Morty API with no key: 800+ characters, episodes and locations with images, filtering and pagination. REST and GraphQL. Tested example. | No key | Yes | 19 Aug 2026 |
| Jikan (MyAnimeList) | Free unofficial MyAnimeList API with no key: anime and manga data, scores, characters, staff and seasonal listings. Tested curl example and live JSON. | No key | Yes | 19 Aug 2026 |
| Deck of Cards | Free playing card API with no key: shuffle decks, draw cards, manage piles and get card images. Stateful deck ids. Tested curl example and live JSON. | No key | Yes | 19 Aug 2026 |
| Crafatar | Free Minecraft avatar API with no key. Render any player's face, 3D head, full body or raw skin and cape straight from a UUID, at any size, as a plain image URL. | No key | Yes | 21 Aug 2026 |
| CS:GO / CS2 Items API | Free Counter-Strike 2 and CS:GO item API with no key: every skin, crate, sticker, agent, charm and collection with rarity colours, market hash names and Steam CDN images. | No key | Yes | 21 Aug 2026 |
Chess.com Published Data is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 20 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.