Esports Endpoints
Professional league schedules, standings, and match details.
Requests go to https://arena.rone.dev/api.
Forms are generated from the OpenAPI schema.
Jump to endpoint
GET
/api/esports/id/schedule
Indonesia Regular Season Schedule
Regular-season schedule of the Indonesian professional league, grouped by week and day.
Query parameters:
- week: Optional week number. Omit it to get every week; an unknown week returns 404.
- lang: Language of the site's text, such as day names:
en(default) orid.
Each match has:
- match_id: Value for the matches endpoint; null while no details page exists.
- start_at: Start time in UTC (ISO 8601). local_time is the time as shown on the site.
- team1 / team2 with logo, and score1 / score2 (null until played).
Data is read from the league's public site and cached for 5 minutes.
Example response
{
"weeks": [
{
"week": 1,
"days": [
{
"day": 1,
"label": "Friday, 14 August 2026",
"matches": [
{
"match_id": "1036",
"start_at": "2026-08-14T08:00:00+00:00",
"local_time": "15:00",
"team1": {
"name": "EVOS",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"team2": {
"name": "RRQ",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"score1": 2,
"score2": 0
}
]
}
]
}
]
}
GET
/api/esports/id/standings
Indonesia Regular Season Standings
Regular-season standings of the Indonesian professional league: rank, team, match point, match win-lose, net game win and game win-lose.
- lang: Language of the site's text, such as day names:
en(default) orid.
Data is read from the league's public site and cached for 5 minutes.
Example response
{
"standings": [
{
"rank": 1,
"team": {
"name": "NAVI",
"full_name": "NAVI",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"match_point": 11,
"match_wl": {
"win": 11,
"lose": 3
},
"net_game_win": 14,
"game_wl": {
"win": 23,
"lose": 9
}
}
]
}
GET
/api/esports/id/matches/{match_id}
Indonesia Match Details
Full match history of one match of the Indonesian professional league: every game with both teams and all players (hero, KDA, items, emblem, talents, gold, damage dealt, damage taken and tower damage). Each team also reports the game winner and its kills; the game has a duration.
Battle spells are not published by the league site. Data is cached for 5 minutes.
Example response
{
"match_id": "1036",
"games": [
{
"number": 1,
"duration": "16:51",
"timeline_minutes": [],
"teams": [
{
"team": {
"name": "EVOS",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"winner": true,
"kills": 11,
"stats": {},
"players": [
{
"name": "Rendyyy",
"hero": {
"name": "Dyrroth",
"image": "https://wsrv.nl/?url=https%3A%2F%2Fmlbb-image.scoregg.com%2Fhero_h%2F85.png"
},
"kills": 3,
"deaths": 2,
"assists": 3,
"kda": 3.0,
"items": [
{
"id": "3212",
"image": "https://wsrv.nl/?url=https%3A%2F%2Fmlbb-image.scoregg.com%2Fm%2F33%2Fp%2F2511%2F0617014872193.png"
}
],
"emblem": {
"id": "20003",
"image": "https://wsrv.nl/?url=https%3A%2F%2Fmlbb-image.scoregg.com%2Femblem%2F20003.png"
},
"talents": [
{
"id": "811",
"image": "https://wsrv.nl/?url=https%3A%2F%2Fmlbb-image.scoregg.com%2Frune%2F811.png"
}
],
"gold": 9316,
"damage_dealt": 38859,
"damage_taken": 126389,
"tower_damage": 1699,
"item_sequence": []
}
]
}
]
}
]
}
GET
/api/esports/ph/schedule
Philippines Regular Season Schedule
Regular-season schedule of the Philippine professional league, grouped by week and day.
Query parameters:
- week: Optional week number. Omit it to get every week; an unknown week returns 404.
Each match has:
- match_id: Value for the matches endpoint; null while no details page exists.
- start_at: Start time in UTC (ISO 8601). local_time is the time as shown on the site.
- team1 / team2 with logo, and score1 / score2 (null until played).
Data is read from the league's public site and cached for 5 minutes.
Example response
{
"weeks": [
{
"week": 1,
"days": [
{
"day": 1,
"label": "Friday, 14 August 2026",
"matches": [
{
"match_id": "1036",
"start_at": "2026-08-14T08:00:00+00:00",
"local_time": "15:00",
"team1": {
"name": "EVOS",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"team2": {
"name": "RRQ",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"score1": 2,
"score2": 0
}
]
}
]
}
]
}
GET
/api/esports/ph/standings
Philippines Regular Season Standings
Regular-season standings of the Philippine professional league: rank, team, match point, match win-lose, net game win and game win-lose.
Data is read from the league's public site and cached for 5 minutes.
Example response
{
"standings": [
{
"rank": 1,
"team": {
"name": "NAVI",
"full_name": "NAVI",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"match_point": 11,
"match_wl": {
"win": 11,
"lose": 3
},
"net_game_win": 14,
"game_wl": {
"win": 23,
"lose": 9
}
}
]
}
GET
/api/esports/ph/matches/{match_slug}
Philippines Match Details
Full match history of one match of the Philippine professional league: every game with both teams and all players (hero, KDA, items, emblem, talents, gold, damage dealt, damage taken and tower damage). Each team also reports its totals (gold, damage, buffs, objectives) and every player has the item_sequence, the items in purchase order with their position on the timeline.
Battle spells are not published by the league site. Data is cached for 5 minutes.
Example response
{
"match_id": "rora-onic-20260821",
"games": [
{
"number": 1,
"timeline_minutes": [
0,
2,
4
],
"teams": [
{
"team": {
"name": "EVOS",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"kills": 11,
"stats": {
"total_gold": 34946,
"total_damage": 82500,
"red_buff": 4,
"lord_kill": 0
},
"players": [
{
"name": "Rendyyy",
"hero": {
"name": "Dyrroth",
"image": "https://wsrv.nl/?url=https%3A%2F%2Fmlbb-image.scoregg.com%2Fhero_h%2F85.png"
},
"kills": 3,
"deaths": 2,
"assists": 3,
"kda": 3.0,
"items": [
{
"id": "3212",
"image": "https://wsrv.nl/?url=https%3A%2F%2Fmlbb-image.scoregg.com%2Fm%2F33%2Fp%2F2511%2F0617014872193.png"
}
],
"emblem": {
"id": "20003",
"image": "https://wsrv.nl/?url=https%3A%2F%2Fmlbb-image.scoregg.com%2Femblem%2F20003.png"
},
"talents": [
{
"id": "811",
"image": "https://wsrv.nl/?url=https%3A%2F%2Fmlbb-image.scoregg.com%2Frune%2F811.png"
}
],
"gold": 9316,
"damage_dealt": 38859,
"damage_taken": 126389,
"tower_damage": 1699,
"item_sequence": [
{
"id": "1411",
"image": "https://wsrv.nl/?url=https%3A%2F%2Fmlbb-image.scoregg.com%2Fequip%2F1411.png",
"tier": 1,
"timeline_percent": 0.56
}
]
}
]
}
]
}
]
}
POST
/api/esports/{league}/standings/simulate
Simulate League Standings
Re-rank a professional league's regular season after changing match results, to see what a different result would do to the table and the playoff line.
The schedule and real results are the league's live ones (see the schedule endpoints). Send {"results": []} to get the current table with statuses. eliminated is how many teams at the bottom miss the playoffs; it defaults to 3 for Indonesia (id) and 2 for the Philippines (ph).
Matches are first to 2 games, so a finished match is 2-0, 2-1, 1-2 or 0-2 (a 1-1 needs a deciding game). A team gets 1 match point per match won. Teams are ranked by match points, then net game wins (games won minus games lost), then head-to-head among the tied teams; a tie that survives all three is reported as unresolved. The same rules reproduce the official Indonesian and Philippine tables.
Each team also gets a status from what it can still reach: clinched (certain to be in the playoffs), eliminated (certain to miss them) or alive. The status is exact once the season is over and conservative before that, so a decided team can still read alive, never the other way round.
Each team also has playoff_probability, its chance in percent, with every decimal the simulation gives, of finishing in the playoff spots. It comes from simulating the matches still to play: with model form (default) a team's chance in a match follows its record so far, with even every match is a coin flip, and the winner takes the match 2-0 in 62% of cases (the real share). simulations sets how many seasons are simulated; omit it to let the server choose. Clinched teams read 100 and eliminated teams 0. The same request always returns the same numbers, and with the default sample they are accurate to about one percentage point.
To edit results, send them in results as week, team1, team2, score1, score2; either team order works, and leaving both scores out clears a match. Matches you do not mention keep their real result.
The real schedule is cached for 5 minutes.
Example response
{
"teams": 9,
"weeks_count": 9,
"playoff_spots": 6,
"eliminated": 3,
"matches_played": 61,
"matches_remaining": 11,
"edited_matches": 1,
"probability_model": "form",
"probability_simulations": 10909,
"weeks": [
{
"week": 8,
"matches": [
{
"team1": {
"name": "NAVI",
"full_name": "NAVI",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"team2": {
"name": "TLID",
"full_name": "TLID",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"score1": 0,
"score2": 2,
"state": "edited"
}
]
}
],
"standings": [
{
"rank": 1,
"team": {
"name": "NAVI",
"full_name": "NAVI",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"match_point": 10,
"match_wl": {
"win": 10,
"lose": 4
},
"net_game_win": 12,
"game_wl": {
"win": 21,
"lose": 9
},
"played": 14,
"remaining": 4,
"max_match_point": 14,
"tiebreak": "net_game_win",
"status": "alive",
"in_playoffs_zone": true,
"playoff_probability": 97.33944954128441
}
]
}
POST
/api/esports/standings/calculate
Calculate Custom League Standings
The same calculator for any league: give the team names (or just a count) and enter match results. The schedule is generated as a double round robin with as many weeks as teams, each week with one fewer match than teams, like the professional leagues. Nothing is fetched from a league site.
Only teams matters for the schedule (omit it and send team_count instead to get Team A, Team B, ...). eliminated defaults to 3, or less in a small league.
Matches are first to 2 games, so a finished match is 2-0, 2-1, 1-2 or 0-2 (a 1-1 needs a deciding game). A team gets 1 match point per match won. Teams are ranked by match points, then net game wins (games won minus games lost), then head-to-head among the tied teams; a tie that survives all three is reported as unresolved. The same rules reproduce the official Indonesian and Philippine tables.
Each team also gets a status from what it can still reach: clinched (certain to be in the playoffs), eliminated (certain to miss them) or alive. The status is exact once the season is over and conservative before that, so a decided team can still read alive, never the other way round.
Each team also has playoff_probability, its chance in percent, with every decimal the simulation gives, of finishing in the playoff spots. It comes from simulating the matches still to play: with model form (default) a team's chance in a match follows its record so far, with even every match is a coin flip, and the winner takes the match 2-0 in 62% of cases (the real share). simulations sets how many seasons are simulated; omit it to let the server choose. Clinched teams read 100 and eliminated teams 0. The same request always returns the same numbers, and with the default sample they are accurate to about one percentage point.
To edit results, send them in results as week, team1, team2, score1, score2; either team order works, and leaving both scores out clears a match. Matches you do not mention keep their real result.
Example response
{
"teams": 9,
"weeks_count": 9,
"playoff_spots": 6,
"eliminated": 3,
"matches_played": 61,
"matches_remaining": 11,
"edited_matches": 1,
"probability_model": "form",
"probability_simulations": 10909,
"weeks": [
{
"week": 8,
"matches": [
{
"team1": {
"name": "NAVI",
"full_name": "NAVI",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"team2": {
"name": "TLID",
"full_name": "TLID",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"score1": 0,
"score2": 2,
"state": "edited"
}
]
}
],
"standings": [
{
"rank": 1,
"team": {
"name": "NAVI",
"full_name": "NAVI",
"logo": "https://wsrv.nl/?url=https%3A%2F%2Fexample.com%2Fteams%2Fevos.png"
},
"match_point": 10,
"match_wl": {
"win": 10,
"lose": 4
},
"net_game_win": 12,
"game_wl": {
"win": 21,
"lose": 9
},
"played": 14,
"remaining": 4,
"max_match_point": 14,
"tiebreak": "net_game_win",
"status": "alive",
"in_playoffs_zone": true,
"playoff_probability": 97.33944954128441
}
]
}