Since the Titled players on chess.com can choose to not fill in the Name section, I don't see how this mapping could ever be cemplete...
chess player api

Perhaps not complete but maximize.
Example "Nigel Short" in chess.com, but in FIDE it is "Short, Nigel D", the issue is the D. The algorithm I have can only do "Short, Nigel". I keep a list for this kind of exception and next month when I run the script this will be added in the database.

Checking the top 50 in the leaderboard for live_blitz these are the usernames that is not in my database.
not found bongcloudmajesty
not found wonderboy05
not found play_late_no_sleep
not found floatypotato
not found xaola
not found micki-taryan
not found fightermann
not found onemanarmy93
not found sviridov_valery
not found den_kuzo
not found black_knight2209
bongcloudmajesty - a strong player but no title and no name, (no issue, the player chooses not to show the name)
wonderboy05 - this player is a GM per FIDE but is not listed in the titled endpoint, this will be added in special names and will be recorded in the database next month.
play_late_no_sleep - an FM but no name, (no issue)
floatypotato - a GM but no name (no issue)
xaola - an FM but no name, (no issue)
micki-taryan - a GM with name "Haik Martirosyan", but its FIDE name is "Martirosyan, Haik M.", I can add this to special names and will be added in the database next month.
fightermann - not a titled player, the name is "Robert James Fischer", (no issue)
onemanarmy93 - a GM but no name, (no issue)
sviridov_valery - an NM not recorded in database at this time, priority is on GM, WGM, IM, WIM, FM, WFM, CM and WCM. (no issue)

Hi @io_kloud, I am not trying to discourage you from continuing this effort, as I see a lot of value in this mapping that you are trying to get. However, I believe that some of these titled players (either the ones with the usernames that you mentioned or the ones further down in the leaderboards) might just prefer to remain anonymous and this is why they did not choose to fill their name under the "Name" section in their profile.

I got a python module called fuzzywuzzy. It will match names from chess.com and fide. It will generate candidate matches with fuzzy score, high fuzzy score is a close match. Example.
chess.com_name: Lance Henderson de La Fuente, fidename_fuzzyresult: [('Henderson de La Fuente, Lance', 100), ('Henderson de La Fuente, Andrea', 77)]
chess.com_name: Alex Fier, fidename_fuzzyresult: [('Fier, Alexandr', 82), ('Faille, Alex', 80)]
chess.com_name: Abhijeet Kunte, fidename_fuzzyresult: [('Kunte, Abhijit', 89), ('Gupta, Abhijeet', 79)]
chess.com_name: Alder Escobar, fidename_fuzzyresult: [('Escobar, Alexis', 81), ('Escobar Forero, Alder', 79)]
chess.com_name: Andres F Gallego, fidename_fuzzyresult: [('Galle, Andre', 81), ('Gallego Andres, Carles', 81)]
chess.com_name: Aaron Summerscale, fidename_fuzzyresult: [('Summerscale, Aaron P', 94), ('Huemmecke, Aaron', 75)]
chess.com_name: Akshayraj Kore, fidename_fuzzyresult: [('Akshayraj, Kore', 100), ('Akshay, Khator', 74)]
chess.com_name: Aleksei Aleksandrov, fidename_fuzzyresult: [('Aleksandrov, Aleksej', 95), ('Alekseev, Aleksandr', 86)]
chess.com_name: Alex Huzman, fidename_fuzzyresult: [('Huang, Alex', 86), ('Han, Alex', 84)]
chess.com_name: Alex Onischuk, fidename_fuzzyresult: [('Onischuk, Alena', 89), ('Onischuk, Alexander', 84)]
chess.com_name: Aleksander Goloshchapov, fidename_fuzzyresult: [('Goloshchapov, Alexander', 93), ('Kolchanov, Aleksandr', 81)]
chess.com_name: Alex Stripunsky, fidename_fuzzyresult: [('Stripunsky, Alexander', 86), ('Pensky, Alex', 77)]
chess.com_name: Haddouche Mohamed, fidename_fuzzyresult: [('Haddouche, Mohamed', 100), ('Chouchane, Mohamed', 82)]
chess.com_name: Amin Tabatabaei, fidename_fuzzyresult: [('Tabatabaei, M. Amin', 94), ('Taba-Tabai, Mehin', 84)]
chess.com_name: amirreza pourramezanali, fidename_fuzzyresult: [('Pourramezanali, Amirreza', 100), ('Ramzannia, Amirreza', 78)]
chess.com_name: Andrejs Sokolovs, fidename_fuzzyresult: [('Kozlovs, Andrejs', 90), ('Sokolov, Andrei', 87)]
chess.com_name: Andres Rodriguez Vila, fidename_fuzzyresult: [('Rodriguez Vila, Andres', 100), ('Rodriguez, Andres', 86)]
chess.com_name: Arjun Kalyan, fidename_fuzzyresult: [('Arjun Kalyan', 100), ('Kolani, Arjun', 83)]
chess.com_name: Anurag Mhamal, fidename_fuzzyresult: [('Anurag, Mhamal', 100), ('Anurag Malik', 80)]
chess.com_name: Wang Hao, fidename_fuzzyresult: [('Wang, Hao', 100), ('Wang, Hanbo', 89)]
In the first example, chess.com_name: Lance Henderson de La Fuente, fidename_fuzzyresult: [('Henderson de La Fuente, Lance', 100), ('Henderson de La Fuente, Andrea', 77)]
The fidename 'Henderson de La Fuente, Lance' got a fuzzy score of 100, upon checking the fide page the name is a match.
Of the samples shown it missed chess.com_name: Alex Onischuk with the result
chess.com_name: Alex Onischuk, fidename_fuzzyresult: [('Onischuk, Alena', 89), ('Onischuk, Alexander', 84)]
The correct match 'Onischuk, Alexander' only got 84.
It also missed with Alex Huzman and Alder Escobar their scores are below 90.
It seems like a score of 95 and above can be considered a match without the need for verification and then 80 and above needs to be verified. I will replace my old algorithm with this fuzzy logic.

Page and database updated.
https://api-chess-player.herokuapp.com/
api testing:
https://api-chess-player.herokuapp.com/docs#/default/username_chess__username__get

This is some amazing work man, and it all looks very neat to me! I can tell you are a very professional engineer and cheers for that! Feel free to take a look at my chess related projects and please let me know what you think:
-Dimpoul

How to interpret the "Degrees - Find out the shortest victory path between you and the world champion GM Magnus Carlsen in blitz..."?
I see some interesting commands but could not figure out where to input it to get a response except on the three highlighted commands.
The dashboard looks like this.

100+ players are added in the api. FIDE data are based on 2022-03-001 rating list.
https://api-chess-player.herokuapp.com/
Testing
https://api-chess-player.herokuapp.com/docs#/default/username_chess__username__get
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