Skip to content

The live board of a Champions FoxLeague tournament

GET
/api/tournaments/{id}/live-board
curl --request GET \
--url https://foxleague.ai/api/tournaments/1/live-board

Returns 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.

id
required
integer format: int64

The tournament id.

Success or a refusal: read success (the refusals are in the description).

Media type application/json
object
code

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.

string | null
data

The answer. Present when success is true.

object
computed_at
required

When this board was read. It is kept for 5 minutes.

string format: date-time
mine
One of:

Your own place on the live board.

object
board_rank
required

Your rank on the whole leaderboard.

integer format: int32
elo
required

Your rating now.

integer format: int32
elo_behind

How much ELO you are behind the last seat, for an eligible team below it. null otherwise.

integer | null format: int32
place

Your place among the eligible teams. null while your team could not be invited.

integer | null format: int32
qualifies
required

true while your place is within the seats.

boolean
reason

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.

string | null
next
required

The next eligible teams below the last seat, at most 5.

Array<object>

One team of the live board.

object
badge

The team’s badge.

string | null
board_rank
required

Its rank on the whole leaderboard, the teams that could not be invited counted.

integer format: int32
elo
required

Its rating now.

integer format: int32
place
required

Its place among the eligible teams.

integer format: int32
team_name
required

The team’s name.

string
user_id
required

The player’s id.

integer format: int32
qualifying
required

The teams the snapshot would invite right now, in the leaderboard’s order.

Array<object>

One team of the live board.

object
badge

The team’s badge.

string | null
board_rank
required

Its rank on the whole leaderboard, the teams that could not be invited counted.

integer format: int32
elo
required

Its rating now.

integer format: int32
place
required

Its place among the eligible teams.

integer format: int32
team_name
required

The team’s name.

string
user_id
required

The player’s id.

integer format: int32
seats
required

The seats of the tournament: the first this many eligible teams would be invited.

integer format: int32
snapshot_at
required

When the leaderboard is frozen. Until then this list moves.

string format: date-time
tournament_id
required

The tournament id.

integer format: int64
error

Why the request was refused, in plain words. Present when success is false.

string | null
success
required

true when the request did what it asked. false is a refusal: read error.

boolean
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.

Media type text/plain
string
Example
Session expired or invalid