DexScreener Scraper — DEX Pairs, Prices, Boosts & Trending
Pricing
from $0.003 / result record
DexScreener Scraper — DEX Pairs, Prices, Boosts & Trending
Scrape DexScreener DEX token & pair market data across every chain — prices, liquidity, volume, transactions, FDV, market cap, boosts, token profiles and new pairs — with derived trading-signal analytics on every record. 6 modes, no login, no API key.
Pricing
from $0.003 / result record
Rating
0.0
(0)
Developer
Yuliia Kulakova
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
DexScreener Scraper — token pairs, prices, liquidity, volume, boosts & trading analytics (no key)
Pull DEX token & pair market data across every chain DexScreener covers — prices, liquidity, volume, transactions, price change, FDV, market cap, boosts and freshly-profiled tokens — and get derived trading signals computed on top of every record. Built for crypto traders, analysts, and model/bot builders who need clean, structured DEX data without wiring up an API key, a login, or a headless browser.
Every mode runs on DexScreener's official, free, keyless public API (api.dexscreener.com).
No API key. No cookies. No wallet.

Enjoying this Actor? If it's useful, please leave a ⭐️ rating and a short review — it genuinely helps. Something not working right? Open an issue on the Actor's Issues tab — I actively maintain this Actor and respond fast to fix problems and help you get things working.
Key features
6 scraping modes
| Mode | What it returns |
|---|---|
search | Free-text search by token symbol / name / contract / pair address. Multiple queries, merged & de-duplicated. |
pair-details | Exact pair lookup by chainId + pairAddress (or bare pairAddresses + chain). Optional paid-order history. |
token-pairs | Every liquidity pool/pair a token contract trades in (deepest-liquidity pool flagged). |
trending-boosts | Boosted / promoted (paid-trending) tokens — top (by total boost) or latest, enriched with live pair data. |
latest-token-profiles | Freshly profiled tokens (description / icon / website / socials), enriched with live pair data. |
new-pairs-by-chain | Freshest profiled/boosted tokens on the chosen chain(s), newest first, with a maxPairAgeHours cutoff. (DexScreener exposes no public "all-new-pairs" endpoint, so newly profiled/boosted tokens are used as the freshness proxy.) |
Full market fields on every record — priceUsd, priceNative, liquidity (usd/base/quote),
volume (m5/h1/h6/h24), txns (buys/sells per timeframe), fdv, marketCap, priceChange
(m5/h1/h6/h24), token metadata, image/website/socials.
Derived trading analytics competitors don't ship — every record includes an analytics block
computed from the market data:
buyPressure— buys / (buys + sells), 0..1, per timeframebuySellRatio— buys / sells, per timeframevolumeToLiquidity— turnover (volume ÷ liquidity), a churn/risk signalvolumePerTxn— average trade size (USD)priceChangeMomentum— h1 − h6 (short vs mid trend)priceChangeAcceleration— (h1 − h6) − (h6 − h24)volumeTrend— recent pace vs realized 24h volumeliquidityToMarketCap,fdvToMarketCap— depth and dilution ratiostrendingScore— a transparent composite heat score from public fields (see FAQ)
Plus paid-order/boost history (includeOrders), token profiles, and full client-side filters &
ranking (rankBy / order, min/max liquidity / volume / market cap / FDV / price-change / txns /
pair age, dexIds, labels, quoteSymbols, requireSocials, requireBoosted). Nested or flat
(spreadsheet/CSV-friendly) output.
Input
Set mode and the fields that mode needs. Convenience: query merges into queries, chain merges
into chains. All numeric filters default to absent (no filtering).
| Field | Type | Default | Description |
|---|---|---|---|
mode | enum | search | search / pair-details / token-pairs / trending-boosts / latest-token-profiles / new-pairs-by-chain |
query | string | SOL | search: single term (symbol / name / address). Merged into queries. |
queries | array | [] | search: multiple terms; results merged & de-duplicated. |
chain | string | — | Single chain id (token-pairs / new-pairs / pair-details). Merged into chains. |
chains | array | [] | One or more chain ids (token-pairs source chains, new-pairs chains, search result filter). |
tokenAddresses | array | [] | token-pairs: token contract/mint address(es), ≤30 per batch. |
pairs | array | [] | pair-details: "chainId/pairAddress" entries. |
pairAddresses | array | [] | pair-details: bare pair addresses (paired with chain). |
boostType | enum | top | trending-boosts: top (by total boost) or latest. |
rankBy | enum | volumeH24 | Sort key — see Ranking below. |
order | enum | desc | desc (highest first) or asc. |
timeframe | enum | h24 | Timeframe for the volume/txns/price-change filters: m5 / h1 / h6 / h24. |
minLiquidityUsd / maxLiquidityUsd | number | — | Liquidity (USD) bounds. |
minVolumeUsd / maxVolumeUsd | number | — | Volume (USD, selected timeframe) bounds. |
minMarketCap / maxMarketCap | number | — | Market cap (USD) bounds. |
minFdv / maxFdv | number | — | FDV (USD) bounds. |
minPriceChange / maxPriceChange | number | — | Price-change % (timeframe) bounds (use negatives for drops). |
minTxns | integer | — | Min total txns (buys + sells) in timeframe. |
minBuys / minSells | integer | — | Min buys / sells in timeframe. |
minPairAgeHours / maxPairAgeHours | number | — | Pair age (hours) bounds. |
dexIds | array | [] | Keep only these DEXes (e.g. raydium, orca, uniswap, pancakeswap, meteora). |
labels | array | [] | Keep only these pair labels (e.g. v2, v3, v4, CLMM, DLMM). |
quoteSymbols | array | [] | Keep only pairs quoted in these tokens (e.g. SOL, USDC, WETH). |
requireSocials | boolean | false | Keep only tokens with website/socials/info. |
requireBoosted | boolean | false | Keep only currently boosted tokens. |
includeOrders | boolean | false | Attach paid-order/boost history (/orders/v1). |
includeAnalytics | boolean | true | Attach the derived analytics block. |
flat | boolean | false | Emit flat one-row-per-pair records (analytics hoisted to top level). |
maxItems | integer | 100 | Max output records for the run. |
maxItemsPerQuery | integer | 0 | Cap results per query / chain / source (0 = no cap). |
proxyConfiguration | object | { useApifyProxy: false } | Optional. Public API works direct; proxy available for scale/geo. |
Ranking (rankBy):
volumeH24, volumeH6, volumeH1, volumeM5, liquidityUsd, marketCap, fdv, priceUsd, txnsH24, txnsH6, txnsH1, txnsM5, buysH24, sellsH24, priceChangeH24, priceChangeH6, priceChangeH1, priceChangeM5, pairAgeHours, boostAmount, buyPressureH24, volumeToLiquidity, trendingScoremaxItems is applied.
Example inputs
Search across chains for a token, sorted by 24h volume
{"mode": "search","queries": ["SOL", "PEPE"],"rankBy": "volumeH24","minLiquidityUsd": 25000,"maxItems": 50}
All pools of a token contract
{"mode": "token-pairs","chain": "solana","tokenAddresses": ["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"],"rankBy": "liquidityUsd"}
Exact pair details with paid-order history
{"mode": "pair-details","pairs": ["solana/5miPLrTZrMWqN5ubb22GPCjjyZgbQMB5jei7zNwDweZ8"],"includeOrders": true}
Boosted (paid-trending) tokens, enriched with live pair data
{"mode": "trending-boosts","boostType": "top","minLiquidityUsd": 10000,"maxItems": 50}
Output
One dataset record per pair (or per token, for freshly profiled/boosted tokens with no live pool yet).
Every mode emits the same core pair fields + analytics. Set flat: true for a denormalized
one-row-per-pair shape.
Core pair record — real, trimmed
{"recordType": "pair","mode": "search","chainId": "solana","dexId": "pumpswap","dexLabels": [],"pairAddress": "2uF4Xh61rDwxnG9woyxsVQP7zuA6kLFpb3NvnRQeoiSd","url": "https://dexscreener.com/solana/2uF4Xh61rDwxnG9woyxsVQP7zuA6kLFpb3NvnRQeoiSd","baseToken": { "address": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn", "name": "Pump", "symbol": "PUMP" },"quoteToken": { "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "name": "USD Coin", "symbol": "USDC" },"priceUsd": 0.003904,"priceNative": 0.003904,"priceChange": { "m5": 0.75, "h1": 0.72, "h6": -2.02, "h24": -7.79 },"volume": { "m5": 39532.33, "h1": 418917.44, "h6": 1082318.21, "h24": 2811206.31 },"txns": {"m5": { "buys": 82, "sells": 3 },"h1": { "buys": 550, "sells": 118 },"h6": { "buys": 1971, "sells": 645 },"h24": { "buys": 7172, "sells": 1901 }},"liquidity": { "usd": 21177427.97, "base": 2715067096, "quote": 10575503 },"fdv": 3262447185,"marketCap": 3262447185,"pairCreatedAt": "2025-07-14T16:55:49.000Z","pairAgeHours": 10039.836,"info": {"imageUrl": null, "header": null, "openGraph": null,"websites": [ { "label": null, "url": "https://pump.fun" } ],"socials": [ { "type": "twitter", "url": "https://x.com/pumpfun" } ]},"boosts": null,"profile": null,"orders": null,"analytics": {"totalTxns": { "m5": 85, "h1": 668, "h6": 2616, "h24": 9073 },"buySellRatio": { "m5": 27.3333, "h1": 4.661, "h6": 3.0558, "h24": 3.7728 },"buyPressure": { "m5": 0.9647, "h1": 0.8234, "h6": 0.7534, "h24": 0.7905 },"volumePerTxn": { "m5": 465.0862, "h1": 627.1219, "h6": 413.7302, "h24": 309.8431 },"volumeToLiquidity": { "m5": 0.0019, "h1": 0.0198, "h6": 0.0511, "h24": 0.1327 },"liquidityToMarketCap": 0.006491,"fdvToMarketCap": 1,"priceChangeMomentum": 2.74,"priceChangeAcceleration": -3.03,"volumeTrend": 3.5764,"trendingScore": 2.7754,"boostAmount": null},"scrapedAt": "2026-09-06T00:45:59.283Z"}
The boosts, profile and orders blocks populate when relevant (boosted tokens, profile modes,
includeOrders). Freshly profiled/boosted tokens with no live pool yet come back as a lighter
recordType: "token" record (address + profile/boost + a note, market fields null).
Field reference
- Top level:
recordType(pair|token),mode,chainId,dexId,dexLabels[],pairAddress,url,baseToken{address,name,symbol},quoteToken{…},priceUsd,priceNative,priceChange{m5,h1,h6,h24},volume{m5,h1,h6,h24},txns{m5,h1,h6,h24:{buys,sells}},liquidity{usd,base,quote},fdv,marketCap,pairCreatedAt,pairAgeHours,info{imageUrl,header,openGraph,websites[],socials[]},boosts{active,total},profile{description,icon,header,links[],cto},orders[{type,status,paymentTimestamp}],analytics{…},scrapedAt. analytics:totalTxns,buySellRatio,buyPressure,volumePerTxn,volumeToLiquidity(each per timeframe),liquidityToMarketCap,fdvToMarketCap,priceChangeMomentum,priceChangeAcceleration,volumeTrend,trendingScore,boostAmount.token-pairsmode only: the deepest-liquidity pool per token contract is flagged withisDeepestPool: true.
Nulls are preserved (never coerced to 0) so absent data stays honest.
Pricing
Pay-per-result. You are charged per record (a pair or token row) pushed to the dataset — no
charge for empty runs. The exact per-record price is shown on the Actor's Store page. Because filtering
and ranking happen before records are emitted, use maxItems, the min/max filters and chains to pay
only for the data you want. There is no separate cost for the DexScreener data itself — the actor uses
free, keyless endpoints (you still pay your own Apify platform usage).
Use cases
- Trending / new-token discovery —
trending-boosts(paid-trending tokens),latest-token-profilesandnew-pairs-by-chainto surface what's being promoted and what just launched. - Liquidity & volume scanning — filter by
minLiquidityUsd,minVolumeUsd,volumeToLiquidity,dexIdsandquoteSymbolsto find tradable, non-churny pools. - Signal feeds for bots & models — schedule runs and consume
buyPressure,buySellRatio,priceChangeMomentum/priceChangeAcceleration,volumeTrendandtrendingScoreas features. - Token due diligence — pull
pair-details/token-pairsfor a contract: liquidity depth, FDV/MC dilution (fdvToMarketCap), socials, and paid-order/boost history.
Honest limitations
We would rather under-promise:
- Built on the official public API. Every mode uses DexScreener's official, documented, free
public API (
api.dexscreener.com, published rate limits, no key). The actor respects those rate limits (300 req/min for search/pairs/tokens, 60 req/min for boosts/profiles/orders), so very large multi-chain pulls take proportionally longer. searchreturns up to ~30 pairs per query. That is DexScreener's own search-endpoint cap. Use severalqueries, ortoken-pairsfor a specific contract, to go wider.new-pairs-by-chainis a freshness proxy. DexScreener has no public "all-new-pairs" endpoint, so this mode surfaces newly profiled/boosted tokens on the chain (newest first), which is the closest keyless signal for fresh launches — not an exhaustive list of every new pool. Narrow it withmaxPairAgeHours.- Token-only records. A freshly profiled/boosted token with no live tradable pool yet returns a
lighter
recordType: "token"record (market fieldsnull) rather than being dropped. - Not affiliated with DexScreener. On-chain market data (prices, liquidity, volume) is factual. This actor is for informational/analytical use; follow DexScreener's ToS and your local law. Crypto is volatile — nothing here is financial advice.
FAQ
Do I need an API key, login, or wallet?
No. Every mode works keyless and login-free. proxyConfiguration is optional (the public API answers
directly); enable a proxy only for scale or geo needs.
What chains are supported?
Any chain id DexScreener returns is accepted (free-text pass-through). Common ones include solana,
ethereum, base, bsc, arbitrum, polygon, avalanche, optimism, sui, ton, tron,
hyperevm, linea, blast, sei, unichain, berachain, and more.
What is analytics.trendingScore?
A transparent composite heat score computed from public fields (roughly
log10(1+volume24) × turnover × buy-pressure × recency). It is a convenience ranking heuristic to
sort by momentum — clearly our own derived metric, not any exchange's internal score. Turn the whole
block off with includeAnalytics: false.
Nested vs flat output?
Default output is nested (analytics grouped under analytics). Set flat: true for a denormalized
one-row-per-pair shape (analytics and key numerics hoisted to the top level) — ideal for CSV/Excel.
How do I control cost / result count?
Use maxItems (whole-run cap), maxItemsPerQuery (per query/chain/source cap), and the min/max
filters so only the records you want are emitted and charged.