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.

GET/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"
Parameters
ParameterDescription
list

query · string · optional

new (default), bonding (still on the curve) or bonded.newbondingbonded
sortBy

query · 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
launchpads

query · string · optional

Comma-separated launchpads, as rows spell launchpad (e.g. pumpfun,letsbonk); at most 10.
maxDevHoldingPct

query · number · optional

Creator holds at most this share of supply, 0-100.
devActivity

query · string · optional

Only tokens whose creator never bought, or sold everything.never-boughtsold-all
minBots

query · integer · optional

Fewest bot wallets, inclusive.
maxBots

query · integer · optional

Most bot wallets, inclusive.
minMarketCapUsd

query · number · optional

Lowest USD market cap, inclusive.
maxMarketCapUsd

query · number · optional

Highest USD market cap, inclusive.
minVolume24hUsd

query · number · optional

Lowest volume24hUsd, inclusive.
maxVolume24hUsd

query · number · optional

Highest volume24hUsd, inclusive.
minHolders

query · integer · optional

Fewest holders, inclusive.
maxHolders

query · integer · optional

Most holders, inclusive.
maxTop10HolderPct

query · number · optional

Highest share of supply in the ten largest wallets, 0-100.
minAgeMinutes

query · integer · optional

Created at least this many minutes ago.
maxAgeMinutes

query · integer · optional

Created at most this many minutes ago.
minCurvePct

query · number · optional

Not on list=bonded. Lowest curve progress, 0-100.
maxCurvePct

query · number · optional

Not on list=bonded. Highest curve progress, 0-100.
minLiquidityUsd

query · number · optional

list=bonded only. Lowest USD liquidity, inclusive.
maxLiquidityUsd

query · number · optional

list=bonded only. Highest USD liquidity, inclusive.
excludeSpam

query · 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.
limit

query · integer · optional

Rows, 1-30. Default 20.
chain

path · 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.

Response fields of Live Solana launchpad boards by short-window volume, dev activity and bots
FieldTypeDescription
liststringThe board read.
sortBystringThe order served, the default resolved.
appliedCriteriaobjectEvery filter applied, as given; launchpads as a lower-case list. On list=bonding, tradedWithinSeconds: every row traded within that many seconds.
rowsobject[]The board, in sortBy order.
rows[].addressstringThe token's mint.
rows[].poolstring | nullThe account it trades in: its launch curve before bonding, its pool after.
rows[].namestring | nullThe token's name.
rows[].symbolstring | nullThe token's symbol.
rows[].creatorstring | nullThe wallet that launched it, when the board carries it (the new list does).
rows[].launchpadstring | nullWhere it launched, lower case (e.g. pumpfun). It stays the launchpad after bonding.
rows[].venuestring | nullWhere it trades now, lower case: the launchpad before bonding, the pool's venue after.
rows[].bondedboolean | nullWhether it has left its launch curve for a pool. null when its launch state could not be read.
rows[].curvePctnumber | nullHow far along its launch curve it is, 0-100, while on it; null once bonded or unknown.
rows[].createdAtUnixTimeinteger | nullWhen it was created, unix seconds.
rows[].createdAtIsostring | nullThe same instant as createdAtUnixTime, as ISO 8601 UTC, e.g. 2026-09-27T22:35:24Z. null exactly when createdAtUnixTime is null.
rows[].bondedAtUnixTimeinteger | nullWhen it bonded, unix seconds; null before.
rows[].marketCapUsdnumber | nullIts market cap in USD, whole dollars; null when not priced.
rows[].priceUsdnumber | nullIts price in USD, six significant digits; null when not priced.
rows[].liquidityUsdnumber | nullIts pool's USD liquidity, once bonded; null on a curve, whose figure is not tradeable depth.
rows[].holdersinteger | nullWallets holding it; null before they are counted.
rows[].top10HolderPctnumber | nullShare of supply in its ten largest wallets, 0-100.
rows[].devHoldingPctnumber | nullShare of supply its creator holds now, 0-100.
rows[].devActivitystring | nullWhat 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[].botCountinteger | nullBot wallets seen trading it.
rows[].spamboolean | nullThe spam mark set when the token launched: true marked, false not marked, null when the row carries no mark. Not a safety check.
rows[].volume24hUsdnumber | nullUSD traded in 24 hours on its curve and its pool together, whole dollars.
rows[].volumeUsdobjectUSD 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.m1number | nullUSD traded in the last 1 minute, whole dollars.
rows[].volumeUsd.m3number | nullUSD traded in the last 3 minutes, whole dollars.
rows[].volumeUsd.m5number | nullUSD traded in the last 5 minutes, whole dollars.
rows[].volumeUsd.m15number | nullUSD traded in the last 15 minutes, whole dollars.
rows[].volumeUsd.h1number | nullUSD traded in the last 1 hour, whole dollars.
rows[].volumeUsd.h6number | nullUSD traded in the last 6 hours, whole dollars.
rows[].volumeUsd.h24number | nullUSD traded in the last 24 hours, whole dollars.
rows[].priceChangePctobjectPrice change per window, percent to two decimals; null when unknown.
rows[].priceChangePct.m1number | nullPrice change over the last 1 minute, percent.
rows[].priceChangePct.m5number | nullPrice change over the last 5 minutes, percent.
rows[].priceChangePct.m15number | nullPrice change over the last 15 minutes, percent.
rows[].priceChangePct.h1number | nullPrice change over the last 1 hour, percent.
rows[].priceChangePct.h6number | nullPrice change over the last 6 hours, percent.
rows[].priceChangePct.h24number | nullPrice 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