Skip to main content
Loading...

Please read the overwolf.games.events documentation page to learn how to use Overwolf game events.

Game State Integration

Due to a recent update in Dota 2 for Overwolf apps to work correctly, you will need to inform your users to add under Launch Options the following command line:

-gamestateintegration - More details here
To know which user is already using this command line parameter, you should use the overwolf.games.getGameInfo() API, where you will get this parameter in the response under gameInfo --> GameInfo --> ProcessCommandLine.

Sample Apps

Available Features

Game events status

It is highly recommended to communicate errors and warnings to your app users.

Check here the game events status. OR - easily check the game events status from your app, using our API.

gep_internal

Info Updates

keyCategoryValuesNotesSince GEP Ver.
gep_internalgep_internalLocal + Public version numberSee notes143.0

gep_internal note

Data Example:

{"info":{"gep_internal":{"version_info":"{"local_version":"157.0.1","public_version":"157.0.1","is_updated":true}"}},"feature":"gep_internal"}

game_state

Events

EventEvent DataFired WhenNotesSince GEP Ver.
new_gamenullMatch startedSee notes77.3
game_overnullMatch endedSee notes77.3

new_game note

Data Example:

{"events":[{"name":"new_game","data":""}]}

game_over note

Data Example:

{"events":[{"name":"game_over","data":""}]}

game_state_changed

Events

EventEvent DataFired WhenNotesSince GEP Ver.
game_state_changed
  • game_state
  • match_state
  • match_id
  • player_steam_id
See notes77.3

game_state_changed note

  • game_state – Can be ‘playing’, ‘idle’ or ‘spectating’. Idle is when there isn’t a game being played or spectated.
  • match_state – The internal match state. See ‘match_state_changed’ event for more info.
  • match_id (not available for ‘idle’): The id of the match.
  • player_steam_id (not available for ‘idle’): Steam id of the local player.

Fired when:

The user starts playing, begins spectating or stops playing. Note that simply bringing up the menu is not enough to trigger the ‘idle’ event – an active game (played or spectated) must be closed.

Data Example:

{"events":[{"name":"game_state_changed","data":"{"game_state": "playing",  "match_state": "DOTA_GAMERULES_STATE_INIT",  "match_id": "0",  "player_steam_id": "76561197971316549",  "player_team": "radiant"}"}]}

match_state_changed

Info Updates

keyCategoryValuesNotesSince GEP Ver.
match_state_changedgameCurrent match stateSee notes77.3

Events

EventEvent DataFired WhenNotesSince GEP Ver.
match_state_changedCheck notesSee notes77.3

match_state note

List of possible values:

match_state – One of the following:

  • DOTA_GAMERULES_STATE_WAIT_FOR_PLAYERS_TO_LOAD
  • DOTA_GAMERULES_STATE_HERO_SELECTION
  • DOTA_GAMERULES_STATE_STRATEGY_TIME
  • DOTA_GAMERULES_STATE_PRE_GAME
  • DOTA_GAMERULES_STATE_GAME_IN_PROGRESS
  • DOTA_GAMERULES_STATE_POST_GAME
  • DOTA_GAMERULES_STATE_TEAM_SHOWCASE

Event example:

{"events":[{"name":"match_state_changed","data":"{  "match_state": "DOTA_GAMERULES_STATE_HERO_SELECTION"}"}]}

Info example:

{"feature":"match_state_changed","category":"game","key":"match_state","value":"DOTA_GAMERULES_STATE_HERO_SELECTION"}

Fired when:

The internal game match state has changed.

  • DOTA_GAMERULES_STATE_WAIT_FOR_PLAYERS_TO_LOAD – Shown during the pre-game “Waiting for loaders” screen.
  • DOTA_GAMERULES_STATE_HERO_SELECTION – Shown during the hero selection screen.
  • DOTA_GAMERULES_STATE_PRE_GAME – Shown when the game begins, before the battle horn is heard.
  • DOTA_GAMERULES_STATE_GAME_IN_PROGRESS – Shown when the horn sounds to open the match.
  • DOTA_GAMERULES_STATE_POST_GAME – Shown during the post-game screen.
  • DOTA_GAMERULES_STATE_TEAM_SHOWCASE

match_detected

Events

EventEvent DataFired WhenNotesSince GEP Ver.
match_detectedCheck notesSee notes77.3

match_detected note

This feature is not available at the moment

Event Data:

  • gameMode – One of the supported game modes.
  • playersInfo – An array of 10 players' information with the following fields:
    • faction – Radiant/Dire
    • isLocalPlayer – True if this is the local player's information, false otherwise.
    • playerIndex – The index of this player (0 – 9, left to right).
    • steamId – Steam Id of the player.

Fired when:

As soon as 10 players have accepted a match, right after the 'accept' button is clicked by all. Supported game modes:

  • AllPick
  • AllPickRanked
  • SingleDraft
  • RandomDraft
  • AllRandom
  • LeastPlayed
  • LimitedHeroes
  • CaptainsMode
  • CaptainsDraft

daytime_changed

Events

EventEvent DataFired WhenNotesSince GEP Ver.
daytime_changedCheck notesSee notes77.3

daytime_changed note

Event Data:

  • daytime – True if it is current daytime, false otherwise.
  • clock_time – The number of seconds from when the game clocked shows (0:00). It can be negative during the Pre-Game phase.
  • nightstalker_night – True if it is currently a Night Stalker ultimate night.

Fired when:

The game transitions between daytime and night time.

Data Example:

{"events":[{"name":"daytime_changed","data":"{  "daytime": true,  "clock_time": -89,  "nightstalker_night": false}"}]}

clock_time_changed

Events

EventEvent DataFired WhenNotesSince GEP Ver.
clock_time_changedSame as ‘map_daytime_changed’.Fired every second77.3

clock_time_changed note

{"events":[{"name":"clock_time_changed","data":"{  "daytime": true,  "clock_time": -89,  "nightstalker_night": false}"}]}

ward_purchase_cooldown_changed

Events

EventEvent DataFired WhenNotesSince GEP Ver.
ward_purchase_cooldown_changedCheck notesFired every second where wards are on cooldown.See notes77.3

ward_purchase_cooldown_changed note

Event Data:

  • ward_purchase_cooldown – The remaining store cooldown in seconds before a ward is available for purchase again.

Data Example:

{"events":[{"name":"ward_purchase_cooldown_changed","data":"{"ward_purchase_cooldown":128}"}]}

match_ended

Events

EventEvent DataFired WhenNotesSince GEP Ver.
match_endedradiant/direWhen an ancient is destroyed and the game ends.See notes77.3

match_ended note

{"events":[{"name":"match_ended","data":"{  "winner": "radiant"}"}]}

kill

Events

EventEvent DataFired WhenNotesSince GEP Ver.
killCheck notesWhenever the player kills an enemy hero.See notes77.3

kill note

Event Data:

{"events":[{"name":"kill","data":"{  "kills": 10,  "kill_streak": 7,  "label": "kill"}"}]}
  • kills – The total number of kills the player has.
  • kill_streak – The current number of hero kills without dying, denying oneself to neutral creeps does not reset this counter.
  • label – the type of kill (kill/double_kill/triple_kill/ultra_kill/rampage)

assist

Events

EventEvent DataFired WhenNotesSince GEP Ver.
assistassists – The total number of assists the player has.Whenever the player assists in a kill of an enemy champion.See notes77.3

assist note

Data Example:

{"events":[{"name":"assist","data":"{"assists": 1}"}]}

death

Events

EventEvent DataFired WhenNotesSince GEP Ver.
deathdeaths – The total number of deaths the player has.Whenever the player dies.See notes77.3

death note

Data Example:

{"events":[{"name":"death","data":"{"deaths":1}"}]}

cs

Events

EventEvent DataFired WhenNotesSince GEP Ver.
csCheck notesWhenever the player last hits/denies non-champion units that grant creep score.See notes77.3

cs note

Event Data:

  • last_hits – The total amount of last hits (not denies) the player has.
  • denies – The total amount of denies the player has.
  • type – last_hits/deny.

Data Example:

{"events":[{"name":"cs","data":"{"last_hits": 1,"denies":0,"type":"last_hit"}"}]}

xpm

Events

EventEvent DataFired WhenNotesSince GEP Ver.
xpmxpm – The current Experience Per Minute value.Whenever the XPM changes.See notes77.3

xpm note

Data Example:

{"events":[{"name":"xpm","data":"{  "xpm": 250}"}]}

gpm

Events

EventEvent DataFired WhenNotesSince GEP Ver.
gpmgpm – The current Gold Per Minute value.Whenever the GPM changes.77.3

gpm note

Data Example:

{"events":[{"name":"gpm","data":"{  "gpm": 363605184}"}]}

gold

Events

EventEvent DataFired WhenNotesSince GEP Ver.
goldCheck notesWhenever gold changes.See notes77.3

gold note

  • gold – Total current gold.
  • gold_reliable – Reliable gold part.
  • gold_unreliable – Unreliable gold part.

Data Example:

{"events":[{"name":"gold","data":"{  "gold": 10599,  "gold_reliable": 0,  "gold_unreliable": 10599}"}]}

hero_leveled_up

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_leveled_uphero_level – The current hero level.Whenever the player levels up.See notes77.3

hero_leveled_up note

Data Example:

{"events":[{"name":"hero_leveled_up","data":"{  "hero_level": 30}"}]}

hero_respawned

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_respawnedN/AWhenever the player respawns. This is also true when buying back.See notes77.3

hero_respawned note

Currently this event is NOT supported.

hero_buyback_info_changed

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_buyback_info_changedCheck notesSee notes77.3

hero_buyback_info_changed note

Event Data:

  • buyback_cost – Gold cost to buyback
  • buyback_cooldown – Cooldown remaining for buyback to become available

Fired when:

Every 4 seconds and every level-up, since buyback cost is affected by game time and player level. It will also be called every second when buyback is on cooldown.

Data Example:

{"events":[{"name":"hero_buyback_info_changed","data":"{  "buyback_cost": 8541,  "buyback_cooldown": 0}"}]}

hero_boughtback

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_boughtbackbuyback_cooldown – The cooldown remaining for buyback to become available.Whenever the player buys back.See notes77.3

hero_boughtback note

Data Example:

{"events":[{"name":"hero_boughtback","data":"{}"}]}

hero_health_mana_info

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_health_mana_infoCheck notesWhenever either of the player's mana, health, max mana or max health changes.See notes77.3

hero_health_mana_info note

Event Data:

  • health – Current health.
  • max_health – Current maximum health.
  • mana – Current mana.
  • max_mana – Current maximum mana.

Data Example:

{"events":[{"name":"hero_health_mana_info","data":"{  "health": 2620,  "max_health": 2620,  "mana": 711,  "max_mana": 711}"}]}

hero_status_effect_changed

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_status_effect_changedCheck notesWhenever any of these effects changes.See notes77.3

hero_status_effect_changed note

Event Data:

  • silenced – True if the player is silenced, false otherwise.
  • stunned – True if the player is stunned, false otherwise.
  • disarmed – True if the player is disarmed, false otherwise.
  • magicimmune – True if the player is magic immune, false otherwise.
  • hexed – True if the player is hexed, false otherwise.
  • muted – True if the player is muted, false otherwise.
  • break – True if the player is broken, false otherwise.
  • has_debuff – True if the player is affected by any debuff, false otherwise.

Data Example:

{"events":[{"name":"hero_status_effect_changed","data":"{  "silenced": true,  "stunned": false,  "disarmed": false,  "magicimmune": false,  "hexed": false,  "muted": false,  "break": false,  "has_debuff": false}"}]}

hero_attributes_skilled

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_attributes_skilledattributes_level – The current level of the player’s attributes.Whenever the player skills up his attributes.77.3

hero_attributes_skilled note

hero_ability_skilled

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_ability_skilledCheck notesWhenever the player skills up an ability.See notes77.3

hero_ability_skilled note

  • slot – The index of the ability slot (0 – 5, left to right)
  • name – The name of the ability.
  • level – The current level of the ability.
  • can_cast – True unless the ability is not skilled, there’s not enough mana to cast it, the player is silenced, or is on cooldown.
  • passive – True if the ability is passive.
  • ability_active – Unknown, TBD.
  • cooldown – Remaining cooldown until the ability is ready to cast.
  • ultimate – True if the ability is an ultimate ability.

Data Example:

{"events":[{"name":"hero_ability_skilled","data":"{  "slot": 1,  "name": "sven_great_cleave",  "level": 1,  "can_cast": false,  "passive": true,  "ability_active": true,  "cooldown": 0,  "ultimate": false}"}]}

hero_ability_used

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_ability_usedSame as ‘hero_ability_skilled’Whenever the player uses an ability.See notes77.3

hero_ability_used note

Data Example:

{"events":[{"name":"hero_ability_used","data":"{"slot":0,"name":"sven_storm_bolt","level":4,  "can_cast":false,"passive":false,"ability_active":true,"cooldown":7,"ultimate":false}"}]}

hero_ability_cooldown_changed

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_ability_cooldown_changedSame as ‘hero_ability_skilled’Whenever an ability’s remaining cooldown is changed.See notes77.3

hero_ability_cooldown_changed note

Data Example:

{"events":[{"name":"hero_ability_cooldown_changed","data":"{  "slot": 3,  "name": "sven_gods_strength",  "level": 3,  "can_cast": false,  "passive": false,  "ability_active": true,  "cooldown": 59,  "ultimate": true}"}]}

hero_ability_changed

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_ability_changedSame as ‘hero_ability_skilled’Whenever an ability’s name changes.See notes77.3

hero_ability_changed note

Currently this event is NOT supported.

hero_item_cooldown_changed

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_item_cooldown_changedCheck notesWhenever an item’s remaining cooldown is changed.See notes77.3

hero_item_cooldown_changed note

Event Data:

  • slot – The index of the item slot (0 – 5, top row from the left to bottom row from the right)
  • location – hero/stash
  • name – The name of the item
  • passive – True if the item is passive
  • can_cast – True unless there’s not enough mana to use the item, the player is muted, or when the item is on cooldown. (only when passive = false)
  • cooldown – The remaining cooldown until the item is ready to be used. (only when passive = false)
  • charges – The remaining charges of the item (only when passive = false and where item can be charged)

Data Example:

{"events":[{"name":"hero_item_cooldown_changed","data":"{  "slot": 3,  "location": "hero",  "name": "item_mask_of_madness",  "can_cast": false,  "passive": false,  "cooldown": 16,  "charges": null}"}]}

hero_item_changed

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_item_changedCheck notesSee notes77.3

hero_item_changed note

Currently this event is NOT supported.

Event Data:

  • slot – The index of the item slot (0 – 5, top row from the left to bottom row from the right)
  • location – hero/stash
  • name – The name of the item.
  • passive – True if the item is passive.
  • can_cast – True unless there’s not enough mana to use the item, the player is muted, or when the item is on cooldown. (only when passive = false)
  • cooldown – Remaining cooldown until the item is ready to be used again (only when passive = false)
  • charges – Remaining charges of the item (only when passive = false and where item can be charged)

Fired when:

Whenever the item name in some hero/stash slot changes. This would mean that swapping items will trigger 2 events, one for each item.

hero_item_used

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_item_usedSame as ‘hero_item_changed’Whenever an item is used – Essentially this is when the item goes on cooldown.See notes77.3

hero_item_used note

Data Example:

{"events":[{"name":"hero_item_used","data":"{  "slot": 0,  "location": "hero",  "name": "item_blink",  "can_cast": false,  "passive": false,  "cooldown": 15,  "charges": null}"}]}

hero_item_consumed

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_item_consumedSame as ‘hero_item_changed’Whenever an item’s charges decreases.See notes77.3

hero_item_consumed note

Data Example:

{"events":[{"name":"hero_item_consumed","data":"{  "slot": 1,  "location": "hero",  "name": "item_tango",  "can_cast": true,  "passive": false,  "cooldown": 0,  "charges": 4}"}]}

hero_item_charged

Events

EventEvent DataFired WhenNotesSince GEP Ver.
hero_item_chargedSame as ‘hero_item_changed’Whenever an item’s charges increases.See notes77.3

hero_item_charged note

Data Example:

{"events":[{"name":"hero_item_charged","data":"{  "slot": 0,  "location": "hero",  "name": "item_ward_observer",  "can_cast": true,  "passive": false,  "cooldown": 0,  "charges": 2}"}]}

match_info

Info Updates

keyCategoryValuesNotesSince GEP Ver.
pseudo_match_idmatch_infoThe current match’s ID code.See notes130.0
game_modematch_infoType of mode that is currently playedSee notes171.1
team_scoreteam_scoreScore of each team during the gameSee notes198.1

pseudo_match_id note

Data Example:

0c0ea3df-97ea-4d3a-b1f6-f8e34042251f

game_mode note

Data Example:

{"info":{"match_info":{"game_mode":"{"lobby_type": "DOTA_lobby_type_name_custom_lobby" , "game_mode" : "NONE"}"}},"feature":"match_info"}
{"info":{"match_info":{"game_mode":"{"lobby_type": "DOTA_lobby_type_name_custom_lobby" , "game_mode" : "GameMode_AllPick"}"}},"feature":"match_info"}
{"info":{"match_info":{"game_mode":"{"lobby_type": "DOTA_lobby_type_name_custom_lobby" , "game_mode" : "GameMode_Turbo"}"}},"feature":"match_info"}

team_score note

Data Example:

{"feature":"match_info","category":"team_score","key":"{\"radiant\":12,\"dire\":13}"}

roster

Info Updates

keyCategoryValuesNotesSince GEP Ver.
playersrosterA string holding a JSON array of player objects.See notes114.1
bansrosterA string holding a JSON array of bans objects.See notes114.1
draftrosterA string holding a JSON array of draft objects.See notes114.1

players note

info

Dota 2 has disabled some functionality used by third-party tools. This includes disabling a large number of console commands during matchmaking games and limiting access to player profiles during the pregame phase As a result 'steamId' and 'name' in the roster will return empty values until the game state changes to DOTA_GAMERULES_STATE_STRATEGY_TIME, then we can show the full roster again with all the details

Data Example:

Full roster:

{
"info": {
"roster": {
"players": "[{\"steamId\":\"76571705014726854\",\"name\":\"overwolf1\",\"pickConfirmed\":true,\"hero\":\"slark\",\"team\":3,\"role\":1,\"rank\":25,\"team_slot\":3,\"player_index\":8},{\"steamId\":\"76559896196858058\",\"name\":\"overwolf2\",\"pickConfirmed\":true,\"hero\":\"juggernaut\",\"team\":2,\"role\":1,\"rank\":24,\"team_slot\":2,\"player_index\":2},{\"steamId\":\"76516781373985191\",\"name\":\"overwolf3\",\"pickConfirmed\":true,\"hero\":\"axe\",\"team\":2,\"role\":2,\"rank\":24,\"team_slot\":0,\"player_index\":0},{\"steamId\":\"76559052302997819\",\"name\":\"overwolf4\",\"pickConfirmed\":true,\"hero\":\"ogre_magi\",\"team\":3,\"role\":16,\"rank\":25,\"team_slot\":2,\"player_index\":7},{\"steamId\":\"76557265358930573\",\"name\":\"overwolf5\",\"pickConfirmed\":true,\"hero\":\"crystal_maiden\",\"team\":2,\"role\":8,\"rank\":0,\"team_slot\":4,\"player_index\":4},{\"steamId\":\"76593138238611347\",\"name\":\"overwolf6\",\"pickConfirmed\":true,\"hero\":\"riki\",\"team\":3,\"role\":4,\"rank\":0,\"team_slot\":4,\"player_index\":9},{\"steamId\":\"76533974583630266\",\"name\":\"overwolf7\",\"pickConfirmed\":true,\"hero\":\"queenofpain\",\"team\":3,\"role\":8,\"rank\":0,\"team_slot\":1,\"player_index\":6},{\"steamId\":\"76557378292767269\",\"name\":\"overwolf8\",\"pickConfirmed\":true,\"hero\":\"necrolyte\",\"team\":2,\"role\":4,\"rank\":24,\"team_slot\":3,\"player_index\":3},{\"steamId\":\"76568133097132933\",\"name\":\"overwolf9\",\"pickConfirmed\":true,\"hero\":\"shadow_shaman\",\"team\":2,\"role\":16,\"rank\":0,\"team_slot\":1,\"player_index\":1},{\"steamId\":\"76573600244111888\",\"name\":\"overwolf10\",\"pickConfirmed\":true,\"hero\":\"bristleback\",\"team\":3,\"role\":2,\"rank\":0,\"team_slot\":0,\"player_index\":5}]"
}
},
"feature": "roster"
}

Pregame phase roster:

{
"info": {
"roster": {
"players": "[{\"steamId\":\"76571705014726854\",\"name\":\"overwolf1\",\"pickConfirmed\":false,\"hero\":\"\",\"team\":3,\"role\":1,\"rank\":25,\"team_slot\":3,\"player_index\":8},{\"steamId\":\"0\",\"name\":\"\",\"pickConfirmed\":false,\"hero\":\"\",\"team\":2,\"role\":1,\"rank\":24,\"team_slot\":2,\"player_index\":2},{\"steamId\":\"0\",\"name\":\"\",\"pickConfirmed\":false,\"hero\":\"\",\"team\":2,\"role\":2,\"rank\":24,\"team_slot\":0,\"player_index\":0},{\"steamId\":\"0\",\"name\":\"\",\"pickConfirmed\":false,\"hero\":\"\",\"team\":3,\"role\":16,\"rank\":25,\"team_slot\":2,\"player_index\":7},{\"steamId\":\"0\",\"name\":\"\",\"pickConfirmed\":false,\"hero\":\"\",\"team\":2,\"role\":8,\"rank\":0,\"team_slot\":4,\"player_index\":4},{\"steamId\":\"0\",\"name\":\"\",\"pickConfirmed\":false,\"hero\":\"\",\"team\":3,\"role\":4,\"rank\":0,\"team_slot\":4,\"player_index\":9},{\"steamId\":\"0\",\"name\":\"\",\"pickConfirmed\":false,\"hero\":\"\",\"team\":3,\"role\":8,\"rank\":0,\"team_slot\":1,\"player_index\":6},{\"steamId\":\"0\",\"name\":\"\",\"pickConfirmed\":false,\"hero\":\"\",\"team\":2,\"role\":4,\"rank\":24,\"team_slot\":3,\"player_index\":3},{\"steamId\":\"0\",\"name\":\"\",\"pickConfirmed\":false,\"hero\":\"\",\"team\":2,\"role\":16,\"rank\":0,\"team_slot\":1,\"player_index\":1},{\"steamId\":\"0\",\"name\":\"\",\"pickConfirmed\":false,\"hero\":\"\",\"team\":3,\"role\":2,\"rank\":0,\"team_slot\":0,\"player_index\":5}]"
}
},
"feature": "roster"
}

Player object structure:

  • "steamId" - steamId string
  • "name" - player name in-game
  • “teamId”
    • 2 – Radiant
    • 3 – Dire
    • 0 – Not in a team
  • “heroId” – Heroes IDs (0 if still not picked)
  • "role" - role type. (1 - Safelane, 2 - Offlane, 4 - Midlane, 8 - Other, 16 - HardSupport, 888\any other number - Can be received during bot matchups and should be ignored)
  • "index" - player slot (int 0-9)
  • "rank" - competitive rank
  • "team_slot" - player slot (0-4) in each team
note

In Immortal Draft use "team_slot" instead of "index" to detect the accurate slot of all players

bans note

Data Example:

[{"heroId": "75" , "team" : "0"},{"heroId": "14" , "team" : "0"}]

Bans object structure:

  • “heroId” – Heroes IDs (0 if still not picked)
  • “teamId”
    • 2 – Radiant
    • 3 – Dire
    • 0 – Not in a team

draft note

Data Example:

"[{"heroId": 56 , "team" : 3},{"heroId": 69 , "team" : 2},{"heroId": 101 , "team" : 2},{"heroId": 28 , "team" : 3}]"

Draft object structure:

  • “heroId” – Heroes IDs (0 if still not picked)
  • “teamId”
    • 2 – Radiant
    • 3 – Dire
    • 0 – Not in a team

party

Info Updates

keyCategoryValuesNotesSince GEP Ver.
partypartyA string holding a JSON array of player objects.See notes130.0

party note

Data Example:

[{"steamId":"76561198059980868","isLeader":false,"isCoach":false}]
  • steamId – the player’s Steam ID
  • isLeader – (bool) whether the player is the leader of the party
  • isCoach – (bool) whether the player is the coach of the party

Important note:

  • The leader can be the coach as well
  • There’s exactly one leader
  • There’s at most one coach (it’s optional)
  • This info-update is being updated for every party change

hero_pool

Info Updates

keyCategoryValuesNotesSince GEP Ver.
hero_poolgame_infoThe numerical ids of heroes that are available for picking.See notes139.0

hero_pool note

This data is available only in "Single Draft" & "Random Draft" modes in Dota.

You can find the Hero ID's in the following link

Data Example:

{"category":"game_info","key":"hero_pool","value":"[2,4,5,7,8,16,18,20,21,22,23,27,31,32,34,35,37,38,44,47,48,49,52,53,59,64,65,67,70,71,72,74,75,81,84,85,91,92,95,98,99,100,104,105,106,109,110,113,120,121]}

me

Info Updates

keyCategoryValuesNotesSince GEP Ver.
teammeradiant / direSee notes139.0
steam_idmeID numberSee notes139.0
heromeName of the hero you're playingSee notes139.0
mmrmeMMR and confidence value of the playerSee notes225.1.0

me note

Event data example:

{"info":{"me":{"team":"radiant"}},"feature":"me"}
{"info":{"me":{"steam_id":"7654654654"}},"feature":"me"}
{"info":{"me":{"hero":"keeper_of_the_light"}},"feature":"me"}
{"info":{"me":{"mmr":"{\"mmr\": 2865,\"confidence\" : 37}"}},"feature":"me"}

game

Info Updates

keyCategoryValuesNotesSince GEP Ver.
game_stategamePlaying139.0
match_stategameCurrent game-state139.0

Event data example:

{"info":{"game":{"game_state":"playing"}},"feature":"game"}
{"info":{"game":{"match_state":"DOTA_GAMERULES_STATE_INIT"}},"feature":"game"}

damage

Info Updates

keyCategoryValuesNotesSince GEP Ver.
damage_dealt_herodamageThe total and current damage done to a hero by the local playerSee notes250.0
damage_dealt_towerdamageThe total and current damage done to a tower by the local playerSee notes250.0

damage_dealt_hero note

Event data example:

{"info":{"damage":{"damage_dealt_hero":{"total_damage": 922, "current_damage": 100}}},"feature":"damage"}

damage_dealt_tower note

Event data example:

{"info":{"damage":{"damage_dealt_tower":{"total_damage": 800, "current_damage": 50}}},"feature":"damage"}