DEX Token Price & Liquidity Monitor avatar

DEX Token Price & Liquidity Monitor

Pricing

from $3.30 / 1,000 pool records

Go to Apify Store
DEX Token Price & Liquidity Monitor

DEX Token Price & Liquidity Monitor

Live on-chain pool prices, liquidity and 24h volume for any token or pair across every chain Dexscreener indexes, with built-in change detection for scheduled monitoring.

Pricing

from $3.30 / 1,000 pool records

Rating

0.0

(0)

Developer

angel nguyen

angel nguyen

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Run it without installing anything: apify.com/praise-most-high/dex-token-price-monitor — this repository is the MIT-licensed source of that Actor. Clone it, apify push your own copy, or just run the hosted one. No API key is required by the upstream this Actor reads.

DEX Token Price & Liquidity Monitor

Unofficial. This Actor is not affiliated with, endorsed by, or sponsored by Dexscreener. "Dexscreener" is used here only to name the public API this Actor reads. It is an independent tool that calls Dexscreener's own documented public endpoints.

Look up the live on-chain price of any token or pool — across every chain Dexscreener indexes — and diff this run against the last one, so you see what moved, not just what is.

Every row carries the numbers that actually change: priceUsd, liquidityUsd, volume24h, priceChange24hPct, fdv, marketCap, and the 24h buy/sell split. Point it at a watchlist, schedule it hourly, and in changesOnly mode it emits only the pools whose watched fields moved.

What it is good for

  • Price & liquidity watch — get a row the moment a pool's price moves more than n%, or its liquidity drains.
  • Cross-DEX comparison — turn allPoolsPerToken on and one token returns every pool it trades in, on every DEX on that chain, priced side by side.
  • Treasury / portfolio marking — mark a bag to a real, tradeable pool price rather than to a thin quote, using minLiquidityUsd to throw the thin pools away.
  • Listing and launch monitoringpairCreatedAt plus a scheduled run tells you when a new pool appears for a token you follow.

What it is not

It does not scrape the Dexscreener website, it does not solve a CAPTCHA, and it does not use a headless browser or a proxy pool. It calls api.dexscreener.com, the documented public API host — which is why it is fast and stable. It returns market data only: no wallets, no traders, no holders, no personal data of any kind.

Data freshness. Straight from the API on every run; nothing is cached between runs. Measured 2026-08-22: the WBNB/USDT pool on PancakeSwap moved priceUsd 693.79 → 694.57 and changed its liquidity and 24h volume inside 20 seconds. These fields genuinely move — the change event is not billing for a diff that never fires.

Input

FieldTypeDefaultNotes
tokensstring[][]chain:address, e.g. bsc:0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c.
allPoolsPerTokenbooleanfalseOff → one row per token (its deepest pool). On → every pool that token trades in.
pairsstring[][]chain:pairAddress. The most precise and cheapest input if you already know the pool.
searchTermsstring[][]Free-text pool search, e.g. WBNB USDT.
resultsPerSearchTerminteger20Cap per search term (1–100). Ignored for token/pair lookups.
minLiquidityUsdinteger0Drop pools thinner than this. A price off an empty pool is not a price.
changesOnlybooleanfalseEmit a row only when a watched field differs from the previous run.
watchFieldsstring[]["priceUsd","liquidityUsd","volume24h"]Any output field is valid.
minChangePctinteger0Noise gate for numeric watched fields. 0 reports every movement.
maxConcurrencyinteger5Deliberately conservative — see Responsible use.

changesOnly keeps its previous snapshot in the Actor's own named key-value store, keyed by chainId + pairAddress. The first run has no baseline, so it emits everything and says so in the log — it is not silently pretending nothing changed.

At least one of tokens, pairs, searchTerms must be non-empty; the Actor exits with a clear message rather than a silent empty dataset if all three are blank.

Chain IDs

Dexscreener's own, lower-case: ethereum, bsc, solana, base, polygon, arbitrum, avalanche, optimism, and the rest of its coverage. A chain:address that Dexscreener does not index simply returns no pools — the Actor logs it rather than inventing a row.

Output

One dataset item per pool per run:

chainId, dexId, pairAddress, labels[], pair,
baseTokenAddress, baseTokenName, baseTokenSymbol,
quoteTokenAddress, quoteTokenName, quoteTokenSymbol,
priceUsd, priceNative,
liquidityUsd, liquidityBase, liquidityQuote,
fdv, marketCap,
volume24h, volume6h, volume1h,
priceChange24hPct, priceChange6hPct, priceChange1hPct,
txns24hBuys, txns24hSells,
pairCreatedAt, pairUrl, scrapedAt

Plus, when changesOnly is on: changedFields[], previous{}, changePct{}, previousSeenAt.

One honest wrinkle in the upstream, passed through rather than hidden: for some pools Dexscreener returns a raw factory contract address in dexId instead of a DEX name (e.g. 0x97bCD9BB… rather than pancakeswap). The Actor reports what the API returns; it does not guess a name.

Pricing, in plain words

Pay-per-event. actor-start is charged once per run at the platform minimum. pair-record is charged per row emitted. price-change is charged in addition to pair-record for a row that carries a diff — a change row is a strict superset of a pool record, and it is priced as one extra event, not as a hidden multiplier. A run that finds nothing charges the start event and nothing else.

Every price is published on the Actor's Store page. Free-plan pricing is the list price; Apify's own subscription-tier discounts apply on top of it.

Responsible use

Public data only. The Actor reads api.dexscreener.com, a documented public API. No account, no API key, no session cookie, no CAPTCHA solving, no headless browser, no proxy rotation.

Never the website. dexscreener.com itself sits behind a Cloudflare managed challenge — even its robots.txt is challenged. This Actor never touches the website and never attempts to pass a challenge. Only the open API host is used. If that host starts refusing, the Actor backs off and says so rather than routing around.

No personal data. Pools, tokens and prices. No wallet addresses of persons, no trader rankings, no holder lists, no identities.

Rate limits, as published. docs.dexscreener.com/api/reference (read 2026-08-22) publishes 300 requests/minute for every endpoint this Actor uses — /latest/dex/search, /latest/dex/pairs/{chain}/{pair}, /tokens/v1/{chain}/{addresses} and /token-pairs/v1/{chain}/{address}. maxConcurrency defaults to 5, token lookups are batched up to 30 addresses per request to use fewer of them, and the Actor backs off 30s on a 429 rather than retrying hard.

Your obligations as a user. On-chain prices are facts, but Dexscreener's aggregation is Dexscreener's work — attribute it if you republish. This is a research and monitoring tool, not a redistribution pipeline, and nothing it returns is financial advice.