Your ranked tickets and their price
const url = 'https://foxleague.ai/api/shop/ranked-ticket?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/shop/ranked-ticket?wallet_address=example' \ --header 'Authorization: Bearer <token>'What a ranked game costs its starter, whether ranked costs it yet and how many ranked tickets you hold. From live_from (the competition levels switch) the team that starts a ranked game pays price_foxsy FOXSY before its opponent is drawn: one ticket per game. A game the AI fills is free and keeps the ticket. A game that ended in an error before its result gives its ticket back.
Who: a signed-in player, for their own wallet. A wallet without an account holds 0 tickets.
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 answer. Present when success is true.
object
Whether ranked costs a ticket now: the competition levels switch has passed.
When the competition levels govern (RFC 3339, UTC); null while the switch is off.
What one ranked game costs its starter, in whole FOXSY.
The ranked tickets you hold: each pays for one ranked game against a real opponent.
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": { "live": true, "live_from": "2026-11-09T14:00:00Z", "price_foxsy": 100, "tickets": 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