dota2libp

a node api for dota2 with promise

Usage no npm install needed!

<script type="module">
  import dota2libp from 'https://cdn.skypack.dev/dota2libp';
</script>

README

About

a node promise api for dota2

Get steam key

click this, http://steamcommunity.com/dev/apikey, login with your Steam account and get the unique key.

Installation

npm install dota2libp --save

Usage

use in your node source:

var api = require('dota2libp');

Initialization

var dota2api = new api('your key')

Api

getMatchHistory(opt)

get a list of matches played.

Available Options
var config {
  hero_id: < id > , // Search for matches with a specific hero being played (hero ID, not name, see HEROES below)
  game_mode: < mode > , // Search for matches of a given mode (see below)
  skill: < skill > , // 0 for fany, 1 for normal, 2 for high, 3 for very high skill (default is 0)
  min_players: < count > , // the minimum number of players required in the match
  account_id: < id > , // Search for all matches for the given user (32-bit or 64-bit steam ID)
  league_id: < id > , // matches for a particular league
  start_at_match_id: < id > , // Start the search at the indicated match id, descending
  matches_requested: < n > , // Maximum is 25 matches (default is 25)
  tournament_games_only: < string > // set to only show tournament games
}
var config = {
    account_id : '125997846'
};
dota2api.getMatchHistory(config).then(function(matchData){
    console.log(matchData);
})
Result Field Format:
  • num_results - the number of results contained in this response
  • total_results - the total number of results for this particular query [(total_results / num_results) = total_num_pages]
  • results_remaining - the number of results left for this query [(results_remaining / num_results) = remaining_num_pages]
  • matches - an array of num_results matches:
    • match_id - the numeric match ID
    • match_seq_num - the match's sequence number - the order in which matches are recorded
    • start_time - date in UTC seconds since Jan 1, 1970 (unix time format)
    • lobby_type - the type of lobby
    • players - an array of players:
      • account_id - the player's 32-bit Steam ID - will be set to "4294967295" if the player has set their account to private.
      • player_slot - an 8-bit unsigned int: if the left-most bit is set, the player was on dire. the two right-most bits represent the player slot (0-4).
      • hero_id - the numeric ID of the hero that the player used (see below).

getMatchDetails(opt)

to get detailed information about a specific match.

Available options:
var config={
  match_id=<id> // the match's ID
}
 dota2api.getMatchDetails(config).then(function(details){
    console.log(details); 
 })

getHeroes(opt)

Used to get an UP-TO-DATE list of heroes.

Available Options
var config={
  // nothing ...
  language:'en' // you can also set language just for this request
  format : 'XML' // you can also set format just for this request
}
Result Field Format:
  • heroes - an array of the heroes:
    • name - the hero's in-game "code name"
    • id - the hero's numeric ID
    • localized_name - the hero's text name (language specific result - this field is not present if no language is specified)
  • count - the total number of heroes in the list
 dota2api.getHeroes(config).then(function(data){
      // you will get the result
      console.log(data);
  })

getLeagueListing(opt)

Used to get a list of the tournament leagues that are available for viewing in the client (i.e. you can buy a ticket to them). Intended for use in conjunction with GetLiveLeagueGames.

Available Options
var config={
  // nothing ...
  language:'en' // you can also set language just for this request
  format : 'XML' // you can also set format just for this request
}
 dota2api.getLeagueListing(config).then(function(data) {
      // you will get the result
      console.log(data);
  })

getLiveLeagueGames(opt)

Used to get a list of the tournament leagues that are available for viewing in the client (i.e. you can buy a ticket to them). Intended for use in conjunction with GetLiveLeagueGames.

Available Options

Common options only (see above) - Note that if no language is specified, the API will return the in-game "string" placeholders for all fields marked with (language specific).

 dota2api.getLiveLeagueGames(config).then(function(data) {
      // you will get the result
      console.log(data);
  })
Result Field Format:
  • leagues - an array of the leagues:
    • name - the league's full name (language specific)
    • leagueid - the league's numeric ID
    • escription - a description of the leauge (language specific)
    • tournament_url - the url of the tournament's home page

getMatchHistoryBySequenceNum(opt,callback)

Used to get the matches in the order which they were recorded (i.e. sorted ascending by match_seq_num). This means that the first match on the first page of results returned by the call will be the very first public mm-match recorded in the stats.

var config={
  start_at_match_seq_num:<id>,
  matches_requested:<n>
}
dota2api.getMatchHistoryBySequenceNum(config.then(function(data) {
      // you will get the result
      console.log(data);
  })