Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotapi2

Build Status Dependency Status Test Coverage Code Climate SensioLabsInsight

Dota 2 API Wrapper for PHP

Reference

Installation

This module can be installed with Composer. Add the dotapi2 package to your composer.json file:

{
    "require": {
        "sjaakmoes/dotapi2": "~1.0"
    }
}

You will also need a Steam API key, you can get one at http://steamcommunity.com/dev/apikey.

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

$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

// 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

// 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.

$response = $client->getLeagueListing();

getLiveLeagueGames

Get a list of in-progress league matches, as well as details of that match as it unfolds.

$response = $client->getLiveLeagueGames();

getScheduledLeagueGames

Get a list of scheduled league games coming up.

$response = $client->getScheduledLeagueGames();

getFantasyPlayerStats

Get fantasy player stats

// Puppey (87278757) in The Shanghai Major (4266)
$response = $client->getFantasyPlayerStats(new Filters\FantasyPlayerStats(4266, 87278757));

getPlayerOfficialInfo

Get official player information.

// 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.

// Requires the 64-bit Steam ID of a broadcaster.
$response = $client->getBroadcasterInfo(new Filters\BroadcasterInfo(76561197997412731));

getActiveTournamentList

Gets list of active tournament

$response = $client->getActiveTournamentList();

getTeamInfo

Get team info

// Get team info for Team Secret (1838315). Filter is optional.
$response = $client->getTeamInfo(new Filters\TeamInfo(1838315));

getTopLiveGame

Get the top live games.

$response = $client->getTopLiveGame(new Filters\TopLiveGame(0));

getEventStatsForAccount

Retrieve event statistics for account.

// 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.

$response = $client->getRealTimeStats(new Filters\RealTimeStats(steam_server_id_here));

getGameItems

Get a list of Dota2 in-game items.

$response = $client->getGameItems();

getItemIconPath

Get the CDN path for a specific icon.

$response = $client->getItemIconPath(new Filters\ItemIconPath('enchanted_manglewood_staff', IconType::LARGE));

getSchemaUrl

Get the URL to the latest schema for Dota 2.

$response = $client->getSchemaUrl();

getHeroes

Get a list of heroes.

$response = $client->getHeroes();

getRarities

Get item rarity list.

$response = $client->getRarities();

getTournamentPrizePool

Get the current pricepool for specific tournaments.

$response = $client->getTournamentPrizePool();

Custom endpoint

You can also contact a custom endpoint on the Steam API:

$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.

To convert a 32-bit ID:

$steamId = UserId::to64Bit('22785577'); // 76561197983051305

To convert a 64-bit ID:

$accountId = UserId::to32Bit('76561197983051305'); // 22785577

About

Dota 2 API Wrapper for PHP

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages