Skip to content

Your shop purchases

GET
/api/shop/purchases
curl --request GET \
--url 'https://foxleague.ai/api/shop/purchases?wallet_address=example' \
--header 'Authorization: Bearer <token>'

Your shop purchases, newest first: product, FOXSY paid, transaction and time.

Who: a signed-in player, for their own wallet.

Refusals:

  • Wallet mismatch: sign with the correct wallet: wallet_address is not the session wallet.
wallet_address
required
string

Your wallet; it must be the session wallet.

limit
integer format: int64

Rows per page, 1 to 200. Default 20.

offset
integer format: int64

Rows to skip. Default 0.

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.

Array<object>

One shop purchase.

object
amount_foxsy
required

What the purchase cost, whole FOXSY.

integer format: int64
id
required

The purchase id.

integer format: int32
player_nonce

The card concerned: a single condition recovery or a transfer lock waiver; null otherwise.

integer | null format: int64
product
required

condition_recovery, xp_booster, training_slot, common_pack or cooldown_waiver.

string
slots

Training slots bought, for training_slot; not meaningful for other products.

integer | null format: int32
tx_hash

The payment transaction.

string | null
verified_at
required

When the payment was verified (RFC 3339).

string format: date-time
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": [
{
"amount_foxsy": 100,
"id": 1288,
"player_nonce": null,
"product": "training_slot",
"slots": 5,
"tx_hash": "7f80e222f828767efc2f91624a8940f1f836f99eee3692f09e2e8c662248b483",
"verified_at": "2026-10-01T08:41:12Z"
},
{
"amount_foxsy": 900,
"id": 1270,
"player_nonce": 3990,
"product": "cooldown_waiver",
"slots": null,
"tx_hash": "b7ffc050fec94dbca3a0aac36098b2cc2bd818319478da6bd0c621de49f145fd",
"verified_at": "2026-09-30T19:02:55Z"
}
],
"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