Your match to watch right now
const url = 'https://foxleague.ai/api/matches/active?wallet_address=example';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
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/matches/active?wallet_address=example' \ --header 'Authorization: Bearer <token>'The match the signed-in player can watch right now, for the dashboard’s live banner; null when there is none. The first that applies:
- a ranked or casual match of yours being played;
- a ranked or casual match whose broadcast you started and that is still running;
- a tournament or challenge match of yours on air with both its teams named, from its kickoff until its broadcast time runs out.
Who: a signed-in player, for their own wallet. A wallet without an account reads null.
Refusals:
Wallet mismatch: sign with the correct wallet:wallet_addressis not the session wallet.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Your wallet; it must be the session wallet.
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 match the signed-in player can watch right now.
object
Away team name.
RFC 3339. A tournament or challenge match’s kickoff; otherwise when the match was created.
Home team name.
true when you are the home side.
ranked for a ranked or casual match, challenge for a 1v1 challenge, tournament for a tournament match.
The match id of a ranked or casual match; null for a tournament or challenge match (use tournament_match_id).
Your opponent’s badge URI; null for an AI opponent or a team without a badge.
live for a tournament or challenge match. A ranked or casual match shows its own status: finished while its broadcast still runs, another value while it is being played.
The match server’s game id; null for a tournament or challenge match.
The tournament id; null for a ranked or casual match.
A tournament or challenge match’s public id: open its watch page by it (GET /api/public/tournament-match/{id}). null for a ranked or casual match.
The tournament title; null for a ranked or casual match.
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": { "away_team_name": "Golden Lynx", "created_at": "2026-10-01T18:00:00+00:00", "home_team_name": "Red Foxes", "is_home": true, "kind": "tournament", "match_id": null, "opponent_badge": "ipfs://bafybeih5jkqz2o4r7wq3a6sxn4kq2l3m5ve6yt7ofsbc2j3dw2p3wrzwxa/badge.png", "status": "live", "tm_game_id": null, "tournament_id": 88, "tournament_match_id": "Qx7_kP2mZr9-aB3cD4eF5g", "tournament_title": "Autumn Cup" }, "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 invalidA server read failed. The body is empty.