I'm trying to compute somewhat advanced stats for my own match history (or, potentially any player's history), that would be include more than the regular information one can find on Dotabuff.

I already can pull "easily" my summary Dotabuff history via Excel, but it only contains the basic information (Outcome, Hero, Mode, Duration and K/D/A). I can manually add the other information I need (GPM, XPM, if I was in a party, whom I was playing with, my build order, etc.) by going into individual match pages from Dotabuff or through the game client itself, but I'm looking for something faster or more efficient.

Does something like that already exist ?

1 Answer 1


I'm not sure how good your programming is but the DOTA API can help with a lot of this. You query the API with a match ID and it gives a JSON object that looks something like this. There is also a call you can make to get all of your match_ids played by querying for your match history and then you can set up a loop to go through all of those matches. It's really pretty cool stuff. A link I've found really helpful about the DOTA api is http://dev.dota2.com/showthread.php?t=58317&highlight=teaminfo. I've since become steam friends with this guy and he knows his stuff.

"account_id": 32bitIDishere,
"player_slot": 0,
"hero_id": 73,
"item_0": 50,
"item_1": 187,
"item_2": 36,
"item_3": 61,
"item_4": 40,
"item_5": 0,
"kills": 8,
"deaths": 1,
"assists": 13,
"leaver_status": 0,
"gold": 4089,
"last_hits": 37,
"denies": 0,
"gold_per_min": 457,
"xp_per_min": 421,
"gold_spent": 5579,
"hero_damage": 6921,
"tower_damage": 289,
"hero_healing": 0,
"level": 12,
  • I knew the topic of the Dota API would come out and it's probably something I can figure out eventually. However in the link you posted, the first disclaimer is clearly "THE API CANNOT BE USED TO GET PRIVATE MATCHES". I'm not sure if I understand this correctly as they do provide a "account_id" variable. I'll look into it
    – T_O
    Apr 22, 2014 at 14:45
  • 1
    By private matches he means private lobbies or for players that have their match history marked as private. Pubs can all be pulled and private lobbies that are ticketed. I'm more than happy to help. It sounds like a fun little project.
    – Aarmora
    Apr 22, 2014 at 14:46
  • api.steampowered.com/IDOTA2Match_570/GetMatchDetails/v001/… You can navigate directly to any match with this you just need an api key first. steamcommunity.com/login/home/?goto=%2Fdev%2Fapikey This link should help you set it up.
    – Aarmora
    Apr 22, 2014 at 14:47
  • 1
    I think it's just be a human. It requests a domain but it's more of a note. I think you could just put your name in there. It's more so they can track if someone is going overboard and spamming their api so they can cut them off.
    – Aarmora
    Apr 22, 2014 at 14:51
  • 1
    @T_O Basic tutorial is here: dev.dota2.com/showthread.php?t=47115
    – Decency
    Apr 22, 2014 at 20:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .