Chess.com Player & Game Scraper avatar

Chess.com Player & Game Scraper

Pricing

from $9.74 / 1,000 result items

Go to Apify Store
Chess.com Player & Game Scraper

Chess.com Player & Game Scraper

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.

Pricing

from $9.74 / 1,000 result items

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

0

Monthly active users

a day ago

Last modified

Share

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 itWhat they scrape Chess.com for
Chess coachesReview a student's recent games and rating progress to plan lessons
Market researchersTrack rating trends and game activity across top players
Data analystsBuild datasets of player ratings and game outcomes for statistical analysis
Chess enthusiastsArchive 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 keyScrape public Chess.com data without registering an app or dealing with OAuth.
Fixed schemaEvery row has the same fields, so you can export to CSV, JSON, Excel, or XML and analyze immediately.
Bulk supportPass hundreds of usernames in one run and get all their data in a single dataset.
Up to a million gamesCollect 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.

FeatureParseForgeChess Opponent AnalyzerChess Ratings AggregatorChess.com Player Game Archive Scraper
Player profiles with ratingsYesNot listedYesYes
Recent games with movesYesYesNot listedYes
Bulk username supportYesNot listedNot listedYes
Opening analysis and ECO statsNot listedYesNot listedYes
Multi-platform rating comparisonNot listedNot listedYesNot listed
Full game archive with PGNNot listedNot listedNot listedYes

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 collectedApproximate 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

QuestionAnswer
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.

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.