Realized and unrealized profit for up to 100 pump.fun wallets in one call
curl --request POST \
--url https://api.fomoscan.sh/v2/pump/user/wallets/pnl \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"wallets": [
"<string>"
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({wallets: ['<string>']})
};
fetch('https://api.fomoscan.sh/v2/pump/user/wallets/pnl', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.fomoscan.sh/v2/pump/user/wallets/pnl"
payload = { "wallets": ["<string>"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"count": 123,
"missing": [
"<string>"
],
"entries": [
{
"wallet": "<string>",
"username": "<string>",
"wallets": {
"solana": "<string>",
"evm": "<string>"
},
"status": "ready",
"retryAfterSeconds": 123,
"updatedAt": 123,
"nextUpdateAt": 123,
"stale": true,
"windows": {
"24h": {
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"totalPnlUsd": 123,
"returnPct": 123,
"volumeUsd": 123,
"buyVolumeUsd": 123,
"sellVolumeUsd": 123,
"trades": 123,
"buys": 123,
"sells": 123,
"tokensTraded": 123,
"winningTokens": 123,
"status": "ready",
"updatedAt": 123,
"approximate": true
},
"7d": {
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"totalPnlUsd": 123,
"returnPct": 123,
"volumeUsd": 123,
"buyVolumeUsd": 123,
"sellVolumeUsd": 123,
"trades": 123,
"buys": 123,
"sells": 123,
"tokensTraded": 123,
"winningTokens": 123,
"status": "ready",
"updatedAt": 123,
"approximate": true
},
"30d": {
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"totalPnlUsd": 123,
"returnPct": 123,
"volumeUsd": 123,
"buyVolumeUsd": 123,
"sellVolumeUsd": 123,
"trades": 123,
"buys": 123,
"sells": 123,
"tokensTraded": 123,
"winningTokens": 123,
"status": "ready",
"updatedAt": 123,
"approximate": true
},
"all": {
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"totalPnlUsd": 123,
"returnPct": 123,
"volumeUsd": 123,
"buyVolumeUsd": 123,
"sellVolumeUsd": 123,
"trades": 123,
"buys": 123,
"sells": 123,
"tokensTraded": 123,
"winningTokens": 123,
"status": "ready",
"updatedAt": 123,
"approximate": true
}
},
"unrealized": {
"unrealizedPnlUsd": 123,
"holdingsUsd": 123,
"positions": 123,
"excludedPositions": 123,
"status": "ready",
"updatedAt": 123
},
"pumpBoard": {
"daily": {
"rank": 123,
"pnlUsd": 123,
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"asOf": 123
},
"weekly": {
"rank": 123,
"pnlUsd": 123,
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"asOf": 123
},
"monthly": {
"rank": 123,
"pnlUsd": 123,
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"asOf": 123
}
}
}
]
}Pump
Realized and unrealized profit for up to 100 pump.fun wallets in one call
GET /v2/pump/user/wallet//pnl for up to 100 wallets at once.
- Each entry is the object the single endpoint returns.
- Entries come back in the order requested, and a repeated wallet counts once.
- A wallet with no pump.fun user goes into
missingand the call still succeeds. - A batch is charged as one call: it is served in full or refused as a whole with 402, before any entry comes back.
- Wallets are read live, several at a time, for up to 8 seconds. A wallet or window
that does not finish in time comes back
pendingand is ready on the next call. Onlyreadyentries are charged the hit price.
Price: 500 CU per entry answered ready, 200 CU per entry not ready and per wallet in missing.
POST
/
v2
/
pump
/
user
/
wallets
/
pnl
Realized and unrealized profit for up to 100 pump.fun wallets in one call
curl --request POST \
--url https://api.fomoscan.sh/v2/pump/user/wallets/pnl \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"wallets": [
"<string>"
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({wallets: ['<string>']})
};
fetch('https://api.fomoscan.sh/v2/pump/user/wallets/pnl', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.fomoscan.sh/v2/pump/user/wallets/pnl"
payload = { "wallets": ["<string>"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"count": 123,
"missing": [
"<string>"
],
"entries": [
{
"wallet": "<string>",
"username": "<string>",
"wallets": {
"solana": "<string>",
"evm": "<string>"
},
"status": "ready",
"retryAfterSeconds": 123,
"updatedAt": 123,
"nextUpdateAt": 123,
"stale": true,
"windows": {
"24h": {
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"totalPnlUsd": 123,
"returnPct": 123,
"volumeUsd": 123,
"buyVolumeUsd": 123,
"sellVolumeUsd": 123,
"trades": 123,
"buys": 123,
"sells": 123,
"tokensTraded": 123,
"winningTokens": 123,
"status": "ready",
"updatedAt": 123,
"approximate": true
},
"7d": {
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"totalPnlUsd": 123,
"returnPct": 123,
"volumeUsd": 123,
"buyVolumeUsd": 123,
"sellVolumeUsd": 123,
"trades": 123,
"buys": 123,
"sells": 123,
"tokensTraded": 123,
"winningTokens": 123,
"status": "ready",
"updatedAt": 123,
"approximate": true
},
"30d": {
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"totalPnlUsd": 123,
"returnPct": 123,
"volumeUsd": 123,
"buyVolumeUsd": 123,
"sellVolumeUsd": 123,
"trades": 123,
"buys": 123,
"sells": 123,
"tokensTraded": 123,
"winningTokens": 123,
"status": "ready",
"updatedAt": 123,
"approximate": true
},
"all": {
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"totalPnlUsd": 123,
"returnPct": 123,
"volumeUsd": 123,
"buyVolumeUsd": 123,
"sellVolumeUsd": 123,
"trades": 123,
"buys": 123,
"sells": 123,
"tokensTraded": 123,
"winningTokens": 123,
"status": "ready",
"updatedAt": 123,
"approximate": true
}
},
"unrealized": {
"unrealizedPnlUsd": 123,
"holdingsUsd": 123,
"positions": 123,
"excludedPositions": 123,
"status": "ready",
"updatedAt": 123
},
"pumpBoard": {
"daily": {
"rank": 123,
"pnlUsd": 123,
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"asOf": 123
},
"weekly": {
"rank": 123,
"pnlUsd": 123,
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"asOf": 123
},
"monthly": {
"rank": 123,
"pnlUsd": 123,
"realizedPnlUsd": 123,
"unrealizedPnlUsd": 123,
"asOf": 123
}
}
}
]
}Authorizations
B2B API key (fsk_live_… / fsk_test_…), issued by FomoScan. Also accepted via X-Api-Key.
Body
application/json
Up to 100 pump.fun wallets, Solana or EVM.
Required array length:
1 - 100 elementsRequired string length:
1 - 128Response
200 - application/json
Default Response
