DEX Token Price & Liquidity Monitor
Pricing
from $3.30 / 1,000 pool records
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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 pushyour 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
allPoolsPerTokenon 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
minLiquidityUsdto throw the thin pools away. - Listing and launch monitoring —
pairCreatedAtplus 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
| Field | Type | Default | Notes |
|---|---|---|---|
tokens | string[] | [] | chain:address, e.g. bsc:0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c. |
allPoolsPerToken | boolean | false | Off → one row per token (its deepest pool). On → every pool that token trades in. |
pairs | string[] | [] | chain:pairAddress. The most precise and cheapest input if you already know the pool. |
searchTerms | string[] | [] | Free-text pool search, e.g. WBNB USDT. |
resultsPerSearchTerm | integer | 20 | Cap per search term (1–100). Ignored for token/pair lookups. |
minLiquidityUsd | integer | 0 | Drop pools thinner than this. A price off an empty pool is not a price. |
changesOnly | boolean | false | Emit a row only when a watched field differs from the previous run. |
watchFields | string[] | ["priceUsd","liquidityUsd","volume24h"] | Any output field is valid. |
minChangePct | integer | 0 | Noise gate for numeric watched fields. 0 reports every movement. |
maxConcurrency | integer | 5 | Deliberately 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.