Skip to content

Your interests: sent and received

GET
/api/players/interests/mine
curl --request GET \
--url https://foxleague.ai/api/players/interests/mine \
--header 'Authorization: Bearer <token>'

Answers the two lists of the Market tab My interests.

sent holds the interests you sent in the last sent_window_days days (30), newest first, at most 100: the card as it is now, the team you told, your offer, whether you shared your Telegram username, the time and ask_again_at, the moment you can tell the same owner about the same card again. state says what became of the card: with_owner (still with the team you told), on_the_market (that team listed it: buy it there) or left_owner (sold, transferred or burned in a fusion). After a card left the team you told, ask_again_at is null: you can tell its new owner at once.

received holds the interest in the cards you own now during the last received_window_days days (7), one entry per card with the latest interest first: how many managers and the best offer. Who they are is on the card’s own list, GET /api/players/nonce/{nonce}/interests. Only the interests sent to you while you owned the card are counted.

You only ever read your own interests and the interest in your own cards. While the feature is switched off both lists are empty.

Who: a signed-in player with a team.

Refusals: none.

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.

object
enabled
required

Whether the feature is on. Off, both lists are empty.

boolean
per_day
required

How many interests you can send in a UTC day.

integer format: int64
received
required

The interest in the cards you own now, one entry per card, the latest interest first.

Array<object>

The interest in one of your cards, summed up.

object
best_offer_foxsy
required

The highest offer among them, in whole FOXSY. null when nobody named a price.

integer | null format: int64
card
required

The card as it is now.

object
accuracy
required

Accuracy, as the card shows it now.

integer format: int32
control
required

Control, as the card shows it now.

integer format: int32
defense
required

Defense, as the card shows it now.

integer format: int32
level
required

The player’s level.

integer format: int32
name
required

The player’s name.

string
portrait_uri
required

The picture’s URI. null when the card has none.

string | null
position
required

GK, DEF, MID or FWD.

string
power
required

Power, as the card shows it now.

integer format: int32
rarity
required

Common, Uncommon, Rare, Epic or Legendary.

string
speed
required

Speed, as the card shows it now.

integer format: int32
stamina
required

Stamina, as the card shows it now.

integer format: int32
vision
required

Vision, as the card shows it now.

integer format: int32
count
required

How many interests were sent to you about it in the window.

integer format: int64
latest_at
required

When the latest of them was sent (RFC 3339, UTC).

string format: date-time
nft_nonce
required

Your card.

integer format: int64
on_the_market
required

true when you have this card listed on the market now.

boolean
received_window_days
required

How many days back received looks.

integer format: int32
repeat_days
required

Days before you can show interest in the same card to the same owner again.

integer format: int64
sent
required

The interests you sent, newest first, at most 100.

Array<object>

One interest you sent.

object
ask_again_at
required

When you can tell the same owner about this card again (RFC 3339, UTC): repeat_days after the newest interest you sent them about it. A time in the past means now. null once the card left that owner.

string | null format: date-time
card
required
One of:

A card as a row of My interests shows it.

object
accuracy
required

Accuracy, as the card shows it now.

integer format: int32
control
required

Control, as the card shows it now.

integer format: int32
defense
required

Defense, as the card shows it now.

integer format: int32
level
required

The player’s level.

integer format: int32
name
required

The player’s name.

string
portrait_uri
required

The picture’s URI. null when the card has none.

string | null
position
required

GK, DEF, MID or FWD.

string
power
required

Power, as the card shows it now.

integer format: int32
rarity
required

Common, Uncommon, Rare, Epic or Legendary.

string
speed
required

Speed, as the card shows it now.

integer format: int32
stamina
required

Stamina, as the card shows it now.

integer format: int32
vision
required

Vision, as the card shows it now.

integer format: int32
created_at
required

When you sent it (RFC 3339, UTC).

string format: date-time
nft_nonce
required

The card.

integer format: int64
offer_foxsy
required

Your offer in whole FOXSY. null when you named none.

integer | null format: int64
owner_team_name
required

The team you told: the card’s owner when you sent it. null when that account has no team any more.

string | null
share_telegram
required

true when you chose to show your Telegram username to that owner.

boolean
state
required

What became of the card since.

string
Allowed values: with_owner on_the_market left_owner
sent_today
required

Interests you sent today (UTC).

integer format: int64
sent_window_days
required

How many days back sent looks.

integer format: int32
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": {
"enabled": true,
"per_day": 5,
"received": [
{
"best_offer_foxsy": 15000,
"card": {
"accuracy": 61,
"control": 58,
"defense": 44,
"level": 6,
"name": "Maximiliano Romero",
"portrait_uri": "ipfs://QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG",
"position": "FWD",
"power": 63,
"rarity": "Epic",
"speed": 78,
"stamina": 66,
"vision": 57
},
"count": 2,
"latest_at": "2026-11-11T09:12:40Z",
"nft_nonce": 4242,
"on_the_market": false
}
],
"received_window_days": 7,
"repeat_days": 7,
"sent": [
{
"ask_again_at": "2026-11-18T14:02:11Z",
"card": {
"accuracy": 61,
"control": 58,
"defense": 44,
"level": 4,
"name": "Iker Torres",
"portrait_uri": "ipfs://QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG",
"position": "MID",
"power": 63,
"rarity": "Rare",
"speed": 70,
"stamina": 66,
"vision": 57
},
"created_at": "2026-11-11T14:02:11Z",
"nft_nonce": 5150,
"offer_foxsy": 12000,
"owner_team_name": "FC Vultur",
"share_telegram": true,
"state": "with_owner"
},
{
"ask_again_at": null,
"card": null,
"created_at": "2026-10-20T08:30:00Z",
"nft_nonce": 3907,
"offer_foxsy": null,
"owner_team_name": "Real Foxes",
"share_telegram": false,
"state": "left_owner"
}
],
"sent_today": 1,
"sent_window_days": 30
},
"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