Raw feature requests
The version of the browser you are using is no longer supported. Please upgrade to a supported browser.Dismiss

View only
TimestampFeature descriptionSubmitted bySuggestion typeDemandReasoningID on other sheet
2/5/2013 18:50:00a "game_start_time" field saying how far along the replay the game actually starts (0:00 clock time, or -1:30, whichever sounds best) , as particularly in CM matches, there's a big difference between replay time and game start time.BrunoNew field on existing APILowWould be nice to gve accurate game times, and but doesn't add much beyond convenience1
2/5/2013 17:18:00More consistency - see http://dev.dota2.com/showthread.php?t=57331&p=469507&viewfull=1#post469507JohnnyAjax API naming comventionsHighIf they're going to change, they should change sooner rather than later!
2/5/2013 11:09:0010th min mark -cs as good indicator of laning phase performancejimmydorryNew field on existing APINone"10th minute" is too subjective, better to be left for replay parsing
2/4/2013 1:50:00Actions Per MinutejimmydorryNew field on existing APILowInteresting to some people and easy to include in matchplayer details2
2/4/2013 1:50:00Number 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)jimmydorryNew field on existing APILowA "performance metric" which favours supports, useful for detecting trends in ward placement spots and potentially following the flow of the game3
2/4/2013 1:50:00Breakdown of which hero killed which, and by doing how much damage? (Would be cool to actually find out which hero counters which, instead of relying on win%)jimmydorry New field on existing APILowHero kill involvement would be nice, but damage dealt is overly specific and thus likely to be misleading
2/3/2013 18:45:00A way to determine whether statistics from a match counted (if it was safe to leave / no stats recorded), or a documented way to accurately determine whether a player received a win, loss or no lifetime statistic change from the result of their matchjcoene New field on existing APIMediumDoesn't need to be on an API if there's a simple reliable formula, but if not would be very nice to make sure sites like dotabuff have the same wins/loses as ingame. theyve been asked about that a lot on reddit xD4
2/3/2013 18:45:00An API endpoint for Players who made their profiles public that exposes fun things like level, xp, etc.jcoene New APIMedium
10/4/2012 14:59:00Item purchases (and sales) at times, as with skillsWyrm New field on existing APIMedium
10/4/2012 14:59:00Items in stash/courierWyrmNew field on existing APIMediumSyllabear's items are now recored, but items in stash/on the courier aren't. Not having it included makes people prolong games to ensure delivery of items before endgame. Massive gameplay implications!5
10/4/2012 14:59:00Ownership of pooled items (ie rapier/gem/consumables)WyrmNew field on existing APILow
10/4/2012 14:59:00Add matchmaking pool (skill level/game mode) to MatchDetails (and get match by seq num)WyrmNew field on existing APIMediumThe data is available, but only by scraping history which seems wasteful
2/2/2013 12:31:00GetItems (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.

Expected fields for GetItems:


item_id uint
item_name string (localized)
item_description string (localized)
image_url string (media.steampowered.com)
is_recipe bool
cost_in_gold uint
item_stats (not quite sure what schema would be best, seems a bit like reinventing IEconItems)
NetshroudNew APIHighEveryone using the APIs are having to manually keep updated records of items/heroes. Providing an accurate, easy to use API would be a lovely perk, especially if there was a version (or date or match_id) parameter so it is easy to determine what item costs/hero abilities were at the time an old match was played without needing to work out exactly where the new patch kicked in, and working out costs/abilities/etc backwards from current and playdota changelogs
2/4/2013 3:40:00Roshan death times, to which team and who got aegis and when did they lose itadrianlegg New field on existing APIMedium
1/25/2013 20:39:00Fake live league games on the test branch (205790) with varying fake players, broadcasters, tower/barracks statesNetshroudNew field on existing APIMedium
2/8/2013 0:47:35Make private lobbies query-able via GetMatchDetails, plenty of use cases for them that get shut down by their lack of being reported.RJacksonOther: PrivacyMediumPrivacy concerns, but openAuth access was thrown around a while ago somewhere on the forum, so that could be useful
2/9/2013 0:52:10IEconItem_<ID>/GetStoreMetaData result->carousel_data->banners has basefilename, but there is no data passed via this method as to where that filename goes. Perhaps have a "banner_url_template" under "carousel_data"?

E.g. for 570 "banner_url_template" would be "http://media.steampowered.com/apps/dota2/images/store/banners/english/{}.jpg"
RJackson New field on existing APILow
2/17/2013 23:36:33Adding skill from GetMatchHistory as a match attribute in GetMatchHistoryBySequenceNum

If I want to do anything using skill, I have to go through GetMatchDetails which is both inefficient and crippled for dealing with large daily match sets.
PhantasmalNew field on existing APIDuplicate of #13
2/18/2013 20:55:02Replay surrogate.
A collection of in depth timestamped actions to use as a substitute for having the full replays available to play with
WyrmNew APILowLarge bandwidth and most of the important data is available in details anyway. Would provide a natural place for roshan/items purchases/skill levelling/ward placement times to sit however.
2/20/2013 19:16:18GetTeamInfo (currently GetTeamInfoById)

There should be other ways to get team information like admin_account_id, player_X_account_ids, name or tag.

My current solution for this problem includes storing ALL teams (there are currently around 162'000) in a database, which kind of defeats the purpose of the API.

I think it should have similar options to GetMatchHistory (account_id etc.)
developrNew API
3/1/2013 3:42:18[B]FEATURE REQUEST[/B]

GetMatchHistory/?finish_at_match_id=<match id>

On another thread, they asked for push notifications.. which I thought was a bad idea..

I Thought up this in stead!
The idea is that it does the opposite of start_at_match_id...
meaning that it returns all matches that are NEWER than the given ID (rather than all matches that are OLDER than the given ID)

This would be useful for when people do DB updates, as it lets them define an exact cut-off point for the results.
for example a database update script can be as follows:

LAST_ID <-- fetch newest match_id from database
for each U_ID <-- users
while !done
DATA <-- GetMatchHistory/?account_id=U_ID&finish_at_match_id=LAST_ID
// process data

its usefulness really becomes clear when there are few matches for a user and you do do frequent updates - meaning you have a lot of the data from GetMatchHistory calls is thrown away because it's old, logged data..
with this field you can make a call to GetMatchHistory and it will return 0 results UNLESS there is new data, saving a lot of bandwidth...
MuppetMaster42New field on existing API
3/3/2013 20:18:06Add more live game info to the getLiveLeagueGames, such as kill score and match time. Also would be nice if the match ID was shown (though that may not be possible considering when the match ID is assigned to the match).DecoudNew field on existing API
3/7/2013 13:03:05tournament calendarXAOPTNew API
3/7/2013 23:18:56Could GetMatchDetails maybe include 'skill' as a field (in the same way that GetMatchHistory uses it as a filter).

Also, could GetMatchDetails include a "region" field, of the region in which the match was played.
NoxvilleNew field on existing API
3/7/2013 23:21:11catscatsNew field on existing API
3/19/2013 8:46:33barracks_status_dire should not be a copy of barracks_status_radiant. Right now, it is. This should probably be fixed.takua108Alteration to existing field
3/22/2013 10:38:12Currently there are methods for retrieving the list of cosmetic items (GetSchema), the list of heroes (GetHeroes) and the list of rarities (GetRarities). However, there are no fields to resolve the relations between this 3 result sets. Since there are relations (item is used by an hero and has a rarity), there should be additional fields for an item (e.g. like the already existing field 'item_quality') which connects the hero and the rarity to the item.XenophonNew field on existing API
4/22/2013 3:18:04K-D-A and Hero Level on getLiveLeagueGames

Since we have a call that give us some nice stats about live league games( such as tower state and heroes choosen), I thought that it would be a good idead to have a little more.

The current information avaliable is very lacking, sure the Towers can tell some progress, but towers alone dont hold a lot of meanning.

Together with towers, there's a lot more information for a follower to digest, also we could calculate a time for the kills if our application calls are reserved to this task (by comparing our last call with the new one), we would be providing a really huge amount of information to the users.

Why just K-D-A and Heros Levels
First because all that information is acessible for the players in oposing teams in-game, so checking a app/website that gives this away wont be cheating.

Second, we dont want to overload Valve's servers, do we?

It's more information for Valve to have in cache, while towers are just a few bits, kills etc will need much more space(a few bytes).
TMGNew field on existing API
6/11/2013 1:07:50I would like to do some statisical analysis on the kills and assists of a dota match and think the following would be a great addition to the getMatchDetails.
I would envisage this being in a similar format to the ability_upgrades of match details
but showing which hero killed who and scored assists at that point as well as the levels of all heros involved.
with the json being something like this...

"result": {
"players": [...
"kills_assists": [
"death_id": <heroid>,
"killer_id": <heroid>,
"assists": [
DarkMNew field on existing API
8/30/2013 20:38:42Currently the GetMatchDetails returns the fields 'start_time' and 'duration'. However, this is insufficient for some purposes, as the match 'end_time' (field not present) isn't simply 'start_time' + 'duration' because of pauses. Duration is the time on the game-clock at game-end. So there is currently no way to exactly determine game end time, which prevents cross-matching games against the Twitch API, which I am currently doing. Please add 'end_time' if possible, or alternatively details on pauses. Thanks a lot.OopsForgotNew field on existing API
9/3/2013 14:14:29There is no match history for teams, would be useful to have access to that information even if the roster changes. At least the matches id.WillemoesNew field on existing API
12/28/2013 20:05:29radiant_win field in GetMatchHistoryNisaniNew field on existing API
1/13/2014 14:27:27An API that returns the match sequence number (or match id) for the first match played after each patch was released.

Alternatively, add a field for the patch level to the appropriate APIs for matches (GetMatchHistoryBySequenceNum, GetMatchDetails, ...).
tobbez@ryara.netNew API
2/25/2014 17:57:44Comparing data between games is challenging when the heroes spawn/the horn blows with varying lag from the match start time between games. An additional match parameter (first hero spawn, horn blow time, or some other cross-game timing benchmark) would facilitate comparing things that are currently irreconcilable.datadrivendotaNew field on existing API
3/9/2014 0:19:57Add game_mode field to GetMatchHistory

For my personal database I don't want to have any of the special modes (diretide, frostivus, etc), ability draft or bot matches in my database.
I know that other people would want the same (as they want real matches only).

You can filter out everything but diretide and ability draft matches using only get match history (lobby_type field and player array checking), but for those two you have to make a subsequent call to GetMatchDetails just so you can check the game_mode.

For me a GetMatchDetails call can take a full second to return (http://zacher.com.au/Untitled.png), so this can add a significant amount of time to fetching for a new player.
MuppetMaster42New field on existing API
5/25/2014 18:50:51I've tried e-mailing the Dota 2 team but never got an answer, so I'm going to try this here. While building the dota 2 version of http://backpack.tf (final version not live to the public yet) we realized the GetPlayerItems API did not include the socket and gem attributes. It used to include the attached particles but since they moved to gems they are no longer included. We are currently forced to fetch the GetPlayerItems WebAPI and simultaneously the community json to be able to display item information properly. It is not efficient as it involves parsing HTML code within the community json on top of that. I would assume this adds some additional strain to VALVe's server as well but we don't have a choice if we want to display accurate information. Would it be possible to add the missing attributes to GetPlayerItems ? And if you are feeling generous, could you add item rarity to GetSchema, I think this has been requested several times by the community and would definitely help those who are struggling with parsing vdf files.

Thank you for your time.
Brad PittNew field on existing API
6/14/2014 14:02:11Add Featured Hero and Featured Items to the IEconItems_570/GetPlayerItems/v0001/ API.ReMixxNew field on existing API
6/14/2014 23:42:19In game settings option to allow inventory to be shared publicly despite having a private profile. This will default to disallow if the player's profile is set to private. This way, we can access a user's Dota2 inventory even if they have a private profile like how the ISteamUser/GetPlayerSummaries/v0002/ call still works if a player's profile is private.

The player's inventory will still not be visible from the Steam Community website/client if private. Instead it will only be visible to websites that make use of the API with a direct call to that player's SteamID.

This way, players with private profiles can still utilize item checklist type websites if they opt in.
ReMixxAlteration to existing API permissions.
6/16/2014 19:57:20Query that returns all match id's for a given account idogarzaNew API
6/17/2014 14:26:18Add equipped (at the time of the match) cosmetic items by each player to a match.ReMixxNew field on existing API
6/20/2015 20:59:30Add "connectedtogameserver" (boolean) to GetPlayerSummaries to show when the user is connected to a game, since "gameserverip" no longer works. cbaltzerNew field on existing API
7/18/2015 14:19:31add a field solo_queue: boolean to GetMatchDetails's players field
which determines if the player is solo queuing or party queuing
riwuNew field on existing API
7/18/2015 14:23:33add a field leaver_time to GetMatchDetails's players field that determines how long into the game the leaver abandoned (leaver_status 2-4)
this enables us to decide whether that match is meaningful to be included in analysis (an abandon near the end of game can still be considered meaningful)
riwuNew field on existing API
8/3/2015 12:57:30add a field lane: mid/top/btm/jungle/unknown to GetMatchDetails's players field that deduce players' starting lane based on their map positions (or xp gained from which particular lane's creeps) in the first few minutes.riwuNew field on existing API
8/6/2015 12:11:11GetMatchDetails's players field:
add pick_order: integer 0-9
0 indicates first to pick the hero, while 9 indicates last to pick the hero
riwuNew field on existing API
8/18/2016 16:38:05fefwfewtwesdgewAPI naming comventions
6/13/2017 9:56:34Patch no should be included in the match data.
Data analysis is really only valuable for matches from the current patch.
Rishabh PatilNew API