Hello, I am currently trying to build a project to provide data-analysis on player's games. The idea behind the project is to offer some analysis based on a large amount of games, instead of studying games one by one. Since the tool is based on the analysis of multiple games at once, it would be interesting to be able to only enter your chess.com username, provide a time period and run the analysis based on the games provided by the API. However, since I would like to make profit from this project, I am wondering about the legal terms of the usage of the API in the context described previously. As stated in the readme: "Under no circumstances may data obtained from the Chess.com website or API be used to create or augment a competing service. If you are concerned that your service may be deemed "competing," ask us. " Would such a service be considered as a competing service of chess.com ? Thanks a lot
RocketmanDan Mar 28, 2021
Hello, I just discovered chess.com API and want to start to play with it and it seems there's a problem with my username or something else cause some endpoints are broken. For example: https://api.chess.com/pub/player/gauthierdscmps returns 200 with all the data. https://api.chess.com/pub/player/gauthierdscmps/is-online same Some other endpoints like /stats, /archives, /{yyyy}/{month} also work fine. But when I try https://api.chess.com/pub/player/gauthierdscmps/games it just returns an empty array. Does someone has an explanation and/or a solution ? Thanks in advance
GauthierDscmps Mar 24, 2021
I was carrying out a task as a favour for one of the admins of The Empire Of Assassins, involving sequentially downloading the club's list of team matches and unexpectedly got this response after the 772nd. match:- match_id=444708 / HTTP error code: 429 - 'Too many requests' I've read responses from staff members on the subject of limits on parallel endpoint requests but I've always understood sequential (i.e. in series, one after the other) are absolutely fine. Has something changed?
stephen_33 Mar 20, 2021
Trying to load live match details for LCEL2021 S3 Rapid Team England Live vs Azerbaijan https://www.chess.com/club/matches/live/585706 https://api.chess.com/pub/match/live/585706 Returns match header details but no score, teams or boards.
Tricky_Dicky Mar 18, 2021
So I planned on getting links to random chess.com puzzles for a discord bot. Problem is that there doesn't appear to be a public api for getting them except for daily puzzles. This means it appears my plans to create a tool to enter a rating range and get a puzzle are on hold but I wondered if maybe you could get a totally random puzzle by simply changing the number at the end of the URL (e.g. https://www.chess.com/puzzles/problem/1018284). My question is this. Is there a known format that this link conforms to? Are they always 7 digits long? Are they chronologically incremental (meaning that newer puzzles have higher numbers, this has implications like more pending ratings at high numbers)? Is there a maximum and minimum ranger of acceptable numbers? I expect I'm not the first to try to do this but I struggled to find the search terms to get meaningfully helpful google results.
I've recently written a blog post which uses chess.com's API to answer the above question. If you're interested, please give it a read - I would be very grateful and welcome any thoughts! Thanks!
mountain72 Mar 10, 2021
Hello all, I am currently working on collecting data from titled players, and have noticed some strange difference in various ratings. For example the player https://www.chess.com/member/denguvi is currently rated 1304 in bullet, however her "highest" rating was 1200 according to the website. In the API under https://api.chess.com/pub/player/denguvi/stats it shows that the "last" bullet rating she had was 1304, but the "best" was still 1200. This has been the same case for quite a few players I've seen. Does anyone know the reason for this rating discrepancy? Is this for certain dates, or was it after the Chess.com update to add 150 bullet rating to everyone's account? Thanks for the info!
Hello. Is there an anticipated release date for the interactive API?
infestationPit Feb 27, 2021
Hi All, I've played around with making a simple chrome extension to replace the standard pieces with my own image files of StarCraft characters. However, I noticed this only works for games vs. the computer. When apply the extension with real games, I notice that 'canInteractWithPieces': is set to 0 (False). Does anyone know a way to update the image file for a piece that doesn't violate canIteractWithPieces?
ZenithIRL Feb 27, 2021
Hey. Is there is any endpoint to check user about me/biography text? I'm making a discord bot where user can connect his account from chess.com, but I need to verify if it is his account. Any ideas how to do it?
Hi, So in this lesson, the last question (6/6) of the quiz seems to be broken on mobile (iOS) targets. I get the position, but no message and the hint only displays "No tips available" (or whatever it is in English, my client is set to German). The correct move is also not recognized, every move is marked as wrong. I tested it several times on both my iPhone and iPad, both with most recent iOS and Chess App versions. On the web version, I was able to solve the quiz.
Hi everyone. I'm looking to obtain a large dataset of chess games played and the number of moves it took to reach a conclusion (whether it be checkmate or resign or draw). Essentially, I'm looking for count data to analyze and for each game, I'd like to have the ELO/Average Elo of the players involved.
so I dont know if it fits in here but I wanted to make a color blind mode which literally use color palletes so I have a few ideas The goal is to make the chess board and etc easier to use first of all we can literally add a theme aka color blind for the color blind (depends on if the staff will) and change the board and piece color but it will look crude we can use this pallet as it is inclusive for all and easy to tell The only problem is the pieces For normal color blind it wont be a problem, for black and white color blind which has like 20 types so i didnt bother to type it out, it will because the shades look the same So either we have to make sure the board has dark and light colors and the board has to have super semi light and super demi dark but its kinda hard to tell so im thinking maybe we can do a semi light and a dark but it might not work well sub idea: i know this sounds weird but maybe we can add letters or shapes to the board to assist them Idea 2: this is what i think is good use super light colors on all squares white so all can see well and then put dark pieces, one problem, how do we distinguish pieces, well then we have to put light pieces , bbut that wont work and i thought well hmm, i checked our chessboard.... THE PIECES WERE BORDERED yes the white pieces so what if we literally did that they wont be able to tell the black border we can replace the fill of the pieces for color blind to be fill with the custom hex heres the plan we have squares, white but in an alternating fashion some have borders(highlighted) to help them place pieces in the right square white pieces have black borders which works in all squares black pieces are black which work in all squares viola i was first confusing myself with designs that had white and black squares and god that broke my mind
There is an inconsistency in the capitalisation convention in the API data. Normally usernames are given all-lower-case (e.g. "rainpiper"), but in match-board endpoints: https://api.chess.com/pub/match/[match-number]/[board-number] in the entries $games$white$username$games$black$username usernames are spelled with capitals (e.g. "RainPiper"). So if you run a case-sensitive comparison, it will fail. Of course, if you know this, you can easily build a workaround. But it would certainly be nicer if the capitalisation convention would be handled consistently.
I am writing a Spark application in Scala to be able to read player's game data from the Chess.com API. Reading this data into a DataFrame, however, is difficult. Essentially my DataFrame contains one collum and one row of data called "games" because of how the JSON is formatted in the archive. I'm not sure how to get around this. Any tips or insights?
CosmosOfSolomon Feb 19, 2021
Hi! I just started playing chess. I noticed there are personalized training suggestions in the post game analysis (in the report tab) This: So I figured maybe I could collect the top X most common suggested trainings over Y time, and focus on the ones i get suggested the most. I can get my games from the api. But I cannot find the training suggestions anywhere. Is it possible? Alternatively, could I fetch it from the web page itself somehow? Seeing as I have the game links from the api. But my webrequest/curl for that page url does not contain the word "training". So maybe I'm missing something
Damnedkrt Feb 19, 2021
In this match https://api.chess.com/pub/match/1207862 Status is shown as "closed". Not documented in specification. Web page shows no status but match should be in registration? https://www.chess.com/club/matches/1207862/games
stephen_33 Feb 15, 2021
When you hit the following API end point: https://api.chess.com/pub/tournament/{url-ID} you get a time_control subkey within the settings key. For example: using url-id = -titled-tuesday-blitz-1948540 "time_control": "1800+10" I checked the games in that tournament and they seem to be 3:1.. I was expecting a time_control like 180+1 or 180000+1000 or something. What is the unit of measurement being used?