Discovery and markets API

Which tokens are paying for visibility on the listing venue right now?

The tokens currently buying boosts, ads or an enhanced listing profile, across every chain at once, newest or largest first. Spend is in the listing units, never a quality signal.

GET/api/external/discovery/promoted

What it returns

Who is currently paying to be seen, across every chain at once. feed picks the product: boosts-top is the standing ranking of tokens by boost credits bought, largest first; boosts-recent is the latest boost purchases, newest first, each with the size of that purchase and the running total; ads is the latest paid placements, newest first; profiles is the listings whose enhanced profile was published most recently. The order is always the source's and is never re-sorted here.

One fixed page. The upstream feed takes no filter and sends a fixed number of rows (30 on every feed measured). chain therefore narrows THAT PAGE rather than asking for a chain, so a chain with promoted tokens can still answer an empty list when none of them is on the page. feedSize is how many rows the page held, so count: 0 with a large feedSize means "none on this page", not "nobody is paying".

Paying for visibility is not a quality signal. It says money was spent on presentation, and nothing about the token. For one token's own lifetime boost total use promotion instead.

Chains

  • Solana SOL
  • Ethereum ETH
  • BNB Chain BNB
  • Base BASE
  • Stable STABLE
  • Robinhood Chain RHC
  • Arc ARC

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/promoted"
Parameters
ParameterDescription
feed

query · string · optional

Which promotion product to list. boosts-top (default): ranked by boost credits bought. boosts-recent: the latest purchases. ads: the latest paid placements. profiles: the latest published listing profiles.boosts-topboosts-recentadsprofiles
chain

query · string · optional

Keep only the rows on this chain. Omit for every chain. Filters the page, see above.
limit

query · integer · optional

How many rows to return, 1 to 100, applied after chain. Defaults to 30.

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of Which tokens are paying for visibility on the listing venue right now?
FieldTypeDescription
feedstringThe product listed.
chainstring | nullThe chain the page was narrowed to, or null when it was not.
feedSizeintegerHow many rows the source sent, before chain and limit. Not a total of everything being promoted.
countintegerHow many rows are in promotions.
promotionsobject[]In the source's order.
promotions[].chainstring | nullThe chain the token is promoted on, or null when the listing is on a chain this API does not publish — the feeds cover the whole venue, not only these chains.
promotions[].chainRefstringThe listing's own chain identifier, e.g. solana or bsc. Always present, including when chain is null.
promotions[].tokenAddressstringThe token's mint or contract address on that chain.
promotions[].descriptionstring | nullThe project's own blurb on the listing. Null when the listing carries none.
promotions[].boostTotalnumber | nullBoost feeds: the running total bought for this token, in the listing units. Null on the other feeds.
promotions[].boostLatestnumber | nullFeed boosts-recent: the size of the single purchase that put the row on the feed.
promotions[].adTypestring | nullFeed ads: which placement was bought, e.g. tokenAd, trendingBarAd.
promotions[].adImpressionsinteger | nullFeed ads: impressions bought. Null — never 0 — when the placement was sold by duration instead.
promotions[].adDurationHoursnumber | nullFeed ads: hours bought. Null — never 0 — when the placement was sold by impressions instead.
promotions[].adStartedAtstring | nullFeed ads: when the placement started, ISO-8601.
promotions[].communityTakeoverboolean | nullFeed profiles: true when the community holds the listing profile rather than the project itself.

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