DexScreener Token Pair & Boosted Token Scraper
Look up decentralized exchange trading pairs by token or pair address, search tokens by name or symbol, or pull the latest boosted tokens and token profiles across 20 blockchains. Returns price, liquidity, volume, and transaction counts.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | What to collect. Each mode uses its own fields below. |
queries | array | optional | Token names, symbols, pair text such as SOL/USDC, token addresses, or DexScreener URLs. Multiple queries fan out. (mode=search) |
tokenAddresses | string | optional | One or more token contract addresses or DexScreener token URLs, separated by commas or new lines. (mode=byToken, orders) |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | What to collect. Each mode uses its own fields below. |
queries | array | optional | Token names, symbols, pair text such as SOL/USDC, token addresses, or DexScreener URLs. Multiple queries fan out. (mode=search) |
tokenAddresses | string | optional | One or more token contract addresses or DexScreener token URLs, separated by commas or new lines. (mode=byToken, orders) |
pairAddresses | array | optional | Pair URLs, chain:pairAddress, or bare pair addresses. Bare addresses need a specific chain. (mode=byPair) |
chainId | string | optional | Blockchain to read. Required for byToken when not 'all', for bare pair addresses, and for orders. Also filters search and promotion feeds locally. |
customChainId | string | optional | Optional override for a chain added after this release, e.g. 'newchain'. When set it replaces Chain. |
feed | string | optional | Which live promotion feed to read. (mode=discovery) |
metaSlugs | array | optional | Narrative slugs such as ai, dog, cat, or x402. Run mode=metas to discover live slugs. (mode=metaPairs) |
allPools | boolean | optional | When on, byToken returns every pool of each token on the chain. When off, it returns the best pair per token. |
minLiquidityUsd | number | optional | Skip pairs with liquidity below this USD value. |
maxLiquidityUsd | number | optional | Skip pairs with liquidity above this USD value. |
minVolume24hUsd | number | optional | Skip pairs with 24-hour volume below this USD value. |
maxVolume24hUsd | number | optional | Skip pairs with 24-hour volume above this USD value. |
minMarketCapUsd | number | optional | Skip pairs below this market cap. Uses FDV when market cap is missing. |
maxMarketCapUsd | number | optional | Skip pairs above this market cap. Uses FDV when market cap is missing. |
minFdvUsd | number | optional | Skip pairs with a fully diluted valuation below this USD value. |
maxFdvUsd | number | optional | Skip pairs with a fully diluted valuation above this USD value. |
minTxns24h | integer | optional | Skip pairs with fewer buys plus sells in the last 24 hours. |
maxTxns24h | integer | optional | Skip pairs with more buys plus sells in the last 24 hours. |
minPriceChange24h | number | optional | Skip pairs whose 24-hour price change is below this percent. Negative values allowed. |
maxPriceChange24h | number | optional | Skip pairs whose 24-hour price change is above this percent. Negative values allowed. |
minAgeHours | number | optional | Skip pairs younger than this many hours. |
maxAgeHours | number | optional | Skip pairs older than this many hours. Use 24 to keep pairs launched today. |
dexIds | array | optional | Keep only these DEX protocols, e.g. uniswap, raydium, aerodrome. Empty means all. |
quoteSymbols | array | optional | Keep only pairs quoted in these assets, e.g. USDC, SOL, WETH. Empty means all. |
sortBy | string | optional | Sort results within each query, token, or feed. Missing values are always last. |
sortOrder | string | optional | Largest/oldest first or smallest/newest first. Pair age ascending means newest first. |
onePairPerToken | boolean | optional | Keep only the most liquid pair for each token. |
includeInfo | boolean | optional | Add logo, header image, website and social links when DexScreener has them. |
includeMarketData | boolean | optional | For promotion feeds, attach price, liquidity, volume, market cap and age of each token's best pair. |
expandChainSearch | boolean | optional | When a chain is selected, also search quote variants and pull the token pools to get past the 30-pair search cap. |
chainSearchTokens | integer | optional | How many matching tokens get their pools fetched when widening a chain search. 0 = quote variants only. |
includeFlags | boolean | optional | Add heuristic flags such as low liquidity, new pair, sell pressure, or no socials. |
newPairHours | integer | optional | Pairs younger than this many hours get a new_pair flag. |
maxItemsPerQuery | integer | optional | Maximum records from each query, token, or feed. DexScreener caps search at 30. |
maxItems | integer | optional | Hard cap on records for the whole run. |
Download the published input schema
View complete JSON
{
"description": "Search tokens and pairs, inspect every pool of a token, monitor pairs, or pull promotion feeds, narratives and paid orders from DexScreener's public API.",
"properties": {
"allPools": {
"default": false,
"description": "When on, byToken returns every pool of each token on the chain. When off, it returns the best pair per token.",
"prefill": false,
"title": "All pools per token",
"type": "boolean"
},
"chainId": {
"default": "all",
"description": "Blockchain to read. Required for byToken when not 'all', for bare pair addresses, and for orders. Also filters search and promotion feeds locally.",
"editor": "select",
"enum": [
"all",
"abstract",
"algorand",
"aptos",
"arbitrum",
"arc",
"avalanche",
"base",
"beam",
"berachain",
"blast",
"bsc",
"celo",
"conflux",
"cronos",
"ethereum",
"fantom",
"fuse",
"flare",
"flowevm",
"harmony",
"heco",
"hedera",
"hyperevm",
"hyperliquid",
"ink",
"injective",
"kava",
"klaytn",
"linea",
"manta",
"mantle",
"metis",
"monad",
"moonbeam",
"moonriver",
"gnosis",
"movement",
"multiversx",
"near",
"okex",
"optimism",
"cro",
"plasma",
"polygon",
"pulsechain",
"robinhood",
"scroll",
"seiv2",
"solana",
"soneium",
"sonic",
"stacks",
"starknet",
"sui",
"telos",
"ton",
"tron",
"unichain",
"worldchain",
"xrpl",
"zksync"
],
"enumTitles": [
"All chains",
"Abstract",
"Algorand",
"Aptos",
"Arbitrum",
"Arc",
"Avalanche",
"Base",
"Beam",
"Berachain",
"Blast",
"BNB Smart Chain (BSC)",
"Celo",
"Conflux",
"Cronos",
"Ethereum",
"Fantom",
"Fuse",
"Flare",
"Flow EVM",
"Harmony",
"HECO",
"Hedera",
"HyperEVM",
"Hyperliquid",
"Ink",
"Injective",
"Kava",
"Klaytn",
"Linea",
"Manta",
"Mantle",
"Metis",
"Monad",
"Moonbeam",
"Moonriver",
"Gnosis",
"Movement",
"MultiversX",
"NEAR",
"OKEx Chain",
"Optimism",
"Crypto.com Chain",
"Plasma",
"Polygon",
"PulseChain",
"Robinhood",
"Scroll",
"Sei V2",
"Solana",
"Soneium",
"Sonic",
"Stacks",
"Starknet",
"Sui",
"Telos",
"TON",
"Tron",
"Unichain",
"World Chain",
"XRP Ledger",
"zkSync"
],
"prefill": "all",
"title": "Chain",
"type": "string"
},
"chainSearchTokens": {
"default": 10,
"description": "How many matching tokens get their pools fetched when widening a chain search. 0 = quote variants only.",
"maximum": 30,
"minimum": 0,
"prefill": 10,
"title": "Tokens to widen",
"type": "integer"
},
"customChainId": {
"description": "Optional override for a chain added after this release, e.g. 'newchain'. When set it replaces Chain.",
"editor": "textfield",
"title": "Custom chain id",
"type": "string"
},
"dexIds": {
"description": "Keep only these DEX protocols, e.g. uniswap, raydium, aerodrome. Empty means all.",
"editor": "stringList",
"items": {
"type": "string"
},
"title": "DEX filter",
"type": "array"
},
"expandChainSearch": {
"default": true,
"description": "When a chain is selected, also search quote variants and pull the token pools to get past the 30-pair search cap.",
"prefill": true,
"title": "Widen search by chain",
"type": "boolean"
},
"feed": {
"default": "boostedTop",
"description": "Which live promotion feed to read. (mode=discovery)",
"editor": "select",
"enum": [
"boostedTop",
"boostedLatest",
"profilesLatest",
"profilesUpdated",
"takeovers",
"ads"
],
"enumTitles": [
"Most-boosted tokens",
"Newest boosts",
"Newest token profiles",
"Recently updated profiles",
"Community takeovers",
"Paid ads"
],
"prefill": "boostedTop",
"title": "Promotion feed",
"type": "string"
},
"includeFlags": {
"default": true,
"description": "Add heuristic flags such as low liquidity, new pair, sell pressure, or no socials.",
"prefill": true,
"title": "Include risk flags",
"type": "boolean"
},
"includeInfo": {
"default": true,
"description": "Add logo, header image, website and social links when DexScreener has them.",
"prefill": true,
"title": "Include token info",
"type": "boolean"
},
"includeMarketData": {
"default": true,
"description": "For promotion feeds, attach price, liquidity, volume, market cap and age of each token's best pair.",
"prefill": true,
"title": "Include market data",
"type": "boolean"
},
"maxAgeHours": {
"description": "Skip pairs older than this many hours. Use 24 to keep pairs launched today.",
"maximum": 1000000,
"minimum": 0,
"title": "Max pair age (hours)",
"type": "number"
},
"maxFdvUsd": {
"description": "Skip pairs with a fully diluted valuation above this USD value.",
"maximum": 1000000000000000,
"minimum": 0,
"title": "Max FDV (USD)",
"type": "number"
},
"maxItems": {
"default": 100,
"description": "Hard cap on records for the whole run.",
"maximum": 10000,
"minimum": 1,
"prefill": 1,
"title": "Max items",
"type": "integer"
},
"maxItemsPerQuery": {
"default": 30,
"description": "Maximum records from each query, token, or feed. DexScreener caps search at 30.",
"maximum": 500,
"minimum": 1,
"prefill": 30,
"title": "Max per query",
"type": "integer"
},
"maxLiquidityUsd": {
"description": "Skip pairs with liquidity above this USD value.",
"maximum": 1000000000000,
"minimum": 0,
"title": "Max liquidity (USD)",
"type": "number"
},
"maxMarketCapUsd": {
"description": "Skip pairs above this market cap. Uses FDV when market cap is missing.",
"maximum": 1000000000000000,
"minimum": 0,
"title": "Max market cap (USD)",
"type": "number"
},
"maxPriceChange24h": {
"description": "Skip pairs whose 24-hour price change is above this percent. Negative values allowed.",
"maximum": 100000,
"minimum": -100,
"title": "Max 24h change (%)",
"type": "number"
},
"maxTxns24h": {
"description": "Skip pairs with more buys plus sells in the last 24 hours.",
"maximum": 1000000000,
"minimum": 0,
"title": "Max 24h transactions",
"type": "integer"
},
"maxVolume24hUsd": {
"description": "Skip pairs with 24-hour volume above this USD value.",
"maximum": 1000000000000,
"minimum": 0,
"title": "Max 24h volume (USD)",
"type": "number"
},
"metaSlugs": {
"description": "Narrative slugs such as ai, dog, cat, or x402. Run mode=metas to discover live slugs. (mode=metaPairs)",
"editor": "stringList",
"items": {
"type": "string"
},
"title": "Narrative slugs",
"type": "array"
},
"minAgeHours": {
"description": "Skip pairs younger than this many hours.",
"maximum": 1000000,
"minimum": 0,
"title": "Min pair age (hours)",
"type": "number"
},
"minFdvUsd": {
"description": "Skip pairs with a fully diluted valuation below this USD value.",
"maximum": 1000000000000000,
"minimum": 0,
"title": "Min FDV (USD)",
"type": "number"
},
"minLiquidityUsd": {
"description": "Skip pairs with liquidity below this USD value.",
"maximum": 1000000000000,
"minimum": 0,
"title": "Min liquidity (USD)",
"type": "number"
},
"minMarketCapUsd": {
"description": "Skip pairs below this market cap. Uses FDV when market cap is missing.",
"maximum": 1000000000000000,
"minimum": 0,
"title": "Min market cap (USD)",
"type": "number"
},
"minPriceChange24h": {
"description": "Skip pairs whose 24-hour price change is below this percent. Negative values allowed.",
"maximum": 100000,
"minimum": -100,
"title": "Min 24h change (%)",
"type": "number"
},
"minTxns24h": {
"description": "Skip pairs with fewer buys plus sells in the last 24 hours.",
"maximum": 1000000000,
"minimum": 0,
"title": "Min 24h transactions",
"type": "integer"
},
"minVolume24hUsd": {
"description": "Skip pairs with 24-hour volume below this USD value.",
"maximum": 1000000000000,
"minimum": 0,
"title": "Min 24h volume (USD)",
"type": "number"
},
"mode": {
"default": "search",
"description": "What to collect. Each mode uses its own fields below.",
"editor": "select",
"enum": [
"search",
"byToken",
"byPair",
"discovery",
"metas",
"metaPairs",
"orders",
"byTokenAddress",
"byPairAddress",
"trending",
"byProfile"
],
"enumTitles": [
"Search tokens and pairs",
"Token lookup (pools or best pair)",
"Pair lookup by address or URL",
"Promotion feeds (boosts, profiles, takeovers, ads)",
"Trending narratives",
"Pairs inside narratives",
"Paid orders for tokens",
"Token lookup (legacy)",
"Pair lookup (legacy)",
"Boosted tokens (legacy)",
"Token profiles (legacy)"
],
"prefill": "search",
"title": "Mode",
"type": "string"
},
"newPairHours": {
"default": 24,
"description": "Pairs younger than this many hours get a new_pair flag.",
"maximum": 720,
"minimum": 1,
"prefill": 24,
"title": "New pair threshold",
"type": "integer"
},
"onePairPerToken": {
"default": false,
"description": "Keep only the most liquid pair for each token.",
"prefill": false,
"title": "One pair per token",
"type": "boolean"
},
"pairAddresses": {
"description": "Pair URLs, chain:pairAddress, or bare pair addresses. Bare addresses need a specific chain. (mode=byPair)",
"editor": "stringList",
"items": {
"type": "string"
},
"title": "Pair addresses or URLs",
"type": "array"
},
"queries": {
"description": "Token names, symbols, pair text such as SOL/USDC, token addresses, or DexScreener URLs. Multiple queries fan out. (mode=search)",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [
"USDC"
],
"title": "Search queries",
"type": "array"
},
"quoteSymbols": {
"description": "Keep only pairs quoted in these assets, e.g. USDC, SOL, WETH. Empty means all.",
"editor": "stringList",
"items": {
"type": "string"
},
"title": "Quote symbols",
"type": "array"
},
"sortBy": {
"default": "none",
"description": "Sort results within each query, token, or feed. Missing values are always last.",
"editor": "select",
"enum": [
"none",
"liquidity",
"volume24h",
"volume1h",
"volume6h",
"marketCap",
"fdv",
"priceChange5m",
"priceChange1h",
"priceChange6h",
"priceChange24h",
"txns24h",
"buys24h",
"sells24h",
"buySellRatio24h",
"pairAge",
"boosts"
],
"enumTitles": [
"Source order",
"Liquidity",
"24h volume",
"1h volume",
"6h volume",
"Market cap",
"FDV",
"5m price change",
"1h price change",
"6h price change",
"24h price change",
"24h transactions",
"24h buys",
"24h sells",
"24h buy/sell ratio",
"Pair age",
"Active boosts"
],
"prefill": "none",
"title": "Sort by",
"type": "string"
},
"sortOrder": {
"default": "desc",
"description": "Largest/oldest first or smallest/newest first. Pair age ascending means newest first.",
"editor": "select",
"enum": [
"desc",
"asc"
],
"enumTitles": [
"Descending",
"Ascending"
],
"prefill": "desc",
"title": "Sort order",
"type": "string"
},
"tokenAddresses": {
"description": "One or more token contract addresses or DexScreener token URLs, separated by commas or new lines. (mode=byToken, orders)",
"editor": "textarea",
"title": "Token addresses",
"type": "string"
}
},
"required": [
"mode"
],
"schemaVersion": 1,
"title": "DexScreener Scraper Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
records | string | optional | Scraped DexScreener records |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "DexScreener pair, pool, boosted-token, profile, takeover, ad, narrative and paid-order records with price, liquidity, volume, transaction counts, token info and risk flags.",
"properties": {
"records": {
"description": "Scraped DexScreener records",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Records",
"type": "string"
}
},
"title": "DexScreener Token Pair & Boosted Token Scraper Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"views": {
"overview": {
"display": {
"component": "table",
"properties": {}
},
"title": "Pairs",
"transformation": {
"fields": [
"chainId",
"dexId",
"pairAddress",
"tokenSymbol",
"quoteTokenSymbol",
"priceUsd",
"liquidity",
"volume",
"marketCap",
"info",
"flags",
"pairUrl"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
DexScreener Token Pair & Boosted Token Scraper
DexScreener is the market screen for on-chain trading: live pairs across DEXs and dozens of chains, plus the paid boosts, profiles, takeovers, ads and narratives that drive attention. This actor reads DexScreener's official public API and returns clean, analysis-ready records for token research, pair monitoring and promotion tracking. No wallet, API key, cookie or proxy is needed.
What this actor does
- Search tokens and pairs by name, symbol, pair text such as
SOL/USDC, contract address, or a pasted DexScreener URL. - Inspect a token: best pair per token on one chain, or every pool of the token.
- Monitor pairs by address or URL, many at a time.
- Pull six promotion feeds: most-boosted tokens, newest boosts, newest profiles, recently updated profiles, community takeovers and paid ads.
- Follow narratives: trending metas, then the pairs inside each meta.
- Check paid orders: profile, ad and takeover orders plus boost purchases for a token.
- Filter and sort by liquidity, 24h volume, market cap, FDV, transactions, 24h price change, pair age, DEX and quote symbol.
- Token info and risk flags: logo, header, website and social links when available; heuristic flags such as low liquidity, new pair, sell pressure or no socials.
Output per record type
Empty fields are omitted. Every record has recordType, siteName and scrapedAt.
Pair (pair)
chainId,dexId,pairAddress,pairUrlid-chain:pairAddresstokenAddress,tokenName,tokenSymbol,quoteTokenAddress,quoteTokenSymbolbaseToken,quoteToken-{address, name, symbol}priceNative,priceUsdliquidity-{usd, base, quote}fdv,marketCapvolume-{h24, h6, h1, m5}priceChange-{h24, h6, h1, m5}txns- buy/sell counts for the same windowspairCreatedAt,ageHourslabels,boostsbuySellRatio24h,volumeToLiquidity24hinfo-{imageUrl, header, openGraph, websites[], socials[]}flags[]-low_liquidity,no_liquidity_data,suspicious_liquidity,new_pair_<N>h,sell_pressure,no_sells_24h,extreme_price_move_24h,volume_over_10x_liquidity,no_profile,no_socialsquery,rank,metaSlug,metaNamewhen relevantquerySide,tokenPriceUsdfor token lookups where the token is the quote side
Boosted token (boostedToken) and token profile (tokenProfile)
chainId,tokenAddress,tokenUrl,pairUrlicon,header,openGraph,description,links[]boostAmount,boostTotalAmount(boosts)cto(profiles),updatedAt(recently updated profiles)rank,listType- Market data when enabled:
symbol,name,priceUsd,quoteSymbol,dexId,liquidityUsd,fdv,marketCap,volume24h,priceChange1h,priceChange24h,pairCreatedAt,ageHours,pairsFound,topPairAddress,topPairUrl
Community takeover (communityTakeover) and ad (ad)
- Takeover:
chainId,tokenAddress,tokenUrl,pairUrl,icon,header,openGraph,description,links[], market data, plusclaimDate. - Ad:
tokenAddress,tokenUrl,adDate,adType,adImpressions, optionaladDurationHours, plus market data.
Narrative (meta)
slug,name,description,icon,iconTypemarketCap,liquidity,volume,tokenCountmarketCapChange,marketCapDeltaform5,h1,h6,h24rank
Paid orders (orders)
chainId,tokenAddressordersCount,approvedCount,hasApprovedProfile,hasPaidAds,lastPaymentAtorders[]-{type, status, paymentTimestamp}boosts[]-{id, amount, paymentTimestamp}totalBoostAmount
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode |
string | search |
search, byToken, byPair, discovery, metas, metaPairs, orders |
queries |
array | – | Names, symbols, SOL/USDC, addresses or DexScreener URLs (mode=search) |
tokenAddresses |
string | - | Token addresses or URLs, comma/newline separated (mode=byToken, orders) |
pairAddresses |
array | - | Pair URLs, chain:pairAddress, or bare pair addresses (mode=byPair) |
chainId |
string | all |
Chain scope; required for byToken (unless all), bare pairs, and orders |
customChainId |
string | - | Override for a chain added after this release |
feed |
string | boostedTop |
boostedTop, boostedLatest, profilesLatest, profilesUpdated, takeovers, ads |
metaSlugs |
array | - | Narrative slugs such as ai, dog, cat (mode=metaPairs) |
allPools |
boolean | false |
byToken: every pool of the token instead of the best pair |
minLiquidityUsd / maxLiquidityUsd |
number | - | Keep pairs inside this liquidity range |
minVolume24hUsd / maxVolume24hUsd |
number | - | Keep pairs inside this 24h volume range |
minMarketCapUsd / maxMarketCapUsd |
number | - | Uses market cap, or FDV when market cap is missing |
minFdvUsd / maxFdvUsd |
number | - | Keep pairs inside this FDV range |
minTxns24h / maxTxns24h |
integer | - | Buys plus sells in the last 24 hours |
minPriceChange24h / maxPriceChange24h |
number | - | 24h price change in percent; negatives allowed |
minAgeHours / maxAgeHours |
number | - | Pair age in hours |
dexIds |
array | - | Keep only these DEX protocols |
quoteSymbols |
array | - | Keep only these quote assets |
sortBy |
string | none |
Sort by liquidity, volume, market cap, FDV, change, transactions, age or boosts |
sortOrder |
string | desc |
desc or asc; age ascending means newest first |
onePairPerToken |
boolean | false |
Keep the most liquid pair per token |
includeInfo |
boolean | true |
Add logo, header, websites and socials |
includeMarketData |
boolean | true |
Attach best-pair market data to promotion feeds |
expandChainSearch |
boolean | true |
Widen a chain-filtered search past the 30-pair cap |
chainSearchTokens |
integer | 10 |
Matching tokens whose pools are fetched when widening |
includeFlags |
boolean | true |
Add heuristic risk flags |
newPairHours |
integer | 24 |
Threshold for the new-pair flag |
maxItemsPerQuery |
integer | 30 |
Cap per query, token, feed or meta |
maxItems |
integer | 100 |
Cap for the whole run |
Example: search across all chains
{
"mode": "search",
"queries": ["PEPE", "WIF", "AERO"],
"sortBy": "volume24h",
"maxItems": 50
}
Older saved tasks that use query, pairAddress, minVolumeH24, or the previous mode names (byTokenAddress, byPairAddress, trending, byProfile) keep working.
Example: every pool of a token on Solana
{
"mode": "byToken",
"chainId": "solana",
"tokenAddresses": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"allPools": true,
"minLiquidityUsd": 10000,
"maxItems": 30
}
Example: newest boosted tokens with market data
{
"mode": "discovery",
"feed": "boostedLatest",
"includeMarketData": true,
"minLiquidityUsd": 5000,
"maxItems": 30
}
Example: paid orders for a token
{
"mode": "orders",
"chainId": "solana",
"tokenAddresses": "So11111111111111111111111111111111111111112",
"maxItems": 1
}
Use cases
- Token screening - rank pairs by liquidity, volume, age or price change before deeper research.
- Liquidity mapping - pull every pool of a token to see where it actually trades.
- Launch monitoring - watch newest profiles, boosts, takeovers and ads for emerging projects.
- Narrative research - follow trending metas and compare the pairs inside them.
- Promotion due diligence - check whether a token paid for profiles, ads or boosts.
- Scheduled snapshots - keep a time series of prices, liquidity and volume for a watchlist.
FAQ
Is this affiliated with DexScreener?
No. This is an independent actor that reads DexScreener's public API. Data belongs to DexScreener.
Do I need a wallet, API key or proxy?
No. Every mode works without an account, key or proxy.
Why did I get fewer records than maxItems?
DexScreener caps a search at 30 pairs per query and has no pagination. Pools per token are capped at 30. The promotion feeds return at most 30 rows for boosts, profiles and ads, 11 for takeovers, 18 trending narratives and 49 pairs per narrative feed. Repeated boosts or ads for the same token are collapsed into one record. Use multiple queries, byToken with allPools, or several chains to widen coverage.
How do I get every pool of a token?
Use byToken with a specific chain and allPools: true. A search is capped at 30 pairs across all chains; pool lookup is scoped to the token and chain.
Are the filters applied by DexScreener?
No. The public API has no filter parameters, so filters and sorting run in the actor after the fetch. That also means a filter cannot recover rows beyond the source cap.
Why are info or some flags missing from a pair?
Token images, websites and socials are optional on DexScreener, and some market fields do not exist for brand-new pairs. Missing values are omitted, not sent as null. Flags are heuristics for triage, not verdicts.
What is the difference between the boost and profile feeds?
boostedTop and boostedLatest return tokens with paid boosts (ranked or newest). profilesLatest and profilesUpdated return token profile submissions, and takeovers returns community takeover events.
Does this actor include OHLC candles, holders or top traders?
No. Those are not part of DexScreener's official public API. This actor covers pairs, pools, promotion feeds, narratives and paid orders.
How fresh is the data?
Every run reads DexScreener live, so prices, liquidity, volume and promotions reflect the market at run time.
Is this financial advice?
No. It is market data for research and monitoring; verify token contracts independently.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build yo7tmA6LqmLYqmoGa. Documentation is regenerated from the default published build; private drafts are not included.