Abios API

The Abios API Developer Hub

Welcome to the Abios API developer hub. You'll find comprehensive guides and documentation to help you start working with the Abios API as quickly as possible, as well as support if you get stuck. Let's jump right in!

NEW! You can find your personal developer dashboard and request log at https://dash.abiosgaming.com.

Suggest Edits

/oauth/access_token

Generate an access token to be included when requesting endpoints.

 
posthttps://api.abiosgaming.com/v2/oauth/access_token
curl -X POST -d 'grant_type=client_credentials&client_id=my_client_id&client_secret=my_secret' https://api.abiosgaming.com/v2/oauth/access_token
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://api.abiosgaming.com/v2/oauth/access_token"

	payload := strings.NewReader("grant_type=client_credentials&client_id=my_client_id&client_secret=my_secret")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("content-type", "application/x-www-form-urlencoded")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
import http.client

conn = http.client.HTTPSConnection("api.abiosgaming.com")

payload = "grant_type=client_credentials&client_id=my_client_id&client_secret=my_secret"

headers = {
    'content-type': "application/x-www-form-urlencoded"
    }

conn.request("POST", "/v2/oauth/access_token", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=my_client_id&client_secret=my_secret");
Request request = new Request.Builder()
  .url("https://api.abiosgaming.com/v2/oauth/access_token")
  .post(body)
  .addHeader("content-type", "application/x-www-form-urlencoded")
  .build();

Response response = client.newCall(request).execute();
var qs = require("querystring");
var http = require("https");

var options = {
  "method": "POST",
  "hostname": "api.abiosgaming.com",
  "port": null,
  "path": "/v2/oauth/access_token",
  "headers": {
    "content-type": "application/x-www-form-urlencoded"
  }
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.write(qs.stringify({ grant_type: 'client_credentials',
  client_id: 'my_client_id',
  client_secret: 'my_secret' }));
req.end();
A binary file was returned

You couldn't be authenticated

{
  "access_token":"u8vhWfs07Y7PuhdSJAqyPYKbDAHsZdNKW6Df9WYJ",
  "token_type":"Bearer",
  "expires_in":3600
}

Body Params

grant_type
string
required

client_credentials

client_id
string
required

your_id

client_secret
string
required

your_sercret

Headers

Content-Type
string
required

application/x-www-form-urlencoded

 
Suggest Edits

/games

Get a list of games available

 
gethttps://api.abiosgaming.com/v2/games
curl -X GET "https://api.abiosgaming.com/v2/games?q=counter"
A binary file was returned

You couldn't be authenticated

{
  "last_page": 1,
  "current_page": 1,
  "data": [
    {
      "id": 5,
      "title": "CS:GO",
      "default_match_type": "team",
      "long_title": "Counter-Strike: Global Offensive",
      "deleted_at": null,
      "images": {
        "square": "https://img.abiosgaming.com/games/CSGO-flat-game-icon.png",
        "circle": "https://img.abiosgaming.com/games/round-cs-logo.png",
        "rectangle": "https://img.abiosgaming.com/games/flat-rectangular-cs-go-logo.jpg"
      },
      "color": "23d43f"
    },
    {...},
  ]
}

Query Params

q
string

A string to filter games by. Searches on title and long_title.

 
Suggest Edits

/games/:id/assets

Get a list of games assets where available

 
gethttps://api.abiosgaming.com/v2/games/:id/assets
curl -X GET "https://api.abiosgaming.com/v2/games/1/assets" 

# Currently only available in CS:GO and Dota 2
A binary file was returned

You couldn't be authenticated

{
    "items": [
    	{
            "id": 1,
            "name": "Blink Dagger",
            "external_id": 1,
            "image": "https://img.abiosgaming.com/other/game-assets/dota-items/blink.png"
        },
        {
            "id": 2,
            "name": "Blades of Attack",
            "external_id": 2,
            "image": "https://img.abiosgaming.com/other/game-assets/dota-items/blades_of_attack.png"
        },
        {
            "id": 3,
            "name": "Broadsword",
            "external_id": 3,
            "image": "https://img.abiosgaming.com/other/game-assets/dota-items/broadsword.png"
        },
        {},
        {}
    ],
    "runes": [
        {
            "id": 0,
            "name": "Double Damage",
            "image": "https://img.abiosgaming.com/other/game-assets/dota-items/fallback.png"
        },
        {
            "id": 1,
            "name": "Haste",
            "image": "https://img.abiosgaming.com/other/game-assets/dota-items/fallback.png"
        },
        {
            "id": 2,
            "name": "Illusion",
            "image": "https://img.abiosgaming.com/other/game-assets/dota-items/fallback.png"
        },
        {},
        {}
    ],
    "spells": [
       {
            "id": 0,
            "name": "auto_attack",
            "image": "https://img.abiosgaming.com/other/game-assets/dota-abilities/fallback.png"
        },
        {
            "id": 1,
            "name": "Aphotic Shield",
            "image": "https://img.abiosgaming.com/other/game-assets/dota-abilities/abaddon_aphotic_shield.png"
        },
        {
            "id": 2,
            "name": "Borrowed Time",
            "image": "https://img.abiosgaming.com/other/game-assets/dota-abilities/abaddon_borrowed_time.png"
        },
        {},
        {}
    ],
    "heroes": [
        {
            "id": 1,
            "name": "Anti-Mage",
            "external_id": 1,
            "large_image": "https://img.abiosgaming.com/other/game-assets/dota-heroes/antimage.png",
            "small_image": "https://img.abiosgaming.com/other/game-assets/dota-miniheroes/antimage.png"
        },
        {
            "id": 2,
            "name": "Axe",
            "external_id": 2,
            "large_image": "https://img.abiosgaming.com/other/game-assets/dota-heroes/axe.png",
            "small_image": "https://img.abiosgaming.com/other/game-assets/dota-miniheroes/axe.png"
        },
        {
            "id": 3,
            "name": "Bane",
            "external_id": 3,
            "large_image": "https://img.abiosgaming.com/other/game-assets/dota-heroes/bane.png",
            "small_image": "https://img.abiosgaming.com/other/game-assets/dota-miniheroes/bane.png"
        },
        {},
        {}
    ]
}
 
Suggest Edits

/series

Return a paginated collection of Series. If there are no upcoming series the list will be empty.

 
gethttps://api.abiosgaming.com/v2/series
curl -X GET "https://api.abiosgaming.com/v2/series?games[]=3"
A binary file was returned

You couldn't be authenticated

{
  "last_page": 78,
  "current_page": 1,
  "data": [
    {
      "id": 132713,
      "title": "Playoffs - Final",
      "start": "2017-07-09 14:00:00",
      "end": "2017-07-09 17:42:12",
      "tier": 1,
      "bestOf": 5,
      "tournament_id": 2029,
      "substage_id": 14838,
      "deleted_at": null,
      "pbp_status": "expected",
      "postponed_from": null,
      "scores": {
        "127": 0,
        "18730": 3
      },
      "chain": null,
      "forfeit": {
        "127": false,
        "18730": false
      },
      "streamed": true,
      "seeding": {
        "1": 127,
        "2": 18730
      },
      "game": {...},
      "bracket_pos": {...},
      "rosters": [Roster],
      "tournament": {...}, //optional
      "matches": [Match], //optional
      "casters": [Caster], //optional
      "sportsbook_odds": {...} //optional
    },
    {...},
  ]
}

Query Params

games[]
int32

Ids of games to filter series by.

competitors[]
int32

Ids of competitors to filter series by.

tournaments[]
int32

Ids of tournaments to filter series by.

substages[]
int32

Ids of substages to filter series by.

platforms[]
int32

Will include all series where at least one of the casters stream on a platform from this list.

starts_before
mixed type

Return series that start before the supplied UTC DateTime: now, or valid ISO string, like 2017-01-02T15:00:00Z.

starts_after
mixed type

Return series that start at or after the supplied UTC DateTime: now, or valid ISO string like 2017-01-02T15:04:05Z.

is_over
boolean

Filter the series if they have ended or not: true or false. Default is false, as long as starts_before or starts_after is not set in which case it needs to be explicitly specified.

is_deleted
boolean

Leaving this unspecified returns all Series, including deleted ones. Specifying false filters away all deleted Series and specifying true only returns deleted Series.

order
string

The parameter by which to order the series: start, end. Default is start.

sort
string

The method by which to sort the series: ASC, DESC. Default is ASC.

with[]
string

Subrelations to include with the results: tournament, matches, casters, sportsbook_odds.

country
string

Filter the series based on the nationality of the participating competitors. Specified as a two letter country code.

lang
string

Filter the series based on the language of the available casters. Specified as a two letter country code.

tiers[]
string

Filter the series based on the their tier.

is_postponed
boolean

Leaving this unspecified returns all Series, including postponed ones. Specifying false filters away all currently postponed Series and specifying true only returns currently postponed Series.

 

* If neither is_over, starts_before nor starts_after is set, the api will fall back to the most commonly used is_over=false.
** The lang and country parameter significantly increases response time.
*** Postponed Series will be sorted based on their original start time, until a new start time has been added. Read more about postponed Series here.

Suggest Edits

/series/:id

Fetch one series, from its id

 
gethttps://api.abiosgaming.com/v2/series/id
curl -X GET "https://api.abiosgaming.com/v2/series/132713"
A binary file was returned

You couldn't be authenticated

{
  "id": 132713,
  "title": "Playoffs - Final",
  "start": "2017-07-09 14:00:00",
  "end": "2017-07-09 17:42:12",
  "tier": 1,
  "bestOf": 5,
  "tournament_id": 2029,
  "substage_id": 14838,
  "deleted_at": null,
  "pbp_status": "expected",
  "postponed_from": null,
  "scores": {
    "127": 0,
    "18730": 3
  },
  "chain": null,
  "forfeit": {
    "127": false,
    "18730": false
  },
  "streamed": true,
  "seeding": {
    "1": 127,
    "2": 18730
  },
  "game": {...},
  "bracket_pos": {...},
  "rosters": [Roster],
  "summary": {...},        //optional
  "tournament": {...},     //optional
  "matches": [Match],      //optional
  "casters": [Caster],     //optional
  "performance": {...},    //optional
  "sportsbook_odds": {...} //optional
}

Query Params

with[]
string

Subrelations to include with the results: tournament, matches, casters, roster_perf*, comp_perf*, sportsbook_odds, summary.

 

* roster_perf accounts for the head to head performance of the exact Rosters in the Series. comp_perf accounts for the head to head performance of the competitors in the Series, in Team-based games like LoL, Dota 2 and CS:GO the competitors are the Teams (irrespective of the players having played for the team historically) and in Player-based games like SCII the competitors are the Players (irrespective of the teams they have played for historically).

Suggest Edits

/matches/:id

Fetch one match, from its id

 
gethttps://api.abiosgaming.com/v2/matches/108799
curl -X GET "https://api.abiosgaming.com/v2/matches/231687"
A binary file was returned

You couldn't be authenticated

{
  "id": 231687,
  "series_id": 132713,
  "order": 1,
  "deleted_at": null,
  "winner": 18730,
  "scores": {
    "127": 9,
    "18730": 16
  },
  "forfeit": {
    "127": false,
    "18730": false
  },
  "seeding": {
    "1": 127,
    "2": 18730
  },
  "game": {...},
  "has_pbpstats": true,
  "rosters": [Roster],
  "map": {...},
  "performance": {...}, //optional
  "summary": {...}      //optional
}

Query Params

with[]
string

Subrelations to include with the results: performance and summary.

 
Suggest Edits

/matches/:id/light_summary

Fetch the light summary for a match specified by :id.

 
gethttps://api.abiosgaming.com/v2/matches/363901/light_summary
//CS:GO example
curl -X GET "https://api.abiosgaming.com/v2/matches/363901/light_summary"
A binary file was returned

You couldn't be authenticated

//CSGO example
{
    "confirmed": true,
    "home": {
        "roster": {
            "id": 55973
        },
        "is_winner": false,
        "score": 5,
        "player_stats": [
            {
                "player": {
                    "id": 37737
                },
                "kills": 13,
                "assists": 3,
                "deaths": 18
            },
            {...}
        ]
    },
    "away": {
        "roster": {
            "id": 55571
        },
        "is_winner": true,
        "score": 16,
        "player_stats": [
            {
                "player": {
                    "id": 33837
                },
                "kills": 19,
                "assists": 3,
                "deaths": 10
            },
            {...}
        ]
    },
    "length": 2340,
    "rounds": [
        {
            "round_nr": 1,
            "t_side": {
                "roster": {
                    "id": 55973
                },
                "is_winner": false,
                "player_stats": [
                    {
                        "player": {
                            "id": 37737
                        },
                        "kills": 0,
                        "assists": 0,
                        "deaths": 1,
                        "cash": {
                            "spent": 800
                        }
                    },
                    {...}
                ]
            },
            "ct_side": {
                "roster": {
                    "id": 55571
                },
                "is_winner": true,
                "player_stats": [
                    {
                        "player": {
                            "id": 33837
                        },
                        "kills": 2,
                        "assists": 0,
                        "deaths": 0,
                        "cash": {
                            "spent": 650
                        }
                    },
                    {...}
                ]
            },
            "bomb_events": [],
            "kills": [
                {
                    "match_time": 0,
                    "bomb_planted": true,
                    "time_since_plant": 35500,
                    "attacker": {
                        "player": {
                            "id": 33837
                        },
                        "roster": {
                            "id": 55571
                        }
                    },
                    "victim": {
                        "player": {
                            "id": 38428
                        },
                        "roster": {
                            "id": 55973
                        }
                    },
                    "assist": null,
                    "weapon": {
                        "id": 4,
                        "name": "usp_silencer",
                        "images": {
                            "small": "https://img.abiosgaming.com/other/game-assets/csgo-weapons/usp_silencer.png"
                        }
                    }
                },
                {...}
            ],
            "win_reason": {
                "id": 8,
                "name": "terrorists eliminated",
                "images": {
                    "small": "https://img.abiosgaming.com/other/game-assets/csgo-winreasons/fallback.png"
                }
            }
        },
        {...}
    ],
    "ended": true
}
 
Suggest Edits

/tournaments

Return a paginated collection of Tournaments. These tournaments include only a subset of some related objects.

 
gethttps://api.abiosgaming.com/v2/tournaments?games[]=6&with[]=series
curl --request GET \
  --url 'https://api.abiosgaming.com/v2/tournaments?with%5B%5D=series&games%5B%5D=6'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.abiosgaming.com/v2/tournaments',
  qs: { 'with[]': 'series', 'games[]': '6' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.abiosgaming.com/v2/tournaments?with%5B%5D=series&games%5B%5D=6")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.abiosgaming.com/v2/tournaments?with%5B%5D=series&games%5B%5D=6");

xhr.send(data);
import requests

url = "https://api.abiosgaming.com/v2/tournaments"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "last_page": 3,
  "current_page": 1,
  "data": [
    {
      "id": 2148,
      "title": "2017 Global Games",
      "tier": 2,
      "format": "text text text",
      "start": "2017-04-10",
      "end": null,
      "city": "Online/Offline",
      "deleted_at": null,
      "series": [Series],
      "short_title": "HGG",
      "description": "text text text",
      "short_description": "text text text",
      "images": {...},
      "prizepool_string": {
        "total": "$300,000",
        "first": "$150,000",
        "second": "$100,000",
        "third": "$50,000"
      },
      "links": {...},
      "next_series": {...},
      "country": {...},
      "game": {...}
    },
    {...},
    {...}
  ]
}

Query Params

q
string

A string to filter tournaments by. Searches on title and short_title.

games[]
int32

Ids of Games to filter series by.

competitors[]
int32

Ids of Competitors to filter tournaments by.

platforms[]
int32

Will include all series where at least one of the Casters stream on a Platform from this list.

starts_before
date

Return Tournaments that start before the supplied UTC DateTime: now, or valid ISO string, like 2017-01-02T15:04:05Z.

starts_after
date

Return Tournament that start at or after the supplied UTC DateTime: now, or valid ISO string, like 2017-01-02T15:04:05Z.

is_over
boolean

Filter the tournaments if they have ended or not: true or false. Default is false.

order
string

The parameter by which to order the Tournaments: start, end, game_id. Default is start.

sort
string

The method by which to sort the Tournaments: ASC, DESC. Default is ASC.

with[]
string

Subrelations to include with the results: series, casters, stages.substages.

lang
string

Filter the tournamets based on the language of the available casters. Specified as a two letter country code

country
string

Filters the response based on the tournaments country.

tiers[]
string

Filter the tournaments based on the their tier.

 

* The Series list for this end-point will only return the upcoming 5 Series for the Tournament, to get all Series in a Tournament use the /series or /tournaments/:id end-points.
** If neither is_over, starts_before nor starts_after is set, the api will fall back to the most commonly used is_over=false.
*** The lang parameter significantly increases response time.

Suggest Edits

/tournaments/:id

Get a single tournament.

 
gethttps://api.abiosgaming.com/v2/tournaments/4351
curl --request GET \
  --url https://api.abiosgaming.com/v2/tournaments/4351
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.abiosgaming.com/v2/tournaments/4351' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.abiosgaming.com/v2/tournaments/4351")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.abiosgaming.com/v2/tournaments/4351");

xhr.send(data);
import requests

url = "https://api.abiosgaming.com/v2/tournaments/4351"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "id": 420,
  "title": "ESL One Cologne",
  "abbrev": "ESLOne",
  "country": {...},
  "city": "Cologne",
  "tier": 1,
  "description": "text text text",
  "short_description": "text", 
  "format": "text text text",
  "start": "2015-08-22 00:00:00",
  "end": "2015-08-23 00:00:00",
  "deleted_at": null,
  "url": "https://abiosgaming.com/tournaments/CS:GO/ESL-One-Cologne",
  "images": {
    "default": "https://img.abiosgaming.com/ESL-ONE-Cologne.png",
    "thumbnail": "https://img.abiosgaming.com/thumb/ESL-ONE-Cologne.png",
    "banner": "https://img.abiosgaming.com/banner/ESL-ONE-Cologne-logo.jpg",
    "fallback": false
  },
  "prizepool_str": {
    "total": "$ 250,000",
    "first": "$ 100,000",
    "second": "$ 50,000",
    "third": "$ 22,000"
  },
  "links": {
    "website": "http://www.esl-one.com/csgo/cologne-2015/",
    "youtube": "https://www.youtube.com/watch?v=1OHFQGlZf_Q",
    "wiki": "https://liquipedia.net/counterstrike/ESL/One/2015/Cologne"
  },
  "next_series": {...},
  "series": [Series],
  "stages": [Stage],
  "rosters": [Roster],
  "game": {...}
}

Query Params

with[]
string

Subrelations to include with the results: series, casters, series.casters, rosters, stages.substages.

 

BEST PRACTICE

Using with[]= parameters series, series.casters may seriously effect the loading time of this endpoint for large tournaments. The recommended way to fetch and update Series, and Series related information, of a tournament is to use with[]=stages.substages and then fetch additional data using the /substages/:id end point. Or if the structure of the Series within the tournament is not of high importance, use the tournaments[]={id} parameter on the /series end-point.

Suggest Edits

/substages/:id

Get a Substage from its ID.

 
gethttps://api.abiosgaming.com/v2/substages/4209
curl --request GET \
  --url https://api.abiosgaming.com/v2/substages/4209
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.abiosgaming.com/v2/substages/4209' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.abiosgaming.com/v2/substages/4209")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.abiosgaming.com/v2/substages/4209");

xhr.send(data);
import requests

url = "https://api.abiosgaming.com/v2/substages/4209"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "id": 14531,
  "stage_id": 5608,
  "tier": 2,
  "title": "Playoffs",
  "deleted_at": null,
  "type": 2,
  "tournament_id": 2128,
  "order": 0,
  "rules": {
    "advance": {
      "number": 2,
      "substage_id": 14532
    },
    "descend": {
      "number": null,
      "substage_id": null
    },
    "points": {
      "win": 3,
      "draw": 1,
      "loss": 0,
      "scope": "series"
    }
  },
  "standings": [ // Optional
    {
      "roster_id": 27868,
      "points": 27,
      "wins": 9,
      "draws": 0,
      "losses": 0
    },
    {...},
  ],
  "rosters": [Roster], // Optional
  "series": [Series] // Optional
}

Query Params

with[]
string

Subrelations to include with the results: standings, rosters and series.

 
Suggest Edits

/teams

Return a paginated collection of Teams

 
gethttps://api.abiosgaming.com/v2/teams
curl -X GET "https://api.abiosgaming.com/v2/teams?with[]=game"
A binary file was returned

You couldn't be authenticated

{
  "last_page": 78,
  "current_page": 1,
  "data": [
    {
      "id": 876,
      "name": "Ninjas In Pyjamas",
      "short_name": "NiP",
      "deleted_at": null,
      "images": {
          "default": "https://img.abiosgaming.com/competitors/Ninjas-in-Pyjamas-NiP.png",
          "thumbnail": "https://img.abiosgaming.com/competitors/thumbnails/Ninjas-in-Pyjamas-NiP.png",
          "fallback": false
      },
      "country": {...},
      "game": {...}
    },
    {...},
  ]
}

Query Params

q
string

A string to filter Teams by. Searches on name and abbrev.

games[]
int32

Ids of Games to filter Teams by.

tournaments[]
int32

Ids of Tournaments to filter Teams by.

with[]
string

Subrelations to include with the results: game.

active
boolean

Filters the teams based on if they have been active within the past 6 months. If not specified, defaults to true.

country
string

Filter the teams based on their nationality. Specified as a two letter country code.

 
Suggest Edits

/teams/:id

Return a single Team

 
gethttps://api.abiosgaming.com/v2/teams/12345
curl -X GET "https://api.abiosgaming.com/v2/teams/876?with[]=game&with[]=team_stats&with[]=rosters"
A binary file was returned

You couldn't be authenticated

{
  "id": 876,
  "name": "Ninjas In Pyjamas",
  "short_name": "NiP",
  "deleted_at": null,
  "images": {
    "default": "https://img.abiosgaming.com/competitors/Ninjas-in-Pyjamas-NiP.png",
    "thumbnail": "https://img.abiosgaming.com/competitors/thumbnails/Ninjas-in-Pyjamas-NiP.png",
    "fallback": false
  },
  "country": {...},
  "team_stats": {...},
  "players": {...},
  "rosters": [DefaultRoster], 
  "upcoming_series": [Series], 
  "recent_series": [Series], 
  "game": {...}
}
// The '410 Gone' response means that the Team has been deleted and replaced by another
// team. This can happen if there has been duplicates in the database, especially after
// lower tier team name changes. Note however that the old data is still returned on the
// same format as if it was a 200 resonse.
{
  "id": 876,
  "name": "Ninjas In Pyjamas",
  "short_name": "NiP",
  "deleted_at": "2018-03-21 11:19:36",
  "images": {
    "default": "https://img.abiosgaming.com/competitors/Ninjas-in-Pyjamas-NiP.png",
    "thumbnail": "https://img.abiosgaming.com/competitors/thumbnails/Ninjas-in-Pyjamas-NiP.png",
    "fallback": false
  },
  "country": {...},
  "team_stats": {...},
  "players": {...},
  "rosters": [DefaultRoster], 
  "upcoming_series": [Series], 
  "recent_series": [Series], 
  "game": {...}
}

Query Params

with[]
string

Subrelations to include with the results: game, team_stats, schedule and rosters.

months_back
int32

Number of months back of data to calculate history with. If this parameter is not specified it falls back to months_back=3.

 
Suggest Edits

/organisations

Returns a paginated collection of Organisations

 
gethttps://api.abiosgaming.com/v2/organisations
curl --request GET \
  --url https://api.abiosgaming.com/v2/organisations
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.abiosgaming.com/v2/organisations' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.abiosgaming.com/v2/organisations")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.abiosgaming.com/v2/organisations");

xhr.send(data);
import requests

url = "https://api.abiosgaming.com/v2/organisations"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "last_page": 2,
    "current_page": 1,
    "data": [
        {...},
        {...},
        {...},
        {...},
        {
            "id": 5,
            "name": "Cloud9"
        },
        {...},
        {...},
        {...},
        {...},
        {...},
        {...},
        {...},
        {...},
        {...},
        {...},
    ]
}
 
Suggest Edits

/organisations/:id

Return a single Organisation

 
gethttps://api.abiosgaming.com/v2/organisations/6
curl --request GET \
  --url https://api.abiosgaming.com/v2/organisations/6
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.abiosgaming.com/v2/organisations/6' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.abiosgaming.com/v2/organisations/6")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.abiosgaming.com/v2/organisations/6");

xhr.send(data);
import requests

url = "https://api.abiosgaming.com/v2/organisations/6"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "id": 6,
    "name": "Fnatic",
    "teams": [ 
        {
            "name": "Fnatic",
            "deleted_at": null,
            "id": 335,
            "short_name": "FNC",
            "images": {...},
            "country": {...},
            "social_media_accounts": [],
            "game": {
                "id": 2,
                "title": "LoL",
                "color": "5d76d0",
                "long_title": "League of Legends",
                "deleted_at": null,
                "images": {...}
            }
        },
        {
            "name": "Fnatic",
            "deleted_at": null,
            "id": 871,
            "short_name": "FNC",
            "images": {...},
            "country": {...},
            "social_media_accounts": [],
            "game": {
                "id": 5,
                "title": "CS:GO",
                "color": "fbb766",
                "long_title": "Counter-Strike: Global Offensive",
                "deleted_at": null,
                "images": {...}
            }
        },
        {...},
        {...},
        {...},
        {...},
    ]
}
 
Suggest Edits

/players

Return a paginated collection of Players

 
gethttps://api.abiosgaming.com/v2/players
curl -X GET "https://api.abiosgaming.com/v2/players?with[]=game"
A binary file was returned

You couldn't be authenticated

{
  "last_page": 78,
  "current_page": 1,
  "data": [
    {
      "id": 876,
      "first_name": "John",
      "last_name": "Doe",
      "nick_name": "Pyth",
      "deleted_at": null,
      "images": {
          "default": "https://img.abiosgaming.com/competitors/Ninjas-in-Pyjamas-NiP.png",
          "thumbnail": "https://img.abiosgaming.com/competitors/thumbnails/Ninjas-in-Pyjamas-NiP.png",
          "fallback": false
      },
      "country": {...},
      "roles": [
        {
          "name": "MID",
          "from": "2017-10-12",
          "to": null
        }
      ],
      "race": {...},
      "team": {...},
      "game": {...}
    },
    {...},
  ]
}

Query Params

q
string

A string to filter Players by. Searches on nick_name, first_name and last_name.

games[]
int32

Ids of Games to filter Players by.

tournaments[]
int32

Ids of Tournaments to filter Players by.

with[]
string

Subrelations to include with the results: game, team.

active
boolean

Filters the players based on if they have been active within the past 6 months. If not specified, defaults to true.

country
string

Filter the players based on their nationality. Specified as a two letter country code.

 
Suggest Edits

/players/:id

Return a single Player

 
gethttps://api.abiosgaming.com/v2/players/6249
curl -X GET "https://api.abiosgaming.com/v2/players/6249?with[]=game&with[]=player_stats&with[]=rosters&with[]=schedule"
A binary file was returned

You couldn't be authenticated

{ 
  "nick_name": "Armada",
  "deleted_at": null,
  "id": 6249,
  "first_name": "Adam",
  "last_name": "Lindgren",
  "images": {...},
  "team": {...},
  "country": {...},
  "roles": [Role],
  "race": {...},
  "stats": {...},
  "rosters": [DefaultRoster],
  "upcoming_series": [Series], 
  "recent_series": [Series], 
  "game": {...}
}
// The '410 Gone' response means that the Player has been deleted and replaced by another
// player. This can happen if there has been duplicates in the database, most common in
// lower tiers where players may play under under numerous unknown aliases. Note however
// that the old data is still returned on the same format as if it was a 200 resonse.
{ 
  "nick_name": "Armada",
  "deleted_at": "2018-03-21 11:19:36",
  "id": 6249,
  "first_name": "Adam",
  "last_name": "Lindgren",
  "images": {...},
  "team": {...},
  "country": {...},
  "roles": [Role],
  "race": {...},
  "stats": {...},
  "rosters": [DefaultRoster],
  "upcoming_series": [Series], 
  "recent_series": [Series], 
  "game": {...}
}

Query Params

with[]
string

Subrelations to include with the results: game, rosters, player_stats and schedule.

months_back
int32

Number of months back of data used to calculate statistics with. If this parameter is not specified it falls back to months_back=3.

 
Suggest Edits

/rosters/:id

Return a paginated collection of Rosters

 
gethttps://api.abiosgaming.com/v2/rosters/23424
curl -X GET "https://api.abiosgaming.com/v2/rosters/3456?with[]=roster_stats"
A binary file was returned

You couldn't be authenticated

{
  "id": 3456,
  "teams": [Team],
  "players": [Player],
  "roster_stats": {...}
}

Query Params

with[]
string

Subrelations to include with the results: game and roster_stats.

months_back
int32

Number of months back of data used to calculate statistics with. If this parameter is not specified it falls back to months_back=3.

 
Suggest Edits

/incidents

Returns a paginated collection of incident reports

 
gethttps://api.abiosgaming.com/v2/incidents
curl -X GET "https://api.abiosgaming.com/v2/incidents"
A binary file was returned

You couldn't be authenticated

{
  "last_page": 78,
  "current_page": 1,
  "data": [
    {
      "id": 12,
      "series_id": 116110,
      "match_id": null,
      "comment": "Roster of team \"Novus Orsa\" [id 2614] left the organisation to join another team; \"Lion Guard eSports\" [id 27291].",
      "created_at": "2017-02-23 12:57:19",
      "updated_at": null
    },
    {...},
  ]
}

Query Params

page
int32

Used for page through the subsets of data returned.

 
Suggest Edits

/incidents/:series_id

Fetch all incident reports associated with a Series and its Matches

 
gethttps://api.abiosgaming.com/v2/incidents/116110
curl -X GET "https://api.abiosgaming.com/v2/incidents/116110"
A binary file was returned

You couldn't be authenticated

{
  "series_incidents": [
    {
      "series_id": 119615,
      "match_id": null,
      "comment": "Mineski forfeit the match due to roster changes.",
      "created_at": "2017-03-20 07:15:07",
      "updated_at": "2017-03-20 07:15:07",
      "incident_id": 93
    }
   ],
  "match_incidents": []
}
 
Suggest Edits

BracketPosition

A BracketPosition represents a Series position in a Substages bracket.

 

The BracketPosition resource is available as a value in the Series resource. It describes programmatically where a Series belongs in a bracket.

{
  "part": "UB",
  "col": 2,
  "offset": 4,
  "seeding": {
    "1": 16104,
    "2": 743
  }
}
Name
Type
Description
Nullable
Empty

part

string

enum(UB, LB, GF, LF). The part of the bracket this Series belongs to: upper bracket, lower bracket, grand final, or 3rd place Series. LB and GF only exist in Substage types 1-3.

NO

NO

col

int

The value of "column" denotes which column in that part of the bracket the series belongs. For more information, please see our full bracket documentation.

NO

NO

offset

int

'offset' denotes the offset from the first Series in this part of the bracket, starting with 1 in each part's respective final. For more information, please see our full bracket documentation.

NO

NO

seeding

object

Object describing the seeding of the two competitors in the related Series. Generally only applicable for bracket-type Substages.

NO

NO

seeding.{1|2}

int

Key value pairs accounting for the top seeded roster (key=1) and the bottom seeded roster (key=2) respectively.

YES*

NO

*If either Roster is not determined or announced (TBD/TBA) the value for that key will be null.

Suggest Edits

Caster

A Caster is an individual shoutcaster, casting a Series. It will have a Stream associated with it.

 

The Caster resource is available as a value in the Series resource and available for Tournament. Casters are closely connected with Streams and Platforms.

{
  "id": "12693",
  "name": "PVPlive",
  "type": 1,
  "url": "https://abiosgaming.com/live-streams/twitch/PVPlive", // Deprecated
  "primary": true,
  "stream": {...},
  "country": {...}
}
Name
Type
Description
Nullable
Empty

id

int

Id of caster.

NO

NO

name

string

The name of the Caster.

NO

NO

type

int

Platform type.

YES*

NO

url

string

[DEPRECATED Full URL to stream on Abios.] See more here about embed URLs.

NO

NO

primary

boolean

Signals if the whether this is the main/official Caster/Stream of this Series.

NO

NO

stream

resource

The Stream the Caster is broadcasting on.

YES*

NO

country

resource

The Country, representing the language, in which the Caster is broadcasting.

NO

NO

* If the Platform is not integrated with Abios. This will be null, a full URL to the stream is however always provided. null type casters are often asian streaming platforms.

The client can expect stream to always be a Stream resource for type 1 through 7. If type is null the Stream resource will be null. However, if type is 8 (Youtube), stream can be both null and a Stream resource.

The reason for this is that Youtube have a 1:n relationship between "channels" (in a sense what we call Casters) and streams, and stream IDs are not persistent. So there can be a varying number of streams live per Youtube channel and all those streams will have new unique IDs when they go live.

Therefore a Youtube Caster in our API will have stream: null when there are no streams live on that channel (or no streams that are showing the esports content in question), and will get a Stream resource associated with it as soon as the correct stream for the Series is available.

Suggest Edits

Game

A Game resource represents the actual game being played in a Series.

 

The Game resource is available as a value in many of the other API resources as well as in the /games end-point.

{
  "id": 5,
  "title": "CS:GO",
  "default_match_type": "team",
  "long_title": "Counter-Strike: Global Offensive",
  "deleted_at": null,
  "images": {
    "square": "https://img.abiosgaming.com/games/CSGO-flat-game-icon.png",
    "circle": "https://img.abiosgaming.com/games/round-cs-logo.png",
    "rectangle": "https://img.abiosgaming.com/games/flat-rectangular-cs-go-logo.jpg"
  },
  "color": "23d43f"
}
Name
Type
Description
Nullable
Empty

id

int

The internal ID of the game.

NO

NO

title

string

The displayed title for the game.

NO

NO

default_match_type

enum

The default, or most common, structure of a match in said Game. Can be one of team, brawl or battle_royale.

NO

NO

long_title

string

The unabbreviated title for the game.

NO

NO

deleted_at

datetime

The UTC time, in ISO format, when the game was deleted, null if not deleted.

YES

NO

images

object

An object whose keys are "shapes" (for different design elements) and values are URLs to game images.

NO

NO

color

string

The hex code for the internal "base color" of the game.

NO

NO

Suggest Edits

Match

A Match resource (somewhat related to Matchup in v1) represents an actual match being played between two Rosters, sometimes referred to as map or game.

 

The Match resource is available as a value in some of the other API resources as well as in the Match end-point.

{
  "id": 231687,
  "series_id": 132713,
  "order": 1,
  "deleted_at": null,
  "winner": 18730,
  "scores": {
    "127": 9,
    "18730": 16
  },
  "forfeit": {
    "127": false,
    "18730": false
  },
  "seeding": {
    "1": 127,
    "2": 18730
  },
  "game": {...},
  "has_pbpstats": true,
  "rosters": [Roster],
  "map": {...},
  "performance": {...}, //optional
  "summary": {...} //optional
}
Name
Type
Description
Nullable
Empty

id

int

The id of the Match.

NO

NO

order

int

The order of the match in the Series, the first match has order 1.

NO

NO

winner

int

The Roster id of the matches winner.

YES*

NO

map

resource

An object containing information about the Map played.

NO

NO

deleted_at

datetime

The UTC time, in ISO format, when the match was deleted, null if not deleted.

YES**

NO

scores

object

An object containing the scores for the Match, or null. If scores are present, the objects keys will be the Roster id and the value will be that rosters score for this Match.

NO

NO

forfeit

object

An object containing two keys, the ids of the participating Rosters. The bool values states if a Roster has forfeited the Match or not.

NO

NO

seeding

object

Key value pairs accounting for the top seeded roster (key=1) and any additional rosters with ascending keys. In non-battle royale games there are only seed 1 and 2, but in battle royale games there can be several more, sometimes in non-consecutive order. More info here Seeding & Rosters.

NO

NO

game

object

The Game to which the Match belongs.

NO

NO

has_pbpstats

boolean

A boolean flag that signals if the Match has play_by_play statistics available.

NO

NO

roster

list

A list of Roster competing in the Match.

NO

YES***

performance (optional)

resource

Both Rosters Match performance going into this Match.

NO

NO

match_summary (optional)

resource

See play-by-play documentation.

YES****

NO

* Before there is a winner of the Match, this will be null
** If the Match has not been deleted, this will be null
*** Before the Rosters are known, this list will be empty
**** This resource will be null until the summary is available

Suggest Edits

Platform

A Platform is the third party provider hosting the Stream:

 

The Platform resource is available as a value in the Stream resource.

{
  "id": 1,
  "name": "Twitch",
  "color": "6441A5",
  "images": {
    "default": "https://img.abiosgaming.com/other/platform-logo-twitch.png"
  }
}
Name
Type
Description
Nullable
Empty

id

int

The Platform id.

NO

NO

name

string

The name of the Platform.

NO

NO

color

string

The primary color associated with the Platform, in hex.

NO

NO

images

object

An object whose keys are "sizes" and values are urls to the image.

NO

NO

These are the currently available platforms:

  • Twitch with id 1
  • Hitbox with id 2 (now known as smashcast.tv, name update pending)
  • Viagame with id 3 (Viagame is no longer around)
  • Dailymotion with id 5
  • MLG with id 6
  • AfreecaTV with id 7
  • Youtube with id 8
Suggest Edits

Player

A Player resource represents a player that competes in Series and Match. It looks like this:

 

The Player resource is available as a value in some of the other API resources as well as in the /players and /players/:id end-points.

{
  "id": 876,
  "first_name": "John",
  "last_name": "Doe",
  "nick_name": "Pyth",
  "deleted_at": null,
  "images": {
    "default": "https://img.abiosgaming.com/competitors/Ninjas-in-Pyjamas-NiP.png",
    "thumbnail": "https://img.abiosgaming.com/competitors/thumbnails/Ninjas-in-Pyjamas-NiP.png",
    "fallback": false
  },
  "country": {...},
  "roles": [Role],
  "race": {...},
  "team": {...},
  "player_stats": {...},
  "rosters": [DefaultRoster],
  "upcoming_series": [Series], 
  "recent_series": [Series], 
  "game": {...}
}
Name
Type
Description
Nullable
Empty

id

int

The internal id of the Player.

NO

NO

first_name

string

The Players first name.

YES*

NO

last_name

string

The Players last name.

YES*

NO

nick_name

string

The Players in-game nick name.

NO

NO

deleted_at

datetime

The UTC time, in ISO format, when the Player was deleted, null if not deleted.

YES**

NO

images

object

An object whose keys are "sizes" and values are urls to the image. The fallback boolean indicated whether the images are fallback images.

NO

NO

country

resource

The Country of the Player.

YES***

NO

race

resource

If applicable (Starcraft II & SSB), an object containing the name and images for the players Race, otherwise null.

YES****

NO

team (optional)

resource

If a Player is in a current Default Roster that Teams information is available here. If the Player is active in more than one Team (eg a national team) the most recently joined will be the one displayed. All other rosters (current and previous) are available in the rosters array, see below.

YES*****

NO

player_stats (optional)

resource

The Player Stats of this Player, across different Rosters.

NO

NO

rosters (optional)

list

A list of Default Rosters which the Player has been a part of.

NO

YES******

upcoming_series (optional)

list

An ordered list of the closest 5 upcoming Series for the Player, with the closest one first.

NO

YES

recent_series (optional)

list

An ordered list of the last 5 Series for the Player, with the closest one first.

NO

YES

game (optional)

resource

The Game the Player competes in.

NO

NO

* If the first or last name of a Player is not known, they will be set to null
** If the Player has not been deleted, this will be null
*** If the nationality of the Player is not known, this will be null
**** If the race of a player is not known, or not applicable, this will be null
***** If the Player is not currently part of a Team, this will be null
****** If the Player has no Roster history, this list will be empty

Suggest Edits

Roster

A Roster resource represents a team and/or a player (or a collection of the two) that competes in a Series and/or Matches.

 

The Roster resource is available as a value in some of the other API resources as well as in the Roster end-point.

{
  "id": 3456,
  "teams": [Team],
  "players": [Player],
  "roster_stats": {...}
}
Name
Type
Description
Nullable
Empty

id

int

The id of this unique configuration of Team(s) and/or Player(s).

NO

NO

teams

list

A list of the Teams playing (usually, but not necessarily, one or empty).

NO

NO

players

list

A list of the Players playing (usually, but not necessarily, one in "Player vs Player" Games or 4-5 in "Team vs Team" Games).

NO

NO

roster_stats (optional)

resource

The Roster Stats for this Rosters line-up, regardless of Team(s).

YES*

NO

* If there are no Match or Series history for this Roster, this will be null

Suggest Edits

Default Roster

A Default Roster resource represents the time period(s) when a Roster has been a Teams main roster or line-up.

 

The Default Roster resource is available as a value in the Team resource.

{
  "id": 2134,
  "from": "2015-10-27",
  "to": null,
  "roster":{...}
}
Name
Type
Description
Nullable
Empty

id

int

The ID of this specific DefaultRoster. Not to be confused with roster.id.

NO

NO

from

date

The start of the period that this roster was a default roster.

NO

NO

to

date

The end of the period that this roster was a default roster.

YES*

NO

roster

resource

The Roster in question.

NO

NO

* If this is the current Default Roster for a Team to will be null

Suggest Edits

Series

A Series resource (called 'Match' in v1, also including data from previous 'Matchup') represents a series, or group, of Matches.

 

The Series resource is available as a value in some of the other resources in the API as well as in the /series and /series/:id end-points.

{
  "id": 132713,
  "title": "Playoffs - Final",
  "start": "2017-07-09 14:00:00",
  "end": "2017-07-09 17:42:12",
  "tier": 1,
  "bestOf": 5,
  "tournament_id": 2029,
  "substage_id": 14838,
  "deleted_at": null,
  "pbp_status": "expected",
  "postponed_from": null,
  "scores": {
    "127": 0,
    "18730": 3
  },
  "chain": null,
  "forfeit": {
    "127": false,
    "18730": false
  },
  "streamed": true,
  "seeding": {
    "1": 127,
    "2": 18730
  },
  "game": {...},
  "bracket_pos": {...},
  "rosters": [Roster],
  "tournament": {...}, //optional
  "matches": [Match], //optional
  "casters": [Caster], //optional
  "performance": {...}, //optional
  "sportsbook_odds": {...} //optional
}
Name
Type
Description
Nullable
Empty

id

int

The id of the series.

NO

NO

title

string

The title of the series.

NO

NO

best_of

int

The maximum number of Match to complete the Series.

NO

NO

tier

int

The internal tier the Series is in, 1 being the highest, 2 middle and 3 the lowest.

YES

NO

start

datetime

The UTC start time of the Series, in ISO format.

YES*

NO

end

datetime

The UTC end time of the Series, in ISO format, null if not ended.

YES

NO

postponed_from

datetime

The UTC time, in ISO format, when the Series was originally suposed to be played. null if the Series has never been in a "postponed state".

YES

NO

deleted_at

datetime

The UTC time, in ISO format, when this Series was deleted, null if not deleted.

YES

NO

pbp_status

enum

Can be either null, possible or expected. Accounts for likelihood of availability of PbP data. Where null signifies unknown and not applicable, possible means that the conditions are right for data to become available and expected signifies a high likelihood of PbP data availability.

YES

NO

scores

object

An object containing two keys, the ids of the participating Rosters. The values correspond to the score for each Roster.

YES**

NO

forfeit

object

An object containing two keys, the ids of the participating Rosters. The bool values states if a Roster has forfeited the Series or not.

NO

NO

streamed

bool

Indicates if the Series will be played on stream or not.

NO

NO

seeding

object

Key value pairs accounting for the top seeded roster (key=1) and the bottom seeded roster (key=2) respectively. Values will be null if Roster(s) are still TBD. More info here Seeding & Rosters.

NO

NO

rosters

list

A list of Rosters competing in the series. These are the rosters that the Teams signed up for the tournament with, an "expected roster". For the rosters actually playing the matches, see match.roster.

NO

YES***

game

resource

The Game played.

NO

NO

matches (optional)

list

A list of Matches of which the Series consists.

NO

YES***

casters (optional)

list

A list of Casters broadcasting the Series.

NO

YES***

substage_id

int

The id of the Substage that the Series belongs to.

NO

NO

bracket_pos

resource

The BracketPosition of this Series in the Substage.

YES****

NO

tournament (optional)

resource

The Tournament the Series is part of.

NO

NO

performance (optional)

resource

The Series performance of this series.

NO

NO

chain

list

An ordered list of Series chain resources that are played as a consecutive chain of series, effectively as a Best-of-X-Series. This is a fairly irregular occurrence. Read more about Chained Series here.

YES*****

NO

sportsbook_odds

resource

* If a Series is postponed and a new start time has not been announced yet, the start time will be null
** Before the Rosters have won a Match their values will be null
*** Before any the Matches for the Series have concluded, this list will be empty
**** If the Series is not part of a bracket, this will be null
***** If the Series is not part of such a chain, chain will be null

Suggest Edits

Stage

A Stage is a phase in a Tournament and a higher level grouping of Substages.

 

The Stage resource is available as a value in some of the other resources in the API, such as the Tournament resource.

{
  "id": 1769,
  "title": "Qualifier",
  "deleted_at": "2013-12-11 10:09:08",
  "substages": [Substage]
}
Name
Type
Description
Nullable
Empty

id

int

The id of the stage.

NO

NO

title

string

The title of the stage.

NO

NO

deleted_at

datetime

The UTC time, in ISO format, when the stage was deleted, null if not deleted.

YES

NO

substages

list

A list of associated Substages.

NO

YES*

* If there are no Substages yet connected to the Stage this list will be empty.

Suggest Edits

Stream

A Stream is a broadcast on a third party Platform, such as Twitch.

 

The Stream resource is available as a value in the Caster resource.

{
  "id": 364,
  "username": "pvplive",
  "display_name": "PVPLive",
  "status_text": "[REBROADCAST] -- HPL -- Tie Breakers for Playoffs",
  "viewer_count": 694,
  "online": 1,
  "last_online": "2016-04-27 23:36:13",
  "images": {
    "user_logo": "http://static-cdn.jtvnw.net/jtv_user_pictures/pvplive-profile_image-8639180c0875cd48-300x300.jpeg",
    "preview": "https://img.abiosgaming.com/other/stream-mlg-thumbnail-fallback.png"
  },
  "url": "https://abiosgaming.com/live-streams/twitch/pvplive",
  "platform": {...}
}
Name
Type
Description
Nullable
Empty

id

int

The internal stream id.

NO

NO

username

string

The username of the Stream on the third party service.

NO

NO

display_name

string

Their display name.

NO

NO

status_text

string

Brief status text.

NO

NO

viewer_count

int

Total viewer count.

NO

NO

online

int

An int (1 or 0) representing online or offline status respectively.

NO

NO

last_online

datetime

Indicating when this stream was last seen online.

NO

NO

images

object

user_logo is the user's icon and preview is a stream thumbnail.

NO

NO

url

string

[DEPRECATED Full URL to stream on Abios.] See more below about embed URLs.

NO

NO

platform

object

The associated Platform.

NO

NO

Creating a stream link or embed URL

To create an embed link or a link to stream on the Platforms site, use platform.id and stream.username.

As an example based on the resource above, where platform.id = 1 which is Twitch and stream.username = "pvplive" we can find in the twitch api documentation that links are constructed on the following form:

Embed link: <iframe src="https://player.twitch.tv/?<channel, video, or collection>"</iframe>
Site link: https://www.twitch.tv/<channel>

Which gives us:
Embed link: <iframe src="https://player.twitch.tv/?channel=pvplive"</iframe>
Site link: https://www.twitch.tv/pvplive

Please note that the base URLs for those links (https://player.twitch.tv/ & https://www.twitch.tv/ in the example above) might change at any time, at the discretion of the Platform (Twitch, Youtube etc).

Suggest Edits

Substage

A Substage is the lowest structure of a Tournament and is a grouping of Series.

 

The Substage resource is available as a value in some of the other resources in the API as well as in the /substages/:id end-point.

{
  "id": 14531,
  "stage_id": 5608,
  "tier": 2,
  "title": "Playoffs",
  "deleted_at": null,
  "type": 2,
  "phase": "final",
  "tournament_id": 2128,
  "order": 0,
  "start": "2018-03-15 03:00:00",
  "end": "2018-03-15 07:13:51",
  "rules": {
    "advance": {
      "number": 2,
      "substage_id": 14532
    },
    "descend": {
      "number": null,
      "substage_id": null
    },
    "points": {
      "win": 3,
      "draw": 1,
      "loss": 0,
      "scope": "series"
    }
  },
  "standings": [ // Optional
    {
      "roster_id": 27868,
      "points": 27,
      "wins": 9,
      "draws": 0,
      "losses": 0
    },
    {...},
  ],
  "rosters": [Roster], // Optional
  "series": [Series] // Optional
}
Name
Title
Description
Nullable
Empty

id

int

The id of the substage.

NO

NO

stage_id

int

The id of the Stage the Substage belongs to.

NO

NO

tier

int

The tier of the Substage.

NO

NO

title

string

The title of the substage.

NO

NO

deleted_at

datetime

The UTC time, in ISO format, when the substage was deleted, null if not deleted.

YES

NO

type

int

An integer representing the type of substage. 0 is a group format, 1 is a single-elimination bracket, 2 is a double-elimination bracket, and 3 is a GSL bracket.

NO

NO

phase

enum

Can be either of qualifier, regular, final or other. It indicates how significant the Substage is in its Tournament. See more here.

NO

NO

tournament_id

int

The id of the Tournament the Substage belongs to.

NO

NO

order

int

The sorting order this Substage has compared to other Substages in the same Stage

NO

NO

start

datetime

The UTC time, in ISO format, when the substage starts.

YES

NO

end

datetime

The UTC time, in ISO format, when the substage ends.

YES

NO

rules

object

An object containing the rules for the given substage.

NO

NO

rules.{advance|descend}.number

int

The number of rosters in the substage that will advance from this substage.

YES**

NO

rules.{advance|descend}.substage_id

int

The ID of the substage that the top rosters in the substage will advance to.

YES**

NO

rules.points.win

int

The points awarded for a win.

YES**

NO

rules.points.draw

int

The points awarded for a draw.

YES**

NO

rules.points.loss

int

The points awarded for a loss.

YES**

NO

rules.points.scope

enum

Possible values: series and match. If the scope is series the winning roster in a 2-0 series will be awarded 1*(rules.points.win) points. If the scope is match the winning roster in a 2-0 series will be awarded 2*(rules.points.win) points.

NO

NO

standings

list

An ordered list (by points) of the participating rosters.

NO

YES*

standings.[n].roster_id

int

The ID of the roster in the standings lis.

NO

NO

standings.[n].points

int

The points awarded to the Roster in question.

YES**

NO

standings.[n].wins

int

The number of Series/Matches won (see rules above) by the roster.

NO

NO

standings.[n].draws

int

The number of Series/Matches drawed (see rules above) by the roster.

NO

NO

standings.[n].losses

int

The number of Series/Matches lost (see rules above) by the roster.

NO

NO

rosters

list

A list of the participating Rosters.

NO

YES*

series

list

A list of associated Series.

NO

YES*

* If there are no Series or Rosters yet connected to the Substage these list will be empty.
** If no point system has been specified, this will be null.

Suggest Edits

Team

A Team resource represents a team that competes in Series and Matches.

 

The Team resource is available as a value in some of the other API resources as well as in the /teams and /teams/:id end-points.

{
  "id": 876,
  "name": "Ninjas In Pyjamas",
  "short_name": "NiP",
  "deleted_at": null,
  "images": {
    "default": "https://img.abiosgaming.com/competitors/Ninjas-in-Pyjamas-NiP.png",
    "thumbnail": "https://img.abiosgaming.com/competitors/thumbnails/Ninjas-in-Pyjamas-NiP.png",
    "fallback": false
  },
  "country": {...},
  "team_stats": {...},
  "players": [Player],
  "rosters": [DefaultRoster],
  "upcoming_series": [Series], 
  "recent_series": [Series], 
  "game": {...}
}
Name
Type
Description
Nullable
Empty

id

id

The internal ID of the Team.

NO

NO

name

string

The name of the Team.

NO

NO

short_name

string

An abbreviated name for the Team.

NO

NO

deleted_at

datetime

The UTC time, in ISO format, when the team was deleted, null if not deleted.

YES*

NO

images

object

An object whose keys are "sizes" and values are urls to the image. The fallback boolean indicated whether the images are fallback images.

NO

NO

country

resource

The Country of the Team.

YES**

NO

team_stats (optional)

resource

The Team Stats for this Team, across different Rosters.

NO

NO

players (optional)

list

A list of the Players from the Teams current Roster.

YES***

NO

rosters (optional)

list

An ordered list of Default Rosters for the Team, with the most recent one first (which may or may not be the current one, see more at Default Roster).

NO

YES****

upcoming_series (optional)

list

An ordered list of the closest 5 upcoming Series for the Team, with the closest one first.

NO

YES

recent_series (optional)

list

An ordered list of the last 5 Series for the Team, with the closest one first.

NO

YES

game (optional)

resource

The Game that the Team competes in.

NO

NO

* If the Team is not deleted, this will be null
** If the Country is not know for the Team, this will be null
*** If the Team does not have a known Rosters associated with them, this will be null
**** If there are no known Rosters associated with the Team, this list is empty

Suggest Edits

Tournament

A Tournament resource represents a Tournament, or a structured group of Series.

 

The Tournament resource is available as a value in some of the other resources in the API as well as in the /tournaments and /tournaments/:id end-points.

{
  "id": 420,
  "title": "ESL One Cologne",
  "short_title": "ESLOne",
  "country": {...},
  "city": "Cologne",
  "tier": 1,
  "description": "text text text",
  "short_description": "text",
  "format": "text text text",
  "start": "2015-08-22",
  "end": "2015-08-23",
  "deleted_at": null,
  "url": "https://abiosgaming.com/tournaments/CS:GO/ESL-One-Cologne",
  "has_pbpstats": true,
  "images": {
    "default": "https://img.abiosgaming.com/ESL-ONE-Cologne.png",
    "thumbnail": "https://img.abiosgaming.com/thumb/ESL-ONE-Cologne.png",
    "banner": "https://img.abiosgaming.com/banner/ESL-ONE-Cologne-logo.jpg",
    "fallback": false
  },
  "prizepool_string": {
    "total": "$ 250,000",
    "first": "$ 100,000",
    "second": "$ 50,000",
    "third": "$ 22,000"
  },
  "links": {
    "website": "http://www.esl-one.com/csgo/cologne-2015/",
    "youtube": "https://www.youtube.com/watch?v=1OHFQGlZf_Q"
  },
  "next_series": {...},
  "series": [Series],
  "stages": [Stage],
  "rosters": [Roster],
  "game": {...}
}
Name
Type
Description
Nullable
Empty

id

int

The internal ID of the tournament.

NO

NO

title

string

The title of the tournament.

NO

NO

abbrev

string

An abbreviated version of the tournament's title.

NO

NO

country

string

Country the tournament is located, or "online".

NO

NO

city

string

City the tournament is located, or "online".

NO

NO

tier

int

The internal tier the Tournament is in, 1 beeing the highest, 2 middle and 3 the lowest.

NO

NO

description

string

A html-encoded description of the tournament.

NO

NO

short_description

string

A short description of the tournament.

NO

NO

format

string

A html-encoded description of the format the tournament will be played in.

NO

NO

start

datetime

The UTC date, in ISO format, when the tournament starts, null if not announced.

YES

NO

end

datetime

The UTC date, in ISO format, when the tournament ends, null if not announced.

YES

NO

deleted_at

datetime

The UTC time, in ISO format, when the tournament was deleted, null if not deleted.

YES

NO

url

string

A URL that points back to Abios tournament page.

NO

NO

has_pbpstats

bool

Indicates whether matches in the tournament will have play-by-play data available.

NO

NO

images

object

An object whose keys are sizes and values are URLs to tournament images. The fallback boolean indicated whether any of the images are fallback images.

NO

NO

prizepool_string

object

An object containing prizepool information with keys total, first, second, third.

NO

YES*

links

object

An object containing official links for the tournaments website and youtube.

NO

YES**

next_series

object

An object containing the next scheduled Series in the Tournament.

YES

NO

series (optional)

list

A list of Series associated with the tournament

NO

YES***

stages (optional)

list

A list of Stage associated with the tournament.

NO

YES***

rosters (optional)

list

A list of Rosters playing in this tournament.

NO

YES***

game

object

The Game being played in the tournament.

NO

NO

* If the prize pool has not been announced yet, or only partially, this list will only contain what key-value pairs that are available
** Only the available key-value pairs will show up here
*** If there are no resources of this kind yet connected to the Tournament these lists will empty

Suggest Edits

Head-2-Head Perf.

Get head to head performance data of competitors in a Series or Match.

 
Suggest Edits

Match performance

Match Performance is associated with a Match and contains performance information about the Rosters with respect to the specific Map played (if applicable).

 

The Match performance resource is available as a value in the Match resource.

{
  "winrate": {
    "over_all": {
      "1442": 0.6666666666,
      "512": 0.3333333333,
      "history": 12
    },
    "per_map": [
      {
        "map": {...},
        "1442": 0.75,
        "512": 0.25,
        "history": 58
      },
      {
        "map": {...},
        "1442": 0.45,
        "512": 0.55,
        "history": 12
      },
    ]
  }
}
Name
Type
Description
Nullable
Empty

winrate

object

The inter-Roster winrate for the two competing Rosters in the Match.

NO

NO

winrate.over_all

object

The overall inter-Roster winrate. Each Roster is a key with their winrate as the value, additionally there is a history key accounting for the the number of matches included when calculating said winrate.

YES*

NO

winrate.per_map

list

The list contains the inter-Roster winrate for the two competing Rosters per map. Each object looks like winrate.over_all with an additional Map resource.

NO

YES**

* If there are no known previous Matches for a Roster this will be null
** If maps are not applicable in the game or if the Rosters have not met before this object will be empty

Suggest Edits

Series performance

Series Performance is associated with a Series and contains several objects with performance information about the Teams or Players.

 

The Series performance resource is available as a value in the Series resource.

{
  "past_encounters": [Series],
  "recent_performance": {
    "512": [Series],
    "1442": [Series]
  }
}

All Series returned are Series that were played before the Series for which this request was made. past_encounters looks 1 year back and recent_performance is limited to 10 Series per roster, if any of those limits are too tight the /series end point can be used with a competitors filter to get the full Series history of a Team or Player.

Name
Type
Description
Nullable
Empty

past_encounters

list

A list of Series where these two Rosters have met before.

NO

YES*

recent_performance

object

An object where each Rosters id is a key whos corresponding value is a list of their 10 most recently played Series.

NO

NO

* If the Rosters have not met before, this list will be empty

Suggest Edits

Competitor Statistics

 
Suggest Edits

Player Stats

 

The Player Stats resource is available as an optional value in the Player resource, and is available via the /players/:id end point.

{
  "single_player": {
    // See Team Stats for details
  },
  "play_by_play": {
    // See Play by Play resource section for details
  }
}
Name
Type
Description
Nullable
Empty

single_player

object

These stats are identical to Team Stats but for a Player in a single-player Game like StarCraft or Smash. In Team Games like Counter-Stirke or Dota2 you will see single_player: null.

YES

NO

play_by_play

object

These stats relate to a Players individual performance in Series and Matches in Team Games. In Player Games like StarCraft or Smash you will see play_by_play: null.

YES

NO

Suggest Edits

Roster Stats

Line-up specific statistics

 

Roster Stats follow the same format as Team Stats (and Player Stats.single_player) but without the series scopes.

The omission of the series scopes is because Roster Stats are calculated solely based on the line-up that actually played a Match regardless of what Team they might have played for at that particular moment. Because actual line-ups can differ between Matches in a Series the series scopes are omitted from the data.

Suggest Edits

Team Stats

Statistics about a Team, disregarding their Roster history

 

The Team Stats resource is available as an optional value in the Team resource, and is available via the /teams/:id end point.

{
  "streak": {
    "series": {
      "current": 1,
      "best": 16,
      "worst": -6
    }, 
    "match": {
      "current": 3,
      "best": 25,
      "worst": -17
    }
  },
  
  "winrate": {
    "series": {
      "rate": 0.73262032085562,
      "history": 187,
      "per_format": [
        {
          "best_of": 1,
          "rate": 0.72033898305085,
          "history": 118
        },
        {
          "best_of": 3,
          "rate": 0.75862068965517,
          "history": 58
        },
        {
          "best_of": 5,
          "rate": 0.72727272727273,
          "history": 11
        }
      ]
    },
    "match": {
      "rate": 0.73262032085562,
      "history": 187,
      "per_map": [
        {
          "map": {},
          "rate": 0.75655178620689,
          "history": 58
        },
        {
          "map": {},
          "rate": 0.7203389727272,
          "history": 12
        },
      ]
    }
  },
  
  "nemesis": {
    "series": {
      "competitor": {...},
      "losses": 10
    },
    "match": {
      "competitor": {...},
      "losses": 20
    }
  },
  
  "dominating": {
    "series":{
      "competitor": {...},
      "wins": 13
    },
    "match":{
      "competitor": {...},
      "wins": 32
    }
  },
  "play_by_play": {...}
}

Depending on subscription level, different scopes of data will be available in the response.

Name
Type
Description
Nullable
Empty

streak

object

An object holding information about a Teams win streak with respect to series and match.

NO

NO

streak.{scope}.current

int

The current win streak of the Team. A positive number indicates a win streak, a negative number indicates a lose streak and 0 indicates that the last encounter was a tie.

NO

NO

streak.{scope}.best

int

The longest win streak of the Team (>=0).

NO

NO

streak.{scope}.worst

int

The longest losing streak of the Team (<=0).

NO

NO

winrate

object

An object holding information about a Teams winrate with respect to series and match.

NO

NO

winrate.{scope}.rate

float

The Teams over all winrate with respect to Series.

NO

NO

winrate.{scope}.history

int

The number of Series included when calculating the winrate.

NO

NO

winrate.series.per_format

list

Each object in the list contains, similarly to winrate.series.*, rate and history. Each object also contain best_of, accounting for the respective format.

NO

YES*

winrate.match.per_map

list

Each object in the list contains, similarly to winrate.match.*, rate and history. Each object also contain a Map resource, accounting for the respective Map.

NO

YES**

nemesis

object

An object holding information about Teams nemesis, or the Team it has lost against the most, with respect to series and match.

YES***

NO

nemesis.{scope}.competitor

resource

The Team that this Team has lost against the most.

NO

NO

nemesis.{scope}.losses

int

The number of encounters they have lost to the nemesis.

NO

NO

dominating

object

An object holding information about the Team that they have won against the most, with respect to series and match.

YES***

NO

dominating.{scope}.competitor

resource

The Team that this Team has won against the most.

NO

NO

dominating.{scope}.wins

int

The number of encounters they have won to the Team that they are dominating.

NO

NO

play_by_play

resource

These are the advanced play_by_play stats for the Team, for more information, see Get In Contact.

NO

YES****

* If the Team has not yet played any Series or Matches this will be empty
** If the Team has not played any Matches with a Map attribute this will be empty
*** If the Team has not yet won/lost a single Series/Match these will be null
**** If the Team has not yet played any matches with play_by_play stats enabled, this resource will be empty

Suggest Edits

More Standard Resources

Additional standard resources

 

These are some less commonly used resources amongst the resources that are available in the majority of the games.

Suggest Edits

Champion

A champion is the in-game entity that a player controls in LoL.

 
{
  "name": "Jayce",
  "external_id": 126,
  "images": {
    "default": "https://img.abiosgaming.com/other/game-assets/lol-champions/Jayce.png",
    "thumbnail": "https://img.abiosgaming.com/other/game-assets/lol-champions/thumbnails/Jayce.png"
  }
},
Name
Type
Description
Nullable
Empty

name

string

The name of the champion.

NO

NO

external_id

int

The ID associated with the champion in game.

NO

NO

images

object

The image/icon of the champion.

NO

NO

Suggest Edits

Country

A Country, nationality, or language associated with a resource.

 

The Country resource is available as a value in a number of API resources.

{
  "name": "Sweden",
  "short_name": "SE",
  "images": {
    "default": "https://img.abiosgaming.com/flags/Sweden.png",
    "thumbnail": "https://img.abiosgaming.com/flags/thumbnails/Sweden.png"
  }
}
Name
Type
Description
Nullable
Empty

name

string

The name of the Country.

NO

NO

short_name

string

The Country's abbreviation.

NO

NO

images

object

An object whos keys are sizes and values are URLs to images of the Country's flag.

NO

NO

Suggest Edits

Errors

These are the errors you may encounter using the API

 

An error response from the API has three fields, error is the HTTP error description, error_code is the numerical HTTP error code, the same as the response code in the header, and lastly error_description which is a longer more telling description of the the error and why you are receiving it.

{
  "error": "access_denied",
  "error_code": 401,
  "error_description": "Missing client id."
}

Different error types can appear at different endpoints depending on what parameters and values are possible to use at each respective end-point. Below is a non-exhaustive list of different errors and descriptions, as well as possible fixes/reasons why you are experiencing them.

4xx errors

code
error_description
reason/solution

400

  • Could not parse data.

401

  • Missing client id.
  • Missing client secret.
  • Invalid client credentials.
  • Missing or invalid grant type.
  • Unauthorized parameter.
  • Every request to the API needs to include an access token, add one and try again.
  • -
  • -
  • -
  • Your API access level/package does not include some data requested.

404

  • Resource not found.
  • The specified resource could not be found.

410

  • This status code is given to all resources that have been soft deleted. However, when requesting these soft-deleted resources the body will be resource as in a 200 response.

429

  • Too many requests
  • Please check your request amounts against your per second and per minute request rate limits.

5xx errors

code
error_description
reason/solution

502

  • Internal server error.
  • Something in the request made us incapable of handling it. If you are experiencing this and you are not sure why, please get in contact with us.

Other errors

Other errors than the ones above may appear as a result of some bug or glitch in our infrastructure or the infrastructure of some of our suppliers. These errors should be very rare, if you are experiencing this at a high rate, please contact us immediately.

Suggest Edits

Hero

A hero is a character played in fantasy games.

 

In Dota 2, heroes look like this:

{
  "name": "Oracle",
  "attribute": "intelligence",
  "images": {
    "large": "https://img.abiosgaming.com/other/game-assets/dota-heroes/oracle.png",
    "small": "https://img.abiosgaming.com/other/game-assets/dota-miniheroes/oracle.png"
  }
}
Name
Type
Description
Nullable
Empty

name

string

The name of the hero.

NO

NO

attribute

string

The heroe's attribute.

NO

NO

images.large

string

A link to a large image of the hero.

NO

NO

images.small

string

A link to a small image/icon of the hero.

NO

NO

Suggest Edits

Map

The Map played in a Match:

 

The Map resource is available as a value in the Match resource.

{
  "id": 5,
  "name": "Dust",
  "official": true,
  "game": {...}
}
Name
Type
Description
Nullable
Empty

id

integer

The id of the Map.

NO

NO

name

string

The name of the Map.

NO

NO

official

boolean

Whether this Map is considered an official esports map by the Game publisher and/or the esports community.

NO

NO

game

resource

The Game to which the map belongs.

NO

NO

Suggest Edits

Organisation

An organisation represent a grouping of Teams across games.

 

Organisations are logical groupings of Teams across different Games, they are available through the /teams, /organisations and /organisations/:id end points.

{
    "id": 6,
    "name": "Fnatic",
    "teams": [ 
        {
            "name": "Fnatic",
            "deleted_at": null,
            "id": 335,
            "short_name": "FNC",
            "images": {...},
            "country": {...},
            "social_media_accounts": [],
            "game": {
                "id": 2,
                "title": "LoL",
                "color": "5d76d0",
                "long_title": "League of Legends",
                "deleted_at": null,
                "images": {...}
            }
        },
        {
            "name": "Fnatic",
            "deleted_at": null,
            "id": 871,
            "short_name": "FNC",
            "images": {...},
            "country": {...},
            "social_media_accounts": [],
            "game": {
                "id": 5,
                "title": "CS:GO",
                "color": "fbb766",
                "long_title": "Counter-Strike: Global Offensive",
                "deleted_at": null,
                "images": {...}
            }
        },
        {...},
        {...},
        {...},
        {...},
    ]
}
Suggest Edits

Race

These are races or classes played in different games

 

The Race resource is available as a value in the Player resource.

{
  "id": 4,
  "game_id": 3,
  "name": "Protoss",
  "images": {
    "default": "https://img.abiosgaming.com/flags/Sweden.png",
    "thumbnail": "https://img.abiosgaming.com/flags/thumbnails/Sweden.png"
  }
}
Name
Type
Description
Nullable
Empty

id

int

The internal id of the Race.

NO

NO

game_id

int

The internal id of the Game in which this Race is played/used.

NO

NO

name

string

The name of Race.

NO

NO

images

object

Links to images associated with the Race.

NO

NO

Suggest Edits

Role

A Players in-game role.

 

The Role resource is a very simple resource that states what in-game role a Player has had during a specific period of time. The resource is always presented as a list current and historical Roles, to the extent available.

{
  "name": "Jungler",
  "from": "2017-10-27",
  "to": null
}
Name
Type
Description
Nullable
Empty

name

string

The name of the role.

NO

NO

from

date

The start of the period that this was the Role of the Player.

NO

NO

to

date

The end of the period that this was the Role of the Player.

YES*

NO

* If this is the current Role of the Player, to can be null if the Player is not under a contract to play a certain role for a specific time into the future.

Suggest Edits

Series Chain

The series chain accounts for where in a chain of series it belongs

 

The series chain accounts for where in a chain of series it belongs, and what the root chain is. The below is an example of the series chain resource of the series that constitutes the root of a chain. Please see the knowledge base to read more about Chained Series.

{
  "root_id": 175796,
  "series_id": 175796,
  "order": 1
}
Name
Type
Description
Nullable
Empty

root_id

int

The id of the Series that is the root of the chain, or in other words, the first Series in the said chain.

NO

NO

series_id

int

Self reference, the id of the Series in question.

NO

NO

order

int

What place in the chain the particular series has. 1 being the root with increasing order.

NO

NO

Suggest Edits

Sportsbook Odds

The sportsbook odds resource holds information about what odds are available for a Series at different sportsbooks.

 

The Sportsbook Odds resource a list and is available as a value in the Series resource. This resource is not generally available and needs special access permissions.

[
  {
    "sportsbook": "betway",
    "link": "https://betway.com/esports/markets/2312434?btag={affiliate_tag}",
    "moneyline": {
      "home": 2.352,
      "home_bet_slip": "https://betway.com/esports/markets/2312434/home?btag={affiliate_tag}",
      "away": 1.634,
      "away_bet_slip": "https://betway.com/esports/markets/2312434/away?btag={affiliate_tag}",
      "draw": null,
      "draw_bet_slip": null,
    }
  }
]
Name
Type
Description
Nullable
Empty

sportsbook

string

The name of the sportsbook operator that the odds are from.

NO

NO

link

string

A link to the match/market page at the sportsbook operator, if available. Otherwise a link to next best thing; the game specific section, the esports section or just the sportsbook itself, in that order.

NO

NO

moneyline

object

Object holding the "moneyline" odds for the Series, also known as "win-draw-win", "to-win" or "1X2".

NO

NO

money_line.home

float

The odds, in decimal form, for the "home" competitor. The home competitor corresponds to the one with seeding = 1 in the Series.

NO

NO

money_line.away

float

The odds, in decimal form, for the "away" competitor. The away competitor corresponds to the one with seeding = 2 in the Series.

NO

NO

money_line.draw

float

The odds, in decimal form, for the Series endin in a draw. If no such outcome is possible this field will be null.

YES

NO

money_line.{choice}_bet_slip

string

A deep link to the match/market page at the sportsbook operator, that also populates the bet slip with a bet for the specified choice: {home|away|draw}. If no such link is available from the sportsbook operator this field will be null.

YES

NO

Suggest Edits

Social Media Accounts

Social media accounts are objects that account for teams and players different social media accounts.

 

Social media accounts is a resource that is associated with Players and Teams. It is an unordered list of the competitors social media account(s).

[
    {
        "name": "Twitter",
        "slug": "twitter",
        "url": "https://twitter.com/teamsecret"
    },
    {
        "name": "Facebook",
        "slug": "facebook",
        "url": "https://www.facebook.com/TeamSecret"
    },
    {
        "name": "Twitch",
        "slug": "twitch",
        "url": "https://www.twitch.tv/teamsecret"
    }
]
Suggest Edits

Weapon

A weapon, 'nuff said.

 

In CS:GO, weapons look like this:

{
  "images": {
    "small": "https://img.abiosgaming.com/other/game-assets/csgo-weapons/usp_silencer.png"
  },
  "name": "usp_silencer"
},
Name
Type
Description
Nullable
Empty

images.small

string

A link to a small image of the weapon. Each image have different dimensions, but all have a height of 74px.

NO

NO

name

string

The name of the weapon.

NO

NO

Suggest Edits

Dota Match

The light pbp resource for Dota contains a subset of the data available in the postgame pbp. The light pbp resources can also be queried while the match is live (whenever we have live data) to get the current state of the match.

Available from the light summary endpoint

 
{
    "confirmed": true,
    "dire": {
        "roster": {
            "id": 42642
        },
        "score": 27,
        "is_winner": false,
        "structure_status": {
            "towers": {
                "top_tier_1": false,
                "top_tier_2": false,
                "top_tier_3": false,
                "mid_tier_1": false,
                "mid_tier_2": false,
                "mid_tier_3": false,
                "bot_tier_1": false,
                "bot_tier_2": false,
                "bot_tier_3": false,
                "top_tier_4": true,
                "bot_tier_4": true
            },
            "barracks": {
                "top_ranged": true,
                "top_melee": true,
                "mid_ranged": true,
                "mid_melee": true,
                "bot_ranged": true,
                "bot_melee": true
            }
        },
        "player_stats": [
            {
                "player": {
                    "id": 13860
                },
                "hero": {
                    "id": 41,
                    "name": "Faceless Void",
                    "external_id": 41,
                    "images": {
                        "large": "https://img.abiosgaming.com/other/game-assets/dota-heroes/faceless_void.png",
                        "small": "https://img.abiosgaming.com/other/game-assets/dota-miniheroes/faceless_void.png"
                    }
                },
                "side": 3,
                "seed": 6,
                "kills": 8,
                "deaths": 6,
                "assists": 2,
                "creep_kills": 305,
                "creep_denies": 14,
                "level": 21,
                "networth": 17753,
                "gpm": 547,
                "xpm": 516,
                "hero_damage": 15693,
                "tower_damage": 1655,
                "hero_healing": 0,
                "items": {
                    "backpack": {
                        "slot1": null,
                        "slot2": null,
                        "slot3": null
                    },
                    "inventory": {
                        "slot1": {
                            "id": 172,
                            "name": "Mask of Madness",
                            "external_id": 172,
                            "image": {
                                "default": "https://img.abiosgaming.com/other/game-assets/dota-items/mask_of_madness.png",
                                "thumbnail": "https://img.abiosgaming.com/other/game-assets/dota-items/thumbnails/mask_of_madness.png"
                            }
                        },
                        "slot2": {
                            "id": 116,
                            "name": "Black King Bar",
                            "external_id": 116,
                            "image": {
                                "default": "https://img.abiosgaming.com/other/game-assets/dota-items/black_king_bar.png",
                                "thumbnail": "https://img.abiosgaming.com/other/game-assets/dota-items/thumbnails/black_king_bar.png"
                            }
                        },
                        "slot3": {
                            "id": 63,
                            "name": "Power Treads",
                            "external_id": 63,
                            "image": {
                                "default": "https://img.abiosgaming.com/other/game-assets/dota-items/power_treads.png",
                                "thumbnail": "https://img.abiosgaming.com/other/game-assets/dota-items/thumbnails/power_treads.png"
                            }
                        },
                        "slot4": {
                            "id": 225,
                            "name": "Nullifier",
                            "external_id": 225,
                            "image": {
                                "default": "https://img.abiosgaming.com/other/game-assets/dota-items/nullifier.png",
                                "thumbnail": "https://img.abiosgaming.com/other/game-assets/dota-items/thumbnails/nullifier.png"
                            }
                        },
                        "slot5": {
                            "id": 123,
                            "name": "Linken's Sphere",
                            "external_id": 123,
                            "image": {
                                "default": "https://img.abiosgaming.com/other/game-assets/dota-items/sphere.png",
                                "thumbnail": "https://img.abiosgaming.com/other/game-assets/dota-items/thumbnails/sphere.png"
                            }
                        },
                        "slot6": {
                            "id": 36,
                            "name": "Magic Wand",
                            "external_id": 36,
                            "image": {
                                "default": "https://img.abiosgaming.com/other/game-assets/dota-items/magic_wand.png",
                                "thumbnail": "https://img.abiosgaming.com/other/game-assets/dota-items/thumbnails/magic_wand.png"
                            }
                        }
                    }
                }
            },
            ...
        ]
    },
    "radiant": {
        ...
    },
    "length": 2312,
    "draft": [
        {
            "order": 1,
            "type": "ban",
            "roster": {
                "id": 42642
            },
            "hero": {
                "id": 83,
                "name": "Treant Protector",
                "external_id": 83,
                "images": {
                    "large": "https://img.abiosgaming.com/other/game-assets/dota-heroes/treant.png",
                    "small": "https://img.abiosgaming.com/other/game-assets/dota-miniheroes/treant.png"
                }
            }
        },
        ...
    ],
    "ended": true,
    "building_kills": [
        {
            "match_time": 676000,
            "victim": {
                "type": "tower",
                "position": {
                    "tier": 1,
                    "lane": "mid",
                    "side": "dire"
                }
            }
        },
        ...
    ]
}

The root object contains the following data:

Name
Type
Description
Nullable

confirmed

boolean

If the data is only based on a non official data stream this will be false. If it is an official data stream, or the underlying data is changed to official data, this will be true.

No

length

int

The length of the Match in seconds.

No

dire

object

Holds all stats and ids related to the dire team.

No

radiant

object

Holds all stats and ids related to the radiant team.

No

draft

list

A list of draft objects, see more below.

No

ended

boolean

Indicates whether the match has ended or not

No

building_kills

list

A list of building kill objects

No

The 'draft' list contains the following data:

Name
Type
Description
Nullable

order

int

The order of the pick event.

Yes, if the order is unknown.

type

enum

The type of the draft event, can be pick or ban.

No

roster.id

int

Refers to the ID of the Roster that performed the draft event.

roster can be null if team cannot be resolved. Can happen for unconfirmed data.

hero

object

A Hero resource of the hero picked/banned.

No

The 'building_kills' list contains the following data:

Name
Type
Description
Nullable

match_time

int

match time in milliseconds.

No

victim.type

string

The type of building, can be tower or barracks.

No

victim.position.tier

int

The tier (1-4) of the tower.

Yes, if non-applicable (barracks) or unknown.

victim.position.lane

string

Indicates which lane the destroyed structure was standing on. Can be top, mid, or bot.

Yes, if unknown

victim.position.side

string

Indicates which team the destroyed structure belonged to. Can be radiant or dire.

No

The 'radiant' and 'dire' objects contain the following data:

Name
Type
Description
Nullable

roster.id

int

Refers to the ID of the Roster playing on the given side.

roster can be null if team cannot be resolved. Can happen for unconfirmed data.

score

int

The teams current score.

No

is_winner

bool

Indicates if the team won the match. For live games this is false for both teams.

No

structure_status

object

Indicates true/false if a building is still standing for that team. See example output for full structure.

No

player_stats

object

See player_stats object below.

No

The 'player_stats' object contains the following:

player.id

int

The ID of the Player.

player can be null if player cannot be resolved. Can happen for unconfirmed data.

hero

object

A Hero resource of the player's chosen hero.

Yes, before picking phase is over.

side

string

The team the player is playing on. Can be radiant or dire.

No

seed

int

The player's seed 1-10.

No

kills

int

The player's kills.

No

deaths

int

The player's deaths.

No

assists

int

The player's assists.

No

creep_kills

int

Total creep kills.

No

creep_denies

int

Creep denies.

No

level

int

Level.

No

networth

int

Networth.

No

gpm

int

Gold per minute.

No

xpm

int

Experience per minute.

No

hero_damage

int

Amount of damage dealt to enemy heroes.

Yes, if unknown

tower_damage

int

Amount of damage dealt to enemy buildings.

Yes, if unknown

hero_healing

int

Amount of healing given to allied heroes excluding yourself. (As calculated on Dota2 scorescreen).

Yes, if unknown

items

object

Contains the backpack and inventory for each player. All item slots are nullable to indicate that they are empty. See example output above.

No

Suggest Edits

CS:GO Match

The light pbp resource for CS:GO contains a subset of the data available in the postgame pbp. The light pbp resources can also be queried while the match is live (whenever we have live data) to get the current state of the match.

Available from the light summary endpoint

 
{
    "confirmed": true,
    "home": {
        "roster": {
            "id": 55973
        },
        "is_winner": false,
        "score": 5,
        "player_stats": [
            {
                "player": {
                    "id": 37737
                },
                "kills": 13,
                "assists": 3,
                "deaths": 18
            },
            ...
        ]
    },
    "away": {
        ...
    },
    "length": 2340,
    "rounds": [
        {
            "round_nr": 1,
            "t_side": {
                "roster": {
                    "id": 55973
                },
                "is_winner": false,
                "player_stats": [
                    {
                        "player": {
                            "id": 37737
                        },
                        "kills": 0,
                        "assists": 0,
                        "deaths": 1,
                        "cash": {
                            "spent": 800
                        }
                    },
                    ...
                ]
            },
            "ct_side": {
                ...
            },
            "bomb_events": [
                {
                    "type": "planted",
                    "match_time": 29375,
                    "bomb_planted": false,
                    "time_since_plant": 0
                },
                ...
            ],
            "kills": [
                {
                    "match_time": 0,
                    "bomb_planted": true,
                    "time_since_plant": 35500,
                    "attacker": {
                        "player": {
                            "id": 33837
                        },
                        "roster": {
                            "id": 55571
                        }
                    },
                    "victim": {
                        "player": {
                            "id": 38428
                        },
                        "roster": {
                            "id": 55973
                        }
                    },
                    "assist": {
                        "player": {
                            "id": 26810
                        },
                        "roster": {
                            "id": 55571
                        }
                    },
                    "weapon": {
                        "id": 4,
                        "name": "usp_silencer",
                        "images": {
                            "small": "https://img.abiosgaming.com/other/game-assets/csgo-weapons/usp_silencer.png"
                        }
                    }
                },
                ...
            ],
            "win_reason": {
                "id": 8,
                "name": "terrorists eliminated",
                "images": {
                    "small": "https://img.abiosgaming.com/other/game-assets/csgo-winreasons/fallback.png"
                }
            }
        },
        ...
    ],
    "ended": true
}

The root object contains the following data:

Name
Type
Description
Nullable

confirmed

boolean

If the data is only based on a non official data stream this will be false. If it is an official data stream, or the underlying data is changed to official data, this will be true.

No

length

int

The length of the Match in seconds.

No

home

object

Holds all stats and ids related to the home team.

No

away

object

Holds all stats and ids related to the away team.

No

rounds

list

A list of rounds objects, see more below.

No

ended

boolean

Indicates whether the match has ended or not

No

The 'home' and 'away' objects contain the following data regarding each team:

Name
Type
Description
Nullable

roster.id

int

Refers to the ID of the Roster.

roster can be null if team cannot be resolved. Can happen for unconfirmed data.

is_winner

boolean

Indicates if the team won the match. Is false for both teams while the match is live

No

score

int

The number of rounds won by the team.

Yes.

player_stats

list

Contains a list of player_stat objects for all the players on the team. See below.

No

The 'rounds' list contains objects with the following data:

Name
Type
Description
Nullable

round_nr

int

The round number of the round.

No

t_side.roster.id

int

Refers to the ID of the Roster playing on the 'terrorist' side.

No

t_side.is_winner

boolean

Indicates whether the 'terrorists' won the round

Yes, is null for un-ended rounds.

t_side.player_stats

list

Contains the round specific stats for the players on the 'terrorist' team.

No

ct_side

object

Same as t_side vars but for the 'counter-terrorist' team.

No

bomb_events

list

Contains all the bomb events that occured during the round. See 'bomb_events' below.

No

kills

list

Contains a list of kills that occurred during the round.

No

win_reason

object

Contains the win reason for the round. See 'win_reason' below.

Yes, is null for un-ended rounds.

The 'player_stats' objects contain the following data:

Name
Type
Description
Nullable

player.id

int

Refers to the ID of the Player playing on the given side.

player can be null if player cannot be resolved. Can happen for unconfirmed data.

kills

int

Kills.

No

assists

int

Assists.

No

deaths

int

Deaths.

No

cash.spent

int

Cash spent.

Yes. Only available on round level player stats.

The 'bomb_events' objects contains the following:

Name
Type
Description
Nullable

Type

string

Indicates the type of bomb event. Can be planted, exploded or defused.

No

match_time

int

The time remaining in the round in milliseconds, or '0' if the bomb has been planted.

No

bomb_planted

boolean

Indicates whether the bomb has been planted.

No

time_since_plant

int

The amount of time elapsed since the bomb was planted in milliseconds.

No

The 'kills' objects contain the following:

Name
Type
Description
Nullable

match_time

int

The time remaining in the round in milliseconds, or '0' if the bomb has been planted.

No

bomb_planted

boolean

Indicates whether the bomb has been planted.

No

time_since_plant

int

The amount of time elapsed since the bomb was planted in milliseconds.

No

attacker.player.id

int

Id of the attacking Player.

The '.attacker' is nullable. This occurs when dying to disconnects or bomb explosions, such kill events are not counted to the scoreboard. The '.player' is also nullable if the player is unknown. The '.id' is not nullable.

attacker.roster.id

int

Id of the Roster the attacking Player belonged to.

The '.attacker' is nullable. This occurs when dying to disconnects or bomb explosions, such kill events are not counted to the scoreboard. The '.roster' and '.id' are not nullable.

victim.player.id

int

Id of the dying Player.

The '.victim' is not nullable. The '.player' is nullable if the player is unknown. The '.id' is not nullable.

victim.roster.id

int

Id of the Roster the dying Player belonged to.

No

assist.player.id

int

Id of the assisting Player.

The '.assist' is nullable if there was no assist. The '.player' is also nullable if the player is unknown. The '.id' is not nullable.

assist.roster.id

int

Id of the Roster the assisting Player belonged to.

The '.assist' is nullable if there was no assist. The '.roster' and '.id' are not nullable.

weapon

object

Contains the Weapon that the kill was achieved with.

No

The 'win_reason' object contains the following:

Name
Type
Description
Nullable

id

int

Id of the win reason

No

name

string

Win reason name.

No

images.small

string

Link to win reason icons.

No

Suggest Edits

LoL Match

The light pbp resource for LoL contains a subset of the data available in the postgame pbp. The light pbp resources can also be queried while the match is live (whenever we have live data) to get the current state of the match.

Available from the light summary endpoint

 
{
    "confirmed": true,
    "blue": {
        "roster": {
            "id": 54769
        },
        "is_winner": true,
        "score": 15,
        "gold": {
            "earned": 65.086
        },
        "turrets": {
            "destroyed": 7
        },
        "inhibitors": {
            "destroyed": 0
        },
        "barons": {
            "killed": 1
        },
        "dragons": {
            "killed": 4
        },
        "players": [
            {
                "player": {
                    "id": 31137
                },
                "kills": 3,
                "deaths": 5,
                "assists": 9,
                "cks": 38,
                "inventory": {
                    "slot1": {
                        "id": 1414,
                        "name": "Skirmisher's Sabre (Runic Echoes)",
                        "image": {
                            "default": "https://img.abiosgaming.com/other/game-assets/lol-items/skirmisher_runic.png",
                            "thumbnail": "https://img.abiosgaming.com/other/game-assets/lol-items/thumbnails/skirmisher_runic.png"
                        }
                    },
                    "slot2": {
                        "id": 3157,
                        "name": "Zhonya's Hourglass",
                        "image": {
                            "default": "https://img.abiosgaming.com/other/game-assets/lol-items/zhonyas_hourglass.png",
                            "thumbnail": "https://img.abiosgaming.com/other/game-assets/lol-items/thumbnails/zhonyas_hourglass.png"
                        }
                    },
                    "slot3": {
                        "id": 2055,
                        "name": "Control Ward",
                        "image": {
                            "default": "https://img.abiosgaming.com/other/game-assets/lol-items/control_ward.png",
                            "thumbnail": "https://img.abiosgaming.com/other/game-assets/lol-items/thumbnails/control_ward.png"
                        }
                    },
                    "slot4": {
                        "id": 3020,
                        "name": "Sorcerer's Shoes",
                        "image": {
                            "default": "https://img.abiosgaming.com/other/game-assets/lol-items/sorcerers_shoes.png",
                            "thumbnail": "https://img.abiosgaming.com/other/game-assets/lol-items/thumbnails/sorcerers_shoes.png"
                        }
                    },
                    "slot5": {
                        "id": 3102,
                        "name": "Banshee's Veil",
                        "image": {
                            "default": "https://img.abiosgaming.com/other/game-assets/lol-items/banshees_veil.png",
                            "thumbnail": "https://img.abiosgaming.com/other/game-assets/lol-items/thumbnails/banshees_veil.png"
                        }
                    },
                    "slot6": {
                        "id": 1026,
                        "name": "Blasting Wand",
                        "image": {
                            "default": "https://img.abiosgaming.com/other/game-assets/lol-items/blasting_wand.png",
                            "thumbnail": "https://img.abiosgaming.com/other/game-assets/lol-items/thumbnails/blasting_wand.png"
                        }
                    }
                },
                "champion": {
                    "id": 60,
                    "name": "Elise",
                    "images": {
                        "default": "https://img.abiosgaming.com/other/game-assets/lol-champions/Elise.png",
                        "thumbnail": "https://img.abiosgaming.com/other/game-assets/lol-champions/thumbnails/Elise.png"
                    }
                }
            },
            ...
        ]
    },
    "red": {
        ...
    },
    "match_length": 2116,
    "ended": true,
    "building_kills": [
        {
            "match_time": 791120,
            "attacker": {
                "player": {
                    "id": 31137
                },
                "roster": {
                    "id": 54769
                }
            },
            "victim": {
                "type": "turret",
                "position": {
                    "tier": null,
                    "lane": null,
                    "side": "red"
                }
            },
            "assists": [
                {
                    "player": {
                        "id": 40453
                    },
                    "roster": {
                        "id": 54769
                    }
                },
                {
                    "player": {
                        "id": 40442
                    },
                    "roster": {
                        "id": 54769
                    }
                }
            ]
        },
        ...
    ],
    "elite_kills": [
        {
            "match_time": 669051,
            "attacker": {
                "player": {
                    "id": 31137
                },
                "roster": {
                    "id": 54769
                }
            },
            "victim": {
                "id": 11,
                "name": "Fire Dragon"
            }
        },
        ...
    ],
    "kills": [
        {
            "match_time": 573995,
            "attacker": {
                "player": {
                    "id": 40435
                },
                "roster": {
                    "id": 55968
                }
            },
            "victim": {
                "player": {
                    "id": 31137
                },
                "roster": {
                    "id": 54769
                }
            },
            "assists": [
                {
                    "player": {
                        "id": 40441
                    },
                    "roster": {
                        "id": 55968
                    }
                },
                {
                    "player": {
                        "id": 44773
                    },
                    "roster": {
                        "id": 55968
                    }
                }
            ]
        },
        ...
    ]
}

The root object contains the following data:

Name
Type
Description
Nullable

confirmed

boolean

If the data is only based on a non official data stream this will be false. If it is an official data stream, or the underlying data is changed to official data, this will be true.

No

length

int

The length of the Match in seconds.

No

blue

object

Holds all stats and ids related to the blue team.
See the 'team_object' below.

No

red

object

Holds all stats and ids related to the red team.
See the 'team_object' below.

No

ended

boolean

Indicates whether the match has ended or not.

No

building_kills

list

A list of 'building_kill' objects. See below.

No

elite_kills

list

A list of 'elite_kill' objects. See below.

No

kills

list

A list of 'player_kill' objects. See below.

No

The 'building_kills' list contains the following data:

Name
Type
Description
Nullable

match_time

int

The time at which the building was destroyed.

No

attacker

object

An object describing the player and team that destroyed the building.

Yes, 'null' if the attacker is unknown.

attacker.player.id

int

The id of the Player that destroyed the building.

Yes '.player' is 'null' if unkown or if the attacker is not a player.

attacker.roster.id

int

The id of the Roster that destroyed the building.

No

victim

object

An object describing the identity of the dying building.

No

victim.type

string

A string describing the type of the structure. Can be 'turret' or 'inhibitor'

No

victim.position.tier

int

An int describing how far from the base a turret is located. The outer most turrets are tier 1.

Yes, null if unknown or not applicable (inhibitors)

victim.position.lane

string

A string describing in which lane the building is located. Can be 'top', 'mid' or 'bot'.

Yes, null if unknown

victim.position.side

string

Indicates which team the building belonged to. Can be 'red' or 'blue'

No

assists

list

Objects in the list identify assisters to the building destruction. Follows the same format ass the 'attacker' object.

No

The 'elite_kills' list contains the following data:

Name
Type
Description
Nullable

match_time

int

The time at which the elite was killed.

No

attacker

object

An object describing the player and team that killed the elite.

Yes, 'null' if the attacker is unknown.

attacker.player.id

int

The id of the Player that killed the elite.

Yes '.player' is 'null' if unkown or if the attacker is not a player.

attacker.roster.id

int

The id of the Roster that killed the elite.

No

victim.id

int

The id of the Elite that was killed.

No

victim.name

string

The name of the Elite that was killed.

No

The 'kills' list contains the following 'player_kills' objects the following data:

Name
Type
Description
Nullable

match_time

int

The time at which the elite was killed.

No

attacker

object

An object describing the player and team that got the kill.

Yes, 'null' if the attacker is unknown.

attacker.player.id

int

The id of the Player that got the kill.

Yes '.player' is 'null' if unkown or if the attacker is not a player.

attacker.roster.id

int

The id of the Roster of the Player that got the kill.

No

victim

object

An object describing the player and team that was killed. Follows the same format ass the 'attacker' object.

No

assists

list

Objects in the list identify assisters to the building destruction. Follows the same format ass the 'attacker' object.

No

The 'red' and 'blue', 'team_objects' contain the following:

Name
Type
Description
Nullable

roster.id

int

The id of this teams Roster.

roster can be null if team cannot be resolved. Can happen for unconfirmed data.

score

int

Score.

No

gold.earned

float

Gold earned in thousands.

No

turrets.destroyed

int

Number of turrets destroyed by this team.

No

inhibitors.destroyed

int

Number of inhibitors destroyed by this team.

No

barons.killed

int

Number of barons killed by this team.

No

dragons.killed

int

Number of dragons killed by this team.

No

players

list

A list of player specific stats. See 'player_stats' below.

No

The 'player_stats' objects contain the following:

Name
Type
Description
Nullable

player.id

int

The id of Player.

player can be null if player cannot be resolved. Can happen for unconfirmed data.

kills

int

The number of kills by this player.

No

deaths

int

The number of deaths by this player.

No

assists

int

The number of assists by this player.

No

cks

int

The number of creep kills by this player.

No

inventory

object

An object describing the inventory of this player. See the example json above for the full struct. Empty item slots will be occupied by a specific "no item" item that has id:0 and a fallback image.

No

Suggest Edits

Dota PbP Resources

 

These are the Play-by-Play resources available for Dota 2. There are also another set of resources available for live push data in Dota 2, see more here.

Suggest Edits

Player PbP

 
{
  "stats": {
    "matches": 18,
    "wins": 15,
    "avg_kills": 8,
    "avg_deaths": 3,
    "avg_assists": 4,
    "avg_creep_kills": 177.2345,
    "avg_creep_denies": 15.5477,
    "avg_gpm": 436,
    "avg_xpm": 507
  },
  "hero_stats": {
    "attribute": {
      "strength": {
        "matches": 75,
        "wins": 35,
        "avg_kills": 8,
        "avg_deaths": 3,
        "avg_assists": 4,
        "avg_creep_kills": 177.2345,
        "avg_creep_denies": 15.5477,
        "avg_gpm": 436,
        "avg_xpm": 507
      },
      "agility": {...},
      "intelligence": {...},
    },
    "top_heroes": [  // 5 most played heroes
      {
        "hero": {...},
        "matches": 75,
        "wins": 35,
        "avg_kills": 8,
        "avg_deaths": 3,
        "avg_assists": 4,
        "avg_creep_kills": 177.2345,
        "avg_creep_denies": 15.5477,
        "avg_gpm": 436,
        "avg_xpm": 507
      }
    ],
  },
  "faction_stats": { 
    "radiant": {
      "matches": 342,
      "wins": 167
    },
    "dire": {
      "matches": 342,
      "wins": 175
    }
  }
}

Outer keys:

Name
Type
Description

stats

object

An object containing several keys describing the Players overall performance over the given time period.

hero_stats

object

An object containing two keys, 'attribute' and 'top_heroes', that accounts for the over all statistics of the Player with respect to hero abilities and heroes played.

faction_stats

object

An object containing two keys, 'radiant' and 'dire', that accounts for the over all statistics of the Player with respect to the fraction played.

The keys of the 'stats' object:

Name
Type
Description

matches

int

Number of Matches the Player has participated in the last month(s) where detailed stats are available.

wins

int

Number of wins of the Matches logged.

avg_kills

float

The average number of kills per Match.

avg_deaths

float

The average number of deaths per Match.

avg_assists

float

The average number of assists per Match.

avg_creep_kills

float

The average number of creep kills per Match.

avg_creep_denies

float

The average number of creep denies per Match.

avg_gpm

float

The average gold-per-minute per Match.

avg_xpm

float

The average experience-per-minute per Match.

The keys of the 'hero_stats.attribute' objects and the objects within 'hero_stats.top_heroes' list:

Name
Type
Description

attribute.{type}

object

These objects are agility, strength and intelligence corresponding to the distinct attributes of the heroes.

matches

int

Number of Matches the Player has participated in the last 3 months where detailed stats are available.

wins

int

Number of wins of the Matches logged.

avg_kills

float

The average number of kills per Match.

avg_deaths

float

The average number of deaths per Match.

avg_assists

float

The average number of assists per Match.

avg_creep_kills

float

The average number of creep kills per Match.

avg_creep_denies

float

The average number of creep denies per Match.

avg_gpm

float

The average gold-per-minute per Match.

avg_xpm

float

The average experience-per-minute per Match.

hero

object

Only available in the objects in the hero_stats.top_heroes list. Accounts for which hero, of the top 5 most played by the Player, the stats relate to.

The keys of the 'faction_stats' object:

Name
Type
Description

faction_stats.{faction}

object

These object keys are radiant and dire corresponding to which side of the map, faction, the stats relate to.

{faction}.matches

int

Number of Matches the Player has participated in, playing as the given faction, the last 3 months where detailed stats are available.

{faction}.wins

int

Number of wins of the Matches logged.

 
{
  "faction_stats": { 
    "radiant": {
      "matches": 342,
      "wins": 167
    },
    "dire": {
      "matches": 342,
      "wins": 175
    }
  },
  "drafts": {
    "own": {
      "most_picked": [ // ordered top 10 list
        {
          "amount": 95,
          "wins": 11,
          "hero": {...}
        },
      ],
      "most_banned": [ ] // ordered top 10 list
    },
    "opponents": {
      "most_picked": [ ], // ordered top 10 list
      "most_banned": [ ] // ordered top 10 list
    },
  },
  "top_stats": {
    "kills": {
    	"player_id": 65,
      "kills": 35,
      "against": {Team},
      "match_id": 87521,
      "hero": {...}
    },
    "gpm": {
    	"player_id": 7523,
      "gpm": 1254,
      "against": {Team},
      "match_id": 210021,
      "hero": {...}
    },
    "xpm": {
    	"player_id": 3598,
      "xpm": 662,
      "against": {Team},
      "match_id": 87543,
      "hero": {...}
    },
    "dmg_given": {
    	"player_id": 3598,
      "dmg_given": 6962,
      "against": {Team},
      "match_id": 87543,
      "hero": {...}
    },
  	"creep_kills": {
    	"player_id": 24879,
      "last_hits": 875,
      "against": {Team},
      "match_id": 287320,
      "hero": {...}
    },
    "creep_denies": {
    	"player_id": 11575,
      "denies": 578,
      "against": {Team},
      "match_id": 24354,
      "hero": {...}
    },
  },
  "top_matches": {
    "avg_length": 32456,
  	"longest": {
      "won": {
      	"match_id": 324125,
        "against": {Team},
        "length": 23414
      },
      "lost": {...},
    },
    "shortest": {
      "won": {
      	"match_id": 324125,
        "against": {Team},
        "length": 23414
      },
      "lost": {...},
    },
    "avg_kpm": 0.8542,
    "kpm": { // kills per minute
    	"highest": {
      	"kpm": 2.2134,
        "against": {Team},
        "match_id": 45323
      },
      "lowest": {...}
    }
  },
  "average": {
   "match": {
   "kills": 23.868000000000002,
   "deaths": 22.0945,
   "assists": 55.151,
   "gpm": 2199.8180950812575,
   "xpm": 2396.4504843657874,
   "length": 2107975.452830189,
   "wards": {
    "observers": {
     "killed": 3.7169999999999996,
     "placed": 14.7925
    },
    "sentries": {
     "killed": 4.17,
     "placed": 16.9435
    }
   },
   "structures": {
    "towers": {
     "taken": 6.9057,
     "lost": 5.5849,
     "denied": 0.3208
    },
    "barracks": {
     "taken": 2.3962,
     "lost": 1.4528,
     "denied": 0
    }
   },
   "creeps": {
    "lane": {
     "kills": 594.2265,
     "denies": 105.321
    },
    "neutral": {
     "roshan": 0.9623,
     "total": 256.604
    }
   },
   "first_blood": {
    "rate": 0.566,
    "taken_at": 275637.2667
   }
  }
 }
}
Suggest Edits

Match PbP

 
{
  "radiant_roster": 18368,
  "dire_roster": 18367,
  "match_length": 1698486,
  "draft_seq": [
    {
      "order": 1,
      "type": "pick",
      "roster_id": 18367,
      "hero": {
        "name": "Oracle",
        "attribute": "intelligence",
        "external_id": 111,
        "images": {
          "large": "https://img.abiosgaming.com/other/game-assets/dota-heroes/oracle.png",
          "small": "https://img.abiosgaming.com/other/game-assets/dota-miniheroes/oracle.png"
        }
      }
    },
    {...},
  ],
  "first_blood": {
    "killer": 24531,
    "victim": 7651,
    "at_time": 188098
  },
  "kills": [ // An ordered list
    {
      "killer": 24531,
      "victim": 7651,
      "at_time": 188098,
      "assists": [
        11613,
        11403
      ]
    },
  ],
  "structure_dest": [ // An ordered list
    {
      "killer": 10824,
      "structure_type": "tower",
      "structure_pos": "radiant_tower_top_1",
      "at_time": 455200,
    },
  ],
  "player_stats": [
    {
      "player_id": 10825,
      "hero": {...},
      "kills": 7,
      "assists": 2,
      "deaths": 1,
      "gpm": 616.93,
      "xpm": 613.64061876283,
      "levels": {
        "2": 56697,
        "3": 99520,
        "4": 154340,
      },
      "creep_kills": 227,
      "creep_denies": 72,
      "hero_dmg": {
        "given": {
          "by_hero": {
            "hp_removal": 0,
            "magical_dmg": 1164,
            "physical_dmg": 1456,
            "pure_dmg": 0
          },
          "by_mobs": {
            "hp_removal": 0,
            "magical_dmg": 504,
            "physical_dmg": 1971,
            "pure_dmg": 0
          }
        },
        "taken": {
          "from_heroes": {
            "hp_removal": 0,
            "magical_dmg": 1423,
            "physical_dmg": 1410,
            "pure_dmg": 0
          },
          "from_mobs": {
            "hp_removal": 0,
            "magical_dmg": 306,
            "physical_dmg": 4911,
            "pure_dmg": 0
          }
        },
      },
      "hero_healing": {
        "given": {
          "by_hero": 0,
          "by_mobs": 0
        },
        "taken": {
          "from_heroes": 0,
          "from_mobs": 0
        }
      },
      "wards": {
        "observers": {
          "killed": 0,
          "placed": 1
        },
        "sentries": {
          "killed": 0,
          "placed": 2
        }
      },
      "camps_stacked": 6,
      "runes": {
        "double_damage_runes": 0,
        "haste_runes": 1,
        "illusion_runes": 0,
        "invisibility_runes": 1,
        "regeneration_runes": 0,
        "bounty_runes": 3,
        "arcane_runes": 0
      },
      "items": {
        "inventory": { // 6 slots, 1-6
          "slot_1": {
            "name": "Ethereal Blade",
            "image": {
              "default": "https://img.abiosgaming.com/other/game-assets/dota-items/ethereal_blade.png",
              "thumbnail": "https://img.abiosgaming.com/other/game-assets/dota-items/thumbnails/ethereal_blade.png"
            }
          },
          "slot_2": {...},
        },
        "backpack": {...}, // 3 slots, 1-3
        "stash": {...}, // 6 slots, 1-6
      }   
    }
  ],
  "roshan_events": [
    {
      "type": "kill",
      "killer": 10825,
      "at_time": 795372
    },
    {
      "type": "kill",
      "killer": 24531,
      "at_time": 1400761
    }
  ]
}

All times shown are in milliseconds. A Dota 2 game starts at time -90,000 (-90 seconds). Time 0 takes place at the point of the first creep wave, or to put it another way, the first creep wave happens 90 seconds into the match. This means that any event that takes place before the first creep wave will have a negative time associated with it.

Outer keys:

Name
Type
Description

radiant_roster

int

The Roster-id of the Roster playing on the Radiant side of the map.

dire_roster

int

The Roster-id of the Roster playing on the Dire side of the map.

match_length

int

The length of the Match in milliseconds.

draft_seq

list

An ordered list of "draft objects", beginning with the first pick/ban. These objects account for the picks and bans of the respective Rosters.

first_blood

object

Object accounting for the first kill ("First Blood") in the Match.

kills

list

An ordered list of 'kills' objects, beginning with the first one. See details below.

structure_dest

list

An ordered list of 'structure_dest' objects, beginning with the first one. See details below.

player_stats

list

An ordered list of 'player_stats' objects. See details below.

roshan_events

list

An ordered list of events involving roshan.

The 'kills' list contains objects with the following key pairs:

Name
Type
Description

killer

int

The ID of the Player who was awarded the kill.

victim

int

The ID of the Player who was killed.

at_time

int

The time, in millisecond, into the Match when the kill took place.

assists

list

A list of Player IDs who were awarded assists to the kill.

The 'structure_dest' list contains objects with the following key pairs:

Name
Type
Description

killer

int

The ID of the Player who was awarded the destruction.

structure_type

enum

The structure type: tower, barracks, filler, ancient, fountain & shrine.

structure_pos

enum

The structure positions: {dire|radiant}_{ranged|melee}_rax_{bot|mid|top}, {dire|radiant}_tower_{bot|mid|top}_{1|2|3}, {dire|radiant}_tower_{4}, {dire|radiant}_fillers, {dire|radiant}_shrine & {dire|radiant}_ancient.

at_time

int

The time, in millisecond, into the Match when the destruction took place.

The 'player_stats' list contains objects with the following key pairs:

Name
Type
Description

player_id

int

The ID of the Player who the stats regard.

hero

object

An object containing the key value pair name: hero_name(string).

kills

int

The number of kills awarded the Player during the Match.

assists

int

The number of kill assists awarded the Player during the Match.

deaths

int

The number of times the Player died during the Match.

gpm

float

The average gold gained per minute for the Player during the Match.

xpm

float

The average experiance gained per minute for the Player during the Match.

levels

object

An object containing key value pairs of the match times when the hero became a certain level level: ms_time(int).

creep_kills

int

The number of creeps killed by the Player during the Match.

creep_denies

int

The number of creeps denied by the Player during the Match.

hero_dmg

object

An object containing the aggregated damage for the hero or its controlled mobs during the Match.

hero_dmg.given

object

An object containing the aggregated damage dealt by the hero or its controlled mobs during the Match.

hero_dmg.given.by_hero

object

An object containing key-value pairs of the type and amount of damage dealt by the hero during the Match. Damage types are hp_removal, magical_dmg, physical_dmg & pure_dmg and are all integers.

hero_dmg.given.by_mobs

object

An object containing key-value pairs of the type and amount of damage dealt by mobs controlled by the hero during the Match. Damage types are hp_removal, magical_dmg, physical_dmg & pure_dmg and are all integers.

hero_dmg.taken

object

An object containing the aggregated damage dealt to the hero during the Match.

hero_dmg.taken.from_heroes

object

An object containing key-value pairs of the type and amount of damage dealt to the hero by other heroes during the Match. Damage types are hp_removal, magical_dmg, physical_dmg & pure_dmg and are all integers.

hero_dmg.taken.from_mobs

object

An object containing key-value pairs of the type and amount of damage dealt to the hero by other heroes mobs during the Match. Damage types are hp_removal, magical_dmg, physical_dmg & pure_dmg and are all integers.

hero_healing

object

An object containing the aggregated healing for the hero or its controlled mobs during the Match.

hero_healing.given

object

An object containing the aggregated healing bone by the hero or its controlled mobs during the Match.

hero_healing.given.{by_hero|by_mobs}

int

The amount of healing done by the hero or the heroes mobs during the Match.

hero_healing.taken

object

An object containing the aggregated healing given to the hero during the Match.

hero_healing.taken.{from_heroes|by_mobs}

int

The amount of healing given to the hero by other heroes or hero controlled mobs during the Match.

items

object

An object containing the heroes item information at the end of the Match.

items.inventory

object

An object containing the item the hero had in its inventory at the end of the Match. The inventory has 6 numerated slots. Each slot is either null or an item object, depending on if the hero had an item in said slot at the end of the Match. See item format below.

items.backpack

object

An object containing the item the hero had in its backpack at the end of the Match. The backpack has 3 numerated slots. Each slot is either null or an item object, depending on if the hero had an item in said slot at the end of the Match. See item format below.

items.stash

object

An object containing the item the hero had in its stash at the end of the Match. The stash has 6 numerated slots. Each slot is either null or an item object, depending on if the hero had an item in said slot at the end of the Match. See item format below.

items.X.slot_{1-6}

object

An item has a name(string) and an Image attribute.

Suggest Edits

Series PbP

 

The scoreboard object in the summary data of a Series contains data relating to each Players performance in the Series, grouped by the seeding key of the respective competitor. As an example, if TeamA has seeding 1 in the Series then you will find data for TeamAs players in the array with key 1 in scoreboard. Important to take into account here is that if a team swaps players between matches there will be data for more than 5 players in the series summary for that team.

{
    "scoreboard": {
        "1": [
            {
                "player_id": 10732,
                "matches_played": 3,
                "kills": 17,
                "deaths": 10,
                "assists": 30,
                "gpm": 420.84428571587654,
                "xpm": 442.93033549394767,
                "creep_kills": 397,
                "creep_denies": 49,
                "hero_dmg": {
                    "given": {
                        "by_hero": {
                            "hp_removal": 650,
                            "magical_dmg": 8053,
                            "physical_dmg": 9565,
                            "pure_dmg": 6938
                        },
                        "by_mobs": {
                            "hp_removal": 0,
                            "magical_dmg": 872,
                            "physical_dmg": 1986,
                            "pure_dmg": 0
                        }
                    },
                    "taken": {
                        "from_heroes": {
                            "hp_removal": 0,
                            "magical_dmg": 22318,
                            "physical_dmg": 15891,
                            "pure_dmg": 743
                        },
                        "from_mobs": {
                            "hp_removal": 0,
                            "magical_dmg": 434,
                            "physical_dmg": 16959,
                            "pure_dmg": 0
                        }
                    }
                },
                "hero_healing": {
                    "given": {
                        "by_hero": 4735,
                        "by_mobs": 0
                    },
                    "taken": {
                        "from_heroes": 4588,
                        "from_mobs": 0
                    }
                },
                "wards": {
                    "observers": {
                        "killed": 6,
                        "placed": 15
                    },
                    "sentries": {
                        "killed": 2,
                        "placed": 24
                    }
                },
                "camps_stacked": 6,
                "runes": {
                    "double_damage_runes": 0,
                    "haste_runes": 2,
                    "illusion_runes": 0,
                    "invisibility_runes": 1,
                    "regeneration_runes": 0,
                    "bounty_runes": 6,
                    "arcane_runes": 0
                }
            },
            {...},
            {...},
            {...},
            {...},
        ],
        "2": [
            {...},
            {...},
            {...},
            {...},
            {...},
        ],
    }
}
Suggest Edits

CS:GO PbP Resources

 

These are the Play-by-Play resources available for CS:GO. There are also another set of resources available for live push data in CS:GO, see more here.

Suggest Edits

Player PbP

 

All the statistics regarding players in CS:GO are broken down to a per-round granularity. It is sometimes grouped by which side of the map the rounds relate to and sometimes for all rounds irrespective of map side.

{
  "over_all": {
    "kills": 0.70984052897705,
    "assists": 0.12290937378452,
    "flash_assists": 0.00043878894251864854,
    "deaths": 0.68339167639051,
    "dmg_given": 75.32788798133,
    "dmg_taken": 76.614935822637,
    "history": 2571,
    "accuracy": {
      "general": 0.23193106517406,
      "head_shot": 0.36819488636364
    },
    "plants": 0.039284325165305,
    "defuses": 0.012835472578763
  },
  "per_map": [
    {
      "map": {
        "id": 3,
        "name": "Mirage",
        "ext_name": "de_mirage",
        "game": {...}
      },
      "ct_side": {
        "kills": 0.81159420289855,
        "deaths": 0.60507246376812,
        "assists": 0.1231884057971,
        "flash_assists": 0.00043878894251864854,
        "dmg_given": 83.485507246377,
        "dmg_taken": 70.594202898551,
        "history": 276,
        "defuses": 0.032608695652174
      },
      "t_side": {
        "kills": 0.66089965397924,
        "deaths": 0.73702422145329,
        "assists": 0.10034602076125,
        "flash_assists": 0.00043878894251864854,
        "dmg_given": 72.885813148789,
        "dmg_taken": 81.629757785467,
        "history": 289,
        "plants": 0.10726643598616
      },
      "over_all": {
        "history": 565,
        "kills": 0.73451327433628,
        "assists": 0.11150442477876,
        "flash_assists": 0.00043878894251864854,
        "deaths": 0.67256637168142,
        "accuracy": {
          "general": 0.2408545538795,
          "head_shot": 0.35240528169014
        }
      }
    },
    {...},
    {...},
  ],
  "per_weapon": [ //Coming soon
    {
      "weapon": {...},
      "dmg_given_round": 430,
      "accuracy": {
        "general": 0.78,
        "head_shot": 0.45
      },
      "history": 65
    },
  ],
}

Outer keys:

Name
Type
Description
Nullable
Empty

over_all

object

This object contains average data, per round, for the Player over all rounds played over a given interval, irrespective of Map.

NO

NO

per_map

array

This array holds objects containing information about the players performance on each individual map over a given time period.

NO

YES*

*If the player has not had any matches logged on play-by-play level this list will be empty.

The 'over_all' object contains the following key-value pairs:

Name
Type
Description
Nullable
Empty

kills

float

The average number of kills per round.

NO

NO

assists

float

The average number of assists per round (excluding flash assists).

NO

NO

flash_assists

float

The average number of flash assists per round.

NO

deaths

float

The average number of deaths per round.

NO

NO

dmg_given

float

The average amount of damage given per round. This is often referred to as ADR (Average Damage per Round).

NO

NO

dmg_taken

float

The average amount of damage taken per round.

NO

NO

history

int

The number of rounds used (logged) for the calculations over the given period of time.

NO

NO

accuracy

object

An object accounting for the players accuracy of fired bullets.

NO

NO

accuracy.general

float

The percentage, as a decimal, of shots fired by the player that hit an enemy.

NO

NO

accuracy.head_shot

float

The percentage, as a decimal, of all shots fired that hit a player -that hits the head of the enemy.

NO

NO

plants

float

The average number of bomb plants made per round.

NO

NO

defuses

float

The average number of bomb defuses made per round.

NO

NO

The 'per_map' list contains objects with the following key-value pairs:

Name
Type
Description
Nullable
Empty

map

object

The map for which the stats of each per_map object relates. For more info about maps please look here.

NO

NO

ct_side

object

An object that accounts for the players stats when playing on the CT side of the given map. The object keys are the following: kills, assists, deaths, dmg_given, dmg_taken, defuses and history. For more information about the keys see definitions in the table above.

NO

NO

t_side

object

An object that accounts for the players stats when playing on the T side of the given map. The object keys are the following: kills, assists, deaths, dmg_given, dmg_taken, plants and history. For more information about the keys see definitions in the table above.

NO

NO

over_all

object

An object that accounts for the players stats when playing on the given map, irrespective of side. The object keys are the following: kills, assists, deaths, accuracy and history. For more information about the keys see definitions in the table above.

NO

NO

 
{
  "totals": {
    "kills": 3153,
    "deaths": 3116,
    "nr_matches": 36,
    "ct_rounds": 452,
    "ct_wins": 235,
    "t_rounds": 463,
    "t_wins": 238,
    "pistol_rounds": 72,
    "pistol_wins": 32,
    "first_kill_rate": 0.74678111587983,
    "first_death_rate": 0.27901785714286
  },
  "maps": [
    {
      "map": {...},
      "nr_matches": 9,
      "ct_rounds": 118,
      "ct_wins": 79,
      "t_rounds": 96,
      "t_wins": 48,
      "pistol_rounds": 18,
      "pistol_wins": 10,
      "first_kill_rate": 0.80701754385965,
      "first_death_rate": 0.35
    },
    {...},
    {...},
  ],
  "top_stats": {
    "adr": {
      "player_id": 8152,
      "adr": 134.82352941176,
      "match_id": 245793,
      "against": {Team}
    },
    "kills": {
      "player_id": 10582,
      "kills": 31,
      "match_id": 245130,
      "against": {Team}
    },
    "assists": {
      "player_id": 10582,
      "assists": 9,
      "match_id": 246914,
      "against": {Team}
    },
    "flash_assists": {
      "player_id": 8220,
      "flash_assists": 4,
      "match_id": 349612,
      "against": {Team}
    },
    "plants": {
      "player_id": 8154,
      "plants": 8,
      "match_id": 245661,
      "against": {Team}
    },
    "defuses": {
      "player_id": 8154,
      "defuses": 4,
      "match_id": 243596,
      "against": {Team}
    }
  },
  "top_matches": {
    "biggest_loss": {
      "rounds": 12,
      "match_id": 247150,
      "against": {Team}
    },
    "biggest_win": {
      "rounds": 15,
      "match_id": 245793,
      "against": {Team}
    },
    "most_rounds": {
      "rounds": 36,
      "match_id": 245130,
      "against": {Team}
    }
  },
  "marksman": [
    {
      "player_id": 8152,
      "adr": 45,
      "weapon": {
        "images": {
          "small": "https://img.abiosgaming.com/other/game-assets/csgo-weapons/knife.png"
        },
        "name": "knife"
      }
    },
    {
      "player_id": 10582,
      "adr": 58,
      "weapon": {
        "images": {
          "small": "https://img.abiosgaming.com/other/game-assets/csgo-weapons/glock.png"
        },
        "name": "glock"
      }
    },
    {...},
    {...},
  ]
}
Suggest Edits

Match PbP

 

The play-by-play match summary of a CS:GO match contains all the key metrics from the match. The main focus is on a rounds list with event time lines for data like kills and bomb events as well as a summary of the players performance during the round. As always, if you feel that some data is missing let us know and we will look into it (we might already be implementing it). This data is accessed using the with[]=summary parameter on the /matches/:id endpoint for matches with the has_pbpdata attribute set to true.

This is what a full (although partly imploded) match_summary resource looks like:

{
  "home": 2134,
  "away": 73122,
  "match_length": 3127,
  "scoreboard": {
    "home": [
      {
        "player_id": 3143,
        "kills": 12,
        "assists": 3,
        "flash_assists": 1,
        "deaths": 14,
        "adr": 78.32,
      },
      {...}
    ],
    "away": []
  },
  "rounds": [
    {
      "round_nr": 1,
      "t_side": 2134,
      "ct_side": 73122,
      "winner": 73122,
      "win_reason": "defused", // coming soon
      "bomb_events": [
        {
          "type": "plantbegin",
          "player_id": 21342,
          "round_clock": 2312004,
          "pos": {
            "x": 213.4908,
            "y": 879.2134,
            "z": -521.0934,
          }
        },
        {...}
      ],
      "kills": [
        {
          "round_clock": 31204,
          "damage": 45,
          "attacker": {
            "player_id": 2341,
            "pos": {...},
          },
          "victim": {
            "player_id": 8972,
            "pos": {...},
          },
          "assist": 9120,
          "flash_assist": false,
          "weapon": {
            "name": "AWP"
          },
          "hit_group": "Left Arm"
        },
        {...}
      ],
      "player_stats": {
        "t_side": [
          {
            "player_id": 3425,
            "dmg_given": 223,
            "dmg_taken": 90,
            "kills": 2,
            "assists": 1,
            "flash_assists": 0,
            "died": false,
            "accuracy": {
              "general": 0.2408545538795,
              "head_shot": 0.35240528169014
            },
            "cash_spent": 650,
            "shots_fired": 23
          },
          {...}
        ],
        "ct_side": []
      }
    }
  ],
}

Outer most keys:

Name
Type
Description
Nullable
Empty

home

int

The Roster id of the top seeded Roster. The label home carries no significance other than that it corresponds to the seeding.1 roster in its parent Match and Series.

NO

NO

away

int

The Roster id of the bottom seeded Roster. The label away carries no significance other than that it corresponds to the seeding.2 roster in its parent Match and Series.

NO

NO

scoreboard

object

An object containing the final stats of all Players in the Match.

NO

NO

rounds

list

The rounds list is an ordered list of all rounds in the Match with their respective data. See more below.

NO

NO

The 'rounds' list contains objects with the following key-value pairs:

Name
Type
Description
Nullable
Empty

round_nr

int

The number of the round, starting at 1.

NO

NO

t_side

int

The ID of the Roster playing on the Terrorist side.

NO

NO

ct_side

int

The ID of the Roster playing on the Counter Terrorist side.

NO

NO

winner

int

The ID of the Roster who won the round.

NO

NO

win_reason

enum

[COMING SOON] The way the winning side won, can be: defused, exploded, time_limit and enemy_elimination.

NO

NO

bomb_events

list

The bomb_events list accounts for all events that took place involving the bomb. See more below.

NO

YES

kills

list

The kills list is an ordered list of all kills that took place during the round. See more below.

NO

YES

player_stats

object

The player_stats object contains 'score board' information about all players from the round. See more below.

NO

NO

The 'bomb_events' list contains objects with the following key-value pairs:

Name
Type
Description
Nullable
Empty

type

enum

The type of bomb event that occurred, can be: planted, defused, exploded, begindefuse, beginplant, dropped and pickup.

NO

NO

player_id

int

ID of the Player who did the event. Eg. the player who planted the bomb.

NO

NO

round_clock

int

The time in the round when the event occurred.

NO

NO

pos

object

An object holding the coordinates of the event.

NO

NO

pos.{x|y|z}

float

The respective coordinates on the Map where the event occurred.

NO

NO

The 'kills' list contains objects with the following key-value pairs:

Name
Type
Description
Nullable
Empty

round_clock

int

The time in the round when the kill occurred.

NO

NO

damage

int

The total amount of damage the killer made to the victim. This is actual damage (some one shooting a 100hp enemy with AWP will only damage him 100hp not 100+).

NO

NO

attacker

object

An object containing information about the Player who got the kill.

NO

NO

attacker.player_id

int

The ID of the Player who got the kill. null if the victim for example died falling of a high edge etc.

YES

NO

attacker.pos

object

An object holding the coordinates of the player who got the kill, see description above.

NO

NO

victim

object

An object containing information about the Player who was killed.

NO

NO

victim.player_id

int

The ID of the Player who was killed.

NO

NO

victim.pos

object

An object holding the coordinates of the player who got the kill, see description above.

NO

NO

assist

int

The ID of the Player who assisted the kill, if any.

YES

NO

flash_assist

bool

Indicates whether the assist was a flash assist or not. False if no assist occurred.

NO

weapon

object

An object containing information about the weapon that got the kill.

NO

NO

hit_group

enum

The hit group on the enemy where the killing action hit: Chest, Head, Gear, Generic, Left Arm, Left Leg, Right Arm, Right Leg and Stomach.

NO

NO

The 'player_stats' object has the following key-value pairs:

Name
Type
Description
Nullable
Empty

t_side

list

The t_side list contains objects summarising the players playing Terrorists performance, see below.

NO

NO

ct_side

list

The ct_side list contains objects summarising the players playing Counter Terrorists performance, see below.

NO

NO

{side}.player_id

int

The ID of the Player who the stats relate to.

NO

NO

{side}.dmg_given

float

The amount of damage given during the round.

NO

NO

{side}.dmg_taken

float

The amount of damage taken during the round.

NO

NO

{side}.kills

int

The number of kills awarded during the round.

NO

NO

{side}.assists

int

The number of assists awarded during the round excluding flash assists.

NO

NO

{side}.flash_assists

int

The number of flash assists awarded during the round.

NO

{side}.died

bool

Shows whether the player died or not during the round.

NO

NO

{side}.accuracy

object

An object accounting for the players accuracy of fired bullets.

NO

NO

accuracy.general

float

The percentage, as a decimal, of shots fired by the player that hit an enemy.

YES

NO

accuracy.head_shot

float

The percentage, as a decimal, of all shots fired that hit a player -that hits the head of the enemy.

YES

NO

{side}.cash_spent

int

The amount of money the player spent during the round.

NO

{side}.shots_fired

int

The number of shots the player fired during the round.

NO

Suggest Edits

Series PbP

 

The scoreboard object in the summary data of a Series contains data relating to each Players performance in the Series, grouped by the seeding key of the respective competitor. As an example, if TeamA has seeding 1 in the Series then you will find data for TeamAs players in the array with key 1 in scoreboard. Important to take into account here is that if a team swaps players between matches there will be data for more than 5 players in the series summary for that team.

{
    "scoreboard": {
        "1": [
            {
                "player_id": 11163,
                "matches_played": 1,
                "kills": 29,
                "deaths": 19,
                "assists": 4,
                "flash_assists": 1,
                "adr": 97.96551724137932
            },
            {
                "player_id": 11211,
                "matches_played": 1,
                "kills": 26,
                "deaths": 24,
                "assists": 1,
                "flash_assists": 0,
                "adr": 81.62068965517241
            },
            {...},
            {...},
            {...},
        ],
        "2": [
            {...},
            {...},
            {...},
            {...},
            {...},
        ]
    }
},
Suggest Edits

LoL PbP Resources

 

These are the Play-by-Play resources available for LoL. There are also another set of resources available for live push data in LoL, see more here.

Suggest Edits

Player PbP

Play-by-play player statistics in League of Legends

 

This is what a full (although partly imploded) play_by_play resource looks like:

{
   "nr_matches":27,
   "nr_wins":7,
   "avg_stats":{
      "kills":0.37037037037037035,
      "deaths":1.7777777777777777,
      "assists":5.481481481481482,
      "gpm":247.84447104468006,
      "xpm":323.0252362168529,
      "minion_kills":{
         "total":81.37037037037037,
         "neutral_minions":0.2962962962962963,
         "neutral_jungle":0,
         "neutral_enemy_jungle":0
      },
      "wards":[
         {
            "placed":4.777777777777778,
            "destroyed":4.777777777777778,
            "type":"Warding Totem"
         },
         {
            "placed":6.666666666666667,
            "destroyed":6.666666666666667,
            "type":"Undefined"
         },
         {
            "placed":34.55555555555556,
            "destroyed":34.55555555555556,
            "type":"Green Ward"
         },
         {
            "placed":0,
            "destroyed":0,
            "type":"Blue Trinket"
         },
         {
            "placed":12.074074074074074,
            "destroyed":12.074074074074074,
            "type":"Control Ward"
         },
         {
            "placed":0,
            "destroyed":0,
            "type":"Teemo Mushroom"
         }
      ]
   },
   "largest_combos":{
      "double":1,
      "triple":0,
      "quadra":0,
      "penta":0,
      "unreal":0,
      "largest_killing_spree":2,
      "largest_multi_kill":2,
      "killing_sprees":2
   },
   "most_played_champions":[
      {
         "champion":{
            "name":"Braum"
         },
         "nr_matches":8,
         "nr_wins":4,
         "avg_kills":0.375,
         "avg_deaths":1,
         "avg_assists":6.875,
         "avg_gpm":261.13339505861825,
         "avg_xpm":338.7016253159352
      },
      {
         "champion":{
            "name":"Tahm Kench"
         },
         "nr_matches":7,
         "nr_wins":1,
         "avg_kills":0.14285714285714285,
         "avg_deaths":2.142857142857143,
         "avg_assists":3.7142857142857144,
         "avg_gpm":239.55061109898836,
         "avg_xpm":318.85438569771225
      },
      {
         "champion":{
            "name":"Alistar"
         },
         "nr_matches":4,
         "nr_wins":2,
         "avg_kills":0.75,
         "avg_deaths":2.25,
         "avg_assists":10,
         "avg_gpm":258.4783630066518,
         "avg_xpm":321.8221114499138
      }
   ],
   "side_stats":{
      "purple":{
         "nr_matches":15,
         "nr_wins":3
      },
      "blue":{
         "nr_matches":12,
         "nr_wins":4
      }
   }
}

The outer most keys

{
    "nr_matches": 27,
  	"nr_wins": 7,
    "avg_stats": {...},
    "largest_combos": {...},
    "most_played_champions": [..],
    "side_stats": {...}
},
Name
Type
Description

nr_matches

int

The number of matches the player has played in the queried timespan.

nr_wins

int

The number of played matches the player's team won.

avg_stats

object

Stats averaged over all of the matches in the queried timespan.

largest_combos

object

The largest kill combos this player has gotten, as well as the number of combos of each size.

most_played_champions

list

The three most played champions for this player and stats for matches played with that hero.

side_stats

object

Number of matches played and won on each side.

Suggest Edits

Team PbP

Play-by-play team statistics in League of Legends

 

This is what a full (although partly imploded) play_by_play resource looks like:

{
   "nr_matches":17,
   "nr_wins":7,
   "side_stats":{
      "purple":{
         "nr_matches":9,
         "nr_wins":2
      },
      "blue":{
         "nr_matches":8,
         "nr_wins":5
      }
   },
   "average": {
      "match": {
         "kills": 7.6111,
         "deaths": 11.1111,
         "assists": 16.9444,
         "gpm": 343.1111,
         "length": 2153.3333333333335,
         "wards": {
            "killed": 53.7778,
            "placed": 120.3889
         },
         "structures": {
            "turrets": {
               "taken": 4.8889,
               "lost": 7.6111
            },
            "inhibitors": {
               "taken": 0.9444,
               "lost": 1.6667
            }
         },
         "creeps": {
            "lane": {
               "kills": 979.3333
            },
            "neutral": {
               "baron": 0.6111,
               "dragon": 2,
               "heralds": 0.3889,
               "total": 206.8333
            }
         },
         "first_blood": {
            "rate": 0.3333,
            "taken_at": 432814.8333
         }
      }
   },
   "champions":[
      {
         "nr_matches":6,
         "nr_wins":2,
         "champion":{
            "name":"Sejuani"
         }
      },
      {
         "nr_matches":5,
         "nr_wins":1,
         "champion":{
            "name":"Gnar"
         }
      },
      {
         "nr_matches":5,
         "nr_wins":2,
         "champion":{
            "name":"Ezreal"
         }
      }
   ],
   "top_stats":{
      "kills":{
         "value":11,
         "player_id":8653,
         "match_id":23663,
         "champion":{
            "name":"Xayah"
         },
         "against":{Roster}
      },
      "gpm":{
         "value":532.0441988950276,
         "player_id":8652,
         "match_id":23657,
         "champion":{
            "name":"Corki"
         },
         "against":{Roster}
      },
      "xpm":{
         "value":620.7513812154696,
         "player_id":26094,
         "match_id":23657,
         "champion":{
            "name":"Vladimir"
         },
         "against":{Roster}
      },
      "double_kills":{
         "value":2,
         "player_id":8653,
         "match_id":23663,
         "champion":{
            "name":"Xayah"
         },
         "against":{Roster}
      },
      "triple_kills":{
         "value":1,
         "player_id":8653,
         "match_id":25815,
         "champion":{
            "name":"Ezreal"
         },
         "against":{Roster}
      },
      "quadra_kills":{
         "value":1,
         "player_id":8653,
         "match_id":25815,
         "champion":{
            "name":"Ezreal"
         },
         "against":{Roster}
      },
      "penta_kills":null,
      "unreal_kills":null,
      "largest_killing_spree":{
         "value":11,
         "player_id":8653,
         "match_id":23663,
         "champion":{
            "name":"Xayah"
         },
         "against":{Roster}
      },
      "largest_multi_kill":{
         "value":4,
         "player_id":8653,
         "match_id":25815,
         "champion":{
            "name":"Ezreal"
         },
         "against":{Roster}
      }
   },
   "top_matches":{
      "length":{
         "avg":2163.294117647059,
         "longest":{
            "won":{
               "value":2656,
               "match_id":23663,
               "against":{Roster}
            },
            "lost":{
               "value":2683,
               "match_id":23641,
               "against":{Roster}
            }
         },
         "shortest":{
            "won":{
               "value":1486,
               "match_id":23670,
               "against":{Roster}
            },
            "lost":{
               "value":1691,
               "match_id":23597,
               "against":{Roster}
            }
         }
      },
      "kpm":{
         "highest":{
            "value":0.4845222072678331,
            "match_id":23670,
            "against":{Roster}
         },
         "lowest":{
            "value":0.0709639266706091,
            "match_id":23597,
            "against":{Roster}
         },
         "avg":0.2721334718316535
      }
   }
}

The outer most keys

{
    "nr_matches": 27,
  	"nr_wins": 7,
  	"side_stats": {...},
    "champions": [..],
    "top_stats": {...},
    "top_matches": {...}
},
Name
Type
Description

nr_matches

int

The number of matches the team has played in the queried timespan.

nr_wins

int

The number of played matches the team won.

side_stats

object

Number of matches played and won on each side.

champions

list

The three most played champions for this team.

top_stats

object

The best performance of a player in a match for different stats.

top_matches

object

The top matches in terms of length and KPM, as well as the average length and KPM over all matches.

Suggest Edits

Match PbP

Play-by-play match summaries in League of Legends

 

The play-by-play match summary of a League of Legends match contains all the key metrics from the match. The main focus is on the player stats, the kills and the objectives. As always, if you feel that some data is missing let us know and we will look into it (we might already be implementing it). This data is accessed using the with[]=summary parameter on the /matches/:id endpoint for matches with the has_pbpdata attribute set to true.

This is what a full (although partly imploded) match_summary resource looks like:

{
    "match_length": 2323,
    "blue_roster": {
        "id": 17621,
        "players": [
            {
                "player_id": 10936,
                "role": "SOLO",
                "lane": "TOP",
                "kills": 2,
                "deaths": 0,
                "assists": 9,
                "gold_earned": 17146,
                "gold_spent": 16100,
                "gpm": 442.8583727938011,
                "total_xp": 22484,
                "xpm": 580.731812311666,
                "champion": {
                    "name": "Shen",
                    "external_id": 98
                },
                "kill_combos": {
                    "double": 0,
                    "triple": 0,
                    "quadra": 0,
                    "penta": 0,
                    "unreal": 0,
                    "largest_killing_spree": 2,
                    "largest_multi_kill": 1,
                    "killing_sprees": 1
                },
                "items": {
                    "inventory": {
                        "slot_1": {
                            "name": "Corrupting Potion",
                            "external_id": 3748,
                            "image": {
                                "default": "https://img.abiosgaming.com/other/game-assets/lol-items/corrupting_potion.png",
                                "thumbnail": "https://img.abiosgaming.com/other/game-assets/lol-items/thumbnails/corrupting_potion.png"
                            }
                        },
                        "slot_2": {...},
                        "slot_3": {...},
                        "slot_4": {...},
                        "slot_5": {...},
                        "slot_6": {...},
                        "slot_7": {...},
                    },
                },
                "damage": {
                    "total": {
                        "magic": 95479,
                        "physical": 142204,
                        "true": 1671
                    },
                    "to_heroes": {...},
                    "damage_taken": {...},
                    "largest_crit": 0,
                    "to_objectives": 7918,
                    "to_turrets": 4495
                },
                "support": {
                    "amount_healed": 5985,
                    "units_healed": 1,
                    "crowd_control_time": 540
                },
                "minion_kills": {
                    "total": 342,
                    "neutral_jungle": 2,
                    "neutral_enemy_jungle": 3
                },
                "wards": [
                    {
                        "type": "Control Ward",
                        "destroyed": 3,
                        "placed": 6
                    },
                    {...},
                    {...},
                ],
                "champion_spells": {
                    "1": {
                        "name": "Teleport"
                    },
                    "2": {
                        "name": "Flash"
                    }
                },
                "masteries": [
                    {
                        "name": "Fury",
                        "rank": 5
                    },
                    {
                        "name": "Feast",
                        "rank": 1
                    },
                    {...},
                    {...},
                ],
                "runes": [
                    {
                        "name": "Greater Mark of Attack Speed",
                        "rank": 9
                    },
                    {

                        "name": "Greater Glyph of Scaling Cooldown Reduction",
                        "rank": 9
                    },
                    {...},
                    {...},
                ],
                "runes_reforged": {
                    "primary_path": {
                        "path": {
                            "name": "Inspiration",
                            "external_id": 8300
                        },
                        "keystone": {
                            "name": "Unsealed Spellbook",
                            "external_id": 8326
                        },
                        "rune_1": {
                            "name": "Magical Footwear",
                            "external_id": 8304
                        },
                        "rune_2": {
                            "name": "Minion Dematerializer",
                            "external_id": 8316
                        },
                        "rune_3": {
                            "name": "Approach Velocity",
                            "external_id": 8410
                        }
                    },
                    "secondary_path": {
                        "path": {
                            "name": "Resolve",
                            "external_id": 8400
                        },
                        "rune_1": {
                            "name": "Bone Plating",
                            "external_id": 8473
                        },
                        "rune_2": {
                            "name": "Second Wind",
                            "external_id": 8444
                        }
                    }
                },
                "skillups": [
                  {
                    "time": 100296,
                    "ability_slot": 1,
                    "type": "NORMAL"
                  },
                  {
                    "time": 152080,
                    "ability_slot": 3,
                    "type": "NORMAL"
                  },
                  {...},
                  {...},
                ],
            },
            {...},
            {...},
        ]
    },
    "purple_roster": {
        "id": 17825,
        "players": [Players]
    },
    "firsts": {
        "first_blood": {
            "player_id": 8781,
            "timestamp": 184708,
            "team": "blue"
        },
        "first_tower": {
            "player_id": 8576,
            "timestamp": 943052,
            "team": "purple"
        },
        "first_inhibitor": {...},
        "first_baron": {...},
        "first_dragon": {...},
        "first_rift_herald": {...}
    },
    "warding": [
        {
            "event_type": "placed",
            "type": "Warding Totem",
            "player_id": 8576,
            "timestamp": 42509,
        },
        {...},
        {...},
    ],
    "kill_timeline": [
        {
            "timestamp": 184708,
            "position": {
                "x": 3744,
                "y": 13681
            },
            "killer_id": 8781,
            "victim_id": 8576,
            "assists": [
                10936
            ]
        },
        {
            "timestamp": 284227,
            "position": {
                "x": 5473,
                "y": 5114
            },
            "killer_id": 8548,
            "victim_id": 8782,
            "assists": [
                13029
            ]
        },
        {...},
        {...},
        {...},
    ],
    "objective_events": {
        "towers": [
            {
                "lane": "TOP_LANE",
                "timestamp": 943052,
                "position": {
                    "x": 981,
                    "y": 10441
                },
                "killer_id": 8576,
                "assists": [],
                "type": "OUTER_TURRET"
            },
            {...},
            {...},
            {...},
            
        ],
        "inhibitors": [
            {
                "lane": "MID_LANE",
                "timestamp": 2230748,
                "position": {
                    "x": 11598,
                    "y": 11667
                },
                "killer_id": 10800,
                "assists": [
                    10936,
                    8781,
                    8782,
                    14819
                ]
            },
            {...},
            {...},
        ],
        "barons": [
            {
                "timestamp": 1778400,
                "position": {
                    "x": 5007,
                    "y": 10471
                },
                "killer_id": 8781,
            },
            {
                "timestamp": 2255566,
                "position": {
                    "x": 5007,
                    "y": 10471
                },
                "killer_id": 10800,
            }
        ],
        "dragons": [
            {
                "timestamp": 921457,
                "position": {
                    "x": 9866,
                    "y": 4414
                },
                "killer_id": 13029,
                "type": "AIR_DRAGON"
            },
            {
                "timestamp": 1324814,
                "position": {
                    "x": 9866,
                    "y": 4414
                },
                "killer_id": 8781,
                "type": "FIRE_DRAGON"
            },
            {...},
            {...}
        ],
        "rift_heralds": [
            {
                "timestamp": 1081530,
                "position": {
                    "x": 5204,
                    "y": 10766
                },
                "killer_id": 8781
            }
        ]
    },
    "draft": [
        {
            "roster_id": 50358,
            "champion": {
                "name": "Irelia",
                "external_id": 39,
                "images": {
                    "default": "https://img.abiosgaming.com/other/game-assets/lol-champions/Irelia.png",
                    "thumbnail": "https://img.abiosgaming.com/other/game-assets/lol-champions/thumbnails/Irelia.png"
                }
            },
            "order": 1,
            "phase": 1,
            "type": "ban"
        },
        ...
        {
            "type": "pick",
            "order": null,
            "phase": null,
            "roster_id": 50358,
            "champion": {
                "name": "Kennen",
                "external_id": 85,
                "images": {
                    "default": "https://img.abiosgaming.com/other/game-assets/lol-champions/Kennen.png",
                    "thumbnail": "https://img.abiosgaming.com/other/game-assets/lol-champions/thumbnails/Kennen.png"
                }
            }
        },
        ...
    ]
},

The outer most keys

{
    "match_length": 2323,
    "blue_roster": {...},
    "purple_roster": {...},
    "firsts": {...},
    "wards": [],
    "kill_timeline": [Kills],
    "objective_events": {...},
    "draft": [],
},
Name
Type
Description

match_length

int

The length of the match in seconds.

blue_roster

object

An object containing the data about the roster playing as the "Blue Team".

purple_roster

object

An object containing the data about the roster playing as the "Purple Team".

firsts

object

This is an object that, for easy access, holds all the data for all the "firsts" in terms of kills and objectives. Such as first_kill and first_dragon etc.

wards

list

This is a chronological list of all the wards placed and destroyed during the match.

kill_timeline

list

This is a chronological list of all the kills during the match.

objective_events

object

This object holds a number of lists of objective events. All lists are chronological.

draft

list

This is a partly chronological list of the match draft (see draft.order below for more infomation).

draft.roster_id

int

What roster did the pick/ban.

draft.champion

object

What champion was picked/banned.

draft.order

int/null

What chronological order in the pick/ban phase the event corresponds to. Generally this will be every second ban in the phase. See phase below. Only the bans have order info, all the picks have "order": null and are ordered last in the list.

draft.phase

int/null

What chronological ban/pick phase the event corresponds to. Only the bans have phase info, all the picks have "phase": null and are ordered last in the list.

draft.type

string

What pick/ban action was taken, possible values are pick and ban.

The roster objects

Both roster objects (blue_roster and purple_roster) follow the same format, as described below:

{
    "id": 17621,
    "players": [
        {
            "player_id": 10936,
            "role": "SOLO",
            "lane": "TOP",
            "kills": 2,
            "deaths": 0,
            "assists": 9,
            "gold_earned": 17146,
            "gold_spent": 16100,
            "gpm": 442.8583727938011,
            "total_xp": 22484,
            "xpm": 580.731812311666,
            "champion": {
                "name": "Shen"
            },
            "kill_combos": {
                "double": 0,
                "triple": 0,
                "quadra": 0,
                "penta": 0,
                "unreal": 0,
                "largest_killing_spree": 2,
                "largest_multi_kill": 1,
                "killing_sprees": 1
            },
            "damage": {
                "total": {
                    "magic": 95479,
                    "physical": 142204,
                    "true": 1671
                },
                "to_heroes": {...},
                "damage_taken": {...},
                "largest_crit": 0,
                "to_objectives": 7918,
                "to_turrets": 4495
            },
            "support": {
                "amount_healed": 5985,
                "units_healed": 1,
                "crowd_control_time": 540
            },
            "minion_kills": {
                "total": 342,
                "neutral_jungle": 2,
                "neutral_enemy_jungle": 3
            },
            "champion_spells": {
                "1": {
                    "name": "Teleport"
                },
                "2": {
                    "name": "Flash"
                }
            },
            "masteries": [
                {
                    "name": "Fury",
                    "rank": 5
                },
                {
                    "name": "Feast",
                    "rank": 1
                },
                {...},
            ],
            "runes": [
                {
                    "name": "Greater Mark of Attack Speed",
                    "rank": 9
                },
                {
                    "name": "Greater Glyph of Scaling Cooldown Reduction",
                    "rank": 9
                },
                {...},
            ],
            "skillups": [
                {
                  "time": 100296,
                  "ability_slot": 1,
                  "type": "NORMAL"
                },
                {
                  "time": 152080,
                  "ability_slot": 3,
                  "type": "NORMAL"
                },
                {...},
            ],
        },
        {...},
    ]
},

For the simplicity of the documentation below, let p = players[i] where i < len(players).

Name
Type
Description

id

int

The ID of the Roster playing on the "Blue" or "Purple" team/side of the map.

players

list

This is a list of all the Players in the roster and their stats from the Match.

p.player_id

int

The Abios ID of the Player in question.

p.role

string

The in-game role of the Player, it can be any of: SOLO, DUO, DUO_CARRY, DUO_SUPPORT or NONE.

p.lane

string

The lane on the map which the Player played, if can be any of: TOP, JUNGLE, MIDDLE, BOTTOM, TOP_LANE, MID_LANE or BOT_LANE.

p.kills

int

The number of (champion) kills the Player was awarded during the Match.

p.deaths

int

The number of time the player died during the Match.

p.assists

int

The number of (champion) kills the Player was awarded.

p.gold_earned

int

The amount of gold the player earned during the Match.

p.gold_spent

int

The amount of gold the player spent during the Match.

p.gpm

float

The average gold per minute that the Player acquired during the Match.

p.total_xp

int

The amount of experience points the player earned during the Match.

p.xpm

float

The average experience points per minute that the Player acquired during the Match.

p.champion.name

string

The name of the champion that the Player played. The champion object will be extended with more data in the future.

p.champion. external_id

int

The external_id corresponds to the champions id in the Riot APIs.

p.kill_combos

object

The kill_combos object describes the larges kill combinations and streaks for the player during the Match. The attributes are: double, triple, quadra, penta, unreal, largest_killing_spree, largest_multi_kill and killing_sprees.

p.items.inventory

object

An object containing the item the champion had in its inventory at the end of the Match. The inventory has 7 numerated slots. Each slot is either null or an item object, depending on if the champion had an item in said slot at the end of the Match. See item format below.

p.items.inventory.slot_{1-7}

object

An item has a name(string), external_id(int) and an image(object) attribute. The external_id corresponds to the items id in the Riot APIs.

p.damage

object

The damage object describes the Players damage distribution during the Match.

p.damage.total

object

This object contains the three damage types as attributes: magic, physical and true. The value of each is the total damage dealt by the Player to champions, creeps and objectives during the Match.

p.damage.to_heroes

object

The object has the same attributes as player.damage.total. The value of each is the total damage dealt by the Player to champions.

p.damage.damage_taken

object

The object has the same attributes as player.damage.total. The value of each is the total taken by the Player.

p.support

object

This object contains the three attributes; amount_healed that accounts for the amount of healing done by the Player; units_healed that accounts for the number of champions healed and crowd_control_time that accounts for the time seconds crowd controlling.

p.minion_kills

object

This object contains the three attributes; total that accounts for the totla number of creeps killed by the Player; neutral_jungle that accounts for the number of neutral creeps killed in the Teams jungle and neutral_enemy_jungle that accounts for the number of neutral creeps killed in the opposingTeams jungle.

p.wards

list

A list of objects describing the amount of wards placed and destroyed, by type, by the champion.

p.champion_spells

object

This object accounts for what two spells the Player played with, attributes "1" and "2" respectively. These spell objects currently only have a name attribute, more will come.

p.masteries

list

A list of objects describing all the champions masteries, each with name and rank attributes.

p.runes

list

A list of objects describing all the champions runes, each with name and rank attributes.

p.skillups

list

A list of objects describing what spells/abilities that were upgraded (in what fashion) and when.

p.skillups.time

int

The in game time in hundredth of seconds when the skillup took place.

p.skillups.ability_slot

int

Which availability slot/spell was updated, slot 1 corresponds to the spell on the Q key, 2 to W and so on. ability_slot also corresponds to the (1-indexed) list of spells in the Riot static data API for champions (/lol/static-data/v3/champions/{id}, $.spells[{abios.ability_slot}]).

p.skillups.type

string

What type of skillup was made, NORMAL or EVOLVE.

The firsts objects

{
    "first_blood": {
        "player_id": 8781,
        "timestamp": 184708,
        "team": "blue"
    },
    "first_tower": {
        "player_id": 8576,
        "timestamp": 943052,
        "team": "purple"
    },
    "first_inhibitor": {...},
    "first_baron": {...},
    "first_dragon": {...},
    "first_rift_herald": {...}
},
Name
Type
Description

first_blood

object

An objects whos attributes, player_id, timestamp and team, accounts for who got the first blood at what time, and which Team the Player played on respectively.

first_tower

object

An objects whos attributes, player_id, timestamp and team, accounts for who destroyed the first tower at what time, and which Team the Player played on respectively.

first_inhibitor

object

An objects whos attributes, player_id, timestamp and team, accounts for who destroyed the first inhibitor at what time, and which Team the Player played on respectively.

first_baron

object

An objects whos attributes, player_id, timestamp and team, accounts for who killed the first baron at what time, and which Team the Player played on respectively.

first_dragon

object

An objects whos attributes, player_id, timestamp and team, accounts for who killed the first dragon at what time, and which Team the Player played on respectively.

first_rift_herald

object

An objects whos attributes, player_id, timestamp and team, accounts for who killed the first rist herald at what time, and which Team the Player played on respectively.

Suggest Edits

Series PbP

 

The scoreboard object in the summary data of a Series contains data relating to each Players performance in the Series, grouped by the seeding key of the respective competitor. As an example, if TeamA has seeding 1 in the Series then you will find data for TeamAs players in the array with key 1 in scoreboard. Important to take into account here is that if a team swaps players between matches there will be data for more than 5 players in the series summary for that team.

{
    "scoreboard": {
        "1": [
            {
                "player_id": 10936,
                "matches_played": 5,
                "kills": 9,
                "deaths": 9,
                "assists": 15,
                "gold_earned": 60714,
                "gold_spent": 57295,
                "total_xp": 83579,
                "xpm": 501.27349060375855,
                "gpm": 364.1383446621352,
                "kill_combos": {
                    "double": 1,
                    "triple": 1,
                    "quadra": 0,
                    "penta": 0,
                    "unreal": 0,
                    "largest_killing_spree": 4,
                    "largest_multi_kill": 3,
                    "killing_sprees": 2
                },
                "minion_kills": {
                    "total": 1332,
                    "neutral_jungle": 22,
                    "neutral_enemy_jungle": 3
                },
                "damage": {
                    "total": {
                        "magic": 342641,
                        "physical": 448996,
                        "true": 2726
                    },
                    "to_heroes": {
                        "magic": 29984,
                        "physical": 23371,
                        "true": 1626
                    },
                    "damage_taken": {
                        "magic": 32762,
                        "physical": 58360,
                        "true": 5630
                    },
                    "largest_crit": 289,
                    "to_objectives": 14105,
                    "to_turrets": 8037
                },
                "support": {
                    "amount_healed": 16474,
                    "units_healed": 5,
                    "crowd_control_time": 3479
                }
            },
            {...},
            {...},
            {...},
            {...},
        ],
        "2": [
            {...},
            {...},
            {...},
            {...},
            {...},
            {...},
        ]
    }
},
Suggest Edits

Abios Push API Overview

 

About This Documentation

This tutorial will show you how to connect to and use the Abios websocket Push API to receive push messages. The push messages aim to make it easier and faster to track changes to the data in our back end. The API is primarily meant to cover "live" data. For historical data, statistics and additional data related to the resources you must use the REST API.

Some highlights of the APIs functionality:

  • Normalised/shared data structures across all of our 14 games on the Series and Match data detail level.
  • Access to both full states and data-diffs for each push message that describe a change to a resource.
  • Reconnect functionality, allowing the client to replay all pushed messages missed during a socket disconnect.
  • Advanced channel subscription, allowing the client to only receive a selected portion of messages.
  • Replay of all messages related to a resource when subscribing to the resource.
  • Multiple simultaneous client connections per API account, each with full configurability as described above.

Overview

Client applications (called subscribers) can connect to the Abios Push Service to receive messages when data changes in the Abios platform.
The Abios Push Service defines a number of channels on which it pushes messages. A channel is a logical grouping of related messages, see the Available Channels section.

Subscribers create one or more subscriptions that define what messages the subscriber will receive. Typically a subscription selects all messages from a particular channel, e.g all events from the match channel, see more about subscriptions in the section Connect and Subscribe

The Push Service uses the standard Websocket protocol for pushing messages to subscribers. Libraries for setting up a websocket connection are available for all major programming languages. Websockets are persistent TCP connections to the Push Service servers.

All subscription management is handled by a HTTP REST API, with methods for creating, updating and deleting subscriptions.

The expected workflow in the client application is:

  1. A subscription management process creates an initial subscription saying which channels and games the client is interested in receiving events for. This is done through the HTTP API.
    The resulting subscription will have a subscription id.
  2. The client sets up a websocket connection to the Push Service, giving the subscription id as a parameter. Messages that match the subscription filter will now be pushed to the subscriber as they appear in the Abios platform. All data sent on the websocket is in JSON format.
  3. The subscription management process can update the subscription

Please refer to the demo client source code available at github for a full example of these steps.

Long term connections

If the client is intended to be subscribed for any sustained period of time a keep alive/ping loop must be set up for two reasons:

  1. Since the client does not send any other messages to the server
    it will never get a notification if the websocket is closed.
    The client only detects a closed websocket when it tries to write
    data to it. Sending a ping message ensures this happens.
  2. The server (or other network devices on the route to the server)
    will close connections that are idle for too long.

Here is an example from our demo client.

Available Channels

The channels available in our push API largely mimic the end points in our REST API to make it easy to use the two APIs in conjunction with each other. What channels you will be able to receive messages over depends on what access level the account has to the Abios services in general. The currently available channels are:

Channel Name
Description

system

The Push Service will push system notifications on this channel to the client.

series

All updates that relate to the non-optional data in the Series resource is pushed over this channel.

match

All updates that relate to the non-optional data in the Match resource are pushed over this channel.

live_dota

Live match updates from Dota matches are pushed over this channel.

live_lol

Live match updates from LoL matches are pushed over this channel.

live_csgo

Live match updates from CS:GO matches are pushed over this channel.

1. General push message syntax

All messages pushed over the push API are JSON formatted. The data available in the JSON object differs depending on which channel it is push on. All messages on the same channel have a common format.
But there are a few generic attributes that are shared regardless of which channel the message is sent on, these are the generic message attributes that can be used by the subscriber to decide how to further process the JSON message.

1.a The generic message attributes

{
  "channel": "channel name",
  "uuid": "e09846be-c62c-11e7-abc4-cec278b6b50a"
}
Attribute name
Description

channel

The name of the channel

uuid

A unique identifier for the push message

2. System message syntax

All messages pushed on the system channel adds a single property to the generic properties defined above, cmd. The cmd property is used to distinguish between different types of system messages

2.a The system channel base message

{
  "channel": "system",
  "uuid": "e09846be-c62c-11e7-abc4-cec278b6b50a",
  "cmd": "close"
}
Attribute name
Description

cmd

The type of system command

3. Non-System Channel Messages

Apart from the system messages all other channels share a common format.

3.a Base message of non-system messages:

{
  "channel": "series",
  "uuid": "e09846be-c62c-11e7-abc4-cec278b6b50a",
  "created_timestamp": 1510322631000, 
  "payload": {...}
}
Attribute name
Description

created_timestamp

The UTC unix timestamp, in milliseconds, when the triggering event of the push message took place.

payload

An object containing the data being pushed. The data contained in this attribute will depend on the channel

Suggest Edits

Subscription Management

 

1. Subscription Overview

Before being able to receive any messages from the Abios Push Service the client application has to set up one or more subscriptions.

A subscription is a specification of which messages the subscribers should receive, it is created by the client through the subscription management endpoints exposed by the Push Service. These are HTTP REST endpoints for creating, updating, listing and deleting subscription specifications.

Once a subscription has been created a subscriber can use the id (or the client specified subscription name) to connect one or several subscribers to start receiving messages over the websocket. One subscriber can only be connected to one subscription at a time.

Note that all clients will always be automatically subscribed to the system channel.

Please refer to the demo client source code available at github for an example of how to use subscriptions.

2. Subscription Specifications

A subscription consists of a list of one or more filter specifications, each filter must at least contain the name of a valid channel name (i.e. channel exists and client is authorized to access it).

The simplest possible subscription filter would look like this, using the JSON format:

{
  "name": "simplest_subscription",
  "filters": [{
    "channel": "series"
	}]
}

This would push all messages appearing on the series channel to the connected subscribers.

To receive messages from the match as well as the series channel to the same subscriber the subscription would look like:

{
  "name": "match_and_series_subscription",
  "filters": [{
    "channel": "series"
	},
  {
    "channel": "match"
  }]
}

Note that these sample subscriptions would receive match and series events for all games the client has access to.

To only get messages for a specific game we could add the game_id attribute to a filter:

{
  "name": "series_single_game_subscription",
  "filters": [{
    "channel": "series",
    "game_id": 5
	}]
}

The above filter will only push messages from the series channel where the game id is 5.

The full list of attributes that can be used in the filters:

Filter attribute
Description

channel

Mandatory. Specifies which channel we want to receive messages from.

game_id

Optional. Specifies which games we want to receive messages for.

series_id

Optional. Only has effect when channel="series". Use to receive messages for a specific series.

match_id

Optional. Only has effect when channel="match". Use to receive message for a specific match.

See the next sections for examples on setting up subscriptions.

3. Subscription Management Endpoints

Here we provide a description of the various endpoints available for managing Push Service subscriptions.

The HTTP REST API is available at the URL https://ws.abiosgaming.com/ it requires an access token in the same way as the

HTTP Method
Endpoint URI
Description

POST

/v0/subscription

Creates a new subscription using the subscription specification sent as a JSON body to the endpoint. A new subscription is registered at the server and the id is returned to the client

GET

/v0/subscription

Get the list of all existing subscriptions

PUT

/v0/subscription/{id}

Updates an existing subscription with new filters

DELETE

/v0/subscription/{id}

Delete the subscription with the given id

GET

/v0/config

Get configuration information for subscribers. This contains limits on e.g. number of subscribers allowed and max reconnect time

3.1 Sample - Creating a new Subscription

To create a new subscription we send a POST request to the Push Service:

curl -XPOST -d '{"name": "simplest_subscription","filters": [{"channel": "series"}]}' https://ws.abiosgaming.com/v0/subscription?access_token=${ACCESS_TOKEN}

The response will contain the id of the new subscription:

{"id":"b2f18c22-96e5-4109-9a6f-a60a24e900e2"}

Note that the name attribute in the subscription JSON object is optional. If a name is specified it can be used later by the websocket subscriber when it connects.
If no name was given when creating the subscription the websocket subscriber must use the returned subscription id when connecting.

3.2 Sample - List all existing Subscriptions

curl -XGET https://ws.abiosgaming.com/v0/subscription?access_token=${ACCESS_TOKEN}

3.3 Sample - Delete an existing Subscription

Delete the subscription we created in the above sample

curl -XDELETE https://ws.abiosgaming.com/v0/subscription/b2f18c22-96e5-4109-9a6f-a60a24e900e2?access_token=${ACCESS_TOKEN}

3.4 Sample - Fetch configuration for Client Application

{
  "available_channels": ["system","match","series"],
  "max_num_connected_subscribers":20,
  "subscriber_state_reconnect_timeout":60
}
Suggest Edits

Connecting a Subscriber

 

1. Connecting the websocket subscriber

Once the client application has created a subscription at the Push Service we can connect our push subscriber.

This requires the use of a websocket library, all major languages have mature libraries for websockets.
The websocket URL is wss://ws.abiosgaming.com/v0?access_token=${ACCESS_TOKEN}&subscription_id=${SUBSCRIPTION_ID}
Note the use of the wss protocol which means the websocket will run over SSL.

Parameters for the websocket setup:

Parameter
Description

access_token

Mandatory. The API access token which is generated as with the Abios V2 REST API using client id and secret.

subscription_id

Optional. Either the subscription id in UUID format, or the subscrioption name if you specified a name when creating the subscription.
If no reconnect token is specified, the subscription id is mandatory.

reconnect_token

Optional. If the reconnect token is supplied the Push Service will reconnect the subscriber to subscription state and replay any messages that had pushed while subscriber was disconnected.

1.1 The `Init` message response

The first message pushed from the Push Service will always be the init message on the system channel.

This message contains some important information such as the reconnect token, see next section.
A sample init message received on succesful websocket setup:

{
  "channel": "system",
  "cmd": "init",
  "reconnect_token": "296fb526-e95e-4f8a-b016-d75f87e16a88",
  "reconnected": false,
  "subscriber_id": "296fb526-e95e-4f8a-b016-d75f87e16a88",
  "subscription": {
    "filters": [
      {
        "channel": "match"
      },
      {
        "channel": "series"
      }
    ],
    "id": "0e1ed79d-82ed-480c-aab7-a1d9b385449b"
  },
  "uuid": "718f92fb-901d-44de-8076-4834e997ea24"
}

The init specific attributes are:

Attribute Name
Description

reconnect_token

The token to be used when trying to reconnect to a subscriber state

reconnected

If a reconnect was succesful

subscriber_id

The id for this subscriber

subscription

The subscription specification the subscriber is linked to

2. Reconnecting a subscriber

The Push Service has support for buffering messages for a certain time period if the client subscriber would disconnect.

If the subscriber reconnects to the Push Service within the configured time period it will receive all the messages that had been pushed during the disconnect. Consequently, when reconnecting to the API using a valid reconnect token, there are no cmd: live-series or cmd: live-matches type messages pushed over the system channel.

To be able to reconnect, the subscriber must keep track of the reconnect_token it received from the Push Service in the init message. When creating the websocket connection, include the reconnect_token parameter in the URL.

If the reconnect was succesful the init message will have reconnected set to true. If the reconnect timeout has expired you will not be able to reconnect.

The value of the reconnect timeout can be fetched from the HTTP REST endpoint /v0/config, where it is declared in the attribute subscriber_state_reconnect_timeout. Currently the default value is 60 seconds.

Suggest Edits

Series & Match Channels

 

1. Introduction to Series & Match Channels

The data sent over the Series and Match channels look and work very similarly. Both share the same basic structure, types and events. This section goes through what each of the parameters mean, how they relate and how they differ.

General attributes

{
  "channel": "channel_name",
  "uuid": "e09846be-c62c-11e7-abc4-cec278b6b50a",
  "created_timestamp": 1510322631000, 
  "payload": {...}
}
Attribute name
Description

channel

The channel describes what resource the message relates to.

uuid

The id of the message.

created_timestamp

The UTC unix timestamp, in milliseconds, when the message was sent from our server.

payload

An object holding the message content itself, see more below.

Payload attributes

This payload example below shows how the payload may look when a Series has its start-time changed. Notice how:

  • type is UPDATED
  • events is moved
  • The state shows the full state of the Series in question.
  • diff shows that the start attribute of the Series was changed from "2017-07-09 14:00:00" to "2017-07-09 14:15:00".
{
  "type": "UPDATED",
  "events": ["moved"],
  "state": {
    "id": 132713,
    "title": "Playoffs - Final",
    "start": "2017-07-09 14:15:00",
    "end": null,
    "tier": 1,
    "bestOf": 5,
    "substage_id": 14838,
    "deleted_at": null,
    "pbp_status": "expected",
    "postponed_from": null,
    "scores": {
      "127": 0,
      "18730": 3
    },
    "chain": null,
    "forfeit": {
      "127": false,
      "18730": false
    },
    "streamed": true,
    "seeding": {
      "1": 127,
      "2": 18730
    },
    "game": {...},
    "bracket_pos": {...},
    "rosters": [Roster],
  },
  "diff": [ 
    {
      "attribute": "start",
      "before": "2017-07-09 14:00:00",
      "after": "2017-07-09 14:15:00",
    } 
  ]
}
Attribute
Description

type

The type is a string that corresponds to the resource life cycle (and REST operations) and can be one of CREATED, UPDATED or DELETED. These are very much what they sound like. CREATED and DELETED have distinct corresponding events, when the Series or Match is created and when (if) it is deleted respectively. All other events that occur during the life time of resource will have the type UPDATED.

events

This is an array of tags that accounts for what different changes have occurred in the data. This might be any of moved,scored, map, won and/or ended (for the full list, with descriptions, see sections below). Events is an array because there can be multiple changes to the data that happens simultaneously. An example of such a multi-event-message is when a series ends, this will yield event tags like scored, won and ended as those events (that from a logical perspective happened at the exact same time).

state

The state accounts for the new state of the resource, after the events described have been applied to it. The state will be the full resource, excluding optional data, as defined in the REST API. For examples and full documentation of those resources, see the Series and Match documentation respectively.

diff

The diff attribute is an array of diff-objects, each describing an event that has changed the resources values. In the example above there is one diff-object that describes the change in the start time, showing both the current ("after") and previous ("before") value of the start time ("attribute"). Each diff-object will have those keys, to account for the attribute changed and the before & after values of that attribute. To see a full list of possible diff objects, see the Series and Match channel reference below.

2. Series channel

A message sent on the series channel will look like this, including the base message format:

{
  "channel": "series",
  "uuid": "e09846be-c62c-11e7-abc4-cec278b6b50a",
  "created_timestamp": 1510322631000, 
  "payload": {
    "type": "UPDATED",
    "events": ["moved"],
    "state": {
      "id": 132713,
      "title": "Playoffs - Final",
      "start": "2017-07-09 14:15:00",
      "end": null,
      "tier": 1,
      "bestOf": 5,
      "substage_id": 14838,
      "deleted_at": null,
      "pbp_status": "expected",
      "postponed_from": null,
      "scores": {
        "127": 0,
        "18730": 3
      },
      "chain": null,
      "forfeit": {
        "127": false,
        "18730": false
      },
      "streamed": true,
      "seeding": {
        "1": 127,
        "2": 18730
      },
      "game": {...},
      "bracket_pos": {...},
      "rosters": [Roster],
    },
    "diff": [ 
      {
        "attribute": "start",
        "before": "2017-07-09 14:00:00",
        "after": "2017-07-09 14:15:00",
      } 
    ]
  }
}

Possible Series events

When payload.type is CREATED the state will account for the full non-optional state at that moment, but the diff will be empty.
Similarly, when payload.type is DELETED the state will account for the full non-optional state at that moment and the diff will include the change to the deleted_at attribute (and possibly other changes made when deleting the series).

Event Name
Description

scored

Included when the scores of the Series are set or changed.

moved

Included when the start time is changed.

postponed

Included when the Series is postponed.

started

Included when the start time of the Series passes.

ended

Included when then end time of the Series is set.

roster-changed

Event sent when one or more rosters in a Series or Match has been altered (added, removed or changed).

3. Match channel

A message sent on the match channel will look like this, including the base message format:

{
  "channel": "match",
  "created_timestamp": 1511354889758,
  "uuid": "e10a61a6-4784-40bc-9491-ffd13ca7da41",
  "payload": {
    "type": "CREATED",
    "events": [],
    "state": {
      "deleted_at": null,
      "forfeit": {},
      "game": {...},
      "has_pbpstats": false,
      "id": 254678,
      "map": null,
      "order": 2,
      "rosters": [],
      "scores": {},
      "seeding": {},
      "winner": null
    },
    "diff": [],
  }
}

Possible Match events

Event Name
Description

map

Included when the Map is set or changed.

won

Included when the winner of the Match is set or changed.

scored

Included when the scores of the Match are set or changed.

started

If the Match is created in a live series, this event will be included if this is the first match in the Series OR if the preceding match has ended.
If the match is created before the series has gone live a message with payload.type = UPDATE will be sent including this event. If the match is the first in the series, this message will be sent when the series goes live. Otherwise this message will be sent when the preceding match ends.

ended

Included when the winner of the Match is set or changed.

pbp-data-available

When post game Play-by-Play data becomes available for the Match.

pbp-data-updated

When post game Play-by-Play data for a Match is updated. Due to improvements to data reading or the addition of new data points.

roster-changed

Event sent when one or more rosters in a Series or Match has been altered (added, removed or changed).

Suggest Edits

Play-by-Play channels

These are the channels over which we push very granular, or play-by-play, data.

 
Suggest Edits

Dota 2 Events

Get live Dota 2 data

 

1. The root message

This section goes through what each of the parameters means, how they relate and how they differ. This how the root push message looks like, like in all other channels.

{
  "channel": "live_dota",
  "uuid": "e09846be-c62c-11e7-abc4-cec278b6b50a",
  "created_timestamp": 1530534332226,
  "payload": {...}
}
Attribute name
Description

channel

The channel describes what resource the message relates to.

uuid

The id of the message.

created_timestamp

The UTC unix timestamp, in milliseconds, when the message was sent from our server.

payload

An object holding the message content itself, see more below.

2. The 'payload' resource

The payload resource contains all the data specific to the dota_live channel.

{
  "diff": [{...}, {...}],
  "dire": {...}, /* DEPRECATED, moved to state.dire */
  "events": [
    "match_started"
  ],
  "league_id": 1, /* DEPRECATED, moved to state.league_id  */
  "league_tier": 1, /* DEPRECATED, moved to state.league_tier */
  "match_id": 200000, /* DEPRECATED, moved to state.match_id */
  "radiant": {...}, /* DEPRECATED, moved to state.radiant */
  "series_id": 205355, /* DEPRECATED, moved to state.series_id */
  "state": {...}
},
Attribute name
Description

diff

This is an array of "diff objects" that highlight changes in some of the most important data points.

events

This is an array of tags that accounts for the most important changes that have occurred in the data. Can be: match_started, match_ended, draft_started, draft_ended, new_state.

state

The state has the most recent state of each data point.

3. The 'diff' resource

The diff resource is an array of "diff objects" that highlight changes in some of the most important data points. These are some example diffs:

[
  {
    "after": 268.0345458984375,
    "attribute": "$.duration",
    "before": 247.9727783203125
  },
  {
    "after": 3,
    "attribute": "$.dire.team.score",
    "before": 2
  },
  {
    "after": 17,
    "attribute": "$.radiant.team.players[3].last_hit",
    "before": 15
  },
  {
    "after": 5,
    "attribute": "$.radiant.team.players[3].level",
    "before": 4
  },
  {
    "after": 1,
    "attribute": "$.radiant.team.players[0].death",
    "before": 0
  },
  {
    "after": 1,
    "attribute": "$.dire.team.players[2].kills",
    "before": 0
  },
  {
    "after": false,
    "attribute": "$.radiant.team.structure_status.towers.mid_tier_2",
    "before": true
  },
],

The data points, or attributes, that are currently covered in diffs are:

  • For teams: score
  • For players: kills, deaths, assists, gpm, last_hit and level
Attribute name
Description

attribute

The attribute that has changed within the state, formated as a JSON path.

before

The value that attribute had in the previous state/push message.

after

The value that attribute has changed to in the current state/push message.

4. The 'state' resource

The state resource holds the full current state of the match. As an overview, a condensed version of the state contains the below. To make the data as easy as possible to work within conjunction other Abios data both the team and player resources contain both the data as present on the Dota server with things like ingame_name as well as a abios_{team|player} resource as available the APIs.

{
  "dire": {
    "team": {
      "abios_team": {
        "country": {},
        "deleted_at": null,
        "game": {},
        "id": 32552,
        "images": {},
        "name": "Neon Esports",
        "short_name": "Neon"
      },
      "bans": [
        {
          "attribute": "intelligence",
          "images": {
            "large": "https://img.abiosgaming.com/other/game-assets/dota-heroes/shadow_demon.png",
            "small": "https://img.abiosgaming.com/other/game-assets/dota-miniheroes/shadow_demon.png"
          },
          "name": "Shadow Demon"
        },
        {},
      ],
      "ingame_name": "Neon Esports",
"picks": [
        {
          "attribute": "intelligence",
          "images": {
            "large": "https://img.abiosgaming.com/other/game-assets/dota-heroes/lina.png",
            "small": "https://img.abiosgaming.com/other/game-assets/dota-miniheroes/lina.png"
          },
          "name": "Lina"
        },
        {},
      ],
      "players": [
        {
          "abios_player": {
            "country": {},
            "deleted_at": null,
            "first_name": "Kenneth",
            "id": 13163,
            "images": {},
            "last_name": "Coloma",
            "nick_name": "flysolo",
            "race": null
          },
          "assists": 1,
          "death": 0,
          "denies": 0,
          "gold": 282,
          "gold_per_min": 266,
          "hero": {},
          "ingame_name": "ken",
          "items": {
            "backpack": {
              "slot_1": null,
              "slot_2": null,
              "slot_3": null
            },
            "inventory": {
              "slot_1": {
                "images": {
                  "default": "https://img.abiosgaming.com/other/game-assets/dota-items/magic_stick.png",
                  "thumbnail": "https://img.abiosgaming.com/other/game-assets/dota-items/thumbnails/magic_stick.png"
                },
                "name": "Magic Stick"
              },
              "slot_2": null,
              "slot_3": null,
              "slot_4": null,
              "slot_5": null,
              "slot_6": null
            }
          },
          "kills": 1,
          "last_hit": 2,
          "level": 3,
          "networth": 1197,
          "position_x": -1446.341552734375,
          "position_y": 3895.935546875,
          "respawn_timer": 0,
          "ultimate_cooldown": 0,
          "ultimate_state": 0,
          "xp_per_min": 162
        },
        {},
      ],
      "score": 3,
      "structure_status": {
          "barracks": {
            "bot_melee": true,
            "bot_ranged": true,
            "mid_melee": true,
            "mid_ranged": true,
            "top_melee": true,
            "top_ranged": true
          },
          "towers": {
            "bot_tier_1": false,
            "bot_tier_2": true,
            "bot_tier_3": true,
            "bot_tier_4": true,
            "mid_tier_1": false,
            "mid_tier_2": false,
            "mid_tier_3": true,
            "top_tier_1": false,
            "top_tier_2": true,
            "top_tier_3": true,
            "top_tier_4": true
          }
      }
    }
  },
  "duration": 268.0345458984375,
  "league_id": 4045,
  "league_tier": 3,
  "match_id": 361201,
  "radiant": {}, // same structure as "dire"
  "series_id": 203851
}

The state resource contains the following data:

Attribute name
Description

dire

The resource which contains all data about the team playing on the dire side in the Match.

duration

The duration of the Match, in seconds.

league_id

The Abios Tournament id of this Match.

league_tier

The Abios tier of the Tournament in question.

match_id

The Abios id of the Match.

radiant

The resource which contains all data about the team playing on the radiant side in the Match.

series_id

The Abios id of the Series that this Match belongs to.

The "side" resources (dire and radiant) only contain a team resource which holds the following data:

Attribute name
Description

abios_team

A Abios Team resource corresponding to the team in the Match.

bans

A list of the Heros banned by the Team.

ingame_name

The name that the Team is called on the server.

picks

A list of the Heros picked by the Team.

players

A list of players, with stats, that are playing for the Team.

score

The current score of the Team.

The player resources in the live dota data hold the following data:

Attribute name
Description

abios_player

A Abios Player resource.

assists

The number of assists that the Player as accumulated during the game.

death

The number of deaths that the Player as accumulated during the game.

denies

The number of denies that the Player as accumulated during the game.

gold

The current amount of gold that the Player has.

gold_per_min

The current rate at which the Player is accumulating gold, per minute.

hero

The Hero which the Player is playing.

ingame_name

The name the Player is using on the server, which might not be the same as abios_player.nick_name.

items

The items resource has two key value pairs, backpack and inventory, both of which contain a number of slot_{n}: {item} key value pairs. The backpack has 3 slots and the inventory has 6.

items.{backpack|inventory}.slot_{n}

Each item has a name and an images resource with two image links.

kills

The number of kills that the Player as accumulated during the game.

last_hit

The number of last hits that the Player as accumulated during the game.

level

The current level of the Player.

networth

The value of the Players gold, items and consumables.

position_x

The current position on the x axis of the Player on the map.

position_y

The current position on the y axis of the Player on the map.

respawn_timer

If the Player is dead, the time in seconds until the Player respawns.

ultimate_cooldown

The time in seconds until the Players ultimate spell is available again (given that no cooldown affecting buff/debuff is used).

ultimate_state

The state off the Players ultimate spell.

xp_per_min

The current rate at which the Player is accumulating experience points, per minute.

Suggest Edits

CS:GO Events

Get live CS:GO data

 

This is how a message looks on the live_csgo channel. The event round_ended will always be accompanied by one of the following events indicating the round win reason: target-bombed, bomb-defused timeout, t_eliminated, ct_eliminated, unknown-win-reason. unknown-win-reason should never be sent but should be maintained as a fail-safe.

{
    "channel": "live_csgo",
    "uuid": "5d963a72-30cb-4ef0-a7fd-e34d41820a4b",
    "created_timestamp": 1550234670911,
    "payload": {
        "state": {
            "series": 173590,
            "match": 307244,
            "match_time": 66,
            "bomb_planted": false,
            "time_since_plant": 0, //millis
            "round_nr": 5,
            "freeze_time": false,
            "left": {
                "roster_id": 41016,
                "score": 3,
                "side": "CT",
                "players": [
                    {
                        "id": 8247,
                        "hp": 0,
                        "weapon": null,
                        "economy": 100,
                        "kills": 1,
                        "deaths": 2,
                        "assists": 1
                    },
                    {
                        "id": 15868,
                        "hp": 9,
                        "weapon": {
                            "name": "ak47",
                            "images": {
                                "small": "https://img.abiosgaming.com/other/game-assets/csgo-weapons/ak47.png" 
                            }
                        },
                        "economy": 700,
                        "kills": 3,
                        "deaths": 2,
                        "assists": 2
                    },
                    {},
                ]
            },
            "right": {
                "roster_id": 38244,
                "score": 1,
                "side": "T",
                "players": [],
            },
        },
        "diff": [
            {
                "attribute": "$.left.players[1].kills",
                "before": 2,
                "after": 3
            },
            {
                "attribute": "$.right.players[1].weapon",
                "before": {
                    "name": "famas",
                    "images": {
                        "small": "https://img.abiosgaming.com/other/game-assets/csgo-weapons/famas.png" 
                    }
                },
                "after": null
            },
            {},
        ],
        "kills": [
            {
                "killer_id": 15868,
                "killed_id": 8297,
                "weapon": {
                    "name": "ak-47",
                    "images": {
                        "small": "https://img.abiosgaming.com/other/game-assets/csgo-weapons/ak47.png" 
                    }
                },
                "kill_type": "headshot"
            }
        ],
        "events": [
            "bomb-planted",
            "bomb-defused",
            "round-ended",
            "round-started",
            "target-bombed",
            "bomb-defused",
            "timeout",
            "t_eliminated",
            "ct_eliminated",
            "unknown-win-reason",
        ]
    }
}
Name
Type
Description

channel

string

The name of the channel on which the message is sent.

created_timestamp

int

The timestamp from when the message was created and sent from the "producer" application in the Abios infrastructure.

uuid

string

A unique identifier for the message.

state

string

The most recent state of the game data.

kills

kill_event

An array of kills that happened at the time specified by state.match_time.

Suggest Edits

LoL Events

Get live League of Legends data

 

This is how a message looks on the live_lol and live_lol_test channels.

{
  "channel": "live_lol_test",
  "created_timestamp": 1521218025750,
  "payload": {
    "diff": [
      {
        "after": 22.7,
        "attribute": "$.blue.gold",
        "before": 22.6
      }
    ],
    "kills": [
      {
        "assists": [
          8588,
          8516
        ],
        "killed_id": {
          "id": 32322,
          "subtype": null,
          "team": "blue",
          "type": "player"
        },
        "killer_id": 37877
      },
      {
        "assists": [],
        "killed_id": {
          "id": 26694,
          "subtype": null,
          "team": "red",
          "type": "player"
        },
        "killer_id": 18387
      },
      {
        "assists": [],
        "killed_id": {
          "id": null,
          "subtype": "Water Dragon",
          "team": null,
          "type": "elite"
        },
        "killer_id": 8752
      },
      {
        "assists": [],
        "killed_id": {
          "id": null,
          "subtype": "Turret",
          "team": "blue",
          "type": "structure"
        },
        "killer_id": 12370
      }
    ],
    "events": [ //all possible events listed in this example push
      "match-started", 
      "match-ended"
    ],
    "state": {
      "blue": {
        "barons_slain": 0,
        "dragons_slain": 0,
        "gold": 2.5,
        "inhibitors_destroyed": 0,
        "kills": 2,
        "roster_id": 35149,
        "towers": 1,
        "players": [
          {
            "id": 13072,
            "champion": {
              "external_id": 78,
              "images": {
                "default": "http://img.abiosgaming.com/other/game-assets/lol-champions/Poppy.png",
                "thumbnail": "http://img.abiosgaming.com/other/game-assets/lol-champions/thumbnails/Poppy.png"
              },
              "name": "Poppy"
            },
            "kills": 2,
            "deaths": 0,
            "assists": 1,
            "cks": 36,
            "inventory": [
              {
                "external_id": 1054,
                "image": {
                  "default": "http://img.abiosgaming.com/other/game-assets/lol-items/dorans_shield.png",
                  "thumbnail": "http://img.abiosgaming.com/other/game-assets/lol-items/thumbnails/dorans_shield.png"
                },
                "name": "Doran's Shield"
              },
              {}
            ],
            "location": [
              0.1895910780669145,
              0.2379182156133829
            ]
          },
             {}
         ]
      },
      "match": 271144,
      "match_time": 826,
      "red": {
        "barons_slain": 2,
        "dragons_slain": 1,
        "gold": 2.5,
        "inhibitors_destroyed": 0,
        "kills": 0,
        "roster_id": 32559,
        "towers": 1,
        "players": [
             {}
         ]
      },
      "series": 149734
    }
  },
  "uuid": "d4bef86e-8eff-4b28-9ab3-534b98b87bbb"
}
Name
Type
Description

channel

string

The name of the channel on which the message is sent.

timestamp

int

The timestamp from when the message was created and sent from the "producer" application in the Abios infrastructure.

uuid

string

A unique identifier for the message.

state

string

The most recent state of the game data.

state.series

int

The series ID to which the data relate.

kills

array

A list of kill events that happened at this time. Possible kill types are player, structure, and elite.