-
Known bugs
Current requested features
Request additional feature
If anyone wants to add to the list, post below and I'll update accordingly. If there is anything which won't get fixed/changed, I'll update to mark things as such following an "official" post.
Feature requests (anyone who fancies putting them into the above form will have my thanks!)
- More consistency - see here
- game_start_time for modes with variable hero selection times (ie CM/reverse CM)
- CS indicator (at 10 minute mark perhaps)
- Actions per minute
- Number of wards placed (in a manner which is safe from spamming - wards placed where there isn't ward coverage already perhaps, or simply give location of ward placement)
- Breakdown of which hero killed/assisted each kill which
- "Match counted" boolean/a documented way to accurately determine whether a player received a win, loss or no lifetime statistic change from the result of their match.
- API for accessing player profiles public (level, xp, featured heroes, etc)
- Item purchases (and sales) at times, as with skills
- Items in stash/courier
- Ownership of pooled items (ie rapier/gem/consumables)
- Add matchmaking pool to MatchDetails
- GetItems (and GetAbilities) APIs. Currently there's both GetHeroes and GetLeagueListing, but for items we still need to download Dota 2, extract items.txt, grab dota_<language>.txt and parse them ourselves. Currently there's no official automated way to do this and no first-party VPK utility works with Dota 2. Ideally including a patch parameter to get correct values for previous versions.
- Roshan death times, to which team and who got aegis (and cheese) and when did they lose it
Major
- barracks_status_dire is now occasionally a copy of barracks_status_radiant. Very inconsistent behavior even on the same request!? - see here and just before.
- game_mode parameter ignored in GetMatchHistory
- GetTeamInfoByTeamID errors if there don't exist enough teams to "fill" the query
- IEconDOTA2_<ID>/GetRarities's "count" is incorrect, it doesn't match up the amount of 'rarities' returned. The rarities array doesn't include "Immortal", so "count" probably is right and the lack of "Immortal" is the bug
Minor
- GetTeamInfoByTeamID has a wrongly named error - "statusDetail": "Error retrieving match data."
- GetLeagueListing's array of leagues doesn't match the order inside Dota 2 either forwards or backwards. From what I can tell, in the game the leagues are sorted in reverse by defindex from items_game.txt, but in the API they seem to be not quite in order. Sorting by league ID doesn't help because some of them are out of order, notable the > 65000 ones.
- GetLeagueListing and GetLiveLeagueGames both show no parameters on ISteamWebAPIUtil/GetSupportedAPIList. GetLeagueListing seems to support 'language' at least, and both require 'key'.
- Swapping heroes mucks up ability skilling.
- GetMatchHistory can return matches which GetMatchDetails does not let you view (401 Unauthorised). Match ID for example: 123110537.
Inconsistencies
- tower_state" in GetLiveLeagueGames compared to GetMatchDetails's "tower_status_radiant" and "tower_status_dire"
- Non standard error codes/behaviour
- ISteamUser/GetPlayerSummaries return's "response": "players" array, and if there is nothing - array is empty and http status code 200
- IDOTA2Match_570/GetMatchHistory return's "result" and have "status" (which in my opinion is the right approach) + "statusDetail" if something wrong.
- IDOTA2Match_570/GetMatchDetails return "result" and don't have "status". So if i request not existing match "api.steampowered.com/IDOTA2Match_570/GetMatchDetails/v0001/?match_id=1&key=xxxx" i'm getting onlu "{ }" and 500 http error - the same when the API was down.
- ISteamRemoteStorage/GetUGCFileDetails returns "data" and have "status" only if bad request. And for not existing file "api.steampowered.com/ISteamRemoteStorage/GetUGCFileDetails/v1/?key=XXX&appid=570&ugcid=1" i'm getting status: { "code": 9 } and http 404 error.
- GetMatchHistoryBySequenceNum returns practically the same data per match as GetMatchDetails (barring one attribute iirc), whereas GetMatchHistory is more just a list of appids to be parsed by GetMatchDetails. By it's name, I would've expected it to return results in a more similar format to GetMatchHistory.
- GetLiveLeagueGames' tower_state vs GetMatchDetails' (tower|barracks)_status_(radiant|dire)
- GetLiveLeagueGames returning team information but none of the other methods doing so
- GetMatchHistory has 'num_results', 'total_results', 'results_remaining', whereas GetMatchHistoryBySequenceNum has none of those.
- GetMatchDetails -> results -> picks_bans, has the attribute "team" with the values 0 and 1; but instead of a 'winner' attribute matching that format there's the boolean "radiant_win".
- Versioning - potentially function breaking changes are made without updating the version number
- When using XML in GetMatchDetails and GetMatchHistoryBySequenceNum, <ability> gets used as both the grouping for each skill point selection as well as the listing for what ability gets selected.It would be convenient if they could use different tags (eg "ability_id" and "ability").
- GetTeamInfoByTeamID is not descriptive as per the function it provides. It's name suggests it should take a single parameter, team_id and return only information on the team(s) queried.
Fixed
- Week of the 31/01/13 patch
- barracks_status_dire is no longer a copy of barracks_status_radiant
- GetMatchDetails doesn't use 'starttime' compared to GetMatchHistory using 'start_time' - both use 'start_time' now
- Matches should display ability_usage correctly
- test clientleague_id is used in both matchDetails and GetLeagueListing (was leagueid in GetLeagueListing)
- Week of the 07/02/13 patch
Last edited by Wyrm; 03-20-2013 at 01:29 PM.
-
Basic Member
Minor thing but in the match start time field name differs between GetMatchDetails and GetMatchHistory.
In GetMatchDetails it is 'starttime' and in GetMatchHistory 'start_time'
-
Since the API has come back up, I'll start work on keeping this post up to date again. Any bugs or fixes - post below!
-
Valve Developer
We just updated the WebAPI and these bugs have been fixed:
- barracks_status_dire is a copy of barracks_status_radiant
- GetMatchDetails uses 'starttime' while GetMatchHistory instead uses 'start_time' (both use 'start_time' now)
- Some matches didn't display ability_usage correctly.
Keep reporting issues, thanks!
-
Thanks for the fixes Zoid!
-
Its possible that the match_id of the GetMatchHistoryBySequenceNumber and the match_id from GetMatchDetails its not the same?
http://api.steampowered.com/IDOTA2Match_205790/GetMatchHistoryBySequenceNum/v0001/?key=<key>
First game it says its match_id=7, when you try to GetMatchDetails dont even exists.
https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001/?match_id=7&key=<key>
EDIT BY MYSELF: I was using a bad url to get the matches, I didnt noticed I was using the developer url api. The match_id's are running fine.
Last edited by irongete; 02-01-2013 at 03:40 PM.
-
The two URLs you've provided are for different versions of Dota 2. One's the normal game (570) and the other one is Dota 2 Test (205790).
-
Very useful thread! Cheers for the bug fixes guys!
-
Basic Member
Request: GetItems (and GetAbilities) APIs. Currently there's both GetHeroes and GetLeagueListing, but for items we still need to download Dota 2, extract items.txt, grab dota_<language>.txt and parse them ourselves. Currently there's no official automated way to do this and no first-party VPK utility works with Dota 2.
Bug: GetLeagueListing's array of leagues doesn't match the order inside Dota 2 either forwards or backwards. From what I can tell, in the game the leagues are sorted in reverse by defindex from items_game.txt, but in the API they seem to be not quite in order. Sorting by league ID doesn't help because some of them are out of order, notable the > 65000 ones.
Bug: GetLeagueListing and GetLiveLeagueGames both show no parameters on ISteamWebAPIUtil/GetSupportedAPIList. GetLeagueListing seems to support 'language' at least, and both require 'key'.
-
Basic Member
Not sure if bug or feature request, so take this one as you will:
GetLeagueListing does not include the league name used to get the image in resource/flash3/images/econ/leagues/subscriptions_<league name here>_ingame.png
Edit: Or a hosted image URL (e.g. media.steampowered.com a la IEconItems)
Last edited by Netshroud; 02-03-2013 at 01:23 PM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules