API
GET /api/tokens
The list behind Explore: every launched token with its recipients and fee totals, sorted three ways, searchable, and paged with a cursor that does not skip or repeat when new launches land.
Request
Request
GET /api/tokens
GET /api/tokens?sort=fees&limit=12
GET /api/tokens?q=@alice
GET /api/tokens?sort=new&cursor=<nextCursor>| Parameter | Rules |
|---|---|
sort | new (default) by launch time, fees by lifetime creator fees (swept plus in the vault), mcap by market cap with unknown caps last. Always descending |
q | Up to 64 characters. Matches a mint or creator address exactly, a name or ticker by substring, or a recipient handle with or without the @ |
limit | 1 to 60. Default 24 |
cursor | The nextCursor of the previous page. Opaque, and only valid with the same sort |
Response
200 application/json
{
"tokens": [
{
"mint": "<base58>",
"name": "Example",
"symbol": "EXAMPLE",
"imageUrl": "/api/token-images/<mint>",
"creator": "<base58>",
"deployer": "<base58>",
"launchedAt": "2026-09-29T10:14:02.000Z",
"recipients": [
{
"handle": "alice",
"displayHandle": "Alice",
"bps": 6000,
"name": "Alice",
"avatarUrl": "https://…",
"claimed": true,
"routing": "autopay",
"declined": false,
"creditedLamports": "412000000"
}
],
"platformBps": 2000,
"sweptLamports": "858333333",
"vaultLamports": "4120000",
"vaultCheckedAt": "2026-09-29T12:01:40.000Z",
"bonded": false,
"marketCapUsd": 41200,
"volume24hUsd": 18800,
"lastSweptAt": "2026-09-29T11:50:09.000Z"
}
],
"nextCursor": "WyJuZXci…"
}Those figures are shape, not data. nextCursor is null on the last page.
Token fields
| Field | Type | Meaning |
|---|---|---|
mint | string | The token address |
creator | string | This token’s own creator address. See Per-token vaults |
deployer | string | The wallet that signed and paid for the launch |
imageUrl | string or null | Our stored preview when there is one, otherwise the IPFS image |
platformBps | number | The platform’s share of each sweep, fixed at launch |
sweptLamports | string | Lifetime creator fees collected by confirmed sweeps |
vaultLamports | string | Unswept fees at the last reading of both vaults, plus any fees somebody else collected into the creator address that no sweep has credited yet, taken at vaultCheckedAt |
bonded | boolean | The bonding curve completed and the token trades on PumpSwap |
marketCapUsd, volume24hUsd | number or null | From a market data source, refreshed on a schedule. Null when unknown |
lastSweptAt | string or null | When the last sweep confirmed. Null if the token has never been swept |
Recipient fields
| Field | Type | Meaning |
|---|---|---|
bps | number | Share of the recipients’ part. The recipients of one token add up to 10000 |
claimed | boolean | The X account has signed in at least once |
routing | string or null | hold, autopay or burn. Null until the account signs in |
declined | boolean | The account declined publicly. Its credits are bought back and burned |
creditedLamports | string | Credited to this handle from this token, all time |
Live response
Creator fees by token
No data yetNo token has been launched yet.
Top 0 tokens0.0000 SOL sweptFilled: swept. Outlined: in the vault, not swept yet.
Notes
- Tokens hidden from Explore by moderation are left out of this list and nothing else. They are still swept, their recipients are still paid, and GET /api/tokens/:mint still answers for them.
feessorts by swept plus vault, so a token whose fees are still below the sweep minimum ranks by what it has produced, not only by what has been collected.- An empty list is a 200 with
{"tokens": [], "nextCursor": null}, not an error.
Cached at the edge for 10 seconds, limited to 120 requests a minute per IP. Errors: 400 for an unknown
sort, a q over 64 characters, a bad limit or a cursor that is not ours; 429 over the limit. See Errors for the rest.