Hi, I'm looking to download the games of the PlayKomodo Bot (In particular, its odds games with other players). https://api.chess.com/pub/player/playkomodo/games/2022/03 is empty, which matches the profile. Is this intentional and is there a plan in the future to be able to filter bot games (Lichess, for example, has this feature)? I can still find its games by looking at its opponents. Thanks.
rednova1729 Apr 14, 2022
idea: we call api.chess.com/something/gameID and it provides something about the game, say pgn and tcn (moves in algebraic form), the same things that the monthly games API provides. That would be very good. usage: i want a website that can do something with a game, say analyze it, guess the move, guess the elo, whatever. I want my users to be able copy the game URL, and paste into my website, then I want to download the game data, and parse it.
Hello! For those of you who develop in Java or other JVM-based languages, I've built a Java wrapper for Chess.com's API. GitHub: https://github.com/sornerol/chess-com-pubapi-java-wrapperJavadoc: https://javadoc.io/doc/io.github.sornerol/chesscom-pubapi-wrapper I've uploaded the project to the Central Repository, so it's super easy to include it as a dependency using Maven, Gradle, Ant, etc. Hope someone finds this useful. Feel free to let me know if you have problems with it.
big_sheykh Mar 26, 2022
I received this note when I first began the tournament and did not want to be seen as a scam or fraud or advertisement. Here is what his reply was: With that being said, www.4teamchess.com is a legitament tournament, however unique. It is done in full view of chess.com. Now, here are the 4 players who finished first in the one winner for every 100 participants and the amount they would have won each; if it was fee-based with 11,692 participants. (the amounts are on the website) 3072285(US), sgntnapalm(Australia), grigorious_greg (Germany), and remvinh (Vietnam)
YankeeBastid Mar 19, 2022
I have deployed the chess player api written in fastapi in heroku. Given chess.com username it will return fideid, fidename and chess.com player_id. The data are collected from chess.com api's titled and player endpoints along with fide rating xml file. Process in compiling the data. 1. Get all usernames from titled endpoint. The data are only limited to titled players. 2. Get player info such as the name, player_id from player endpoint given username. 3. If name from player info has two words like Magnus Carlsen, transform it to "Carlsen, Magnus" and save. This transformed name will be used to lookup in the rating xml file from FIDE. If name has 3 words like aa bb cc, transform it to cc, aa bb. 4. Get the fide xml file and execute merge on fide_name and transformed chess.com player name. There are chess.com names that have not matched in the FIDE names, Overall this is not a complete mapping, there are usernames that cannot be mapped to FIDE names because sometimes there are no names specified, etc. I tried manual editing to some top players but not much. I am using this functionality with my other app under development to find the chess.com username in FIDE database. If you want to help to expand the data, I need chess.com_username : fide_name mapping. Example, Chefshouse : Ding, Liren Ding, Liren name is in fide: https://ratings.fide.com/profile/8603677 Home page https://api-chess-player.herokuapp.com/ Endpoint https://api-chess-player.herokuapp.com/chess/{username} Example https://api-chess-player.herokuapp.com/chess/hikaru Response {"fideid":2016192,"fidename":"Nakamura, Hikaru","chessplayerid":15448422} Query on the web with /chess/{username} endpoint https://api-chess-player.herokuapp.com/docs#/default/username_chess__username__get 1. Press try out 2. input username 3. Press execute 4. Look at the response body Others Here is an api to get player fide info given fideid, this is not my repo but I use it in my other app called head to head record matchup which is under development. https://github.com/xRuiAlves/fide-ratings-scraper
io_kloud Mar 8, 2022
Hello,I want to know if, is there any API to give the total points of players of the tournament?currently, points are only available round-wise via round information endpoint. I'm trying to get data shown in the image in the least number of API calls.https://nimb.ws/yl5BLt
io_kloud Mar 4, 2022
Good Morning, Was doing the normal chess routine this morning, and finally wanted to check in on this analysis question. I'll post this morning's game for a reference. I was performing the ol' "bait and slaughter" technique and checked the analysis on it. The system treats it as a blunder and then rewards...bring you back to barely above zero. As a fellow developer, Is there someone working on this? I have a couple of ideas that might lead to some big advances or shot dead in the street....who knows maybe I should just stick to my legos. But any info would be great! Thank You. [Event "Live Chess"] [Site "Chess.com"] [Date "2022.02.28"] [Round "-"] [White "westnwestn"] [Black "mrityunjaya99"] [Result "1-0"] [CurrentPosition "k5r1/p7/1pQ2p2/1N1r2np/7N/8/PPP2PPP/R4K2 b - -"] [Timezone "UTC"] [ECO "B01"] [ECOUrl "https://www.chess.com/openings/Scandinavian-Defense"] [UTCDate "2022.02.28"] [UTCTime "12:22:07"] [WhiteElo "808"] [BlackElo "831"] [TimeControl "600"] [Termination "westnwestn won by resignation"] [StartTime "12:22:07"] [EndDate "2022.02.28"] [EndTime "12:31:44"] [Link "https://www.chess.com/game/live/39790117313"] 1. e4 d5 2. e5 f6 3. Nf3 Nc6 4. exf6 gxf6 5. Nh4 Be6 6. Bd3 Nh6 7. O-O Qd6 8. Bg6+ $4 $17 {BLUNDER (-7.88)} ({(-1.17) The best move was} 8. Be2 O-O-O 9. d4 Nf5 10. Nxf5 Bxf5 11. c3 Rg8 12. Re1 e5 13. Be3 Bh3 14. g3 Qd7 15. Nd2 Kb8 16. Bf1 Bxf1) 8... Bf7 $4 $12 {BLUNDER (-0.43) Critical mistake.} ({(-7.88) The best move was} 8... hxg6 9. Nf3 Ng4 10. h3 Nd4 11. Re1 Rxh3 12. gxh3 Nxf3+ 13. Qxf3 Qh2+ 14. Kf1 Ne5 15. Qg3 Bxh3+ 16. Ke2 Bg4+ 17. Ke3 Bh6+ 18. Kd4 Qxg3 19. fxg3 Nf3+ 20. Kc3 Nxe1 21. Kb3 Bh3 22. Nc3) 9. Bxf7+ Nxf7 {Critical move.} 10. Qg4 e6 11. Re1 O-O-O 12. Rxe6 $2 $17 {MISTAKE (-4.44) Critical mistake.} ({(-0.80) The best move was} 12. d4 Qd7 13. c3 Re8 14. Bf4 Bd6 15. Bxd6 Nxd6 16. Nd2 Rhg8 17. Qf3 f5 18. g3 Ne4 19. Qd1 e5 20. dxe5 Nxe5) 12... Qc5 $4 $16 {BLUNDER (+10.40) Critical mistake. From winning to losing.} ({(-4.44) The best move was} 12... Qd7 13. Nf3 Nfe5 14. Nxe5 fxe5 15. c3 Bc5 16. Qh3 Rdf8 17. d4 exd4 18. b4 Bb6 19. Bh6 Rf7 20. Bg5 d3 21. Bh4 Nd8) 13. Rxc6+ Kb8 14. Rxc5 Bxc5 15. d4 Bd6 16. Bf4 h5 17. Qg3 Rdg8 18. Qf3 Ng5 19. Qxd5 Bxf4 20. Nc3 Rd8 21. Qc4 Rhg8 22. d5 Nh3+ 23. Kf1 Ng5 $2 {MISTAKE (+11.40)} ({(+6.87) The best move was} 23... Rg4 24. Nf3 Ng5 25. Nd4 Be5 26. Nce2 Ne4 27. Rd1 Bxh2 28. f3 Ng3+ 29. Kf2 Nxe2 30. fxg4 Nxd4 31. Qxd4 hxg4 32. Qxf6 Rg8 33. c4 Bd6 34. Qf5 Ka8 35. b3 Bc5+ 36. Kg3) 24. Qxf4 b6 25. Nb5 Rxd5 $4 {BLUNDER (♔ Mate in 2)} ({(+11.77) The best move was} 25... Rd7 26. Nxa7 Rxd5 27. Nc6+ Kb7 28. Ne7 Rgd8 29. Nxd5 Rxd5 30. Ng6 h4 31. Qxf6 Ne4 32. Qxh4 Nd6 33. b4 Rd2 34. c4 Kb8 35. a3 Nf5 36. Qe4) 26. Qxc7+ Ka8 □ 27. Qc6+ {FASTER MATE (♔ Mate in 2)} ({(♔ Mate in 1) Checkmate after} 27. Qxa7#) (27. Qc6+ Kb8 28. Qc7+ Ka8 29. Qxa7#) 1-0
Martin_Stahl Feb 28, 2022
Published the record-match web app in heroku. It takes 2 usernames from chess.com and generates some chess.com and FIDE records stats. The app is written in python with streamlit. https://record-match.herokuapp.com/ Screen shots
Would like to see completed projects or utilities or tools as a result on the use of the api. No discussions please just name and links. This would allow members to see quickly what have been done so far and possibly avoid project duplication or similarities or generate inspirations. I will start with this list. pgn_to_sqlite: https://pypi.org/project/pgn_to_sqlite/ topic: https://www.chess.com/clubs/forum/view/pgn-to-sqlite Chess-streamer tool: https://github.com/OxloDev/ChessStreamTool topic: https://www.chess.com/clubs/forum/view/chess-streamer-tool chesstats: https://github.com/Hyper-Dragon/ChessStats topic: https://www.chess.com/clubs/forum/view/chessstats-time-played-monthly-ratings-top-openings-for-users python wrapper: https://pypi.org/project/chess.com/ topic: https://www.chess.com/clubs/forum/view/python-wrapper-for-published-data-chess-com-api chess analytics https://public.tableau.com/views/MyChessJourney-Visualized/MyChessJourney?:language=en&isplay_count=y&publish=yes&rigin=viz_share_link&howVizHome=no topic: https://www.chess.com/forum/view/general/python-script-to-download-entire-game-archive-for-a-specific-user-convert-it-into-a-csv Your turn.
Officially add live chess960 and live crazyhouse info like rating, number of games and rd probably in the stats endpoint. As far as I have tried, live blitz 960 and crazyhouse can be found in leaderboard but this is only limited to the top 50 players. However the unofficial endpoint provides live chess960 and crazyhouse.
I just now needed to shut off access to the API for an IP address that was attempting to pull all PGNs, for all games, apparently for all players. This is decidedly against the goals of the API, which is to help developers build tools that help players enjoy and learn more from their games on chess.com. I hate blocking people, but I need to protect the site. Downloading all games is foolish — even at the max rate limit of 3 archives per second, this would take 3 years of continuous operation... during which time enough games would have been played to require another 18 months to download. During which time enough games would be played... It might never end. The person who created this Python script did not create a user-agent string that allowed us to contact him. I want to call attention to this text in the documentation: In some cases, if we detect abnormal or suspicious activity, we may block your application entirely. If you supply a recognizable user-agent that contains contact information, then if we must block you application we will attempt to contact you to correct the problem. Maybe it wasn't clear that downloading the whole library is a bad idea, but we couldn't contact this developer to explain that and work out a solution. What if we made it more clear? Developers with working code, let's discuss some options. Would this work for you? We establish a total limit per day. The limit should be about 3–5x higher than anyone currently uses for their programs. This could be a limit on the total number of requests (which might penalize applications that consume a lot of small endpoints frequently), or the total bandwidth (which might penalize downloading large archives). Which is better? We would place the information about your daily allowance in the response headers. When you get to 90% of the limit, a 429 "Too Many Requests" response will be delivered 50% of the time; at 100%, a 429 response is delivered to every request until the next day In this way, you will know what's allowed and when you are getting close. If this happens often and you are building tools for the Chess.com players, then we can work with you to get special, higher rate limits. What do you think? Comments or ideas welcome!
SirTooper Feb 17, 2022
There seems to be a bug in the pgn API, when the response size for a given player is above 10MB, then you get an empty result. A similar problem is with the game list and the missing corresponding field.
Developing a web app which I plan to deploy in heroku. I use python requests to get info from endpoints. Example. import requests headers = {'User-Agent': 'head2head'} username = 'gmwso' url = f'https://api.chess.com/pub/player/{username}/games/archives'r = requests.get(url, headers=headers).json() Is the header with user-agent enough in getting the info or I will just remove it or maybe add more like email address? Sample app image.
Hello everyone, I've built a Prometheus exporter for chess.com player data.Check out the README for more in-depth info, if you're interested I'm happy for any feedback, interaction, or collaboration. https://github.com/MarioUhrik/chess-exporter
I'd like to start soon tournaments with the very interesting new Clubs Arenas feature announced this fall: https://www.chess.com/news/view/chesscom-releases-club-arenas These tournaments generate scores for Clubs and for players. I'd like to know how could I use APIs for this? Thanks!
Missing forward slash after live. https://www.chess.com/news/view/published-data-api#pubapi-endpoint-match-live-profile URL pattern: https://api.chess.com/pub/match/live{ID}
io_kloud Feb 7, 2022
Match roster shows different rating value to API of player stats. Seems to apply with a player new to C960 games and only unrated games in archieve Example: @roywebbhastings https://www.chess.com/stats/daily/chess960/roywebbhastings rating displayed as 400 In roster (Starting at 5pm today) Board #167 https://www.chess.com/club/matches/1334529/games?&p=2 rating displayed as 1200 https://api.chess.com/pub/match/1334529 {"username":"roywebbhastings","rating":1200,"timeout_percent":0,"rd":350,"status":"basic"} API stats https://api.chess.com/pub/player/roywebbhastings/stats Rating shown as 400 "chess960_daily":{"last":{"rating":400,"date":1372872745,"rd":350},"record":{"win":0,"loss":2,"draw":0,"time_per_move":8653,"timeout_percent":0}}
stephen_33 Jan 31, 2022
Hello, When I use Game Review on a browser I get great data about the game (see first link below). It tells me when I used Game Review, who used Game Review (in this case, me), what the arc of the game was, and dozens of other great pieces of info. My question is, is there a way to get all that great info for games that had Game Review used on the phone app? https://www.chess.com/callback/analysis/game/live/5943251166/all <- browser https://www.chess.com/callback/analysis/game/live/36369028555/all <- chess.com app
Mister_CK Jan 30, 2022
I was viewing the details of one of my games via the game ID API callback endpoint:https://www.chess.com/callback/live/game/5906492213 I noticed the moveList key with the following move notation: moveList: "mC0Kgv!TbsYIft5QegQziqztktWGvKZRKA6EnvENdm7ZAPZ6P6" What type of chess move notation is that using? Looking at the Move list, it appears two characters represent a move since this game had a total of 25 ply. My guess is that each two letter combination is recording which piece has moved where but it might just hold to and from destinations. It looks like a neat notation but I haven't checked the Javascript files yet to see if there is any code there that gives more answers. Anyone know?
WhiteDrake Jan 27, 2022