The prize from FoxLeague of a Champions FoxLeague tournament
const url = 'https://foxleague.ai/api/tournaments/1/prize';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/prizeThe prize an admin set for a Champions FoxLeague tournament: how much is locked in the tournaments contract and its transactions. The state and the amount are read from the contract for a signed-in caller (at most every 20 seconds per tournament); without a session the stored reading answers, which the backend refreshes every minute. The prize goes to the top 24 by how far they got: 4 shares to each quarter-finalist, 2 to each round-of-16 loser, 1 to each play-off loser (56 shares; tiers gives each team’s amount), paid only after the tournament completed; a cancelled tournament returns it to its depositor. A prize set before this split (weights null) stays split equally among its 8 quarter-finalists.
Who: anyone. With a session, can_deposit tells the sponsor’s own wallet that it may deposit now, stating weights after the recipient count.
Refusals:
This tournament has no prize from FoxLeague.(codenone): no prize was set or no such tournament. Only this refusal carriescodenone; any othersuccess: false(for example a failed read) does not.
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
The total deposited in the contract, in atomic FOXSY (18 decimals). It stays after the payout or the refund. 0 before a deposit.
true for the sponsor’s own wallet while the tournament is open, the terms are set and the contract, read just now for this answer, holds these terms (the sponsor, the count and the weight list) and nothing deposited yet.
The hash of the deposit transaction. null before it is recorded.
true when the state and the amount are a reading of the contract from the last 20 seconds. false when the stored reading answers: the caller has no session or the contract could not be read just now.
The hash of the payout transaction. null before the payout.
The prize the admin set at create, in whole FOXSY.
When the state and the amount were read from the contract.
The number of teams that share it: 24, the top 24 by how far they got (8 for a prize split equally among the quarter-finalists).
The hash of the refund transaction of a cancelled tournament. null otherwise.
A prize split equally, once paid: what each quarter-finalist received, in atomic FOXSY. null before. Always null for a prize split by weight: tiers gives each team’s amount.
The prize as the tournaments contract holds it: none (not deposited), held (locked in the contract), paid (paid to its recipients), refunded (the tournament was cancelled and the prize went back to its depositor) or reclaimed (returned by the owner 30 days after the completion, never paid).
true once the contract names the sponsor wallet and the recipients with their weights (weights): a deposit is possible from then on. It reads false again when the terms the contract holds are no longer these ones; the backend then sets them again.
The prize split by weight: its three groups in payout order with what each team of a group gets, computed as the contract pays it (floor of the pool times the team’s shares over 56; the remainder, under one atomic unit per team, goes back to the depositor). On the deposited amount once there is one, on the planned prize before. null for a prize split equally.
One group of a prize from FoxLeague split by weight.
object
What each team of the group gets, in atomic FOXSY (18 decimals).
The shares of each team of the group: 4, 2 or 1.
quarterfinal (the 8 teams of the quarter-final round, the podium included), round_of_16 (the 8 teams that went out in the round of 16) or playoff (the 8 teams that went out in the play-off).
The teams of the group: 8.
The tournament id.
The prize split by weight: the weight list of its terms in payout order, 24 values: 4 for each of the 8 quarter-finalists, 2 for each of the 8 round-of-16 losers, 1 for each of the 8 play-off losers (56 shares). The deposit states this list after the recipient count; the contract refuses any other list and, on these terms, a deposit that states none. null for a prize split equally (the deposit states the count only).
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": { "amount_atomic": "168000000000000000000000", "can_deposit": false, "deposit_tx": "6f2c90b1aa3e4d17b2a1c0f5e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0", "from_chain": true, "payout_tx": null, "planned_foxsy": 168000, "read_at": "2026-11-02T10:00:00Z", "recipients": 24, "refund_tx": null, "share_atomic": null, "state": "held", "terms_set": true, "tiers": [ { "share_atomic": "12000000000000000000000", "shares": 4, "stage": "quarterfinal", "teams": 8 }, { "share_atomic": "6000000000000000000000", "shares": 2, "stage": "round_of_16", "teams": 8 }, { "share_atomic": "3000000000000000000000", "shares": 1, "stage": "playoff", "teams": 8 } ], "tournament_id": 602, "weights": [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1 ] }, "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