Discovery and markets API
Live Solana launchpad boards by short-window volume, dev activity and bots
Live Solana launchpad board (new, bonding, bonded) sorted by 1m-24h volume or market cap; filter by launchpad, dev holdings/activity, bots, holders, top-10 %, age (createdAtIso). Rows carry volumes.
/api/external/discovery/launchpad-board/{chain}What it returns
A live Solana launchpad board, up to 30 rows: list=new (newest first), bonding (still on the curve and trading, highest market cap first) or bonded (latest bonding first). Sort by short-window volume (1m to 24h) or market cap, and filter by launchpad, creator holdings and activity, bot count, market cap, 24h volume, holders, top-10 share, age, curve progress and liquidity. Every filter and sort runs over the whole board before the cut, and a range filter drops a row whose figure is unknown. Each row carries its figures: short-window volumes and price changes, creator holdings and activity, bot count, holders, top-10 share. The bonding board is the curves most traded in a recent window (appliedCriteria.tradedWithinSeconds, an hour by default), then ordered by sortBy, so a curve that stopped trading never leads it. USD figures are whole dollars, percentages two decimals. ONLY SOL IS SERVED.
Chains
- Solana SOL
Request
Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.
curl -H "x-dex-data-key: $DEXDATA_API_KEY" \ "https://api.dexdata.io/api/external/discovery/launchpad-board/SOL"
| Parameter | Description |
|---|---|
listquery · string · optional | new (default), bonding (still on the curve) or bonded.newbondingbonded |
sortByquery · string · optional | Always descending. Default: createdAt on new, marketCapUsd on bonding, bondedAt on bonded. On bonding it orders the curves traded within the window, not the whole list. createdAt is new only, bondedAt bonded only. volume24hUsd sorts on volumeUsd.h24. Rows whose figure is unknown sort last.createdAtbondedAtmarketCapUsdvolume1mUsdvolume3mUsdvolume5mUsdvolume15mUsdvolume1hUsdvolume6hUsdvolume24hUsd |
launchpadsquery · string · optional | Comma-separated launchpads, as rows spell launchpad (e.g. pumpfun,letsbonk); at most 10. |
maxDevHoldingPctquery · number · optional | Creator holds at most this share of supply, 0-100. |
devActivityquery · string · optional | Only tokens whose creator never bought, or sold everything.never-boughtsold-all |
minBotsquery · integer · optional | Fewest bot wallets, inclusive. |
maxBotsquery · integer · optional | Most bot wallets, inclusive. |
minMarketCapUsdquery · number · optional | Lowest USD market cap, inclusive. |
maxMarketCapUsdquery · number · optional | Highest USD market cap, inclusive. |
minVolume24hUsdquery · number · optional | Lowest volume24hUsd, inclusive. |
maxVolume24hUsdquery · number · optional | Highest volume24hUsd, inclusive. |
minHoldersquery · integer · optional | Fewest holders, inclusive. |
maxHoldersquery · integer · optional | Most holders, inclusive. |
maxTop10HolderPctquery · number · optional | Highest share of supply in the ten largest wallets, 0-100. |
minAgeMinutesquery · integer · optional | Created at least this many minutes ago. |
maxAgeMinutesquery · integer · optional | Created at most this many minutes ago. |
minCurvePctquery · number · optional | Not on list=bonded. Lowest curve progress, 0-100. |
maxCurvePctquery · number · optional | Not on list=bonded. Highest curve progress, 0-100. |
minLiquidityUsdquery · number · optional | list=bonded only. Lowest USD liquidity, inclusive. |
maxLiquidityUsdquery · number · optional | list=bonded only. Highest USD liquidity, inclusive. |
excludeSpamquery · boolean · optional | Drop rows whose spam is true, before the cut: the page still fills to limit when enough other rows are on the board. |
limitquery · integer · optional | Rows, 1-30. Default 20. |
chainpath · string · required | SOL only; every other chain returns 400. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
list | string | The board read. |
sortBy | string | The order served, the default resolved. |
appliedCriteria | object | Every filter applied, as given; launchpads as a lower-case list. On list=bonding, tradedWithinSeconds: every row traded within that many seconds. |
rows | object[] | The board, in sortBy order. |
rows[].address | string | The token's mint. |
rows[].pool | string | null | The account it trades in: its launch curve before bonding, its pool after. |
rows[].name | string | null | The token's name. |
rows[].symbol | string | null | The token's symbol. |
rows[].creator | string | null | The wallet that launched it, when the board carries it (the new list does). |
rows[].launchpad | string | null | Where it launched, lower case (e.g. pumpfun). It stays the launchpad after bonding. |
rows[].venue | string | null | Where it trades now, lower case: the launchpad before bonding, the pool's venue after. |
rows[].bonded | boolean | null | Whether it has left its launch curve for a pool. null when its launch state could not be read. |
rows[].curvePct | number | null | How far along its launch curve it is, 0-100, while on it; null once bonded or unknown. |
rows[].createdAtUnixTime | integer | null | When it was created, unix seconds. |
rows[].createdAtIso | string | null | The same instant as createdAtUnixTime, as ISO 8601 UTC, e.g. 2026-09-27T22:35:24Z. null exactly when createdAtUnixTime is null. |
rows[].bondedAtUnixTime | integer | null | When it bonded, unix seconds; null before. |
rows[].marketCapUsd | number | null | Its market cap in USD, whole dollars; null when not priced. |
rows[].priceUsd | number | null | Its price in USD, six significant digits; null when not priced. |
rows[].liquidityUsd | number | null | Its pool's USD liquidity, once bonded; null on a curve, whose figure is not tradeable depth. |
rows[].holders | integer | null | Wallets holding it; null before they are counted. |
rows[].top10HolderPct | number | null | Share of supply in its ten largest wallets, 0-100. |
rows[].devHoldingPct | number | null | Share of supply its creator holds now, 0-100. |
rows[].devActivity | string | null | What its creator did with it: never bought, bought and held, sold part, or sold all. Published only when devHoldingPct agrees: never-bought only at 0, sold-all at 0 or unknown, the other two above 0 or unknown; otherwise null. So a row filtered by devActivity can read null. |
rows[].botCount | integer | null | Bot wallets seen trading it. |
rows[].spam | boolean | null | The spam mark set when the token launched: true marked, false not marked, null when the row carries no mark. Not a safety check. |
rows[].volume24hUsd | number | null | USD traded in 24 hours on its curve and its pool together, whole dollars. |
rows[].volumeUsd | object | USD traded per window on the venue it trades on now: once bonded, its pool only, so a token that bonded under an hour ago reads the same 1h, 6h and 24h. null when not yet measured (the newest tokens). |
rows[].volumeUsd.m1 | number | null | USD traded in the last 1 minute, whole dollars. |
rows[].volumeUsd.m3 | number | null | USD traded in the last 3 minutes, whole dollars. |
rows[].volumeUsd.m5 | number | null | USD traded in the last 5 minutes, whole dollars. |
rows[].volumeUsd.m15 | number | null | USD traded in the last 15 minutes, whole dollars. |
rows[].volumeUsd.h1 | number | null | USD traded in the last 1 hour, whole dollars. |
rows[].volumeUsd.h6 | number | null | USD traded in the last 6 hours, whole dollars. |
rows[].volumeUsd.h24 | number | null | USD traded in the last 24 hours, whole dollars. |
rows[].priceChangePct | object | Price change per window, percent to two decimals; null when unknown. |
rows[].priceChangePct.m1 | number | null | Price change over the last 1 minute, percent. |
rows[].priceChangePct.m5 | number | null | Price change over the last 5 minutes, percent. |
rows[].priceChangePct.m15 | number | null | Price change over the last 15 minutes, percent. |
rows[].priceChangePct.h1 | number | null | Price change over the last 1 hour, percent. |
rows[].priceChangePct.h6 | number | null | Price change over the last 6 hours, percent. |
rows[].priceChangePct.h24 | number | null | Price change over the last 24 hours, percent. |
Start building with DexData today
Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.
Get a free API key