The live board of a Champions FoxLeague tournament
const url = 'https://foxleague.ai/api/tournaments/1/live-board';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://foxleague.ai/api/tournaments/1/live-boardReturns the live board of an open Champions FoxLeague tournament before its snapshot: the teams the snapshot would invite right now, in the leaderboard’s order, the next eligible teams below them and, with a session, your own place or why your team could not be invited. It is read with the same rule as the snapshot, as of now. It is kept for 5 minutes. A tournament match counts once its broadcast has ended. From the snapshot on the invitations carry the frozen leaderboard and this route answers code: "none", as it does for any other tournament.
Authorizations
Section titled “Authorizations ”- None
- session
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The tournament id.
Responses
Section titled “ Responses ”Success or a refusal: read success (the refusals are in the description).
object
A machine-readable reason next to error, set only where the caller must act differently. tx_pending: the payment was not refused but could not be verified yet; keep the transaction hash and confirm again with the same hash, never pay twice.
The answer. Present when success is true.
object
When this board was read. It is kept for 5 minutes.
Your own place on the live board.
object
Your rank on the whole leaderboard.
Your rating now.
How much ELO you are behind the last seat, for an eligible team below it. null otherwise.
Your place among the eligible teams. null while your team could not be invited.
true while your place is within the seats.
Why your team could not be invited: no_recent_match (no match in the last 14 days), no_full_squad, in_league_knockout (a seat or an invitation in another Champions FoxLeague) or not_eligible. null while it could.
The next eligible teams below the last seat, at most 5.
One team of the live board.
object
The team’s badge.
Its rank on the whole leaderboard, the teams that could not be invited counted.
Its rating now.
Its place among the eligible teams.
The team’s name.
The player’s id.
The teams the snapshot would invite right now, in the leaderboard’s order.
One team of the live board.
object
The team’s badge.
Its rank on the whole leaderboard, the teams that could not be invited counted.
Its rating now.
Its place among the eligible teams.
The team’s name.
The player’s id.
The seats of the tournament: the first this many eligible teams would be invited.
When the leaderboard is frozen. Until then this list moves.
The tournament id.
Why the request was refused, in plain words. Present when success is false.
true when the request did what it asked. false is a refusal: read error.
Example
{ "data": { "computed_at": "2026-11-10T10:00:00Z", "mine": { "board_rank": 25, "elo": 1677, "elo_behind": null, "place": 23, "qualifies": true, "reason": null }, "next": [ { "badge": null, "board_rank": 39, "elo": 1541, "place": 37, "team_name": "Team Thirty Seven", "user_id": 137 } ], "qualifying": [ { "badge": null, "board_rank": 1, "elo": 2410, "place": 1, "team_name": "Team One", "user_id": 101 } ], "seats": 36, "snapshot_at": "2026-12-01T12:00:00Z", "tournament_id": 7 }, "success": true}No valid session. The body is plain text: Missing Authorization header, Invalid Authorization format, Invalid session token or Session expired or invalid. Sign in again.
Example
Session expired or invalid