Read one snapshot of a platform leaderboard
curl --request GET \
--url https://api.fomoscan.sh/v3/leaderboards/{platform}/{board} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fomoscan.sh/v3/leaderboards/{platform}/{board}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.fomoscan.sh/v3/leaderboards/{platform}/{board}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"platform": "fomo",
"board": "traders",
"category": "spot_trading",
"metric": "pnl",
"window": "24h",
"capturedAt": "2026-11-01T08:30:00.000Z",
"entryCount": 2,
"entries": [
{
"rank": 1,
"subject": {
"kind": "trader",
"id": "tdr_01jbst8pvcfp79y0938nkrkayd",
"canonical": {
"display": {
"handle": "nightowl",
"name": "Night Owl",
"avatarUrl": "https://img.example.com/a/9b1f0c7e3d2a4b5c8e6f1a2b3c4d5e6f.webp"
},
"platforms": [
"fomo",
"pump"
],
"mergedFrom": [
"tdr_01jbst8zcefy8b28t5cy4tqkff"
],
"firstSeenAt": "2025-03-14T16:20:05.412Z"
},
"sources": {
"fomo": {
"profile": {
"handle": "nightowl",
"name": "Night Owl",
"bio": "Solana memecoins, small size, long holds.",
"avatarUrl": "https://img.example.com/a/9b1f0c7e3d2a4b5c8e6f1a2b3c4d5e6f.webp",
"xHandle": "nightowl_sol",
"verified": null,
"observedAt": "2026-11-01T08:42:10.250Z"
},
"followGraph": {
"followers": 18450,
"following": 312,
"observedAt": "2026-11-01T08:42:10.250Z"
},
"tradingStats": {
"swapCount": 1840,
"tradeCount": 977,
"volume": {
"value": "482113250000",
"decimals": 6,
"currency": "USD"
},
"avgHoldSeconds": 15120.5,
"observedAt": "2026-11-01T08:42:10.250Z"
}
},
"pump": {
"profile": {
"handle": "nightowl",
"name": null,
"bio": "Solana memecoins, small size, long holds.",
"avatarUrl": "https://img.example.com/a/9b1f0c7e3d2a4b5c8e6f1a2b3c4d5e6f.webp",
"xHandle": "nightowl_sol",
"verified": false,
"observedAt": "2026-11-01T08:42:10.250Z"
},
"followGraph": {
"followers": 2210,
"following": 312,
"observedAt": "2026-11-01T08:42:10.250Z"
}
}
}
},
"measures": {
"pnl": {
"value": "1520250000",
"decimals": 6,
"currency": "USD"
},
"volume": {
"value": "84213550000",
"decimals": 6,
"currency": "USD"
},
"trade_count": 122
}
},
{
"rank": 2,
"subject": {
"kind": "trader",
"id": "tdr_01jbst8v3xft7t04hmasw9nf6y",
"canonical": {
"display": {
"handle": "tidecaller",
"name": null,
"avatarUrl": null
},
"platforms": [
"fomo"
],
"mergedFrom": [],
"firstSeenAt": "2025-08-19T12:03:44.090Z"
},
"sources": {
"fomo": {
"profile": {
"handle": "tidecaller",
"name": null,
"bio": null,
"avatarUrl": null,
"xHandle": null,
"verified": null,
"observedAt": "2026-10-30T22:10:09.533Z"
}
}
}
},
"measures": {
"pnl": {
"value": "1311900000",
"decimals": 6,
"currency": "USD"
},
"volume": {
"value": "20977000000",
"decimals": 6,
"currency": "USD"
},
"trade_count": 48
}
}
]
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}Leaderboards
Read one snapshot of a platform leaderboard
One snapshot of a platform leaderboard, as the platform showed it: the rank, the subject and the figures the platform publishes for each entry.
- Without
at, the newest snapshot of the window. Withat, the newest snapshot at or before that time. Older snapshots thin out to one per hour, then one per day. windowtakes one of the board’swindows; without it you getdefaultWindow.- A subject is a trader, token or group envelope. A platform account shows as its trader, the object
GET /v3/traders/{traderId}returns withoutcanonical.walletAvailable. entriesholds the entries of the snapshot by rank and is not paged. An entry whose subject we cannot read is left out, soentriescan hold fewer rows thanentryCount.- A figure the platform did not publish is absent from
measures. - These are the platforms’ own boards. Our rankings are
GET /v3/rankings/{key}.
Price
The price depends on the answer.
| Answer | Credits | Reveals |
|---|---|---|
| A snapshot exists. | 500 | 0 |
| 404: the board has no snapshot. | 50 | 0 |
The boards fomo/tokens_trending, fomo/tokens_graduated, fomo/tokens_most_held and pump/traders, any answer, a 404 included. | 10 | 0 |
404: the board is not in GET /v3/leaderboards. | 0 | 0 |
Limits
- 600 requests per minute from one address on this operation, beside the per-minute limit of the key.
- A key with less than 10 credits left gets 402
QUOTA_EXCEEDEDbefore any work.
GET
/
v3
/
leaderboards
/
{platform}
/
{board}
Read one snapshot of a platform leaderboard
curl --request GET \
--url https://api.fomoscan.sh/v3/leaderboards/{platform}/{board} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fomoscan.sh/v3/leaderboards/{platform}/{board}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.fomoscan.sh/v3/leaderboards/{platform}/{board}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"platform": "fomo",
"board": "traders",
"category": "spot_trading",
"metric": "pnl",
"window": "24h",
"capturedAt": "2026-11-01T08:30:00.000Z",
"entryCount": 2,
"entries": [
{
"rank": 1,
"subject": {
"kind": "trader",
"id": "tdr_01jbst8pvcfp79y0938nkrkayd",
"canonical": {
"display": {
"handle": "nightowl",
"name": "Night Owl",
"avatarUrl": "https://img.example.com/a/9b1f0c7e3d2a4b5c8e6f1a2b3c4d5e6f.webp"
},
"platforms": [
"fomo",
"pump"
],
"mergedFrom": [
"tdr_01jbst8zcefy8b28t5cy4tqkff"
],
"firstSeenAt": "2025-03-14T16:20:05.412Z"
},
"sources": {
"fomo": {
"profile": {
"handle": "nightowl",
"name": "Night Owl",
"bio": "Solana memecoins, small size, long holds.",
"avatarUrl": "https://img.example.com/a/9b1f0c7e3d2a4b5c8e6f1a2b3c4d5e6f.webp",
"xHandle": "nightowl_sol",
"verified": null,
"observedAt": "2026-11-01T08:42:10.250Z"
},
"followGraph": {
"followers": 18450,
"following": 312,
"observedAt": "2026-11-01T08:42:10.250Z"
},
"tradingStats": {
"swapCount": 1840,
"tradeCount": 977,
"volume": {
"value": "482113250000",
"decimals": 6,
"currency": "USD"
},
"avgHoldSeconds": 15120.5,
"observedAt": "2026-11-01T08:42:10.250Z"
}
},
"pump": {
"profile": {
"handle": "nightowl",
"name": null,
"bio": "Solana memecoins, small size, long holds.",
"avatarUrl": "https://img.example.com/a/9b1f0c7e3d2a4b5c8e6f1a2b3c4d5e6f.webp",
"xHandle": "nightowl_sol",
"verified": false,
"observedAt": "2026-11-01T08:42:10.250Z"
},
"followGraph": {
"followers": 2210,
"following": 312,
"observedAt": "2026-11-01T08:42:10.250Z"
}
}
}
},
"measures": {
"pnl": {
"value": "1520250000",
"decimals": 6,
"currency": "USD"
},
"volume": {
"value": "84213550000",
"decimals": 6,
"currency": "USD"
},
"trade_count": 122
}
},
{
"rank": 2,
"subject": {
"kind": "trader",
"id": "tdr_01jbst8v3xft7t04hmasw9nf6y",
"canonical": {
"display": {
"handle": "tidecaller",
"name": null,
"avatarUrl": null
},
"platforms": [
"fomo"
],
"mergedFrom": [],
"firstSeenAt": "2025-08-19T12:03:44.090Z"
},
"sources": {
"fomo": {
"profile": {
"handle": "tidecaller",
"name": null,
"bio": null,
"avatarUrl": null,
"xHandle": null,
"verified": null,
"observedAt": "2026-10-30T22:10:09.533Z"
}
}
}
},
"measures": {
"pnl": {
"value": "1311900000",
"decimals": 6,
"currency": "USD"
},
"volume": {
"value": "20977000000",
"decimals": 6,
"currency": "USD"
},
"trade_count": 48
}
}
]
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"type": "invalid_request",
"code": "INVALID_ARGUMENT",
"message": "<string>",
"requestId": "<string>"
}
}Authorizations
bearerAuthapiKeyHeader
Path Parameters
Query Parameters
An RFC3339 time with Z or an offset, not in the future. Answers the newest snapshot at or before it. Leave it out for the newest snapshot.
Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$Response
OK
One snapshot of a platform leaderboard, as the platform showed it.
The metric the board sorts by, or null when the platform does not say.
Available options:
pnl, net_flow, portfolio_value, price, liquidity, roi, volume, trade_count, win_rate, impressions, views, likes, followers, holders, market_cap, members, points, realized_pnl, unrealized_pnl When we read the board.
Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d\.\d{3}(?:Z))$