### GET /proMatches Source: https://api.opendota.com/api Get list of pro matches. ```APIDOC ## GET /proMatches ### Description Get list of pro matches. ### Method GET ### Endpoint /proMatches ### Parameters #### Query Parameters - **less_than_match_id** (integer) - Optional - Filter matches with IDs less than the specified value. ### Response #### Success Response (200) - An array of match objects. ``` -------------------------------- ### GET /proPlayers Source: https://api.opendota.com/api Get list of pro players. ```APIDOC ## GET /proPlayers ### Description Get list of pro players. ### Method GET ### Endpoint /proPlayers ### Response #### Success Response (200) - An array of player objects. ``` -------------------------------- ### GET /explorer Source: https://api.opendota.com/api Submit arbitrary SQL queries to the database. ```APIDOC ## GET /explorer ### Description Submit arbitrary SQL queries to the database. ### Method GET ### Endpoint /explorer ### Parameters #### Query Parameters - **sql** (string) - Optional - The PostgreSQL query as percent-encoded string. ### Response #### Success Response (200) - A JSON object containing the query results. ``` -------------------------------- ### GET /heroes/{hero_id}/itemPopularity Source: https://api.opendota.com/api Get item popularity of hero categorized by start, early, mid and late game, analyzed from professional games. ```APIDOC ## GET /heroes/{hero_id}/itemPopularity ### Description Get item popularity of hero categorized by start, early, mid and late game, analyzed from professional games. ### Method GET ### Endpoint /heroes/{hero_id}/itemPopularity ### Parameters #### Path Parameters - **hero_id** (integer) - Required - The ID of the hero. ### Response #### Success Response (200) - **HeroItemPopularityResponse** - Item popularity data for the hero. ``` -------------------------------- ### GET /teams Source: https://api.opendota.com/api Get team data. ```APIDOC ## GET /teams ### Description Get team data. ### Method GET ### Endpoint /teams ### Parameters #### Query Parameters - **page** (integer) - Optional - Page number, zero indexed. Each page returns up to 1000 entries. ### Response #### Success Response (200) - **(array of TeamObjectResponse)** - An array of team data. ``` -------------------------------- ### GET /benchmarks Source: https://api.opendota.com/api Get benchmark statistics for a specific hero. This endpoint provides average stat values for a hero, allowing for performance comparisons. ```APIDOC ## GET /benchmarks ### Description Benchmarks of average stat values for a hero ### Method GET ### Endpoint /benchmarks ### Parameters #### Query Parameters - **hero_id** (string) - Required - Hero ID ``` -------------------------------- ### GET /leagues/{league_id}/teams Source: https://api.opendota.com/api Get teams for a league. ```APIDOC ## GET /leagues/{league_id}/teams ### Description Get teams for a league. ### Method GET ### Endpoint /leagues/{league_id}/teams ### Parameters #### Path Parameters - **league_id** (integer) - Required - The ID of the league. ### Response #### Success Response (200) - **TeamObjectResponse** - Team data for the league. ``` -------------------------------- ### Get Constants by Resource Source: https://api.opendota.com/api Fetches static game data, mirroring the content from the dotaconstants repository. ```APIDOC ## GET /constants/{resource} ### Description Get static game data mirrored from the dotaconstants repository. ### Method GET ### Endpoint /constants/{resource} ### Parameters #### Path Parameters - **resource** (string) - Required - The name of the resource to retrieve (e.g., `heroes`, `items`, `abilities`). Refer to the [list of resources](https://github.com/odota/dotaconstants/tree/master/build). ### Responses #### Success Response (200) - **constants** (object or array) - The requested static game data. The structure varies depending on the resource requested. It can be an object with key-value pairs or an array of items. ### Request Example (No request body example provided) ### Response Example ```json { "1": { "name": "Anti-Mage", "localized_name": "Anti-Mage" }, "2": { "name": "Crystal_Maiden", "localized_name": "Crystal Maiden" } } ``` ``` -------------------------------- ### Get Live Games Source: https://api.opendota.com/api Retrieves a list of currently ongoing live games. ```APIDOC ## GET /live ### Description Get top currently ongoing live games. ### Method GET ### Endpoint /live ### Parameters (No parameters) ### Responses #### Success Response (200) - **live_games** (array) - A list of live games. The structure of each item is currently an empty object, implying detailed live game data is not directly exposed in this endpoint's schema. ### Request Example (No request body example provided) ### Response Example ```json [ {} ] ``` ``` -------------------------------- ### GET /metadata Source: https://api.opendota.com/api Site metadata. ```APIDOC ## GET /metadata ### Description Site metadata. ### Method GET ### Endpoint /metadata ### Response #### Success Response (200) - A JSON object containing site metadata. ``` -------------------------------- ### GET /leagues/{league_id} Source: https://api.opendota.com/api Get data for a league. ```APIDOC ## GET /leagues/{league_id} ### Description Get data for a league. ### Method GET ### Endpoint /leagues/{league_id} ### Parameters #### Path Parameters - **league_id** (integer) - Required - The ID of the league. ### Response #### Success Response (200) - **(array of LeagueObjectResponse)** - An array of league data. ``` -------------------------------- ### GET /leagues Source: https://api.opendota.com/api Get league data. ```APIDOC ## GET /leagues ### Description Get league data. ### Method GET ### Endpoint /leagues ### Response #### Success Response (200) - **(array of LeagueObjectResponse)** - An array of league data. ``` -------------------------------- ### GET /teams/{team_id}/matches Source: https://api.opendota.com/api Get matches for a team. ```APIDOC ## GET /teams/{team_id}/matches ### Description Get matches for a team. ### Method GET ### Endpoint /teams/{team_id}/matches ### Parameters #### Path Parameters - **team_id** (integer) - Required - The ID of the team. ### Response #### Success Response (200) - **TeamMatchObjectResponse** - Match data for the team. ``` -------------------------------- ### GET /topPlayers Source: https://api.opendota.com/api Get list of highly ranked players. ```APIDOC ## GET /topPlayers ### Description Get list of highly ranked players. ### Method GET ### Endpoint /topPlayers ### Parameters #### Query Parameters - **turbo** (integer) - Optional - Get ratings based on turbo matches. ### Response #### Success Response (200) - An array of player objects. ``` -------------------------------- ### Get Miscellaneous Scenarios Source: https://api.opendota.com/api Retrieves data for various miscellaneous team-based scenarios in Dota 2. ```APIDOC ## GET /scenarios/misc ### Description Miscellaneous team scenarios. ### Method GET ### Endpoint /scenarios/misc ### Parameters #### Query Parameters - **scenario** (string) - Optional - Filter by a specific scenario type (e.g., `stuns`, `damage`). ### Responses #### Success Response (200) - **misc_scenarios** (array) - A list of miscellaneous scenario results. - The exact structure of each item depends on the `scenario` parameter and is not fully detailed here. ### Request Example (No request body example provided) ### Response Example ```json [ { "scenario_type": "stuns", "value": 10000, "match_count": 50 } ] ``` ``` -------------------------------- ### GET /heroes/{hero_id}/players Source: https://api.opendota.com/api Get players who have played this hero. ```APIDOC ## GET /heroes/{hero_id}/players ### Description Get players who have played this hero. ### Method GET ### Endpoint /heroes/{hero_id}/players ### Parameters #### Path Parameters - **hero_id** (integer) - Required - The ID of the hero. ### Response #### Success Response (200) - **(array of arrays of PlayerObjectResponse)** - An array of player data. ``` -------------------------------- ### GET /heroes/{hero_id}/matchups Source: https://api.opendota.com/api Get data on how a specific hero performs against other heroes. This endpoint provides win/loss statistics for hero matchups. ```APIDOC ## GET /heroes/{hero_id}/matchups ### Description Get results against other heroes for a hero ### Method GET ### Endpoint /heroes/{hero_id}/matchups ### Parameters #### Path Parameters - **hero_id** (string) - Required - The ID of the hero to query. ``` -------------------------------- ### GET /teams/{team_id} Source: https://api.opendota.com/api Get data for a team. ```APIDOC ## GET /teams/{team_id} ### Description Get data for a team. ### Method GET ### Endpoint /teams/{team_id} ### Parameters #### Path Parameters - **team_id** (integer) - Required - The ID of the team. ### Response #### Success Response (200) - **TeamObjectResponse** - Team data. ``` -------------------------------- ### GET /leagues/{league_id}/matchIds Source: https://api.opendota.com/api Get match IDs for a league (including amateur leagues). ```APIDOC ## GET /leagues/{league_id}/matchIds ### Description Get match IDs for a league (including amateur leagues). ### Method GET ### Endpoint /leagues/{league_id}/matchIds ### Parameters #### Path Parameters - **league_id** (integer) - Required - The ID of the league. ### Response #### Success Response (200) - **(array of strings)** - An array of match IDs. ``` -------------------------------- ### GET /players/{account_id}/rankings Source: https://api.opendota.com/api Player hero rankings. ```APIDOC ## GET /players/{account_id}/rankings ### Description Player hero rankings. ### Method GET ### Endpoint /players/{account_id}/rankings ### Parameters #### Path Parameters - **account_id** (integer) - Required - The account ID of the player. ### Response #### Success Response (200) - An array of player rankings objects. ``` -------------------------------- ### GET /publicMatches Source: https://api.opendota.com/api Get list of randomly sampled public matches. ```APIDOC ## GET /publicMatches ### Description Get list of randomly sampled public matches. ### Method GET ### Endpoint /publicMatches ### Parameters #### Query Parameters - **less_than_match_id** (integer) - Optional - Filter matches with IDs less than the specified value. - **min_rank** (integer) - Optional - Minimum rank to filter by. - **max_rank** (integer) - Optional - Maximum rank to filter by. ### Response #### Success Response (200) - An array of public match objects. ``` -------------------------------- ### Get Hero Distributions Source: https://api.opendota.com/api Retrieves distribution data for heroes, such as win rates and pick rates across different ranks. ```APIDOC ## GET /distributions ### Description Retrieves distribution data for heroes across various metrics. ### Method GET ### Endpoint /distributions ### Response #### Success Response (200) - **ranks** (object) - An object containing distribution data by rank. - **rows** (array) - An array of objects, each representing a rank bin with its count and cumulative sum. - **sum** (object) - An object containing the total sum of counts. ``` -------------------------------- ### GET /leagues/{league_id}/matches Source: https://api.opendota.com/api Get matches for a league (excluding amateur leagues). ```APIDOC ## GET /leagues/{league_id}/matches ### Description Get matches for a league (excluding amateur leagues). ### Method GET ### Endpoint /leagues/{league_id}/matches ### Parameters #### Path Parameters - **league_id** (integer) - Required - The ID of the league. ### Response #### Success Response (200) - **MatchObjectResponse** - Match data for the league. ``` -------------------------------- ### GET /heroes Source: https://api.opendota.com/api Retrieve comprehensive data for all heroes in Dota 2. This includes hero attributes, abilities, and other relevant information. ```APIDOC ## GET /heroes ### Description Get hero data ### Method GET ### Endpoint /heroes ``` -------------------------------- ### Get Lane Roles Source: https://api.opendota.com/api Provides win rate data for heroes based on their chosen lane roles. ```APIDOC ## GET /scenarios/laneRoles ### Description Win rates for heroes in certain lane roles. ### Method GET ### Endpoint /scenarios/laneRoles ### Parameters #### Query Parameters - **lane_role** (string) - Optional - Filter by lane role (1-4: Safe, Mid, Off, Jungle). - **hero_id** (integer) - Optional - The ID of the hero to filter by. ### Responses #### Success Response (200) - **lane_roles** (array) - A list of lane role scenarios. - **hero_id** (integer) - The ID of the hero. - **lane_role** (integer) - The role played (1: Safe, 2: Mid, 3: Off, 4: Jungle). - **role_matches** (integer) - The number of matches played in this role. - **wins** (integer) - The number of wins in this role. ### Request Example (No request body example provided) ### Response Example ```json [ { "hero_id": 1, "lane_role": 2, "role_matches": 100, "wins": 55 } ] ``` ``` -------------------------------- ### Get Hero Matchups Source: https://api.opendota.com/api Retrieves win rate and game count data for a specific hero against other heroes. ```APIDOC ## GET /heroes/{hero_id}/matchups ### Description Retrieves matchup statistics for a specific hero against other heroes. ### Method GET ### Endpoint /heroes/{hero_id}/matchups ### Parameters #### Path Parameters - **hero_id** (integer) - Required - The ID of the hero to retrieve matchup data for. ### Response #### Success Response (200) - **hero_id** (integer) - The ID of the hero. - **games_played** (integer) - The number of games played against this opponent hero. - **wins** (integer) - The number of wins against this opponent hero. ``` -------------------------------- ### GET /heroes/{hero_id}/durations Source: https://api.opendota.com/api Get hero performance data over a range of match durations. This endpoint helps analyze how a hero's performance changes throughout a match. ```APIDOC ## GET /heroes/{hero_id}/durations ### Description Get hero performance over a range of match durations ### Method GET ### Endpoint /heroes/{hero_id}/durations ### Parameters #### Path Parameters - **hero_id** (string) - Required - The ID of the hero to query. ``` -------------------------------- ### Records Response Source: https://api.opendota.com/api Structure for match records, including game ID, start time, hero played, and score. ```APIDOC ## Records Response ### Description Contains information about a specific match record. ### Properties - **match_id** (integer) - The ID number of the match assigned by Valve. - **start_time** (integer) - The Unix timestamp at which the game started. - **hero_id** (integer) - The ID value of the hero played. - **score** (integer) - Record score for the hero in the match. ``` -------------------------------- ### GET /heroStats Source: https://api.opendota.com/api Get statistics on hero performance in recent matches. This endpoint provides insights into how heroes are performing overall. ```APIDOC ## GET /heroStats ### Description Get stats about hero performance in recent matches ### Method GET ### Endpoint /heroStats ``` -------------------------------- ### GET /players/{account_id} Source: https://api.opendota.com/api Retrieves general player data using their account ID. ```APIDOC ## GET /players/{account_id} ### Description Retrieves general player data using their account ID. ### Method GET ### Endpoint /players/{account_id} ### Parameters #### Path Parameters - **account_id** (integer) - Required - The account ID of the player. ``` -------------------------------- ### GET /distributions Source: https://api.opendota.com/api Distributions of MMR data by bracket and country. ```APIDOC ## GET /distributions ### Description Distributions of MMR data by bracket and country. ### Method GET ### Endpoint /distributions ### Response #### Success Response (200) - A JSON object containing MMR distributions. ``` -------------------------------- ### GET /players/{account_id}/heroes Source: https://api.opendota.com/api Retrieves data on heroes played by a specific player. ```APIDOC ## GET /players/{account_id}/heroes ### Description Retrieves data on heroes played by a specific player. ### Method GET ### Endpoint /players/{account_id}/heroes ### Parameters #### Path Parameters - **account_id** (integer) - Required - The account ID of the player. ``` -------------------------------- ### GET /search Source: https://api.opendota.com/api Search for players by their personaname. This endpoint allows you to find player profiles based on a provided search string. ```APIDOC ## GET /search ### Description Search players by personaname. ### Method GET ### Endpoint /search ### Parameters #### Query Parameters - **q** (string) - Required - Search string ``` -------------------------------- ### Get Hero Information Source: https://api.opendota.com/api Retrieves general information about a specific hero, including their ID, name, and localized name. ```APIDOC ## GET /heroes/{hero_id} ### Description Retrieves general information about a specific hero. ### Method GET ### Endpoint /heroes/{hero_id} ### Parameters #### Path Parameters - **hero_id** (integer) - Required - The ID of the hero to retrieve information for. ### Response #### Success Response (200) - **id** (integer) - The ID of the hero. - **name** (string) - The internal name of the hero (e.g., "npc_dota_hero_antimage"). - **localized_name** (string) - The display name of the hero (e.g., "Anti-Mage"). ``` -------------------------------- ### GET /players/{account_id}/wardmap Source: https://api.opendota.com/api Retrieves ward placement data for matches played by a given player. ```APIDOC ## GET /players/{account_id}/wardmap ### Description Wards placed in matches played by a specific player. ### Method GET ### Endpoint /players/{account_id}/wardmap ### Parameters #### Path Parameters - **account_id** (integer) - Required - The player's account ID. #### Query Parameters - **limit** (integer) - Optional - The number of records to return. - **offset** (integer) - Optional - The number of records to skip. - **win** (integer) - Optional - Filter by win (1 for win, 0 for loss). - **patch** (string) - Optional - Filter by patch version. - **gameMode** (integer) - Optional - Filter by game mode ID. - **lobbyType** (integer) - Optional - Filter by lobby type ID. - **region** (integer) - Optional - Filter by region ID. - **date** (integer) - Optional - Filter by date (in seconds). - **laneRole** (integer) - Optional - Filter by lane role ID. - **heroId** (integer) - Optional - Filter by hero ID. - **isRadiant** (boolean) - Optional - Filter by team (true for Radiant, false for Dire). - **includedAccountId** (integer) - Optional - Include matches with this account ID. - **excludedAccountId** (integer) - Optional - Exclude matches with this account ID. - **withHeroId** (integer) - Optional - Include matches with this hero ID. - **againstHeroId** (integer) - Optional - Include matches against this hero ID. - **significant** (integer) - Optional - Filter by significant matches. - **having** (string) - Optional - Filter by having specific stats. - **sort** (string) - Optional - Sort order for the results. ### Responses #### Success Response (200) - **schema** - The response schema is defined by PlayerWardMapResponse. ``` -------------------------------- ### Get Player Heroes Source: https://api.opendota.com/api Retrieves a list of heroes played by a specific player, along with their statistics. ```APIDOC ## GET /players/{account_id}/heroes ### Description Retrieves a list of heroes played by a specific player, along with their statistics. ### Method GET ### Endpoint /players/{account_id}/heroes ### Parameters #### Path Parameters - **account_id** (integer) - Required - Player's account ID #### Query Parameters - **limit** (integer) - Optional - Maximum number of records to return - **offset** (integer) - Optional - Number of records to skip - **win** (integer) - Optional - Filter by win (1 for win, 0 for loss) - **patch** (string) - Optional - Filter by game patch - **gameMode** (integer) - Optional - Filter by game mode ID - **lobbyType** (integer) - Optional - Filter by lobby type ID - **region** (integer) - Optional - Filter by region ID - **date** (integer) - Optional - Filter by date (in seconds) - **laneRole** (integer) - Optional - Filter by lane role ID - **heroId** (integer) - Optional - Filter by hero ID - **isRadiant** (boolean) - Optional - Filter by team (true for Radiant, false for Dire) - **includedAccountId** (integer) - Optional - Include players played with - **excludedAccountId** (integer) - Optional - Exclude players played with - **withHeroId** (integer) - Optional - Include games with a specific hero ID - **againstHeroId** (integer) - Optional - Include games against a specific hero ID - **significant** (integer) - Optional - Filter by significant matches (1 for true, 0 for false) - **having** (string) - Optional - Filter by having specific stats - **sort** (string) - Optional - Sort order for the results ### Response #### Success Response (200) - **heroes** (array) - Array of hero statistics objects - **hero_id** (integer) - The ID of the hero - **last_played** (integer) - Timestamp of the last played game with this hero - **wins** (integer) - Number of wins with this hero - **losses** (integer) - Number of losses with this hero - **games_played** (integer) - Total number of games played with this hero - **win_rate** (number) - Win rate with this hero - **lane_role_counts** (object) - Counts for each lane role - **roles** (object) - Counts for each role - **hero_variant** (string) - The hero variant played (e.g., "standard", "immortal") ### Request Example ```json { "example": "/players/12345678/heroes?limit=10&offset=0&win=1" } ``` ### Response Example ```json { "example": [ { "hero_id": 1, "last_played": 1678886400, "wins": 50, "losses": 25, "games_played": 75, "win_rate": 0.666, "lane_role_counts": { "1": 30, "2": 20, "3": 15, "4": 10 }, "roles": { "1": 40, "2": 25, "3": 10 }, "hero_variant": "standard" } ] } ``` ``` -------------------------------- ### Get Player Matches Source: https://api.opendota.com/api Retrieves a list of matches played by a specific player, with options to filter by various criteria. ```APIDOC ## GET /players/{account_id}/matches ### Description Retrieves a list of matches played by a specific player. ### Method GET ### Endpoint /players/{account_id}/matches ### Parameters #### Path Parameters - **account_id** (integer) - Required - Steam32 account ID of the player. #### Query Parameters - **less_than_match_id** (integer) - Optional - Get matches with a match ID lower than this value. - **min_rank** (integer) - Optional - Minimum rank for the matches. Ranks are represented by integers (10-15: Herald, 20-25: Guardian, 30-35: Crusader, 40-45: Archon, 50-55: Legend, 60-65: Ancient, 70-75: Divine, 80: Immortal). Each increment represents an additional star. - **max_rank** (integer) - Optional - Maximum rank for the matches. - **project** (string array) - Optional - Fields to project. - **limit** (integer) - Optional - Number of matches to limit to. - **offset** (integer) - Optional - Number of matches to offset start by. - **win** (integer) - Optional - Whether the player won (1 for win, 0 for loss). - **patch** (integer) - Optional - Patch ID, from dotaconstants. - **game_mode** (integer) - Optional - Game Mode ID. - **lobby_type** (integer) - Optional - Lobby type ID. - **region** (integer) - Optional - Region ID. - **date** (integer) - Optional - Days previous. - **lane_role** (integer) - Optional - Lane Role ID. - **hero_id** (integer) - Optional - Hero ID. - **is_radiant** (integer) - Optional - Whether the player was radiant (1 for radiant, 0 for dire). - **included_account_id** (integer array) - Optional - Account IDs in the match. - **excluded_account_id** (integer array) - Optional - Account IDs not in the match. - **with_hero_id** (integer array) - Optional - Hero IDs on the player's team. - **against_hero_id** (integer array) - Optional - Hero IDs against the player's team. - **significant** (integer) - Optional - Whether the match was significant (1 for true, 0 for false). ### Response #### Success Response (200) - **match_id** (integer) - The ID of the match. - **player_slot** (integer) - The player's slot in the match. - **radiant_win** (boolean) - Whether Radiant won the match. - **duration** (integer) - The duration of the match in seconds. - **start_time** (integer) - The Unix timestamp of when the match started. - **game_mode** (integer) - The ID of the game mode. - **lobby_type** (integer) - The ID of the lobby type. - **game_ தர** (integer) - The ID of the game tier. - **region** (integer) - The ID of the region. - **is_last_game** (boolean) - Whether this was the player's last game. - **hero_id** (integer) - The ID of the hero played. - **account_id** (integer) - The player's account ID. - **personaname** (string) - The player's persona name. - **num_wins** (integer) - The number of wins for the player. - **num_losses** (integer) - The number of losses for the player. - **last_hits** (integer) - The number of last hits by the player. - **denies** (integer) - The number of denies by the player. - **lane_role** (integer) - The lane role of the player. - **is_roaming** (boolean) - Whether the player was roaming. - **lane** (integer) - The lane the player was in. - **hero_healing** (integer) - The total healing done by the hero. - **hero_damage** (integer) - The total hero damage dealt by the hero. - **tower_damage** (integer) - The total tower damage dealt by the hero. - **gold_per_min** (integer) - The gold earned per minute. - **xp_per_min** (integer) - The experience earned per minute. - **level** (integer) - The player's level at the end of the game. - **scaled_hero_damage** (integer) - Scaled hero damage. - **scaled_tower_damage** (integer) - Scaled tower damage. - **scaled_last_hits** (integer) - Scaled last hits. - **scaled_gold_per_min** (integer) - Scaled gold per minute. - **scaled_xp_per_min** (integer) - Scaled experience per minute. - **net_worth** (integer) - The player's net worth at the end of the game. - **item_neutral** (integer) - The neutral item slot. - **item_wearables** (integer) - The item slots for wearables. - **item_ot** (integer) - The item slots for other items. - **item_ab** (integer) - The item slots for backpack items. - **item_1** (integer) - The first item slot. - **item_2** (integer) - The second item slot. - **item_3** (integer) - The third item slot. - **item_4** (integer) - The fourth item slot. - **item_5** (integer) - The fifth item slot. - **item_6** (integer) - The sixth item slot. - **ability_1** (integer) - The first ability slot. - **ability_2** (integer) - The second ability slot. - **ability_3** (integer) - The third ability slot. - **ability_4** (integer) - The fourth ability slot. - **ability_5** (integer) - The fifth ability slot. - **ability_6** (integer) - The sixth ability slot. - **ability_7** (integer) - The seventh ability slot. - **ability_8** (integer) - The eighth ability slot. - **max_hero_hit** (integer) - The highest hero damage instance. - **purchase_time** (integer) - Purchase time for items. - **purchase_fate** (integer) - Purchase fate for items. - **purchase_last_hits** (integer) - Purchase last hits. - **purchase_hero_damage** (integer) - Purchase hero damage. - **purchase_tower_damage** (integer) - Purchase tower damage. - **purchase_gold_per_min** (integer) - Purchase gold per minute. - **purchase_xp_per_min** (integer) - Purchase experience per minute. - **purchase_level** (integer) - Purchase level. - **purchase_net_worth** (integer) - Purchase net worth. - **purchase_item_neutral** (integer) - Purchase neutral item slot. - **purchase_item_wearables** (integer) - Purchase wearable item slots. - **purchase_item_ot** (integer) - Purchase other item slots. - **purchase_item_ab** (integer) - Purchase backpack item slots. - **purchase_item_1** (integer) - Purchase first item slot. - **purchase_item_2** (integer) - Purchase second item slot. - **purchase_item_3** (integer) - Purchase third item slot. - **purchase_item_4** (integer) - Purchase fourth item slot. - **purchase_item_5** (integer) - Purchase fifth item slot. - **purchase_item_6** (integer) - Purchase sixth item slot. - **purchase_ability_1** (integer) - Purchase first ability slot. - **purchase_ability_2** (integer) - Purchase second ability slot. - **purchase_ability_3** (integer) - Purchase third ability slot. - **purchase_ability_4** (integer) - Purchase fourth ability slot. - **purchase_ability_5** (integer) - Purchase fifth ability slot. - **purchase_ability_6** (integer) - Purchase sixth ability slot. - **purchase_ability_7** (integer) - Purchase seventh ability slot. - **purchase_ability_8** (integer) - Purchase eighth ability slot. - **purchase_max_hero_hit** (integer) - Purchase max hero hit. #### Response Example [ { "match_id": 7000000001, "player_slot": 0, "radiant_win": true, "duration": 1800, "start_time": 1678882800, "game_mode": 1, "lobby_type": 7, "game_ தர": 22, "region": 2, "is_last_game": false, "hero_id": 1, "account_id": 100000000, "personaname": "Player Name", "num_wins": 10, "num_losses": 5, "last_hits": 300, "denies": 20, "lane_role": 1, "is_roaming": false, "lane": 2, "hero_healing": 5000, "hero_damage": 15000, "tower_damage": 3000, "gold_per_min": 500, "xp_per_min": 600, "level": 25, "scaled_hero_damage": 15000, "scaled_tower_damage": 3000, "scaled_last_hits": 300, "scaled_gold_per_min": 500, "scaled_xp_per_min": 600, "net_worth": 20000, "item_neutral": 0, "item_wearables": 12345678, "item_ot": 0, "item_ab": 0, "item_1": 1, "item_2": 2, "item_3": 3, "item_4": 4, "item_5": 5, "item_6": 6, "ability_1": 10000, "ability_2": 10001, "ability_3": 10002, "ability_4": 10003, "ability_5": 10004, "ability_6": 10005, "ability_7": 10006, "ability_8": 10007, "max_hero_hit": 1000, "purchase_time": 100, "purchase_fate": 0, "purchase_last_hits": 10, "purchase_hero_damage": 1000, "purchase_tower_damage": 200, "purchase_gold_per_min": 100, "purchase_xp_per_min": 120, "purchase_level": 10, "purchase_net_worth": 5000, "purchase_item_neutral": 0, "purchase_item_wearables": 0, "purchase_item_ot": 0, "purchase_item_ab": 0, "purchase_item_1": 1, "purchase_item_2": 2, "purchase_item_3": 3, "purchase_item_4": 4, "purchase_item_5": 5, "purchase_item_6": 6, "purchase_ability_1": 10000, "purchase_ability_2": 10001, "purchase_ability_3": 10002, "purchase_ability_4": 10003, "purchase_ability_5": 10004, "purchase_ability_6": 10005, "purchase_ability_7": 10006, "purchase_ability_8": 10007, "purchase_max_hero_hit": 500 } ] ``` -------------------------------- ### Get Hero Benchmarks Source: https://api.opendota.com/api Retrieves benchmark statistics for heroes, including gold per minute, experience per minute, kills per minute, last hits per minute, hero damage per minute, hero healing per minute, and tower damage. ```APIDOC ## GET /heroes/{hero_id}/benchmarks ### Description Retrieves benchmark statistics for a specific hero. ### Method GET ### Endpoint /heroes/{hero_id}/benchmarks ### Parameters #### Path Parameters - **hero_id** (integer) - Required - The ID of the hero to retrieve benchmarks for. ### Response #### Success Response (200) - **hero_id** (integer) - The ID of the hero. - **result** (object) - An object containing benchmark data. - **gold_per_min** (array) - Array of objects with percentile and value for gold per minute. - **xp_per_min** (array) - Array of objects with percentile and value for experience per minute. - **kills_per_min** (array) - Array of objects with percentile and value for kills per minute. - **last_hits_per_min** (array) - Array of objects with percentile and value for last hits per minute. - **hero_damage_per_min** (array) - Array of objects with percentile and value for hero damage per minute. - **hero_healing_per_min** (array) - Array of objects with percentile and value for hero healing per minute. - **tower_damage** (array) - Array of objects with percentile and value for tower damage. ``` -------------------------------- ### Get Item Timings Source: https://api.opendota.com/api Calculates win rates for heroes based on specific item timings, focusing on items costing at least 1400 gold. ```APIDOC ## GET /scenarios/itemTimings ### Description Win rates for certain item timings on a hero for items that cost at least 1400 gold. ### Method GET ### Endpoint /scenarios/itemTimings ### Parameters #### Query Parameters - **item** (string) - Optional - Filter by item name (e.g., `"spirit_vessel"`). - **hero_id** (integer) - Optional - The ID of the hero to filter by. ### Responses #### Success Response (200) - **item_timings** (array) - A list of item timing scenarios. - **hero_id** (integer) - The ID of the hero. - **item_id** (integer) - The ID of the item. - **timing** (number) - The time in minutes at which the item was completed. - **win_rate** (number) - The win rate associated with this timing. ### Request Example (No request body example provided) ### Response Example ```json [ { "hero_id": 1, "item_id": 50, "timing": 15.5, "win_rate": 0.55 } ] ``` ``` -------------------------------- ### Get Match Details Source: https://api.opendota.com/api Retrieves detailed information about a specific match, including player statistics, item builds, and game events. ```APIDOC ## GET /matches/{match_id} ### Description Retrieves detailed information about a specific match. ### Method GET ### Endpoint /matches/{match_id} ### Parameters #### Path Parameters - **match_id** (integer) - Required - The ID of the match to retrieve. ### Response #### Success Response (200) - **match_id** (integer) - The ID of the match. - **barracks_status_dire** (integer) - Dire barracks status. - **barracks_status_radiant** (integer) - Radiant barracks status. - **cluster** (integer) - The cluster ID where the match was played. - **dire_score** (integer) - The final score of the Dire team. - **dire_win_team_id** (integer) - The team ID of the Dire winner. - **duration** (integer) - The duration of the match in seconds. - **first_blood_time** (integer) - The time in seconds when first blood occurred. - **game_mode** (integer) - The ID of the game mode. - **game_ தர** (integer) - The ID of the game tier. - **human_players** (integer) - The number of human players in the match. - **league_id** (integer) - The ID of the league the match was part of. - **league_name** (string) - The name of the league. - **match_seq_num** (string) - The sequence number of the match. - **negative_votes** (integer) - The number of negative votes for the match. - **objectives** (object) - An object containing information about game objectives. - **picks** (array) - An array of hero picks. - **bans** (array) - An array of hero bans. - **dire_team** (object) - Information about the Dire team. - **radiant_team** (object) - Information about the Radiant team. - **patch** (integer) - The patch number the match was played on. - **positive_votes** (integer) - The number of positive votes for the match. - **radiant_score** (integer) - The final score of the Radiant team. - **radiant_win_team_id** (integer) - The team ID of the Radiant winner. - **start_time** (integer) - The Unix timestamp of when the match started. - **tower_status_dire** (integer) - Dire tower status. - **tower_status_radiant** (integer) - Radiant tower status. - **version** (integer) - The version of the replay. - **replay_url** (string) - URL to the replay file. #### Response Example { "match_id": 7000000000, "barracks_status_dire": 0, "barracks_status_radiant": 0, "cluster": 221, "dire_score": 10, "dire_win_team_id": null, "duration": 1800, "first_blood_time": 120, "game_mode": 1, "game_ தர": 22, "human_players": 10, "league_id": 0, "league_name": "Unknown League", "match_seq_num": "1234567890", "negative_votes": 5, "objectives": {}, "picks": [], "bans": [], "dire_team": { "team_id": 1, "rating": 3000, "wins": 100, "losses": 50, "last_match_time": 1678886400, "name": "Dire Team", "tag": "DIR" }, "radiant_team": { "team_id": 2, "rating": 3100, "wins": 110, "losses": 45, "last_match_time": 1678886400, "name": "Radiant Team", "tag": "RAD" }, "patch": 14, "positive_votes": 50, "radiant_score": 20, "radiant_win_team_id": 2, "start_time": 1678882800, "tower_status_dire": 0, "tower_status_radiant": 0, "version": 2023031501, "replay_url": "http://replay.com/replay.dem.bz2" } ``` -------------------------------- ### GET /parsedMatches Source: https://api.opendota.com/api Get list of parsed match IDs. ```APIDOC ## GET /parsedMatches ### Description Get list of parsed match IDs. ### Method GET ### Endpoint /parsedMatches ### Parameters #### Query Parameters - **less_than_match_id** (integer) - Optional - Filter matches with IDs less than the specified value. ### Response #### Success Response (200) - An array of parsed match IDs. ``` -------------------------------- ### Scenario Item Timings Response Source: https://api.opendota.com/api Details on when a specific item was purchased by a hero in games. ```APIDOC ## Scenario Item Timings Response ### Description Provides data on item purchase timings for heroes. ### Properties - **hero_id** (integer) - The ID value of the hero played. - **item** (string) - The name of the item purchased. - **time** (integer) - In-game time in seconds before the item was purchased. - **games** (string) - The number of games where the hero bought this item before this time. - **wins** (string) - The number of games won where the hero bought this item before this time. ``` -------------------------------- ### GET /teams/{team_id}/players Source: https://api.opendota.com/api Get players who have played for a team. ```APIDOC ## GET /teams/{team_id}/players ### Description Get players who have played for a team. ### Method GET ### Endpoint /teams/{team_id}/players ### Parameters #### Path Parameters - **team_id** (integer) - Required - The ID of the team. ### Response #### Success Response (200) - **TeamPlayersResponse** - Player data for the team. ``` -------------------------------- ### Scenario Lane Roles Response Source: https://api.opendota.com/api Statistics on hero performance based on lane role and game time. ```APIDOC ## Scenario Lane Roles Response ### Description Details hero performance across different lane roles and game durations. ### Properties - **hero_id** (integer) - The ID value of the hero played. - **lane_role** (integer) - The hero's assigned lane role. - **time** (integer) - Maximum game length in seconds for this scenario. - **games** (string) - The number of games where the hero played in this lane role. - **wins** (string) - The number of games won where the hero played in this lane role. ``` -------------------------------- ### POST /request/{match_id} Source: https://api.opendota.com/api Submit a new match data parsing request. Note that this action counts towards rate limits. ```APIDOC ## POST /request/{match_id} ### Description Submit a new parse request. This call counts as 10 calls for rate limit (but not billing) purposes. ### Method POST ### Endpoint /request/{match_id} ### Parameters #### Path Parameters - **match_id** (string) - Required - The match ID to request parsing for. ```