Docs/Token data/Token overview

Token overview

GET/v1/token/{mint}/overviewPublic

The full market snapshot for one token — everything a DexScreener header shows, in one call.

Path parameters

FieldTypeDescription
mintrequiredstringToken mint address (base58).

Query parameters

FieldTypeDescription
networkoptionalmainnet | devnetNetwork to read. Devnet returns an empty payload (with a note) until its ingestor lands. default mainnet

Response fields

FieldTypeDescription
priceUsdnumberLatest USD price: our reconciled price for indexed mints, a Jupiter spot quote for unindexed ones (see priceSource).
priceSourcequanaris | jupiter | nullquanaris = our trade-reconciled series; jupiter = spot fallback for an unindexed mint (always alongside indexed: false); null = no price at all.
supply.totalnumberTotal on-chain supply (the honest on-chain figure).
supply.circulatingnullAlways null: we don't track locked/team/treasury supply on-chain yet, so the circulating fraction is unknown. See supplyNote; use supply.total / fdvUsd.
supplyNotestringExplains why supply.circulating is null and points to supply.total / fdvUsd.
marketCapUsdnullAlways null: we don't track locked/team/treasury supply on-chain yet, so a true circulating market cap can't be computed honestly. Use fdvUsd. See marketCapNote.
marketCapNotestringExplains why marketCapUsd is null and points to fdvUsd.
fdvUsdnumberFully-diluted value (total supply × price) — the valuation figure we can compute honestly.
liquidityUsdnumber | nullLiquidity (on-chain for the dominant Raydium pool).
liquiditySourcestringraydium-onchain · dexscreener · cached.
pools[]arrayPools with { dex, address, tvlUsd }.
holders.countnumber | nullHolder count (a lower bound when holders.countIsFloor is true).
holders.countIsFloorbooleantrue = the bounded holder crawl capped out, so the real count is >= count.
holders.top[]arrayTop holders (token accounts) with pct of supply, owner wallet and isPoolVault label.
priceChangeobject% change over 5m / 1h / 6h / 24h.
volumeobjectUSD volume over 5m / 1h / 6h / 24h (the 24h figure equals totalVolumeUsd).
totalVolumeUsdnumberAll priceable swaps over the exact rolling 24h (dust/outliers included).
chartedVolumeUsdnumberCandle-eligible, bucket-aligned 24h volume — what the chart bars sum to.
txns24hobject{ buys, sells } over 24h.
indexedbooleanPresent (false) only when no swaps/candles were ever ingested for this mint — every market figure is empty, see note.
notestringHonest-empty hint (unindexed mint → register pointer; or the devnet note).
marketCapUsd and supply.circulating are both null on purpose: we don't track locked/team/treasury supply on-chain yet, so the circulating fraction is unknown and a 'market cap' would just be a verbatim copy of FDV presented as an independent figure. Rather than ship that, we return null + marketCapNote / supplyNote and let supply.total (on-chain total) and fdvUsd (supply × price) stand as the honest figures. Both become real numbers once we track circulating supply.
For an unindexed mint, priceUsd falls back to a Jupiter spot quote (priceSource: jupiter, alongside indexed: false) so the headline price answers for any mainnet mint; fdvUsd then derives from that spot. The quote is cached in-process only and never written into our dataset.
totalVolumeUsd sums every priceable swap over the exact rolling 24h window (dust/outliers in); chartedVolumeUsd sums the candle-eligible, bucket-aligned 1h candles (what the chart bars add up to). They differ by the dust/outliers and the in-progress tail bucket, never match exactly, and use the same definitions everywhere they appear (e.g. the token list).