I'm working on a GUI that lets players download their games, which showed that it downloaded more games than I had played, so I investigated and found chess.com's data to be inconsistent. Right now, the total number of games I've played is 1,415 (see https://www.chess.com/member/robin_buck/games). However, summing up all the "win", "draw" and "loss" stats from https://api.chess.com/pub/player/robin_buck/stats gives 1,401. The same (incorrect) number is shown at https://www.chess.com/member/robin_buck/stats?days=0.
Avatar of Martin_Stahl
Martin_Stahl Aug 9, 2025
I'm working on a GUI that lets people download their games from chess.com, and games played against bots are missing in the data set. Example: No games show up in https://api.chess.com/pub/player/robin_buck/games/2022/01 although this player played one bot game that month (compare with https://www.chess.com/member/robin_buck/games close to the end of the list).Note that, although this endpoint returns no games, it shows up in https://api.chess.com/pub/player/robin_buck/games/archives.
Avatar of Martin_Stahl
Martin_Stahl Aug 9, 2025
https://api.chess.com/pub/club/promote-to-king/members FAILS code 0 message "An internal error has occurred. Please contact Chess.com Developer's Forum for further help https://www.chess.com/club/chess-com-developer-community ." https://api.chess.com/pub/club/grand-tourneys/members Works I think it is due to the number of members in the club. But countries work great. i.e. https://api.chess.com/pub/country/US/players
Avatar of stephen_33
stephen_33 Aug 9, 2025
You should make 1980 game bots here are my ideas:Space Invaders: 300 elo Tetris: 800 elo Minesweeper: 1600 elo Mario: 2400 elo Pacman: 3000 elo
Hi everyone, I can't make sense of which players are selected when using the api because the numbers seems to differ from articles and leaderboard. Let me explain. I took a look at this articles on players per countries : https://www.chess.com/article/view/chess-countries If you search for Aruba, you have 18,198 players But if you analyse the leaderboard of rapid, you have 1808 players (https://www.chess.com/leaderboard/live/rapid?country=AW&page=37) You might say, "Yes there are only active players on the leaderboard, according to chess.com, 'Active players in the last 90 days'" So why the api call to Aruba only returns 681 players (out of the 10000 limit) ? Is it neither the total of players, nor the active(https://api.chess.com/pub/country/AW/players) It is the same for the others countries Does anyone figure out how they filter their players ? Thank you
Avatar of FrenchSunday
FrenchSunday Aug 4, 2025
Is this right? It is from GPT and I have gotten very GPT Shy. ✅ These Extensions Are Okay – No Game Analysis Involved Chess.com’s Fair Play Policy explicitly states: “Do not use chess engines, software of any kind, bots, plugins, browser extensions, or any tools that analyze positions during play. We can detect if you are using any of these programs.”— Fair Play Policy, updated Nov 4, 2024 🔒 That policy is strict about tools that analyze games during play — and Chess.com enforces this actively. 🧠 Our extensions do not analyze games or make suggestions during play. They’re for interface improvements, formatting, or post-game tools. That means: No real-time analysis No engine access No unfair advantage 🧾 Additional confirmations from moderators: “Use of an extension like that in games against other members is against the fair play policy and will get an account using it closed.”— Chess.com Support & Forums 📌 So long as the extensions are not analyzing ongoing positions, they are in line with the rules and pose no fair play risk.
I made a python script that is a companion to my chess_archive_parser python script. This script expects you to be in the directory containing all monthly archive pgns and creates separate PGN files for importing into SCID-vs_PC or Chessbase or what ever PGN reader you use. More information in the README.md on github: https://github.com/Mouselip/cc_archive_splitter
After working occasionally on a Firefox addon, it should be ready for advertising here (I won't spam, promise)! It extends opening names to reflect extra moves after the opening name, so if you played something such as the Queen's Pawn Opening and black makes a move, it will update the opening name if the opening has an official chess.com opening name link. It uses a very simple concept, and it is my first Firefox addon ever developed! Enjoy Firefox (and browsers based on Firefox) users: https://addons.mozilla.org/en-US/firefox/addon/opening-name-extender Source code (licensed under the EUPL v1.2, migrated to Codeberg from Github): https://codeberg.org/horsey_guy/chess.com-opening-name-improver
Chess960 WL2025 R5: Team Spain v Team England  https://api.chess.com/pub/match/1788988 https://www.chess.com/club/matches/1788988/games  "An internal error has occurred. Please contact Chess.com Developer's Forum for further help https://www.chess.com/club/chess-com-developer-community ."
Avatar of Tricky_Dicky
Tricky_Dicky Jul 23, 2025
Hi all, Previously, when calling: 🔗 https://api.chess.com/pub/tournament/{slug} I could see all participants, including those with "status": "invited" — players who had been invited but hadn’t joined yet. Now, it seems the API only returns players with statuses of "registered" , and those with "status": "invited" are completely missing from the response. 🛠️ Was this an intentional change?🔎 Is there a new way to track who has been invited but hasn’t accepted? This info was very useful for managing invites. I could see if a tournament needed more invitations as players accepted. Any guidance would be appreciated! Thanks,— AlAlperFounder, Grand Tourneys ♟️
Two more completed matches with Internal error https://api.chess.com/pub/match/1582175 https://api.chess.com/pub/match/1672955 
Description:The chessboard is currently not centered on the screen. As shown in the attached image, the horizontal spacing is unbalanced: the area to the right of the board is approximately twice as wide as the space on the left. This creates a clear visual misalignment, making the board appear shifted to the left. Why this matters:In user interface design — especially for games like chess that require constant visual focus — keeping the primary element centered is crucial. The current imbalance: Disrupts the user’s natural line of sight (focus zone) Causes discomfort during longer sessions Results in inefficient use of screen space on larger displays Evidence:As shown in the image, the red lines and annotations illustrate the exact difference between the left and right margins. The spacing on the right is clearly about 2× larger, which visually pulls the user's attention away from the game area. Suggestion:Rebalancing the layout so the board sits in the true horizontal center of the screen — or making it responsive to screen width — would create a much more comfortable and immersive playing experience, aligned with modern design standards seen in major chess platforms.
I've noticed many players, especially those still refining their style, struggle to choose the right openings. As a teacher, I often match students to openings based on their preferences and play patterns, and I wondered: could a tool do this automatically? I’m designing a quiz-based concept that recommends openings based on factors like time control, style of play, comfort with theory, etc. The system could be structured around the ECO classification and integrated into Chess.com’s learning tools.Chess.com already has an opening database, and insights into every player that might make this process that much easier and more efficient to implement.  Would this be useful to other players? I’d love to hear what the community thinks and I'm happy to share more details or answer questions. Also let me know if anyone would like to help?PS: I already posted the same thing in the Chess.com Feedback if this looks familiar
Trying to pull the stats of a user via Cloudflare worker, using the `api.chess.com/pub/player/stats` endpoint is returning an html response saying that the request was blocked. Are there specific headers I need to be including with the request to get around this? Haven't had this issue with my bot before, but it was hosted on a separate service before. Any help would be much appreciated.
Im on a macbook, so could i have any advice to build a strong chess engine from scratch?
Hi fellow Chess.com Developers, I wanted to ask the community: Do you think Chess.com needs a more formal and transparent process for approving automation tools like Selenium in scripts? 🔍 Current Automation Policy (verbatim from the Developer Agreement): Unauthorized AccessYou may not access or use the Site or Services using any automated means (such as robots, spiders, scrapers, or scripts) unless you have received explicit written permission from Chess.com. This includes but is not limited to: Automating the login process Interacting with site elements (e.g., buttons, forms, or pages) Collecting data from private pages or user sessions Simulating human behavior or input Violating this rule may result in termination of your access to the API and potential action against your Chess.com account. In practice, though, there doesn’t seem to be a formal process to request this permission. When people reach out to Support, they often get responses like “we'll pass this to the team” or “we're not sure” — but no definitive approval or guidance. ⚖️ Compare that to the Second Account Policy: “We allow second accounts in certain situations—like for streamers who want to separate their public and private play, or for people testing bots. All second accounts must be disclosed, and approval is required.” There’s even a standard form built into the support chat for second account requests. 💡 Suggestion: Chess.com could really benefit from a similar formal approval system for automation, including: A request form (like second accounts have) A list of clearly permitted automation types (e.g. club tournament creation, stat collection via API, player invites, auto-posting forum updates) Defined limits and review guidelines It seems that Chess.com really respects our group's input, so I think we could also collaboratively suggest a list of automation use cases we believe are appropriate and non-abusive — especially where it helps clubs operate better without negatively impacting the site or other users. Customer Support is even asking for our opinion on this, so this could be a good chance to provide thoughtful input as a developer community. 💬 What do you think? Do you have suggestions for what we feel would be reasonable use cases for automation? Have you used automation yourself? Did you try to get approval — and what was your experience? Let’s compare notes and maybe help shape a clearer system together. — @AlAlperGrand Tourneys Club
If I try to click on a monthly archive at: https://api.chess.com/pub/player/mouselip/games/archives I get an error: message    "An internal error has occurred. Please contact Chess.com Developer's Forum for further help https://www.chess.com/club/chess-com-developer-community ." I have looked at the archives of some of my friends and do not see that error. For example:https://api.chess.com/pub/player/perezdrew01/games/archives The only one I can't get to work is my own! Any ideas why that would be?
Hi, I am creating an application that needs information as to every player that played in titled tuesday, who won/drew/lost each game, and the pgn of each game. I would have just used the api: https://api.chess.com/pub/tournament/{titled tuesday tournament info} as well as https://api.chess.com/pub/tournament/{titled tuesday tournament info}/{all the rounds}/ but it seems that chess.com only stores the last round. Do you guys know of any workaround to obtain all of the rounds?
This match was completed on 21 March. Result confirmed. I can see no changes to the players list. No closures. Now it returns a DB error from the API endpoint which has been fine since the match was opened last November. How can this happen? CC25 D4 R1: Bedfordshire-Northamptonshire vs Aberdeenshire https://api.chess.com/pub/match/1708057 
Hi, I'm trying to make a chess leaderboard of our school students and therefore trying to integrate the Chess.com public API from a backend running on a DigitalOcean droplet. However, when I `curl -v` from my server I get the error `You are unable to access</span> chess.com` with a Cloudflare Ray ID of 952091e50a80fd7c. I think the IP is getting blocked by Cloudflare, is there a way to prevent this happening?
Avatar of stephen_33
stephen_33 Jun 25, 2025