Dataspryva

Use DexScreener Token Pair & Boosted Token Scraper with Python

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.

1. Choose the data you need

Review the published README for supported collection modes, examples, and limits. The recipe below uses the current published input definition.

2. Prepare a source-based input

This JSON contains published prefills and required-field defaults. Review every value for your task before running it; it is not a promise of successful collection.

{
  "allPools": false,
  "chainId": "all",
  "expandChainSearch": true,
  "feed": "boostedTop",
  "includeFlags": true,
  "includeInfo": true,
  "includeMarketData": true,
  "maxItems": 1,
  "maxItemsPerQuery": 30,
  "mode": "search",
  "newPairHours": 24,
  "queries": [
    "USDC"
  ],
  "sortBy": "none",
  "sortOrder": "desc"
}

Download input.example.json and save your reviewed copy as input.json.

FieldTypeRequiredDescription
modestringrequiredWhat to collect. Each mode uses its own fields below.
queriesarrayoptionalToken names, symbols, pair text such as SOL/USDC, token addresses, or DexScreener URLs. Multiple queries fan out. (mode=search)
tokenAddressesstringoptionalOne or more token contract addresses or DexScreener token URLs, separated by commas or new lines. (mode=byToken, orders)
pairAddressesarrayoptionalPair URLs, chain:pairAddress, or bare pair addresses. Bare addresses need a specific chain. (mode=byPair)
chainIdstringoptionalBlockchain to read. Required for byToken when not 'all', for bare pair addresses, and for orders. Also filters search and promotion feeds locally.
customChainIdstringoptionalOptional override for a chain added after this release, e.g. 'newchain'. When set it replaces Chain.
feedstringoptionalWhich live promotion feed to read. (mode=discovery)
metaSlugsarrayoptionalNarrative slugs such as ai, dog, cat, or x402. Run mode=metas to discover live slugs. (mode=metaPairs)
allPoolsbooleanoptionalWhen on, byToken returns every pool of each token on the chain. When off, it returns the best pair per token.
minLiquidityUsdnumberoptionalSkip pairs with liquidity below this USD value.
maxLiquidityUsdnumberoptionalSkip pairs with liquidity above this USD value.
minVolume24hUsdnumberoptionalSkip pairs with 24-hour volume below this USD value.
maxVolume24hUsdnumberoptionalSkip pairs with 24-hour volume above this USD value.
minMarketCapUsdnumberoptionalSkip pairs below this market cap. Uses FDV when market cap is missing.
maxMarketCapUsdnumberoptionalSkip pairs above this market cap. Uses FDV when market cap is missing.
minFdvUsdnumberoptionalSkip pairs with a fully diluted valuation below this USD value.
maxFdvUsdnumberoptionalSkip pairs with a fully diluted valuation above this USD value.
minTxns24hintegeroptionalSkip pairs with fewer buys plus sells in the last 24 hours.
maxTxns24hintegeroptionalSkip pairs with more buys plus sells in the last 24 hours.
minPriceChange24hnumberoptionalSkip pairs whose 24-hour price change is below this percent. Negative values allowed.
maxPriceChange24hnumberoptionalSkip pairs whose 24-hour price change is above this percent. Negative values allowed.
minAgeHoursnumberoptionalSkip pairs younger than this many hours.
maxAgeHoursnumberoptionalSkip pairs older than this many hours. Use 24 to keep pairs launched today.
dexIdsarrayoptionalKeep only these DEX protocols, e.g. uniswap, raydium, aerodrome. Empty means all.
quoteSymbolsarrayoptionalKeep only pairs quoted in these assets, e.g. USDC, SOL, WETH. Empty means all.
sortBystringoptionalSort results within each query, token, or feed. Missing values are always last.
sortOrderstringoptionalLargest/oldest first or smallest/newest first. Pair age ascending means newest first.
onePairPerTokenbooleanoptionalKeep only the most liquid pair for each token.
includeInfobooleanoptionalAdd logo, header image, website and social links when DexScreener has them.
includeMarketDatabooleanoptionalFor promotion feeds, attach price, liquidity, volume, market cap and age of each token's best pair.
expandChainSearchbooleanoptionalWhen a chain is selected, also search quote variants and pull the token pools to get past the 30-pair search cap.
chainSearchTokensintegeroptionalHow many matching tokens get their pools fetched when widening a chain search. 0 = quote variants only.
includeFlagsbooleanoptionalAdd heuristic flags such as low liquidity, new pair, sell pressure, or no socials.
newPairHoursintegeroptionalPairs younger than this many hours get a new_pair flag.
maxItemsPerQueryintegeroptionalMaximum records from each query, token, or feed. DexScreener caps search at 30.
maxItemsintegeroptionalHard cap on records for the whole run.

3. Start an Actor run

Set APIFY_TOKEN in your environment. Python 3.10 or newer is sufficient; this recipe uses no third-party packages.

Execution may incur charges. Review current pricing on Apify. The request asks for a 120-second timeout and a charge limit; these settings are subject to Apify’s pricing and do not guarantee an all-inclusive spending cap.

import json
import os
import urllib.request

# Save the schema-derived example as input.json; review and edit it first.
with open("input.json", encoding="utf-8") as stream:
    actor_input = json.load(stream)

token = os.environ["APIFY_TOKEN"]
request = urllib.request.Request(
    "https://api.apify.com/v2/acts/MOa8uJUJGEpUpfB7L/runs?timeout=120&maxTotalChargeUsd=0.50",
    data=json.dumps(actor_input).encode("utf-8"),
    headers={"Authorization": "Bearer " + token, "Content-Type": "application/json"},
    method="POST",
)
# This starts a potentially billable run. Do not automatically retry this POST.
with urllib.request.urlopen(request, timeout=40) as response:
    run = json.load(response)["data"]
print("Run ID:", run["id"])
print("Status:", run["status"])
# Inspect and download results in Apify Console once the run succeeds.

4. Inspect the actual results

Open the run in Apify Console and wait for a successful completion. Use the published output schema to locate results and the dataset schema to understand declared views. Missing or optional record fields must not be treated as guaranteed values.

DexScreener pair, pool, boosted-token, profile, takeover, ad, narrative and paid-order records with price, liquidity, volume, transaction counts, token info and risk flags.

Questions before you run

Which inputs are required?

The published required fields are mode

What does this guide verify?

The fields, prefills, and schema links are rendered from the published build. This is a usage recipe, not a paid live extraction test. Source availability and collection results can vary.

What if the run request times out?

Check Apify Console before retrying. The first request may already have created a run. Do not automatically repeat a run-creation POST.

Generated from source build yo7tmA6LqmLYqmoGa and its README and schemas. Source changes regenerate this guide; no third-party editorial claims are inferred.