Skip to content

Public card of a tournament match

GET
/api/public/tournament-match/{id}
curl --request GET \
--url https://foxleague.ai/api/public/tournament-match/example

The public header of a tournament or challenge match for the watch page, asked by its public id (matches[].id of GET /api/tournaments/{id}): tournament, round, teams, kickoff and whether to open the live broadcast (mode: "live", then GET /api/live/tournament-match/{id}) or the replay (mode: "replay", then GET /api/replay/tournament-match/{id}). The score is null while the match is on air and appears once its broadcast ends. A tournament match is named by its public id only: no answer carries its match id. The answer is the object itself, without the success envelope.

Who: anyone.

id
required
string

The match’s public id (matches[].id of the tournament): 22 URL-safe characters.

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

Media type application/json

The public header of a tournament or challenge match.

object
away_ovr
required

The away team’s OVR, one decimal. While the match is on air it is the team’s best XI OVR: the average OVR of the strongest XI it can field from the cards it owns (no lineup choice is shown); once the broadcast has ended (broadcast_ended_at set) it is the team OVR of the eleven that played: the average OVR of its eleven, each card’s OVR computed from the stats the match was played with, recorded when the match started. null while the away team is not named, in a developer tournament and, after the broadcast, for a walkover.

number | null format: double
away_ovr_formation
required

The formation the away team’s best XI is built in (such as 4-3-3) while the match is on air; null once the broadcast has ended and whenever away_ovr is null.

string | null
away_score
required

Away goals; null while the match is on air.

integer | null format: int32
away_team
required

Away team name (TBD when not known).

string
broadcast_ended_at
required

When the match’s broadcast ended (RFC 3339); null while it is on air.

string | null format: date-time
developer_mode
required

true for a developer tournament, played by uploaded team code.

boolean
group_name
required

The group of a group-stage match; null otherwise.

string | null
home_ovr
required

The home team’s OVR, one decimal. While the match is on air it is the team’s best XI OVR: the average OVR of the strongest XI it can field from the cards it owns (no lineup choice is shown); once the broadcast has ended (broadcast_ended_at set) it is the team OVR of the eleven that played: the average OVR of its eleven, each card’s OVR computed from the stats the match was played with, recorded when the match started. null while the home team is not named, in a developer tournament and, after the broadcast, for a walkover.

number | null format: double
home_ovr_formation
required

The formation the home team’s best XI is built in (such as 4-3-3) while the match is on air; null once the broadcast has ended and whenever home_ovr is null.

string | null
home_score
required

Home goals; null while the match is on air.

integer | null format: int32
home_team
required

Home team name (TBD when not known).

string
mode
required

live while the match is on air: open GET /api/live/tournament-match/{tournament_match_id}. replay once its broadcast ends: open GET /api/replay/tournament-match/{tournament_match_id}.

string
permanent_record
required
One of:

A match’s permanent public record on Autonomys: its CID and the gateway link.

object
cid
required

The record’s CID on Autonomys Auto Drive.

string
url
required

The record on the public Autonomys gateway, readable without an account: https://gateway.autonomys.xyz/file/{cid}.

string
permanent_replay
required
One of:

A match’s full replay file on Autonomys: its CID and the gateway link.

object
cid
required

The replay file’s CID on Autonomys Auto Drive.

string
url
required

The replay file on the public Autonomys gateway, readable without an account: https://gateway.autonomys.xyz/file/{cid}.

string
round_label
required

The round’s name; Round <n> when it has none.

string
scheduled_at
required

Kickoff (RFC 3339). A viewer joining late seeks to the time since kickoff.

string format: date-time
status
required

live while the match is on air, then its final state once its broadcast ends: forfeit for a match decided without being played and otherwise finished.

string
tournament_match_id
required

The match’s public id (matches[].id of the tournament): 22 URL-safe characters with no order. A tournament match is named by it only.

string
tournament_title
required

The tournament’s title.

string
Example
{
"away_ovr": 51.8,
"away_ovr_formation": "4-4-2",
"away_score": null,
"away_team": "Golden Lynx",
"broadcast_ended_at": null,
"developer_mode": false,
"group_name": null,
"home_ovr": 53.4,
"home_ovr_formation": "4-3-3",
"home_score": null,
"home_team": "Red Foxes",
"mode": "live",
"permanent_record": null,
"permanent_replay": null,
"round_label": "Semi-final",
"scheduled_at": "2026-10-01T18:00:00Z",
"status": "live",
"tournament_match_id": "Qx7_kP2mZr9-aB3cD4eF5g",
"tournament_title": "Autumn Cup"
}

No such public id; a match before its kickoff; a seed that goes through without an opponent. The body is empty.

A server read failed. The body is empty.