Skip to content

Your notifications, newest first

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

Answers your notifications, newest first, one page at a time. To read the next older page, pass the smallest id you have as before_id. A wallet without an account gets an empty list.

Who: a signed-in player, who only sees their own notifications.

Refusals:

limit
integer format: int64

Notifications per page, at most 100. Default 30; a value below 1 reads as 30.

before_id
integer format: int64

Answer only notifications older than this id, for the next page. Omit it for the newest page.

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 notification in your feed.

object
body

The second line; null when there is none.

string | null
created_at
required

When the notification was created (RFC 3339).

string format: date-time
href

The app page it opens, such as /challenges/12; null when none.

string | null
id
required

Notification id. Newer notifications have higher ids.

integer format: int64
kind
required

What happened: challenge_received, challenge_accepted, challenge_declined, challenge_expired, match_ready, match_finished, tournament_won, tournament_eliminated, tournament_about_to_start, tournament_invited, marketplace_sold, fusion_complete or transfer_received.

string
read_at

When you read it (RFC 3339); null while unread.

string | null format: date-time
ref_id

The tournament or match id it is about. For a sale, a fusion and a transfer it is the transaction hash.

string | null
title
required

The headline.

string
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": [
{
"body": "Lars Holm sold on the market",
"created_at": "2026-09-30T18:04:11.532871Z",
"href": "/marketplace",
"id": 90417,
"kind": "marketplace_sold",
"read_at": null,
"ref_id": "d1a4c01ea887ae221b35411b72723b9cef44c0d53ee4da5a7989e9d083a4e629",
"title": "Sold for 1800 FOXSY"
},
{
"body": "Red Kites challenged you to a 1v1",
"created_at": "2026-09-30T12:40:03.118540Z",
"href": "/challenges/2231",
"id": 90112,
"kind": "challenge_received",
"read_at": "2026-09-30T12:41:22.907316Z",
"ref_id": "2231",
"title": "New challenge!"
}
],
"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