TECHNICAL INTEGRATION SPECIFICATION

Ladder Tournament External API

Access Ladder Tournament data — ranking, player statistics, season results and casted videos — ready to integrate into your site, bot or stats tool. Choose an API in the menu.

V1.0 EXTERNAL REST · JSON API KEY AUTH

GETTING STARTED · AUTHENTICATION

Authentication

Every endpoint of the External API requires a valid API key sent in the HTTP request header. The same token works for all routes.

HeaderTypeValue example
X-Api-Token string XXXXXXX
! Keep your token private. Never expose it in public front-end code or repositories; call the API from your server.

RANKING LADDER · ENDPOINT

Ranking Ladder

Player statistics, season results and division winners, with pagination and optional filters by player and season.

GET https://laddertournament.com.br:8099/api/external/ranking_ladder

RANKING LADDER · QUERY PARAMETERS

Query Parameters

Pagination is controlled through parameters passed in the URL query string. page and pageSize are required on every request; relicid and seasonid are optional filters.

ParameterTypeRequiredDefaultDescription
pageintegerYES— Index of the target page to retrieve (minimum: 1).
pageSizeintegerYES— Number of records returned per page (maximum allowed: 1000).
relicidintegerNO— Filters the result by a specific player (Relic ID). When omitted, all players are returned.
seasonidintegerNO— Filters the result by a specific season. When omitted, all seasons are returned.

1

Minimum value for page (required).

500

Suggested pageSize (required) — records returned per page.

1000

Maximum pageSize allowed per request.

hasNext

Keep requesting the next page while it is true to fetch every record.

Optional filters · relicid / seasonid
# Filter by player
curl --location 'https://laddertournament.com.br:8099/api/external/ranking_ladder?page=1&pageSize=500&relicid=366826' \
  --header 'X-Api-Token: XXXXXXX'

# Filter by season
curl --location 'https://laddertournament.com.br:8099/api/external/ranking_ladder?page=1&pageSize=500&seasonid=1' \
  --header 'X-Api-Token: XXXXXXX'

# Both filters combined
curl --location 'https://laddertournament.com.br:8099/api/external/ranking_ladder?page=1&pageSize=500&seasonid=1&relicid=366826' \
  --header 'X-Api-Token: XXXXXXX'

RANKING LADDER · USAGE EXAMPLE

Usage Example

Send a GET request with your token in the X-Api-Token header. Pick your language below.

curl --location 'https://laddertournament.com.br:8099/api/external/ranking_ladder?page=1&pageSize=500' \
  --header 'X-Api-Token: XXXXXXX'

RANKING LADDER · RESPONSE PAYLOAD

Response Structure

JSON response containing pagination metadata and an array of ranking items.

HTTP 200 OK
FieldTypeDescription
Pagination
itemsArray[Object]List of player ranking items and match statistics.
page / pageSizeintegerCurrent page number and record limit per page.
total / totalPagesintegerTotal count of records and overall available pages.
hasPrevious / hasNextbooleanFlags indicating presence of previous / next pages.
Item fields
seasonidintegerUnique season identifier.
relicidintegerUnique player / account identifier (Relic ID).
matches / wins / lossesintegerTotal matches played, wins and losses count.
score / ratingint / floatScore accumulated and win rate as a decimal ratio (e.g. 0.86 = 86%).
ladderwinnerstringLadder winner status ("Yes" / "No").
ironcladwinnerstringIronclad division winner status ("Yes" / "No").
metaplayswinnerstringMeta Plays category winner status ("Yes" / "No").
championsOfheroeswinnerstringChampions of Heroes division winner status ("Yes" / "No").
thelegendstringSpecial "The Legend" badge status ("Yes" / "No").

RANKING LADDER · JSON EXAMPLE

JSON Response Example

response.json
{
  "items": [
    {
      "seasonid": 1,
      "relicid": 366826,
      "matches": 15,
      "wins": 13,
      "losses": 2,
      "score": 13,
      "rating": 0.86,
      "ladderwinner": "Yes",
      "ironcladwinner": "No",
      "metaplayswinner": "No",
      "championsOfheroeswinner": "No",
      "thelegend": "No"
    }
  ],
  "page": 1,
  "pageSize": 500,
  "total": 31,
  "totalPages": 1,
  "hasPrevious": false,
  "hasNext": false,
  "count": 31
}

CASTER VIDEOS · ENDPOINT

Caster Videos

Returns the narrated (casted) tournament videos: title, caster, publish date, YouTube and Twitch links, season, stage and the Relic IDs of the players in each match.

GET https://laddertournament.com.br:8099/api/external/casted_videos_ladder
i Uses the same X-Api-Token header described in Authentication.

CASTER VIDEOS · USAGE EXAMPLE

Usage Example

Send a GET request with your token in the X-Api-Token header. Pick your language below.

curl --location 'https://laddertournament.com.br:8099/api/external/casted_videos_ladder' \
  --header 'X-Api-Token: XXXXXXX'

CASTER VIDEOS · RESPONSE PAYLOAD

Response Structure

JSON array where each item is one casted video.

HTTP 200 OK
FieldTypeDescription
idintegerUnique video identifier.
titlestringVideo title.
castedBystringName of the caster who narrated the match.
publishedAtdatetimePublish date and time, ISO 8601 (e.g. 2026-09-07T00:00:00).
stagestringSeason stage of the match (e.g. "FINAL").
videoUrlYoutubestringYouTube video URL. Empty string "" when not available.
videoUrlTwitchstringTwitch video URL. Empty string "" when not available.
seasonIdintegerSeason identifier (same value as seasonid in Ranking Ladder).
playerRelicIdstringRelic IDs of the players in the match, comma-separated (e.g. "111,222,333,444").
i playerRelicId is a single string. Split it by , to get each player, then match against relicid from Ranking Ladder.

CASTER VIDEOS · JSON EXAMPLE

JSON Response Example

response.json
[
  {
    "id": 1,
    "title": "A Bad Day to Be An Aussie G2",
    "castedBy": "HelpingHans",
    "publishedAt": "2026-09-07T00:00:00",
    "stage": "FINAL",
    "videoUrlYoutube": "https://www.youtube.com/watch?v=dbIEhEpEKoA",
    "videoUrlTwitch": "",
    "seasonId": 1,
    "playerRelicId": "XXXXX,XXXXX,XXXXX,XXXXX"
  }
]
COPIED