Tokens API

Which insiders, bundlers, snipers, devs, smart traders and KOLs hold this token?

Labelled wallets holding a token (insider, bundler, sniper, dev, smart trader, KOL), largest first: balance, supply share, buys/sells, USD in/out, avg buy price, profit. SOL only.

GET/api/external/token-analysis/tagged-holders/{chain}/{mint}

What it returns

The wallets holding one token that carry a label — insider, bundler, sniper, dev, smart_trader, kol — largest balance first, each with its balance, its share of supply, and what it bought, sold and made on the token. ONLY labelled wallets are listed, so this is not the holder list and the shares do not add up to the concentration of the token: for the largest holders read top-holders, for the share each group holds read cohorts. Wallets holding nothing are not listed. totalPnlUsd is realized plus unrealized profit on the tokens the wallet bought; it is null for a wallet that sold without ever buying (tokens it received), because there is no cost basis to measure against, and 0 for a wallet that never traded. An empty holders list means no labelled wallet holds the token, the page is past the end, or the address is not a token. SOL only.

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/token-analysis/tagged-holders/SOL/<mint>"
Parameters
ParameterDescription
labels

query · string · optional

A comma-separated list of labels to keep, any of: insider, bundler, sniper, dev, smart_trader, kol, e.g. insider,dev. A wallet carrying any one of them is listed. Omitted, every labelled wallet is listed.
limit

query · integer · optional

How many wallets to return, largest balance first. 1 to 50; defaults to 50.
offset

query · integer · optional

How many wallets to skip, for the next page: pass the previous page's nextOffset.
chain

path · string · required

The chain the token lives on. SOL only; every other chain returns 400.
mint

path · string · required

The token mint address (Solana) or contract address (EVM).

Response fields

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

Response fields of Which insiders, bundlers, snipers, devs, smart traders and KOLs hold this token?
FieldTypeDescription
offsetintegerThe offset this page starts at.
nextOffsetinteger | nullThe offset of the next page when this page is full, else null (also null past the largest offset accepted). A full page can be followed by an empty one.
holdersobject[]Largest balance first. At most limit rows; empty when there is nothing to list.
holders[].rankinteger1 = the largest balance among the labelled wallets matching labels.
holders[].walletstringThe holding address.
holders[].labelsstring[]What the wallet is, one or more of: insider, bundler, sniper, dev, smart_trader, kol.
holders[].amountnumber | nullThe balance, in whole tokens.
holders[].supplyPctnumber | nullThe balance as a share of supply, in percent (0.1453 = 0.1453%).
holders[].buysinteger | nullHow many buys of the token the wallet made.
holders[].sellsinteger | nullHow many sells.
holders[].tokensBoughtnumber | nullTokens bought, in whole tokens.
holders[].tokensSoldnumber | nullTokens sold, in whole tokens.
holders[].investedUsdnumber | nullUSD spent buying.
holders[].proceedsUsdnumber | nullUSD received selling.
holders[].avgBuyPriceUsdnumber | nullAverage buy price, USD per token; null when the wallet never bought.
holders[].totalPnlUsdnumber | nullRealized plus unrealized profit on the tokens bought, USD. Null when the wallet sold without ever buying; 0 when it never traded.
holders[].firstTradeAtinteger | nullUnix seconds of its first buy or sell of the token; null when it never traded.

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