Dotapi2
, (*1)
Dota 2 API Wrapper for PHP, (*2)
Reference
Installation
This module can be installed with Composer.
Add the dotapi2 package to your composer.json
file:, (*3)
{
"require": {
"shamota/dotapi2": "~1.0"
}
}
You will also need a Steam API key, you can get one at http://steamcommunity.com/dev/apikey., (*4)
Configuration
// Set your Steam API key
Client::setDefaultKey('your_api_key_here');
// Create wrapper
$client = new Client();
Supported Endpoints
getMatchHistory
Gets a filtered match history, (*5)
$filter = new Filters\Match();
$filter->setGameMode(GameModes::CAPTAINS__MODE);
$filter->setMinimumPlayers(10);
$filter->setAccountId(22785577);
// Returns a Response object that contains the raw body and JSON data.
$response = $client->getMatchHistory($filter);
// Turns response into a Match collection
$matchCollection = $response->getCollection('Match');
// Loops through all the found matches and dispays the start time.
foreach ($matchCollection as $match) {
echo $match->getStartTime()->format('d-m-Y H:i:s') . PHP_EOL;
}
getMatchHistoryBySequenceNumber
Gets a list of matches ordered by sequence number, (*6)
// Returns a Response object that contains the raw body and JSON data.
$response = $client->getMatchHistoryBySequenceNumber(new Filters\MatchSequence(2040184605, 10));
// Turns response into a Match collection
$matchCollection = $response->getCollection('Match');
// Loops through all the found matches and dispays the start time.
foreach ($matchCollection as $match) {
echo $match->getStartTime()->format('d-m-Y H:i:s') . PHP_EOL;
}
getMatchDetails
Gets detailed information about a specific match, (*7)
// Returns a Response object that contains the raw body and JSON data.
$response = $client->getMatchDetails(new Filters\MatchDetails(2197925777));
// Turns response into a DetailedMatch collection
$match = $response->getEntity('DetailedMatch');
// Get Dire players
$direPlayers = $match->getPlayers()->getDire();
// Get a specific player
$specificPlayer = $match->getPlayers()->getById(22785577);
$specificPlayerHero = $specificPlayer->getHeroId();
$specificPlayerKills = $specificPlayer->getKills();
// Get Picks and Bans sequence if matchtype has picks and bans
$pickBanSequence = $match->getPicksBans();
getLeagueListing
Get information about DotaTV-supported leagues., (*8)
$response = $client->getLeagueListing();
getLiveLeagueGames
Get a list of in-progress league matches, as well as details of that match as it unfolds., (*9)
$response = $client->getLiveLeagueGames();
getScheduledLeagueGames
Get a list of scheduled league games coming up., (*10)
$response = $client->getScheduledLeagueGames();
getFantasyPlayerStats
Get fantasy player stats, (*11)
// Puppey (87278757) in The Shanghai Major (4266)
$response = $client->getFantasyPlayerStats(new Filters\FantasyPlayerStats(4266, 87278757));
getPlayerOfficialInfo
Get official player information., (*12)
// Puppey (87278757)
$response = $client->getPlayerOfficialInfo(new Filters\AccountId(87278757));
getBroadcasterInfo
Get broadcaster info with the 64-bit Steam ID.
If you need to convert, check Steam ID Conversion., (*13)
// Requires the 64-bit Steam ID of a broadcaster.
$response = $client->getBroadcasterInfo(new Filters\BroadcasterInfo(76561197997412731));
getActiveTournamentList
Gets list of active tournament, (*14)
$response = $client->getActiveTournamentList();
getTeamInfo
Get team info, (*15)
// Get team info for Team Secret (1838315). Filter is optional.
$response = $client->getTeamInfo(new Filters\TeamInfo(1838315));
getTopLiveGame
Get the top live games., (*16)
$response = $client->getTopLiveGame(new Filters\TopLiveGame(0));
getEventStatsForAccount
Retrieve event statistics for account., (*17)
// Get stats for account 22785577 at The Shanghai Major (4266)
$response = $client->getEventStatsForAccount(new Filters\EventStats(4266, 22785577));
getRealTimeStats
Retrieve real time stats about a match with a server steam id.
You need a steam server id to get statistics, the top live games and some other tournament endpoint provide these for a match., (*18)
$response = $client->getRealTimeStats(new Filters\RealTimeStats(steam_server_id_here));
getGameItems
Get a list of Dota2 in-game items., (*19)
$response = $client->getGameItems();
getItemIconPath
Get the CDN path for a specific icon., (*20)
$response = $client->getItemIconPath(new Filters\ItemIconPath('enchanted_manglewood_staff', IconType::LARGE));
getSchemaUrl
Get the URL to the latest schema for Dota 2., (*21)
$response = $client->getSchemaUrl();
getHeroes
Get a list of heroes., (*22)
$response = $client->getHeroes();
getRarities
Get item rarity list., (*23)
$response = $client->getRarities();
getTournamentPrizePool
Get the current pricepool for specific tournaments., (*24)
$response = $client->getTournamentPrizePool();
Custom endpoint
You can also contact a custom endpoint on the Steam API:, (*25)
$response = $client->get('IEconDOTA2_570/GetGameItems/v1', array|Filters\Filter $parameters);
Steam ID Conversion
If you have the GMP extension installed, Dotapi2 will allow you to convert 32-bit to 64-bit ID's and the other way around., (*26)
To convert a 32-bit ID:, (*27)
$steamId = UserId::to64Bit('22785577'); // 76561197983051305
To convert a 64-bit ID:, (*28)
$accountId = UserId::to32Bit('76561197983051305'); // 22785577