Dota 2 API: Tournament Details

API calls related to leagues, tournaments, and teams

Tournament Details

There are a number of API calls related to leagues, tournaments, and teams that we've grouped together in this section. We can use the data from these calls to supplement our calls to GetMatchHistory and GetMatchDetails, among other things.

Getting a List of Tournament Leagues with GetLeagueListing

In the Dota 2 client, there are a number of tournament leagues that viewers can buy an in-game ticket to view matches (akin to buying a ticket to see a sports match). Ticketholders can view the matches in the Dota 2 client, and depending on the tournament, are eligible for some cosmetic items. Oftentimes, sales of the tickets can contribute to the prizepools for these tournaments.

This call is intended for use in conjunction with GetLiveLeagueGames, which we will also cover in this section. Here, only the common options are available. The GET request is as follows:

https://api.steampowered.com/IDOTA2Match_570/GetLeagueListing/v0001/?key=APIKEY

GetLeagueListing Response

This one is fairly straightforward. We've omitted the response here, since it consists of 1247 leagues right now, but the breakdown is as follows:

Getting Live Tournament Games with GetLiveLeagueGames

To be used in conjuction with GetLeagueListing, we can get a list of all tournament games being played with the following GET request. The common options are available.

https://api.steampowered.com/IDOTA2Match_570/GetLiveLeagueGames/v0001/?key=APIKEY

GetLiveLeagueGames Response

This one's a bit more substantial than GetLeagueListing; the breakdown is as follows:

Additional features were added to the API recently, so documentation on many of these items in GetLiveLeagueGames does not exist yet. This likely corresponded with the release of Source 2.

Getting Team Information with GetTeamInfoByTeamID

This call is used to get team information for teams that have been created in the Dota client. This is a GET request with the general format:

https://api.steampowered.com/IDOTA2Match_570/GetTeamInfoByTeamID/v001/?key=APIKEY

There are a couple additional options on top of the common options:

As an example, we can get details about a specific team by specifying start_at_team_id and set teams_requested=1. Let's get the team with the ID 758797.

GetTeamInfoByTeamID Response

Using the Dota 2 API

Now that we've covered the API calls for getting league IDs, tournament matches being played, and team IDs, we can combine these API calls with the other calls we've covered in this how-to. However, do note that oftentimes Steam and Dota 2 APIs can be very slow or down. It is recommended that if you are making multiple API calls at once that you should store the responses if it is possible. From here, you could go through many possibilities for this web API! Like mentioned previously, you could go on to recreate your favorite match statistics website for Dota, create a Dota eSports game tracker, or your own Dota web app.

I hope you enjoyed this how-to guide to the Dota 2 web API. For comments, suggestions, complaints, and miscellany, contact me at sharonrkuo@gmail.com. If you enjoyed this, see more projects at my homepage.