MENU navbar-image

Introduction

A public API to fetch data from etf2l.org, the biggest European Team Fortress 2 League.

ETF2L REST API v2 beta

Migrating from v1 to v2

The second version of API is rewritten from the ground up in PHP/Laravel. In order to make migrating to the new API as painless as possible, most of the popular endpoints are functionally the same with some slight differences.

In order to migrate to the new API, first your endpoint will need to change to the new URL.

Second, the paginator used in the new API works differently from the paginator in v1. In order to change pages in v1, you provide the page as the URL parameter for a request. Example: /competition/list/:page However, in v2 the paginator takes a page as a query parameter. So in order to request page 2 you would do the following in v2: Example: /competition/list?page=2

The paginator also takes an argument for amount of records it can return at once. Please keep this within limits. By default, every page returns 20 records. If you want to override this, you can provide the limit query parameter. Example: /competition/list?page=1&limit=50 would give you 50 records instead of 20.

Supported output formats

To decrease maintenance overhead, the only output format that remains supported is JSON. yaml, VDF, XML, HTML, perl & php are deprecated. If you still need these, please keep using v1 of the API.

Timespans

Because this provided confusion in the past with data not being visible due to defaulting to only showing active competitions & matches, the since parameter was removed. We suggest using the 'from' and 'to' query parameters to limit records within a certain timespan. These represent UNIX timestamps.

Feature requests

Feature requests for the API are welcome and will be reviewed accordingly by the ETF2L team. Ultimately, it is still up to ETF2L whether additional data or filters get added. The best way to provide feedback on the API would be to contact us on Discord. Please describe your wishes and use case if you do so.

Boolean values

Booleans are non-numeric anymore when they get returned from the API. They will display true or false instead.

New endpoints

Some additional endpoints are provided in the API that were not present in v1, namely the Match API & Demo API.

Base URL

https://api-v2.etf2l.org

Authenticating requests

This API is not authenticated.

Bans

Bans

Returns a paginated list of all bans that were performed on ETF2L.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/bans?player=2788&reason=VAC" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/bans"
);

const params = {
    "player": "2788",
    "reason": "VAC",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 52
 

{
    "bans": {
        "current_page": 1,
        "data": [],
        "first_page_url": "https://api-v2.etf2l.org/bans?player=2788&reason=VAC&page=1",
        "from": null,
        "last_page": 1,
        "last_page_url": "https://api-v2.etf2l.org/bans?player=2788&reason=VAC&page=1",
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/bans?player=2788&reason=VAC&page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "active": false
            }
        ],
        "next_page_url": null,
        "path": "https://api-v2.etf2l.org/bans",
        "per_page": 20,
        "prev_page_url": null,
        "to": null,
        "total": 0
    }
}
 

Request      

GET bans

Query Parameters

player  integer optional  

Takes an ETF2L user ID and returns bans that were given to a user.

status  string optional  

Can be either 'active' or 'expired'.

reason  string optional  

Filter by the reason of the ban.

Competition

Competition overview

Gets a list of all competitions.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/competition/list?category=6v6+Season&comp_type=Swiss&team_type=6on6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/competition/list"
);

const params = {
    "category": "6v6 Season",
    "comp_type": "Swiss",
    "team_type": "6on6",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 51
 

{
    "competitions": {
        "current_page": 1,
        "data": [],
        "first_page_url": "https://api-v2.etf2l.org/competition/list?category=6v6%20Season&comp_type=Swiss&team_type=6on6&page=1",
        "from": null,
        "last_page": 1,
        "last_page_url": "https://api-v2.etf2l.org/competition/list?category=6v6%20Season&comp_type=Swiss&team_type=6on6&page=1",
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/list?category=6v6%20Season&comp_type=Swiss&team_type=6on6&page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "active": false
            }
        ],
        "next_page_url": null,
        "path": "https://api-v2.etf2l.org/competition/list",
        "per_page": 20,
        "prev_page_url": null,
        "to": null,
        "total": 0
    },
    "status": {
        "code": 200,
        "message": "OK"
    }
}
 

Request      

GET competition/list

Query Parameters

archived  integer optional  

1 Returns only archived competitions, 0 returns non-archived competitions.

name  string optional  

Search by name.

description  string optional  

Search by description.

category  string optional  

Search by kind of competition.

comp_type  string optional  

Search by competition format.

team_type  string optional  

Search by team type.

competition  string optional  

Search by a specific competition ID.

Competition details

Provides some extra details on the competition. Extra information includes the map pool & total signups.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/competition/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/competition/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 50
 

{
    "competition": {
        "category": "6v6 Season",
        "description": "ETF2L Season 1",
        "id": 1,
        "name": "Season 1",
        "pool": [
            "cp_well",
            "cp_granary",
            "cp_dustbowl",
            "cp_gravelpit",
            "ctf_2fort",
            "ctf_turbine"
        ],
        "archived": true,
        "type": "6v6",
        "teams": {
            "max": 51,
            "signedup": 40
        },
        "urls": {
            "matches": "https://api-v2.etf2l.org/competition/1/matches",
            "results": "https://api-v2.etf2l.org/competition/1/results",
            "self": "https://api-v2.etf2l.org/competition/1",
            "teams": "https://api-v2.etf2l.org/competition/1/teams"
        }
    },
    "status": {
        "code": 200,
        "message": "OK"
    }
}
 

Request      

GET competition/{competition_id}

URL Parameters

competition_id  integer  

The ID of the competition.

Competition teams

Returns a paginated list of teams that participated in the competition. Dropped teams are marked with the 'drop' parameter.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/competition/1/teams" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/competition/1/teams"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 49
 

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "teams": {
        "current_page": 1,
        "data": [
            {
                "id": 4,
                "country": "European",
                "name": "Relic",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123f37bce.jpg",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/4"
            },
            {
                "id": 19,
                "country": "Sweden",
                "name": "Kompaniet",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/19"
            },
            {
                "id": 9,
                "country": "Finland",
                "name": "Clan United",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/9"
            },
            {
                "id": 21,
                "country": "Sweden",
                "name": "In Die Anale Combo",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/21"
            },
            {
                "id": 11,
                "country": "France",
                "name": "FoF",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/11"
            },
            {
                "id": 139,
                "country": "Finland",
                "name": "Blood Pressure",
                "dropped": 1,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/139"
            },
            {
                "id": 8,
                "country": "European",
                "name": "Team Vertex - RIP Youngblood",
                "dropped": 1,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123ed7fd4.jpg",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/8"
            },
            {
                "id": 3,
                "country": "International",
                "name": "TeamCoolermaster",
                "dropped": 1,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/3"
            },
            {
                "id": 13,
                "country": "European",
                "name": "The Last Resort",
                "dropped": 1,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/13"
            },
            {
                "id": 15,
                "country": "International",
                "name": "Monster Munch",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/15"
            },
            {
                "id": 31,
                "country": "International",
                "name": "Team CoolerMaster",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/31"
            },
            {
                "id": 36,
                "country": "Sweden",
                "name": "Excello",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/36"
            },
            {
                "id": 40,
                "country": "Sweden",
                "name": "Excello",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/40"
            },
            {
                "id": 6,
                "country": "Germany",
                "name": "aX-eSport.GamerArea",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/6"
            },
            {
                "id": 18,
                "country": "European",
                "name": "extenSia!",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/18"
            },
            {
                "id": 50,
                "country": "Russia",
                "name": "LOL Team remix",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123d3e9f7.jpg",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/50"
            },
            {
                "id": 43,
                "country": "France",
                "name": "N!nja Clan",
                "dropped": 1,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/43"
            },
            {
                "id": 28,
                "country": "Germany",
                "name": "veil",
                "dropped": 1,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/28"
            },
            {
                "id": 5,
                "country": "Finland",
                "name": "sigh6",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/5"
            },
            {
                "id": 29,
                "country": "European",
                "name": "Fracture",
                "dropped": 0,
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "steam_group": null
                },
                "url": "https://api-v2.etf2l.org/team/29"
            }
        ],
        "first_page_url": "https://api-v2.etf2l.org/competition/1/teams?page=1",
        "from": 1,
        "last_page": 3,
        "last_page_url": "https://api-v2.etf2l.org/competition/1/teams?page=3",
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/teams?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/teams?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/teams?page=3",
                "label": "3",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/teams?page=2",
                "label": "Next »",
                "active": false
            }
        ],
        "next_page_url": "https://api-v2.etf2l.org/competition/1/teams?page=2",
        "path": "https://api-v2.etf2l.org/competition/1/teams",
        "per_page": 20,
        "prev_page_url": null,
        "to": 20,
        "total": 51
    }
}
 

Request      

GET competition/{competition_id}/teams

URL Parameters

competition_id  integer  

The ID of the competition.

Competition results

Gets a paginated list of all match results for this competition, ordered from most to least recent.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/competition/1/results" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/competition/1/results"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 48
 

{
    "results": {
        "current_page": 1,
        "data": [
            {
                "clan1": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 26,
                    "name": "jAgarna",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123e0e7e9.jpg",
                        "group": "https://steamcommunity.com/groups/jay"
                    },
                    "url": "https://api-v2.etf2l.org/team/26"
                },
                "clan2": {
                    "country": "International",
                    "drop": false,
                    "id": 52,
                    "name": "Fragtastic!",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/52"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": true,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1093,
                "maps": [],
                "r1": 6,
                "r2": 0,
                "round": "Week 9",
                "time": null,
                "week": 9
            },
            {
                "clan1": {
                    "country": "England",
                    "drop": false,
                    "id": 16,
                    "name": "9 Men",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123e5a58a.jpg",
                        "group": "https://steamcommunity.com/groups/9m"
                    },
                    "url": "https://api-v2.etf2l.org/team/16"
                },
                "clan2": {
                    "country": "Finland",
                    "drop": false,
                    "id": 41,
                    "name": "Prima Nocta",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/41"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1079,
                "maps": [
                    "ctf_2fort",
                    "cp_well"
                ],
                "r1": 0,
                "r2": 6,
                "round": "Week 6",
                "time": null,
                "week": 6
            },
            {
                "clan1": {
                    "country": "Germany",
                    "drop": false,
                    "id": 10,
                    "name": "$myT1nk",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123ea85c0.jpg",
                        "group": "https://steamcommunity.com/groups/myt1nktf2"
                    },
                    "url": "https://api-v2.etf2l.org/team/10"
                },
                "clan2": {
                    "country": "France",
                    "drop": false,
                    "id": 57,
                    "name": "The Old School Team",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/57"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1077,
                "maps": [
                    "cp_well",
                    "cp_dustbowl"
                ],
                "r1": 1,
                "r2": 4,
                "round": "Week 5",
                "time": null,
                "week": 5
            },
            {
                "clan1": {
                    "country": "England",
                    "drop": false,
                    "id": 16,
                    "name": "9 Men",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123e5a58a.jpg",
                        "group": "https://steamcommunity.com/groups/9m"
                    },
                    "url": "https://api-v2.etf2l.org/team/16"
                },
                "clan2": {
                    "country": "International",
                    "drop": false,
                    "id": 52,
                    "name": "Fragtastic!",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/52"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1076,
                "maps": [
                    "ctf_2fort",
                    "ctf_2fort"
                ],
                "r1": 6,
                "r2": 0,
                "round": "Week 5",
                "time": null,
                "week": 5
            },
            {
                "clan1": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 26,
                    "name": "jAgarna",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123e0e7e9.jpg",
                        "group": "https://steamcommunity.com/groups/jay"
                    },
                    "url": "https://api-v2.etf2l.org/team/26"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 45,
                    "name": "Slackerz",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/45"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1075,
                "maps": [
                    "cp_gravelpit",
                    "ctf_2fort"
                ],
                "r1": 6,
                "r2": 0,
                "round": "Week 5",
                "time": null,
                "week": 5
            },
            {
                "clan1": {
                    "country": "Finland",
                    "drop": false,
                    "id": 41,
                    "name": "Prima Nocta",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/41"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 45,
                    "name": "Slackerz",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/45"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1073,
                "maps": [
                    "cp_gravelpit",
                    "cp_well"
                ],
                "r1": 6,
                "r2": 0,
                "round": "Week 4",
                "time": null,
                "week": 4
            },
            {
                "clan1": {
                    "country": "Germany",
                    "drop": false,
                    "id": 7,
                    "name": "simply iQ",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/7"
                },
                "clan2": {
                    "country": "England",
                    "drop": false,
                    "id": 16,
                    "name": "9 Men",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123e5a58a.jpg",
                        "group": "https://steamcommunity.com/groups/9m"
                    },
                    "url": "https://api-v2.etf2l.org/team/16"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1072,
                "maps": [
                    "cp_granary",
                    "cp_gravelpit"
                ],
                "r1": 4,
                "r2": 1,
                "round": "Week 4",
                "time": null,
                "week": 4
            },
            {
                "clan1": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 26,
                    "name": "jAgarna",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123e0e7e9.jpg",
                        "group": "https://steamcommunity.com/groups/jay"
                    },
                    "url": "https://api-v2.etf2l.org/team/26"
                },
                "clan2": {
                    "country": "France",
                    "drop": false,
                    "id": 57,
                    "name": "The Old School Team",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/57"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1071,
                "maps": [
                    "cp_well",
                    "cp_dustbowl"
                ],
                "r1": 3,
                "r2": 3,
                "round": "Week 4",
                "time": null,
                "week": 4
            },
            {
                "clan1": {
                    "country": "Germany",
                    "drop": false,
                    "id": 7,
                    "name": "simply iQ",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/7"
                },
                "clan2": {
                    "country": "International",
                    "drop": false,
                    "id": 52,
                    "name": "Fragtastic!",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/52"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1081,
                "maps": [
                    "cp_dustbowl",
                    "cp_dustbowl"
                ],
                "r1": 6,
                "r2": 0,
                "round": "Week 6",
                "time": null,
                "week": 6
            },
            {
                "clan1": {
                    "country": "Germany",
                    "drop": false,
                    "id": 10,
                    "name": "$myT1nk",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123ea85c0.jpg",
                        "group": "https://steamcommunity.com/groups/myt1nktf2"
                    },
                    "url": "https://api-v2.etf2l.org/team/10"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 45,
                    "name": "Slackerz",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/45"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1082,
                "maps": [
                    "cp_well",
                    "ctf_2fort"
                ],
                "r1": 6,
                "r2": 0,
                "round": "Week 6",
                "time": null,
                "week": 6
            },
            {
                "clan1": {
                    "country": "Germany",
                    "drop": false,
                    "id": 7,
                    "name": "simply iQ",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/7"
                },
                "clan2": {
                    "country": "Germany",
                    "drop": false,
                    "id": 10,
                    "name": "$myT1nk",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123ea85c0.jpg",
                        "group": "https://steamcommunity.com/groups/myt1nktf2"
                    },
                    "url": "https://api-v2.etf2l.org/team/10"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1092,
                "maps": [
                    "cp_well",
                    "cp_granary"
                ],
                "r1": 1,
                "r2": 4,
                "round": "Week 9",
                "time": null,
                "week": 9
            },
            {
                "clan1": {
                    "country": "England",
                    "drop": false,
                    "id": 16,
                    "name": "9 Men",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123e5a58a.jpg",
                        "group": "https://steamcommunity.com/groups/9m"
                    },
                    "url": "https://api-v2.etf2l.org/team/16"
                },
                "clan2": {
                    "country": "France",
                    "drop": false,
                    "id": 57,
                    "name": "The Old School Team",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/57"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1091,
                "maps": [
                    "ctf_turbine",
                    "cp_granary"
                ],
                "r1": 6,
                "r2": 0,
                "round": "Week 9",
                "time": null,
                "week": 9
            },
            {
                "clan1": {
                    "country": "Germany",
                    "drop": false,
                    "id": 10,
                    "name": "$myT1nk",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123ea85c0.jpg",
                        "group": "https://steamcommunity.com/groups/myt1nktf2"
                    },
                    "url": "https://api-v2.etf2l.org/team/10"
                },
                "clan2": {
                    "country": "England",
                    "drop": false,
                    "id": 16,
                    "name": "9 Men",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123e5a58a.jpg",
                        "group": "https://steamcommunity.com/groups/9m"
                    },
                    "url": "https://api-v2.etf2l.org/team/16"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1090,
                "maps": [
                    "cp_granary",
                    "cp_dustbowl"
                ],
                "r1": 6,
                "r2": 0,
                "round": "Week 8",
                "time": null,
                "week": 8
            },
            {
                "clan1": {
                    "country": "Finland",
                    "drop": false,
                    "id": 41,
                    "name": "Prima Nocta",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/41"
                },
                "clan2": {
                    "country": "International",
                    "drop": false,
                    "id": 52,
                    "name": "Fragtastic!",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/52"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": true,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1089,
                "maps": [],
                "r1": 6,
                "r2": 0,
                "round": "Week 8",
                "time": null,
                "week": 8
            },
            {
                "clan1": {
                    "country": "Germany",
                    "drop": false,
                    "id": 7,
                    "name": "simply iQ",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/7"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 26,
                    "name": "jAgarna",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123e0e7e9.jpg",
                        "group": "https://steamcommunity.com/groups/jay"
                    },
                    "url": "https://api-v2.etf2l.org/team/26"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1087,
                "maps": [
                    "cp_well",
                    "cp_gravelpit"
                ],
                "r1": 0,
                "r2": 6,
                "round": "Week 8",
                "time": null,
                "week": 8
            },
            {
                "clan1": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 45,
                    "name": "Slackerz",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/45"
                },
                "clan2": {
                    "country": "France",
                    "drop": false,
                    "id": 57,
                    "name": "The Old School Team",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/57"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1086,
                "maps": [
                    "cp_dustbowl",
                    "cp_gravelpit"
                ],
                "r1": 0,
                "r2": 6,
                "round": "Week 7",
                "time": null,
                "week": 7
            },
            {
                "clan1": {
                    "country": "England",
                    "drop": false,
                    "id": 16,
                    "name": "9 Men",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123e5a58a.jpg",
                        "group": "https://steamcommunity.com/groups/9m"
                    },
                    "url": "https://api-v2.etf2l.org/team/16"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 26,
                    "name": "jAgarna",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123e0e7e9.jpg",
                        "group": "https://steamcommunity.com/groups/jay"
                    },
                    "url": "https://api-v2.etf2l.org/team/26"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1085,
                "maps": [
                    "ctf_turbine",
                    "cp_dustbowl"
                ],
                "r1": 0,
                "r2": 6,
                "round": "Week 7",
                "time": null,
                "week": 7
            },
            {
                "clan1": {
                    "country": "Germany",
                    "drop": false,
                    "id": 7,
                    "name": "simply iQ",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/7"
                },
                "clan2": {
                    "country": "Finland",
                    "drop": false,
                    "id": 41,
                    "name": "Prima Nocta",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/41"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1083,
                "maps": [
                    "cp_well",
                    "cp_gravelpit"
                ],
                "r1": 0,
                "r2": 6,
                "round": "Week 7",
                "time": null,
                "week": 7
            },
            {
                "clan1": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 45,
                    "name": "Slackerz",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/45"
                },
                "clan2": {
                    "country": "International",
                    "drop": false,
                    "id": 52,
                    "name": "Fragtastic!",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/52"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1070,
                "maps": [
                    "ctf_turbine",
                    "cp_dustbowl"
                ],
                "r1": 6,
                "r2": 0,
                "round": "Week 3",
                "time": null,
                "week": 3
            },
            {
                "clan1": {
                    "country": "Germany",
                    "drop": false,
                    "id": 10,
                    "name": "$myT1nk",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123ea85c0.jpg",
                        "group": "https://steamcommunity.com/groups/myt1nktf2"
                    },
                    "url": "https://api-v2.etf2l.org/team/10"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 26,
                    "name": "jAgarna",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123e0e7e9.jpg",
                        "group": "https://steamcommunity.com/groups/jay"
                    },
                    "url": "https://api-v2.etf2l.org/team/26"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 21,
                    "name": "Division 3b",
                    "skill_contrib": 16,
                    "tier": 3
                },
                "id": 1069,
                "maps": [
                    "ctf_2fort",
                    "cp_well"
                ],
                "r1": 4,
                "r2": 1,
                "round": "Week 3",
                "time": null,
                "week": 3
            }
        ],
        "first_page_url": "https://api-v2.etf2l.org/competition/1/results?page=1",
        "from": 1,
        "last_page": 6,
        "last_page_url": "https://api-v2.etf2l.org/competition/1/results?page=6",
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/results?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/results?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/results?page=3",
                "label": "3",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/results?page=4",
                "label": "4",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/results?page=5",
                "label": "5",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/results?page=6",
                "label": "6",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/results?page=2",
                "label": "Next »",
                "active": false
            }
        ],
        "next_page_url": "https://api-v2.etf2l.org/competition/1/results?page=2",
        "path": "https://api-v2.etf2l.org/competition/1/results",
        "per_page": 20,
        "prev_page_url": null,
        "to": 20,
        "total": 118
    },
    "status": {
        "code": 200,
        "message": "OK"
    }
}
 

Request      

GET competition/{competition_id}/results

URL Parameters

competition_id  integer  

The ID of the competition.

Competition matches

Gets a paginated list of all matches for this competition, ordered from most to least recent. The main difference with the competition results API is that matches do not have to be played yet in order to appear in this list.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/competition/1/matches" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/competition/1/matches"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 47
 

{
    "matches": {
        "current_page": 1,
        "data": [
            {
                "clan1": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 36,
                    "name": "Excello",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/36"
                },
                "clan2": {
                    "country": "Finland",
                    "drop": false,
                    "id": 5,
                    "name": "sigh6",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/5"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 19,
                    "name": "Division 2b",
                    "tier": 2
                },
                "id": 1151,
                "maps": [
                    "cp_granary",
                    "cp_granary"
                ],
                "result": {
                    "r1": 6,
                    "r2": 0
                },
                "round": "Playoffs",
                "time": null,
                "week": 12,
                "skill_contrib": 20
            },
            {
                "clan1": {
                    "country": "Finland",
                    "drop": false,
                    "id": 9,
                    "name": "Clan United",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/9"
                },
                "clan2": {
                    "country": "Finland",
                    "drop": true,
                    "id": 139,
                    "name": "Blood Pressure",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/139"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 943,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 4",
                "time": null,
                "week": 4,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "International",
                    "drop": true,
                    "id": 3,
                    "name": "TeamCoolermaster",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/3"
                },
                "clan2": {
                    "country": "European",
                    "drop": true,
                    "id": 8,
                    "name": "Team Vertex - RIP Youngblood",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123ed7fd4.jpg",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/8"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 944,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 4",
                "time": null,
                "week": 4,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "European",
                    "drop": true,
                    "id": 13,
                    "name": "The Last Resort",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/13"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 19,
                    "name": "Kompaniet",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/19"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 945,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 4",
                "time": null,
                "week": 4,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "France",
                    "drop": false,
                    "id": 11,
                    "name": "FoF",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/11"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 21,
                    "name": "In Die Anale Combo",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/21"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 946,
                "maps": [
                    "cp_granary",
                    "cp_granary"
                ],
                "result": {
                    "r1": 6,
                    "r2": 0
                },
                "round": "Week 4",
                "time": null,
                "week": 4,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "Finland",
                    "drop": false,
                    "id": 9,
                    "name": "Clan United",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/9"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 19,
                    "name": "Kompaniet",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/19"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 947,
                "maps": [
                    "cp_dustbowl",
                    "cp_well"
                ],
                "result": {
                    "r1": 0,
                    "r2": 6
                },
                "round": "Week 5",
                "time": null,
                "week": 5,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "European",
                    "drop": true,
                    "id": 8,
                    "name": "Team Vertex - RIP Youngblood",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123ed7fd4.jpg",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/8"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 21,
                    "name": "In Die Anale Combo",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/21"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 948,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 5",
                "time": null,
                "week": 5,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "European",
                    "drop": false,
                    "id": 4,
                    "name": "Relic",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123f37bce.jpg",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/4"
                },
                "clan2": {
                    "country": "Finland",
                    "drop": true,
                    "id": 139,
                    "name": "Blood Pressure",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/139"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 949,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 5",
                "time": null,
                "week": 5,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "France",
                    "drop": false,
                    "id": 11,
                    "name": "FoF",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/11"
                },
                "clan2": {
                    "country": "European",
                    "drop": true,
                    "id": 13,
                    "name": "The Last Resort",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/13"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 950,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 5",
                "time": null,
                "week": 5,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 19,
                    "name": "Kompaniet",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/19"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 21,
                    "name": "In Die Anale Combo",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/21"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 942,
                "maps": [
                    "ctf_2fort",
                    "cp_granary"
                ],
                "result": {
                    "r1": 6,
                    "r2": 0
                },
                "round": "Week 3",
                "time": null,
                "week": 3,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "European",
                    "drop": false,
                    "id": 4,
                    "name": "Relic",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123f37bce.jpg",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/4"
                },
                "clan2": {
                    "country": "Finland",
                    "drop": false,
                    "id": 9,
                    "name": "Clan United",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/9"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": false,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 941,
                "maps": [
                    "cp_well",
                    "cp_dustbowl"
                ],
                "result": {
                    "r1": 4,
                    "r2": 1
                },
                "round": "Week 3",
                "time": null,
                "week": 3,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "International",
                    "drop": true,
                    "id": 3,
                    "name": "TeamCoolermaster",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/3"
                },
                "clan2": {
                    "country": "France",
                    "drop": false,
                    "id": 11,
                    "name": "FoF",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/11"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 940,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 3",
                "time": null,
                "week": 3,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "International",
                    "drop": true,
                    "id": 3,
                    "name": "TeamCoolermaster",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/3"
                },
                "clan2": {
                    "country": "Finland",
                    "drop": true,
                    "id": 139,
                    "name": "Blood Pressure",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/139"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 932,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 1",
                "time": null,
                "week": 1,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "European",
                    "drop": true,
                    "id": 8,
                    "name": "Team Vertex - RIP Youngblood",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123ed7fd4.jpg",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/8"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 19,
                    "name": "Kompaniet",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/19"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 933,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 1",
                "time": null,
                "week": 1,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "Finland",
                    "drop": false,
                    "id": 9,
                    "name": "Clan United",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/9"
                },
                "clan2": {
                    "country": "European",
                    "drop": true,
                    "id": 13,
                    "name": "The Last Resort",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/13"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 934,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 1",
                "time": null,
                "week": 1,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "European",
                    "drop": true,
                    "id": 8,
                    "name": "Team Vertex - RIP Youngblood",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123ed7fd4.jpg",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/8"
                },
                "clan2": {
                    "country": "France",
                    "drop": false,
                    "id": 11,
                    "name": "FoF",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/11"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 935,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 2",
                "time": null,
                "week": 2,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 21,
                    "name": "In Die Anale Combo",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/21"
                },
                "clan2": {
                    "country": "Finland",
                    "drop": true,
                    "id": 139,
                    "name": "Blood Pressure",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/139"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 936,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 2",
                "time": null,
                "week": 2,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "European",
                    "drop": false,
                    "id": 4,
                    "name": "Relic",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/5577123f37bce.jpg",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/4"
                },
                "clan2": {
                    "country": "European",
                    "drop": true,
                    "id": 13,
                    "name": "The Last Resort",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/13"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 937,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 2",
                "time": null,
                "week": 2,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "International",
                    "drop": true,
                    "id": 3,
                    "name": "TeamCoolermaster",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/3"
                },
                "clan2": {
                    "country": "Sweden",
                    "drop": false,
                    "id": 19,
                    "name": "Kompaniet",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/19"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 938,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 2",
                "time": null,
                "week": 2,
                "skill_contrib": 24
            },
            {
                "clan1": {
                    "country": "European",
                    "drop": true,
                    "id": 13,
                    "name": "The Last Resort",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/13"
                },
                "clan2": {
                    "country": "Finland",
                    "drop": true,
                    "id": 139,
                    "name": "Blood Pressure",
                    "steam": {
                        "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                        "group": null
                    },
                    "url": "https://api-v2.etf2l.org/team/139"
                },
                "competition": {
                    "category": "6v6 Season",
                    "id": 1,
                    "name": "Season 1",
                    "type": "6v6",
                    "url": "https://api-v2.etf2l.org/competition/1"
                },
                "defaultwin": null,
                "division": {
                    "id": 17,
                    "name": "Division 1",
                    "tier": 1
                },
                "id": 939,
                "maps": [],
                "result": {
                    "r1": null,
                    "r2": null
                },
                "round": "Week 3",
                "time": null,
                "week": 3,
                "skill_contrib": 24
            }
        ],
        "first_page_url": "https://api-v2.etf2l.org/competition/1/matches?page=1",
        "from": 1,
        "last_page": 10,
        "last_page_url": "https://api-v2.etf2l.org/competition/1/matches?page=10",
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/matches?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/matches?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/matches?page=3",
                "label": "3",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/matches?page=4",
                "label": "4",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/matches?page=5",
                "label": "5",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/matches?page=6",
                "label": "6",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/matches?page=7",
                "label": "7",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/matches?page=8",
                "label": "8",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/matches?page=9",
                "label": "9",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/matches?page=10",
                "label": "10",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/competition/1/matches?page=2",
                "label": "Next »",
                "active": false
            }
        ],
        "next_page_url": "https://api-v2.etf2l.org/competition/1/matches?page=2",
        "path": "https://api-v2.etf2l.org/competition/1/matches",
        "per_page": 20,
        "prev_page_url": null,
        "to": 20,
        "total": 194
    },
    "status": {
        "code": 200,
        "message": "OK"
    }
}
 

Request      

GET competition/{competition_id}/matches

URL Parameters

competition_id  integer  

The ID of the competition.

Competition tables

This endpoint returns the same data that is used to show the tables if you navigate to 'Competitions' -> {the competition} Tables.

drop marks if a team was dropped from the competition. gc_ stands for Golden Cap and covers both Golden Cap wins and losses. penalty_points are assigned when a team has contracted a certain amount of warnings (see ETF2L General Rules for more information) ach (short for achievement) indicates the placement of the teams at the end of a season. The tables are grouped by division names respectively. The order in which they are sorted indicates their placements. Dropped teams will always be at the bottom, while teams that finished top 3 will always be first even if they had overall less score in the main season.

Note that one season might have multiple competitions internally. This is usually the case for regular tiers vs top tiers.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/competition/1/tables" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/competition/1/tables"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 46
 

{
    "tables": {
        "Division 3a": [
            {
                "id": 25,
                "drop": false,
                "division_id": 20,
                "division_name": "Division 3a",
                "country": "Germany",
                "name": "Friede seiner Asche",
                "maps_played": 15,
                "maps_won": 13,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 2,
                "penalty_points": 0,
                "score": 37,
                "ach": 1,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 54,
                "drop": false,
                "division_id": 20,
                "division_name": "Division 3a",
                "country": "Germany",
                "name": "SHIFTplay",
                "maps_played": 16,
                "maps_won": 12,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 4,
                "penalty_points": 0,
                "score": 32,
                "ach": 2,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 33,
                "drop": false,
                "division_id": 20,
                "division_name": "Division 3a",
                "country": "Russia",
                "name": "Team Empire",
                "maps_played": 16,
                "maps_won": 12,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 4,
                "penalty_points": 0,
                "score": 32,
                "ach": 3,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 32,
                "drop": false,
                "division_id": 20,
                "division_name": "Division 3a",
                "country": "Sweden",
                "name": "Northwave",
                "maps_played": 16,
                "maps_won": 10,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 6,
                "penalty_points": 0,
                "score": 26,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 35,
                "drop": false,
                "division_id": 20,
                "division_name": "Division 3a",
                "country": "UnitedKingdom",
                "name": "clanda",
                "maps_played": 14,
                "maps_won": 5,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 9,
                "penalty_points": 0,
                "score": 15,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 48,
                "drop": false,
                "division_id": 20,
                "division_name": "Division 3a",
                "country": "International",
                "name": "fight club united kingdom",
                "maps_played": 15,
                "maps_won": 5,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 10,
                "penalty_points": 0,
                "score": 13,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 47,
                "drop": false,
                "division_id": 20,
                "division_name": "Division 3a",
                "country": "European",
                "name": "Kaizen",
                "maps_played": 15,
                "maps_won": 3,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 12,
                "penalty_points": 0,
                "score": 7,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 49,
                "drop": false,
                "division_id": 20,
                "division_name": "Division 3a",
                "country": "Finland",
                "name": "The MIPC Second Edition",
                "maps_played": 15,
                "maps_won": 1,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 14,
                "penalty_points": 0,
                "score": 1,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 37,
                "drop": true,
                "division_id": 20,
                "division_name": "Division 3a",
                "country": "Finland",
                "name": "Legioona",
                "maps_played": 0,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 0,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            }
        ],
        "Division 3b": [
            {
                "id": 41,
                "drop": false,
                "division_id": 21,
                "division_name": "Division 3b",
                "country": "Finland",
                "name": "Prima Nocta",
                "maps_played": 15,
                "maps_won": 12,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 3,
                "penalty_points": 0,
                "score": 34,
                "ach": 1,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 10,
                "drop": false,
                "division_id": 21,
                "division_name": "Division 3b",
                "country": "Germany",
                "name": "$myT1nk",
                "maps_played": 17,
                "maps_won": 12,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 5,
                "penalty_points": 0,
                "score": 30,
                "ach": 2,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 26,
                "drop": false,
                "division_id": 21,
                "division_name": "Division 3b",
                "country": "Sweden",
                "name": "jAgarna",
                "maps_played": 16,
                "maps_won": 11,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 5,
                "penalty_points": 0,
                "score": 29,
                "ach": 3,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 57,
                "drop": false,
                "division_id": 21,
                "division_name": "Division 3b",
                "country": "France",
                "name": "The Old School Team",
                "maps_played": 15,
                "maps_won": 9,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 6,
                "penalty_points": 0,
                "score": 25,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 7,
                "drop": false,
                "division_id": 21,
                "division_name": "Division 3b",
                "country": "Germany",
                "name": "simply iQ",
                "maps_played": 16,
                "maps_won": 8,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 8,
                "penalty_points": 0,
                "score": 20,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 16,
                "drop": false,
                "division_id": 21,
                "division_name": "Division 3b",
                "country": "England",
                "name": "9 Men",
                "maps_played": 15,
                "maps_won": 7,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 8,
                "penalty_points": 0,
                "score": 19,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 45,
                "drop": false,
                "division_id": 21,
                "division_name": "Division 3b",
                "country": "Sweden",
                "name": "Slackerz",
                "maps_played": 14,
                "maps_won": 2,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 12,
                "penalty_points": 0,
                "score": 6,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 52,
                "drop": false,
                "division_id": 21,
                "division_name": "Division 3b",
                "country": "International",
                "name": "Fragtastic!",
                "maps_played": 14,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 14,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 30,
                "drop": true,
                "division_id": 21,
                "division_name": "Division 3b",
                "country": "Sweden",
                "name": "Unalleviated Suffering",
                "maps_played": 0,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 0,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            }
        ],
        "Division 4": [
            {
                "id": 27,
                "drop": false,
                "division_id": 22,
                "division_name": "Division 4",
                "country": "Poland",
                "name": "total llamas",
                "maps_played": 13,
                "maps_won": 11,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 2,
                "penalty_points": 0,
                "score": 31,
                "ach": 1,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 55,
                "drop": false,
                "division_id": 22,
                "division_name": "Division 4",
                "country": "Germany",
                "name": "IsF",
                "maps_played": 15,
                "maps_won": 12,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 3,
                "penalty_points": 0,
                "score": 30,
                "ach": 2,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 56,
                "drop": false,
                "division_id": 22,
                "division_name": "Division 4",
                "country": "Sweden",
                "name": "hb0da",
                "maps_played": 15,
                "maps_won": 9,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 6,
                "penalty_points": 0,
                "score": 21,
                "ach": 3,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 51,
                "drop": false,
                "division_id": 22,
                "division_name": "Division 4",
                "country": "Belgium",
                "name": "Long Range Recce Patrol",
                "maps_played": 13,
                "maps_won": 7,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 6,
                "penalty_points": 0,
                "score": 19,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 24,
                "drop": false,
                "division_id": 22,
                "division_name": "Division 4",
                "country": "Netherlands",
                "name": "Insane Dutch Killers",
                "maps_played": 12,
                "maps_won": 4,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 8,
                "penalty_points": 0,
                "score": 12,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 53,
                "drop": false,
                "division_id": 22,
                "division_name": "Division 4",
                "country": "Russia",
                "name": "Chthonians",
                "maps_played": 14,
                "maps_won": 3,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 11,
                "penalty_points": 0,
                "score": 5,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 46,
                "drop": false,
                "division_id": 22,
                "division_name": "Division 4",
                "country": "Germany",
                "name": "Die Philosoffen",
                "maps_played": 14,
                "maps_won": 2,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 12,
                "penalty_points": 0,
                "score": 2,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 42,
                "drop": true,
                "division_id": 22,
                "division_name": "Division 4",
                "country": "Germany",
                "name": "x23",
                "maps_played": 0,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 0,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            }
        ],
        "Division 2b": [
            {
                "id": 36,
                "drop": false,
                "division_id": 19,
                "division_name": "Division 2b",
                "country": "Sweden",
                "name": "Excello",
                "maps_played": 12,
                "maps_won": 10,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 2,
                "penalty_points": 0,
                "score": 26,
                "ach": 1,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 5,
                "drop": false,
                "division_id": 19,
                "division_name": "Division 2b",
                "country": "Finland",
                "name": "sigh6",
                "maps_played": 12,
                "maps_won": 10,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 2,
                "penalty_points": 0,
                "score": 26,
                "ach": 2,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 29,
                "drop": false,
                "division_id": 19,
                "division_name": "Division 2b",
                "country": "European",
                "name": "Fracture",
                "maps_played": 10,
                "maps_won": 6,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 4,
                "penalty_points": 0,
                "score": 18,
                "ach": 3,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 17,
                "drop": false,
                "division_id": 19,
                "division_name": "Division 2b",
                "country": "European",
                "name": "Pub Clan",
                "maps_played": 11,
                "maps_won": 4,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 7,
                "penalty_points": 0,
                "score": 10,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 2,
                "drop": false,
                "division_id": 19,
                "division_name": "Division 2b",
                "country": "Germany",
                "name": "it's a farm!",
                "maps_played": 11,
                "maps_won": 3,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 8,
                "penalty_points": 0,
                "score": 7,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 39,
                "drop": false,
                "division_id": 19,
                "division_name": "Division 2b",
                "country": "Finland",
                "name": "Neatmeat",
                "maps_played": 10,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 10,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 93,
                "drop": true,
                "division_id": 19,
                "division_name": "Division 2b",
                "country": "Portugal",
                "name": "5 Quinas",
                "maps_played": 0,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 0,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 44,
                "drop": true,
                "division_id": 19,
                "division_name": "Division 2b",
                "country": "France",
                "name": "Veni Vidi Vici",
                "maps_played": 0,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 0,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            }
        ],
        "Division 2a": [
            {
                "id": 15,
                "drop": false,
                "division_id": 18,
                "division_name": "Division 2a",
                "country": "International",
                "name": "Monster Munch",
                "maps_played": 12,
                "maps_won": 9,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 3,
                "penalty_points": 0,
                "score": 23,
                "ach": 1,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 31,
                "drop": false,
                "division_id": 18,
                "division_name": "Division 2a",
                "country": "International",
                "name": "Team CoolerMaster",
                "maps_played": 14,
                "maps_won": 9,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 5,
                "penalty_points": 0,
                "score": 19,
                "ach": 2,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 40,
                "drop": false,
                "division_id": 18,
                "division_name": "Division 2a",
                "country": "Sweden",
                "name": "Excello",
                "maps_played": 12,
                "maps_won": 7,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 5,
                "penalty_points": 0,
                "score": 17,
                "ach": 3,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 6,
                "drop": false,
                "division_id": 18,
                "division_name": "Division 2a",
                "country": "Germany",
                "name": "aX-eSport.GamerArea",
                "maps_played": 13,
                "maps_won": 7,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 6,
                "penalty_points": 0,
                "score": 15,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 18,
                "drop": false,
                "division_id": 18,
                "division_name": "Division 2a",
                "country": "European",
                "name": "extenSia!",
                "maps_played": 12,
                "maps_won": 4,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 8,
                "penalty_points": 0,
                "score": 8,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 50,
                "drop": false,
                "division_id": 18,
                "division_name": "Division 2a",
                "country": "Russia",
                "name": "LOL Team remix",
                "maps_played": 11,
                "maps_won": 1,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 10,
                "penalty_points": 0,
                "score": 1,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 43,
                "drop": true,
                "division_id": 18,
                "division_name": "Division 2a",
                "country": "France",
                "name": "N!nja Clan",
                "maps_played": 0,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 0,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 28,
                "drop": true,
                "division_id": 18,
                "division_name": "Division 2a",
                "country": "Germany",
                "name": "veil",
                "maps_played": 0,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 0,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            }
        ],
        "Division 1": [
            {
                "id": 4,
                "drop": false,
                "division_id": 17,
                "division_name": "Division 1",
                "country": "European",
                "name": "Relic",
                "maps_played": 9,
                "maps_won": 7,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 2,
                "penalty_points": 0,
                "score": 19,
                "ach": 1,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 19,
                "drop": false,
                "division_id": 17,
                "division_name": "Division 1",
                "country": "Sweden",
                "name": "Kompaniet",
                "maps_played": 8,
                "maps_won": 6,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 2,
                "penalty_points": 0,
                "score": 18,
                "ach": 2,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 9,
                "drop": false,
                "division_id": 17,
                "division_name": "Division 1",
                "country": "Finland",
                "name": "Clan United",
                "maps_played": 10,
                "maps_won": 4,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 6,
                "penalty_points": 0,
                "score": 8,
                "ach": 3,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 21,
                "drop": false,
                "division_id": 17,
                "division_name": "Division 1",
                "country": "Sweden",
                "name": "In Die Anale Combo",
                "maps_played": 9,
                "maps_won": 3,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 6,
                "penalty_points": 0,
                "score": 7,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 11,
                "drop": false,
                "division_id": 17,
                "division_name": "Division 1",
                "country": "France",
                "name": "FoF",
                "maps_played": 8,
                "maps_won": 2,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 6,
                "penalty_points": 0,
                "score": 6,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 139,
                "drop": true,
                "division_id": 17,
                "division_name": "Division 1",
                "country": "Finland",
                "name": "Blood Pressure",
                "maps_played": 0,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 0,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 8,
                "drop": true,
                "division_id": 17,
                "division_name": "Division 1",
                "country": "European",
                "name": "Team Vertex - RIP Youngblood",
                "maps_played": 0,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 0,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 3,
                "drop": true,
                "division_id": 17,
                "division_name": "Division 1",
                "country": "International",
                "name": "TeamCoolermaster",
                "maps_played": 0,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 0,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            },
            {
                "id": 13,
                "drop": true,
                "division_id": 17,
                "division_name": "Division 1",
                "country": "European",
                "name": "The Last Resort",
                "maps_played": 0,
                "maps_won": 0,
                "gc_won": 0,
                "gc_lost": 0,
                "maps_lost": 0,
                "penalty_points": 0,
                "score": 0,
                "ach": null,
                "byes": 0,
                "seeded_points": 0
            }
        ]
    }
}
 

Request      

GET competition/{competition_id}/tables

URL Parameters

competition_id  integer  

The ID of the competition.

Demos

Demos

Returns a paginated list of all demos that were uploaded on ETF2L.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/demos?player=2788&type=stv%2C+first_person&pruned=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/demos"
);

const params = {
    "player": "2788",
    "type": "stv, first_person",
    "pruned": "0",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 40
 

{
    "demos": {
        "current_page": 1,
        "data": [
            {
                "id": 11527,
                "time": 1549385182,
                "match": 74467,
                "download_url": "https://etf2l.org/demos/11527",
                "stv": true,
                "first_person": false,
                "downloads": 26,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5c59bdde98677",
                "extension": "rar"
            },
            {
                "id": 11526,
                "time": 1549385140,
                "match": 74467,
                "download_url": "https://etf2l.org/demos/11526",
                "stv": true,
                "first_person": false,
                "downloads": 24,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5c59bdb4eb923",
                "extension": "rar"
            },
            {
                "id": 10818,
                "time": 1528123442,
                "match": 72496,
                "download_url": "https://etf2l.org/demos/10818",
                "stv": false,
                "first_person": true,
                "downloads": 26,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5b155032cdda7",
                "extension": "rar"
            },
            {
                "id": 10817,
                "time": 1528123412,
                "match": 72496,
                "download_url": "https://etf2l.org/demos/10817",
                "stv": false,
                "first_person": true,
                "downloads": 33,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5b1550149e603",
                "extension": "rar"
            },
            {
                "id": 10697,
                "time": 1524601922,
                "match": 72318,
                "download_url": "https://etf2l.org/demos/10697",
                "stv": true,
                "first_person": false,
                "downloads": 98,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5adf944298021",
                "extension": "rar"
            },
            {
                "id": 10696,
                "time": 1524601875,
                "match": 72318,
                "download_url": "https://etf2l.org/demos/10696",
                "stv": true,
                "first_person": false,
                "downloads": 64,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5adf941362a4e",
                "extension": "rar"
            },
            {
                "id": 10695,
                "time": 1524601829,
                "match": 72318,
                "download_url": "https://etf2l.org/demos/10695",
                "stv": true,
                "first_person": false,
                "downloads": 68,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5adf93e578ec4",
                "extension": "rar"
            },
            {
                "id": 10655,
                "time": 1524172681,
                "match": 72318,
                "download_url": "https://etf2l.org/demos/10655",
                "stv": false,
                "first_person": true,
                "downloads": 22,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5ad907895ae75",
                "extension": "rar"
            },
            {
                "id": 10654,
                "time": 1524172652,
                "match": 72318,
                "download_url": "https://etf2l.org/demos/10654",
                "stv": false,
                "first_person": true,
                "downloads": 30,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5ad9076ce2765",
                "extension": "rar"
            },
            {
                "id": 10652,
                "time": 1524172599,
                "match": 72318,
                "download_url": "https://etf2l.org/demos/10652",
                "stv": false,
                "first_person": true,
                "downloads": 32,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5ad90737d7dc0",
                "extension": "rar"
            },
            {
                "id": 10576,
                "time": 1521291900,
                "match": 71579,
                "download_url": "https://etf2l.org/demos/10576",
                "stv": true,
                "first_person": false,
                "downloads": 32,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5aad127c35382",
                "extension": "rar"
            },
            {
                "id": 10575,
                "time": 1521291842,
                "match": 71579,
                "download_url": "https://etf2l.org/demos/10575",
                "stv": true,
                "first_person": false,
                "downloads": 35,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5aad12427d221",
                "extension": "rar"
            },
            {
                "id": 10553,
                "time": 1521073544,
                "match": 71556,
                "download_url": "https://etf2l.org/demos/10553",
                "stv": false,
                "first_person": true,
                "downloads": 35,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5aa9bd883b661",
                "extension": "rar"
            },
            {
                "id": 10552,
                "time": 1521073455,
                "match": 71556,
                "download_url": "https://etf2l.org/demos/10552",
                "stv": true,
                "first_person": false,
                "downloads": 53,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5aa9bd2fc8284",
                "extension": "rar"
            },
            {
                "id": 10551,
                "time": 1521073379,
                "match": 71574,
                "download_url": "https://etf2l.org/demos/10551",
                "stv": true,
                "first_person": false,
                "downloads": 28,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5aa9bce3b2fa0",
                "extension": "rar"
            },
            {
                "id": 10550,
                "time": 1521073246,
                "match": 71567,
                "download_url": "https://etf2l.org/demos/10550",
                "stv": true,
                "first_person": false,
                "downloads": 26,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "5aa9bc5e1b542",
                "extension": "rar"
            },
            {
                "id": 6124,
                "time": 1423174257,
                "match": 56186,
                "download_url": "https://etf2l.org/demos/6124",
                "stv": true,
                "first_person": false,
                "downloads": 149,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "1423174257_2015-02-05-22-00-_r__vs_eshock-cp_process_final",
                "extension": "rar"
            },
            {
                "id": 6123,
                "time": 1423174234,
                "match": 56186,
                "download_url": "https://etf2l.org/demos/6123",
                "stv": true,
                "first_person": false,
                "downloads": 135,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": false,
                "file": "1423174234_2015-02-05-21-25-_r__vs_eshock-cp_badlands",
                "extension": "rar"
            },
            {
                "id": 5187,
                "time": 1406470651,
                "match": 52365,
                "download_url": "https://etf2l.org/demos/5187",
                "stv": true,
                "first_person": false,
                "downloads": 356,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": true,
                "file": "1406470651_2014-07-24-22-08-blu_vs_epsi-cp_badlands",
                "extension": "rar"
            },
            {
                "id": 5186,
                "time": 1406470623,
                "match": 52365,
                "download_url": "https://etf2l.org/demos/5186",
                "stv": true,
                "first_person": false,
                "downloads": 237,
                "owner": 2788,
                "owner_name": "kaidus",
                "pruned": true,
                "file": "1406470623_2014-07-24-21-30-blu_vs_epsi-cp_process_final",
                "extension": "rar"
            }
        ],
        "first_page_url": "https://api-v2.etf2l.org/demos?player=2788&type=stv%2C%20first_person&pruned=0&page=1",
        "from": 1,
        "last_page": 3,
        "last_page_url": "https://api-v2.etf2l.org/demos?player=2788&type=stv%2C%20first_person&pruned=0&page=3",
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/demos?player=2788&type=stv%2C%20first_person&pruned=0&page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "https://api-v2.etf2l.org/demos?player=2788&type=stv%2C%20first_person&pruned=0&page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/demos?player=2788&type=stv%2C%20first_person&pruned=0&page=3",
                "label": "3",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/demos?player=2788&type=stv%2C%20first_person&pruned=0&page=2",
                "label": "Next »",
                "active": false
            }
        ],
        "next_page_url": "https://api-v2.etf2l.org/demos?player=2788&type=stv%2C%20first_person&pruned=0&page=2",
        "path": "https://api-v2.etf2l.org/demos",
        "per_page": 20,
        "prev_page_url": null,
        "to": 20,
        "total": 50
    },
    "status": {
        "code": 200,
        "message": "OK"
    }
}
 

Request      

GET demos

Query Parameters

player  integer optional  

Takes an ETF2L user ID and returns demos that were uploaded by this user.

type  string optional  

Use these to limit the type of demos you want to see.

pruned  boolean optional  

After x amount of time, demos are archived and are no longer available for download. If you want to get only the demos that are readily available for download, use pruned=0.

from  integer optional  

UNIX timestamp that limits results to everything after the timestamp.

to  integer optional  

UNIX timestamp that limits results to everything before the time.

Matches

Matches

Returns a paginated list of all matches, sorted from most to least recent.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/matches?team_type=6on6&round=Semi-Final" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/matches"
);

const params = {
    "team_type": "6on6",
    "round": "Semi-Final",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 42
 

{
    "results": {
        "current_page": 1,
        "data": [],
        "first_page_url": "https://api-v2.etf2l.org/matches?team_type=6on6&round=Semi-Final&page=1",
        "from": null,
        "last_page": 1,
        "last_page_url": "https://api-v2.etf2l.org/matches?team_type=6on6&round=Semi-Final&page=1",
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/matches?team_type=6on6&round=Semi-Final&page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "active": false
            }
        ],
        "next_page_url": null,
        "path": "https://api-v2.etf2l.org/matches",
        "per_page": 20,
        "prev_page_url": null,
        "to": null,
        "total": 0
    },
    "status": {
        "code": 200,
        "message": "OK"
    }
}
 

Request      

GET matches

Query Parameters

clan1  integer optional  

Team ID of the blu team.

clan2  integer optional  

Team ID of the red team.

vs  integer optional  

Team ID of either team.

scheduled  integer optional  

If set to 1, returns matches that have yet to be played. If set to 0, returns matches that are over.

competition  integer optional  

Limit your search to a specific competition. Expects a competition ID.

from  integer optional  

UNIX timestamp that limits results to everything after the timestamp.

to  integer optional  

UNIX timestamp that limits results to everything before the time.

division  string optional  

Name of the division in which the competition was played.

team_type  string optional  

Name of the type of team.

round  string optional  

Name of the current round.

string[]  string optional  

players A list of ETF2L user ID's. Returns only matches in which any of the provided players participated.

Match details

Returns additional details about a match like the players who participated in it.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/matches/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/matches/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 41
 

{
    "match": {
        "clan1": {
            "country": "International",
            "drop": false,
            "id": 160,
            "name": "I am",
            "steam": {
                "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                "group": null
            },
            "url": "https://api-v2.etf2l.org/team/160"
        },
        "clan2": {
            "country": "Belgium",
            "drop": false,
            "id": 178,
            "name": "beTeam",
            "steam": {
                "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                "group": null
            },
            "url": "https://api-v2.etf2l.org/team/178"
        },
        "competition": {
            "category": "6v6 Cup",
            "id": 4,
            "name": "ETF2L 3rd Cup",
            "type": "6v6",
            "url": "https://api-v2.etf2l.org/competition/4"
        },
        "defaultwin": false,
        "division": null,
        "id": 1,
        "maps": [
            "cp_pro_granary",
            "cp_badlands"
        ],
        "r1": 2,
        "r2": 0,
        "round": "Round 1",
        "time": 1213291800,
        "submitted": 1213305069,
        "week": 1,
        "urls": {
            "self": "https://etf2l.org/matches/1",
            "api": "https://api-v2.etf2l.org/matches/1"
        },
        "players": [],
        "bye_week": false,
        "demos": [],
        "map_results": [
            {
                "match_order": 1,
                "clan1": 8,
                "clan2": 0,
                "map": "cp_pro_granary",
                "golden_cap": false
            },
            {
                "match_order": 2,
                "clan1": 14,
                "clan2": 0,
                "map": "cp_badlands",
                "golden_cap": false
            }
        ]
    },
    "status": {
        "code": 200,
        "message": "OK"
    }
}
 

Request      

GET matches/{leagueMatch_id}

URL Parameters

leagueMatch_id  integer  

The ID of the leagueMatch.

Player

Player information

Gets the ETF2L user information.

Valid arguments: ETF2L Player ID, SteamID2, SteamID3, SteamID64.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/player/4" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/player/4"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
 

{
    "status": {
        "code": 404,
        "message": "No player was found for 4. Provide either the ETF2L player ID or a valid SteamId2, SteamId3 or SteamId64 ID."
    }
}
 

Request      

GET player/{id}

URL Parameters

id  integer  

The ID of the player.

Player transfers

Gets the team transfers of a player.

Valid parameters: ETF2L Player ID, SteamID2, SteamID3, SteamID64.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/player/4/transfers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/player/4/transfers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 58
 

{
    "status": {
        "code": 404,
        "message": "No player was found for 4. Provide either the ETF2L player ID or a valid SteamId2, SteamId3 or SteamId64 ID."
    }
}
 

Request      

GET player/{id}/transfers

URL Parameters

id  integer  

The ID of the player.

Player results

Gets the player's results. Sorted from most recent to least recent. Uses pagination. Provide a page query parameter to iterate through the results.

Valid parameters: ETF2L Player ID, SteamID2, SteamID3, SteamID64.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/player/4/results" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/player/4/results"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 57
 

{
    "status": {
        "code": 404,
        "message": "No player was found for 4. Provide either the ETF2L player ID or a valid SteamId2, SteamId3 or SteamId64 ID."
    }
}
 

Request      

GET player/{id}/results

URL Parameters

id  integer  

The ID of the player.

Recruitment

Player recruitment

Gets a paginated list of recruitment posts for players.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/recruitment/players?user=82350" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/recruitment/players"
);

const params = {
    "user": "82350",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 45
 

{
    "recruitment": {
        "current_page": 1,
        "data": [
            {
                "classes": [
                    "Demoman",
                    "Heavy",
                    "Sniper",
                    "Soldier",
                    "Spy"
                ],
                "comments": {
                    "count": 4,
                    "last": 1612792037
                },
                "id": 71219,
                "name": "extrasolar",
                "skill": "Prem/High",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/280916"
                }
            },
            {
                "classes": [
                    "Soldier"
                ],
                "comments": {
                    "count": 2,
                    "last": 1600205449
                },
                "id": 68379,
                "name": "extrasolar",
                "skill": "Mid/Low",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "6v6",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/275066"
                }
            },
            {
                "classes": [
                    "Demoman",
                    "Scout",
                    "Soldier"
                ],
                "comments": {
                    "count": 0,
                    "last": null
                },
                "id": 65907,
                "name": "extrasolar",
                "skill": "Mid/Low",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "6v6",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/270864"
                }
            },
            {
                "classes": [
                    "Scout",
                    "Soldier"
                ],
                "comments": {
                    "count": 15,
                    "last": 1556881178
                },
                "id": 64607,
                "name": "extrasolar",
                "skill": "Mid/Low",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "6v6",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/268769"
                }
            },
            {
                "classes": [
                    "Demoman",
                    "Heavy",
                    "Sniper"
                ],
                "comments": {
                    "count": 20,
                    "last": 1550094481
                },
                "id": 63083,
                "name": "extrasolar",
                "skill": "Prem/High",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/266148"
                }
            },
            {
                "classes": [
                    "Heavy"
                ],
                "comments": {
                    "count": 14,
                    "last": 1548154270
                },
                "id": 62588,
                "name": "extrasolar",
                "skill": "Prem/High",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/265353"
                }
            },
            {
                "classes": [
                    "Spy"
                ],
                "comments": {
                    "count": 13,
                    "last": 1536426798
                },
                "id": 60546,
                "name": "extrasolar",
                "skill": "Low/Open",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "6v6",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/261787"
                }
            },
            {
                "classes": [
                    "Heavy"
                ],
                "comments": {
                    "count": 22,
                    "last": 1532363109
                },
                "id": 59632,
                "name": "extrasolar",
                "skill": "Prem/High",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/260457"
                }
            },
            {
                "classes": [
                    "Sniper"
                ],
                "comments": {
                    "count": 22,
                    "last": 1501593812
                },
                "id": 53059,
                "name": "extrasolar",
                "skill": "Open",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/248510"
                }
            },
            {
                "classes": [
                    "Demoman",
                    "Engineer",
                    "Heavy",
                    "Pyro",
                    "Sniper",
                    "Soldier",
                    "Spy"
                ],
                "comments": {
                    "count": 16,
                    "last": 1500581728
                },
                "id": 52773,
                "name": "extrasolar",
                "skill": "Mid/Open",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "6v6",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/247914"
                }
            },
            {
                "classes": [
                    "Heavy",
                    "Sniper",
                    "Soldier",
                    "Spy"
                ],
                "comments": {
                    "count": 7,
                    "last": 1494933987
                },
                "id": 51421,
                "name": "extrasolar",
                "skill": "Mid/Open",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/244984"
                }
            },
            {
                "classes": [
                    "Demoman",
                    "Engineer",
                    "Heavy",
                    "Pyro",
                    "Sniper",
                    "Soldier",
                    "Spy"
                ],
                "comments": {
                    "count": 22,
                    "last": 1490067009
                },
                "id": 49398,
                "name": "extrasolar",
                "skill": "Prem/High",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/240688"
                }
            },
            {
                "classes": [
                    "Demoman",
                    "Engineer",
                    "Heavy",
                    "Pyro",
                    "Sniper",
                    "Soldier",
                    "Spy"
                ],
                "comments": {
                    "count": 19,
                    "last": 1486236501
                },
                "id": 48466,
                "name": "extrasolar",
                "skill": "High/Mid",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/238412"
                }
            },
            {
                "classes": [
                    "Demoman",
                    "Pyro",
                    "Sniper",
                    "Soldier",
                    "Spy"
                ],
                "comments": {
                    "count": 16,
                    "last": 1478974186
                },
                "id": 47701,
                "name": "extrasolar",
                "skill": "Mid/Open",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/236890"
                }
            },
            {
                "classes": [
                    "Demoman",
                    "Heavy",
                    "Pyro",
                    "Sniper",
                    "Soldier"
                ],
                "comments": {
                    "count": 17,
                    "last": 1478069602
                },
                "id": 47443,
                "name": "extrasolar",
                "skill": "High/Mid",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/236151"
                }
            },
            {
                "classes": [
                    "Heavy"
                ],
                "comments": {
                    "count": 71,
                    "last": 1474736719
                },
                "id": 46626,
                "name": "extrasolar",
                "skill": "High/Mid",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/234402"
                }
            },
            {
                "classes": [
                    "Demoman",
                    "Pyro",
                    "Sniper",
                    "Soldier",
                    "Spy"
                ],
                "comments": {
                    "count": 32,
                    "last": 1471371852
                },
                "id": 45672,
                "name": "extrasolar",
                "skill": "Prem",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/232824"
                }
            },
            {
                "classes": [
                    "Heavy"
                ],
                "comments": {
                    "count": 20,
                    "last": 1468454766
                },
                "id": 45374,
                "name": "extrasolar",
                "skill": "High/Mid",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/232153"
                }
            },
            {
                "classes": [
                    "Medic"
                ],
                "comments": {
                    "count": 3,
                    "last": 1467121956
                },
                "id": 44732,
                "name": "extrasolar",
                "skill": "Open",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/231283"
                }
            },
            {
                "classes": [
                    "Heavy"
                ],
                "comments": {
                    "count": 26,
                    "last": 1462073316
                },
                "id": 43576,
                "name": "extrasolar",
                "skill": "Mid/High",
                "steam": {
                    "avatar": "https://avatars.steamstatic.com/0dfcd37228ac447124fa0501a2a1a94ad5e61cc3_full.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "player": "https://api-v2.etf2l.org/player/82350",
                    "recruitment": "https://etf2l.org/recruitment/228620"
                }
            }
        ],
        "first_page_url": "https://api-v2.etf2l.org/recruitment/players?user=82350&page=1",
        "from": 1,
        "last_page": 2,
        "last_page_url": "https://api-v2.etf2l.org/recruitment/players?user=82350&page=2",
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/recruitment/players?user=82350&page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "https://api-v2.etf2l.org/recruitment/players?user=82350&page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/recruitment/players?user=82350&page=2",
                "label": "Next »",
                "active": false
            }
        ],
        "next_page_url": "https://api-v2.etf2l.org/recruitment/players?user=82350&page=2",
        "path": "https://api-v2.etf2l.org/recruitment/players",
        "per_page": 20,
        "prev_page_url": null,
        "to": 20,
        "total": 24
    },
    "status": {
        "code": 200,
        "message": "OK"
    }
}
 

Request      

GET recruitment/players

Query Parameters

country  string optional  

Returns only recruitment posts of a specific country.

class  string[] optional  

Returns only recruitment posts of a specific class. Can be provided as string or as a list. In order to search for multiple classes, provide the argument in an array/list format.

skill  string[] optional  

Returns only recruitment posts for a certain skill level. Can be provided as string or as a list. In order to search for multiple skill levels, provide the argument in an array/list format.

type  string optional  

Limit recruitment posts by team type.

user  integer optional  

Limit recruitment posts by ETF2L user id. Is the creator of the post.

Team recruitment

Gets a paginated list of recruitment posts for teams.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/recruitment/teams?user=82350" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/recruitment/teams"
);

const params = {
    "user": "82350",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 44
 

{
    "recruitment": {
        "current_page": 1,
        "data": [
            {
                "classes": [
                    "Demoman",
                    "Engineer",
                    "Heavy",
                    "Medic",
                    "Pyro",
                    "Scout",
                    "Sniper",
                    "Soldier",
                    "Spy"
                ],
                "comments": {
                    "count": 0,
                    "last": null
                },
                "id": 61840,
                "name": "Weed Cake Sellers",
                "skill": "Prem/High",
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/5f3e889604d71.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "team": "https://api-v2.etf2l.org/team/27488",
                    "recruitment": "https://etf2l.org/recruitment/264219"
                }
            },
            {
                "classes": [
                    "Demoman",
                    "Medic",
                    "Scout",
                    "Soldier"
                ],
                "comments": {
                    "count": 10,
                    "last": 1493658108
                },
                "id": 51016,
                "name": "Police Squad",
                "skill": "Mid/Open",
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/5ecaa97191896.png",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "6v6",
                "urls": {
                    "team": "https://api-v2.etf2l.org/team/28026",
                    "recruitment": "https://etf2l.org/recruitment/244029"
                }
            },
            {
                "classes": [
                    "Demoman",
                    "Engineer",
                    "Heavy",
                    "Medic",
                    "Pyro",
                    "Scout",
                    "Sniper",
                    "Soldier",
                    "Spy"
                ],
                "comments": {
                    "count": 1,
                    "last": 1462872027
                },
                "id": 43824,
                "name": "Banterlads",
                "skill": "Open/Mid",
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/573ccfddd94e6.png",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "team": "https://api-v2.etf2l.org/team/26225",
                    "recruitment": "https://etf2l.org/recruitment/229342"
                }
            },
            {
                "classes": [
                    "Demoman",
                    "Engineer",
                    "Heavy",
                    "Medic",
                    "Pyro",
                    "Scout",
                    "Sniper",
                    "Soldier",
                    "Spy"
                ],
                "comments": {
                    "count": 5,
                    "last": 1445466301
                },
                "id": 38972,
                "name": "MAKE TEA NOT WAR",
                "skill": "Mid",
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/55f5b3a22cc56.jpg",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "team": "https://api-v2.etf2l.org/team/25581",
                    "recruitment": "https://etf2l.org/recruitment/220222"
                }
            },
            {
                "classes": [
                    "Medic"
                ],
                "comments": {
                    "count": 1,
                    "last": 1439099199
                },
                "id": 37458,
                "name": "MAKE TEA NOT WAR",
                "skill": "Open/Mid",
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "team": "https://api-v2.etf2l.org/team/24752",
                    "recruitment": "https://etf2l.org/recruitment/217127"
                }
            },
            {
                "classes": [
                    "Demoman"
                ],
                "comments": {
                    "count": 3,
                    "last": 1431267413
                },
                "id": 35294,
                "name": "MAKE TEA NOT WAR",
                "skill": "Open",
                "steam": {
                    "avatar": "https://etf2l.org/wp-content/uploads/avatars/",
                    "id": "STEAM_1:1:50294888",
                    "id3": "[U:1:100589777]",
                    "id64": "76561198060855505"
                },
                "type": "Highlander",
                "urls": {
                    "team": "https://api-v2.etf2l.org/team/24752",
                    "recruitment": "https://etf2l.org/recruitment/212728"
                }
            }
        ],
        "first_page_url": "https://api-v2.etf2l.org/recruitment/teams?user=82350&page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "https://api-v2.etf2l.org/recruitment/teams?user=82350&page=1",
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https://api-v2.etf2l.org/recruitment/teams?user=82350&page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "active": false
            }
        ],
        "next_page_url": null,
        "path": "https://api-v2.etf2l.org/recruitment/teams",
        "per_page": 20,
        "prev_page_url": null,
        "to": 6,
        "total": 6
    },
    "status": {
        "code": 200,
        "message": "OK"
    }
}
 

Request      

GET recruitment/teams

Query Parameters

country  string optional  

Returns only recruitment posts of a specific country.

class  string[] optional  

Returns only recruitment posts of a specific class. Can be provided as string or as a list. In order to search for multiple classes, provide the argument in an array/list format.

skill  string[] optional  

Returns only recruitment posts for a certain skill level. Can be provided as string or as a list. In order to search for multiple skill levels, provide the argument in an array/list format.

type  string optional  

Limit recruitment posts by team type.

user  integer optional  

Limit recruitment posts by ETF2L user id. Is the creator of the post.

Team

Team

Shows information about an ETF2L team. Information includes competitions, current active players and details.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/team/2" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/team/2"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 56
 

{
    "message": "No query results for model [App\\Models\\Clan] 1"
}
 

Request      

GET team/{clan_id}

URL Parameters

clan_id  integer  

The ID of the clan.

Team transfers

Gets the transfers of a team.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/team/2/transfers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/team/2/transfers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 55
 

{
    "message": "No query results for model [App\\Models\\Clan] 1"
}
 

Request      

GET team/{clan_id}/transfers

URL Parameters

clan_id  integer  

The ID of the clan.

Team results

Gets the team's results.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/team/2/results" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/team/2/results"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 54
 

{
    "message": "No query results for model [App\\Models\\Clan] 1"
}
 

Request      

GET team/{clan_id}/results

URL Parameters

clan_id  integer  

The ID of the clan.

Team matches

Returns a list of matches the team has played in, from most to least recent.

Requires a ETF2L team ID.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/team/2/matches" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/team/2/matches"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 53
 

{
    "message": "No query results for model [App\\Models\\Clan] 1"
}
 

Request      

GET team/{clan_id}/matches

URL Parameters

clan_id  integer  

The ID of the clan.

Query Parameters

clan1  integer optional  

Team ID of the blu team.

clan2  integer optional  

Team ID of the red team.

vs  integer optional  

Team ID of either team.

scheduled  integer optional  

If set to 1, returns matches that have yet to be played. If set to 0, returns matches that are over.

competition  integer optional  

Limit your search to a specific competition. Expects a competition ID.

from  integer optional  

UNIX timestamp that limits results to everything after the timestamp.

to  integer optional  

UNIX timestamp that limits results to everything before the time.

division  string optional  

Name of the division in which the competition was played.

team_type  string optional  

Name of the type of team.

round  string optional  

Name of the current round.

string[]  string optional  

players A list of ETF2L user ID's. Returns only matches in which any of the provided players participated.

Whitelists

Whitelists

Returns a list of all whitelists currently maintained by ETF2L.

Example request:
curl --request GET \
    --get "https://api-v2.etf2l.org/whitelists" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-v2.etf2l.org/whitelists"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 43
 

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "whitelists": {
        "ETF2L Ultiduo": {
            "filename": "etf2l_whitelist_ultiduo",
            "last_change": 1446081616,
            "url": "https://etf2l.org/configs/etf2l_whitelist_ultiduo.txt"
        },
        "ETF2L BBall": {
            "filename": "etf2l_whitelist_bball",
            "last_change": 1446081616,
            "url": "https://etf2l.org/configs/etf2l_whitelist_bball.txt"
        },
        "ETF2L HL Season 9": {
            "filename": "etf2l_whitelist_9v9",
            "last_change": 1446081616,
            "url": "https://etf2l.org/configs/etf2l_whitelist_9v9.txt"
        },
        "ETF2L 1v1 Scout DM": {
            "filename": "etf2l_whitelist_scoutdm",
            "last_change": 1446081616,
            "url": "https://etf2l.org/configs/etf2l_whitelist_scoutdm.txt"
        },
        "ETF2L Season 22": {
            "filename": "etf2l_whitelist_6v6",
            "last_change": 1446081615,
            "url": "https://etf2l.org/configs/etf2l_whitelist_6v6.txt"
        }
    }
}
 

Request      

GET whitelists