A how-to guide to the match history API for Valve's MOBA video game
This is a how-to guide for using the Dota 2 match history web API provided by Valve Software for their popular multiplayer online battle arena (MOBA) video game, Dota 2, played by millions of people around the world. It is the most actively played game on Steam, Valve's digital distribution platform.
An API, which stands for application programming interface, is a set of routines, protocols, and tools for building software applications. In the context of web development, a web API is a set of HTTP (hypertext transfer protocol) request messages, along with a definition of the structure of response messages. More information on APIs and web APIs are available on Wikipedia.
A multitude of public and professional matches of Dota are played every day, and Valve has provided an API to retrieve match history and match details in JSON or XML format, outlined on the Dota 2 dev forum. Some brief additional documentation is provided on the Team Fortress 2 wiki.
This how-to will walk users through retrieving heroes, items, match details, match history, and some interesting things we can do with the data we get from match details and match history requests. We will also cover additional API calls for tournament information. Code examples will use JavaScript. While the current documentation of the API includes brief examples, our how-to will include code for making these calls on a server using Node.js with Express, as well as code examples for using the response data in interesting ways.
Dota 2 is a multiplayer online battle arena game published by Valve Software. It is a stand-alone sequel to Defense of the Ancients (DotA), a custom game for Warcraft III from Blizzard Entertainment.
Dota pits two teams of five against each other on a map, with one team in the bottom left corner (the Radiant) and the other in the upper right corner (the Dire). The objective of the game is to destroy the opposing team's Ancient building, which is located deep in each team's base. To do this, players choose from one of 110 different heroes, each with unique playstyles and abilities. Players amass experience points for levels (which allow players to unlock abilities) and gold to buy items (which can have both active and passive effects on heroes).
Throughout the year, Valve and other eSports leagues hold tournaments, both large and small, across the world. The largest annual tournament, The International, is hosted by Valve, and the fifth iteration in August 2015 had a prize pool of over $18 million USD. Hundreds of thousands of players watch professional Dota games online and in-person.
The Dota 2 web API gives users the ability to get information on professional matches, their own matches, and other Dota-related information.