ParseForge Scrapers

Chess.com Player & Game Scraper

parseforge/chess-com-scraper

SportsDeveloper toolsAutomation

Scrapes Chess.com player profiles with ratings and recent games by username. Returns flat rows with player details or game data. Supports bulk usernames and up to 1,000,000 games per run.

Run this scraper See the API call
Total users
12
Monthly active
1
Total runs
157
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

Chess.com Player & Game Scraper

Scrape Chess.com player profiles, ratings, and recent games for any username, up to a million games per run. Every row returns the player's rating, title, country, and game details like moves, result, and time control. No login or API key. Export to CSV, JSON, Excel, or XML.

Chess.com's official API needs an app registration, OAuth, and rate-limits you. This reads the public player pages and game archives directly, filtered by username and mode, and returns each match in one fixed schema. Get player profiles with current ratings or recent games with full move lists, all without writing a line of code.

Who uses it What they scrape Chess.com for
Chess coaches Review a student's recent games and rating progress to plan lessons
Market researchers Track rating trends and game activity across top players
Data analysts Build datasets of player ratings and game outcomes for statistical analysis
Chess enthusiasts Archive their own games and monitor their rating changes over time

What it does

This Actor collects Chess.com player profiles with ratings and recent games by username, and returns each one as a flat row.

  • ๐Ÿ‘ค Player Profiles & Ratings: fetch current rating, title, country, and profile details for any username.
  • โ™Ÿ๏ธ Recent Games: collect the latest games with moves, result, time control, and opponent info.
  • ๐Ÿ“Š Bulk usernames: pass a list of usernames and scrape them all in one run.
  • โš™๏ธ Flexible limits: set a maximum number of games to collect per run, from 1 to 1,000,000.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Chess.com data

๐Ÿ“ˆ Track rating progress.

A chess coach enters a student's username in profile mode to see their current rating and then switches to games mode to review recent matches and identify weaknesses.

๐Ÿ” Analyze opponent patterns.

A tournament player scrapes the recent games of upcoming opponents to study their openings and time management before a match.

๐Ÿ“Š Build a rating dataset.

A data analyst collects profiles for a list of top grandmasters and exports the ratings to CSV for trend analysis and visualization.

๐Ÿ—‚๏ธ Archive your own games.

A chess enthusiast runs the Actor on their own username with a high maxItems to download a complete history of their games for personal backup.

Why choose this scraper

What you get
No API key Scrape public Chess.com data without registering an app or dealing with OAuth.
Fixed schema Every row has the same fields, so you can export to CSV, JSON, Excel, or XML and analyze immediately.
Bulk support Pass hundreds of usernames in one run and get all their data in a single dataset.
Up to a million games Collect large game archives for any player, limited only by your maxItems setting.

How it compares

This Actor focuses on simple, fast scraping of Chess.com profiles and recent games, while competitors offer deeper analysis or multi-platform aggregation.

Feature ParseForge Chess Opponent Analyzer Chess Ratings Aggregator Chess.com Player Game Archive Scraper
Player profiles with ratings Yes Not listed Yes Yes
Recent games with moves Yes Yes Not listed Yes
Bulk username support Yes Not listed Not listed Yes
Opening analysis and ECO stats Not listed Yes Not listed Yes
Multi-platform rating comparison Not listed Not listed Yes Not listed
Full game archive with PGN Not listed Not listed Not listed Yes

Configure the run

Drive the Actor from a list of Chess.com usernames, choose profile or games mode, and set a maximum number of games to collect per run. The Input tab lists every parameter.

A first run with the defaults:

{
  "usernames": [
    "MagnusCarlsen",
    "hikaru"
  ],
  "maxItems": 10
}

A larger pull:

{
  "usernames": [
    "MagnusCarlsen",
    "hikaru"
  ],
  "maxItems": 200
}

Pricing

Pay-per-result: $0.01299 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $1.30
1,000 results $12.99
10,000 results $129.90

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Chess.com Player & Game Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Chess.com through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/chess-com-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that the usernames are spelled correctly and are public on Chess.com. Also ensure maxItems is set to at least 1.

Why does the run fail with an error?

The most common cause is an invalid username. Verify each username exists on Chess.com. If the problem persists, check the Actor log for details.

Why are some games missing?

Games mode only returns the most recent games shown on the player's public profile. Older games may not be available without accessing the full archive.

How do I export the data?

After the run finishes, go to the Dataset tab in Apify and choose your format: CSV, JSON, Excel, or XML.

Can I scrape private profiles?

No, this Actor only accesses public data. Private profiles or games behind a login cannot be scraped.

FAQ

Question Answer
Do I need a Chess.com API key? No. This Actor scrapes the public Chess.com website directly, so you do not need to register an app or get an API key.
Can I scrape multiple usernames at once? Yes. Pass a list of usernames in the input and the Actor will fetch data for each one in a single run.
What is the difference between profile and games mode? Profile mode returns player details like current rating, title, and country. Games mode returns recent games with moves, results, and time controls.
How many games can I collect? You can set maxItems from 1 to 1,000,000 games per run. The Actor will stop after reaching that number.
What export formats are supported? You can export the dataset to CSV, JSON, Excel, or XML directly from the Apify platform.
Does this work for any Chess.com username? Yes, as long as the username is public and exists on Chess.com. The Actor will return an error for invalid usernames.
Can I get historical games or only recent ones? Games mode returns the most recent games available on the player's public profile. For full archives, you may need a different tool.
Is this legal to use? You should only scrape public data and respect Chess.com's terms of service. This Actor does not bypass any login or paywall.
How fast is the scraping? Speed depends on the number of usernames and games requested. The Actor runs efficiently and can handle large lists.
Can I schedule this Actor to run regularly? Yes, you can set up a schedule in Apify to run the Actor daily, weekly, or at any interval to keep your data fresh.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Chess.com, LLC. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
usernames required array Chess.com usernames to fetch (e.g. ['MagnusCarlsen', 'hikaru']) ["MagnusCarlsen","hikaru"]
maxItems integer Maximum number of games to collect per run. 10
mode string (2 options) Choose what data to scrape: player profiles with ratings, or recent games. profile

Pricing

from $9.74 per 1,000 results

Charged forWhat it isPrice each
Result Item Charged once per result collected. $0.00974 to $0.01299

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~chess-com-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Chess.com Player & Game Scraper on Apify All scrapers