Hey,
This topic is a never-ending story when no one can really answer to. But maybe this post will get enough attention and finally bring a final answer.
Sites like Gosu / Stratz etc. somehow get current match details which is not that simple task. TF2 wiki API has some useful information on how to get data from dota2 but not for the private current match. The best solution I come up with is using "GetRealtimeStats" (it's not documented at all) but this method requires steam_server_id.
So.. maybe there is a way of founding which STEAM SERVER ID you are currently playing on?
Using the in-game console "status" command.. you can find something like server_id, but it's not working. Maybe it's the wrong server id, maybe this command is not working. However, when you enter a broadcasted / live / tournament steam_server_id it shows everything correctly!
Is there anyone who knows how to get this data? Maybe gosu / Stratz are spoofing on the player's client to get this info.. but I don't think so. There has to be a simpler solution. I don't want to use any API from open data or so.. just I want to know the way how they access this information
Source: https://www.reddit.com/r/DotA2/comments/qjv9zn/dota_2_api_how_to_get_current_match_details/
I wish I knew the answer. You can check the server_log.txt and retrieve a lobby id but that’s not the same as a steam_server_id… I am considering brute-forcing the GetRealtimeStats ID but my worry is that the only games available through the live games API call anyway