▶️ Run on Apify → apify.com/logiover/geckoterminal-dex-scanner
GeckoTerminal DEX Scanner scans trending and brand-new DEX liquidity pools across 100+ blockchains and returns clean, structured market data for every pool — price, 24h/6h/1h volume, liquidity, market cap, FDV, price change, and buy/sell transactions. Use it to discover new tokens early, hunt memecoins, build trading signals, and monitor DeFi liquidity. No API key, no login, no rate-limit headaches — just run it and export thousands of pools to JSON, CSV, Excel, or your database.
This repository is the public documentation and client-usage examples for the Actor. The Actor itself runs on the Apify platform — click Run on Apify above to try it free.
- Why this scanner
- What you get
- Use cases
- Quick start (4 methods)
- Input
- Output
- Sample output
- Integrations & automation
- Export formats
- FAQ
- Related actors
- Disclaimer
Finding a new crypto pair the moment it launches — before it trends on Twitter — is the difference between an early entry and buying the top. Centralized token lists lag by hours. This scanner reads the same live DEX pool data that powers on-chain analytics dashboards and hands it to you as a structured dataset you can filter, sort, and pipe anywhere.
- 100+ chains in one run — Ethereum, Solana, BNB Chain, Base, Arbitrum, Polygon, Avalanche, Optimism, Sui, TON, Blast, Mantle, Linea, Sei, Cronos, Fantom/Sonic, Scroll, PulseChain, and more.
- Three scan modes —
trending(hottest pools right now),new(freshly created pools — catch tokens minutes after launch), andtop(highest-liquidity pools per chain). - Full market snapshot per pool — price, FDV, market cap, multi-window volume, multi-window price change, and buy/sell/buyer/seller counts.
- No API key required — nothing to register, no secret to rotate. Run it from the Console, CLI, API, or a scheduled task.
- Built for volume — a single run returns 1000+ pools by default and can be raised higher.
Every pool record includes the following fields (see the full Output table below):
| Group | Fields |
|---|---|
| Identity | poolName, poolAddress, network, chain, dexId, dexName, geckoterminalUrl |
| Tokens | baseTokenSymbol, baseTokenName, baseTokenAddress, quoteTokenSymbol, quoteTokenName, quoteTokenAddress |
| Price & valuation | priceUsd, fdvUsd, marketCapUsd |
| Volume | volumeUsd24h, volumeUsd6h, volumeUsd1h |
| Momentum | priceChangePct5m, priceChangePct1h, priceChangePct6h, priceChangePct24h |
| Transactions | transactions24hBuys, transactions24hSells, transactions24hBuyers, transactions24hSellers |
| Liquidity | reserveUsd, liquidityUsd |
| Freshness | poolCreatedAt, poolAgeHours, fetchedAt |
- New token discovery — run
mode: "new"to surface freshly created pools and catch tokens minutes after they list. - Memecoin hunting — filter by chain (Solana, Base, BSC), minimum liquidity, and 24h buy count to find early momentum plays.
- Trading signals — sort by
priceChangePct1horvolumeUsd24hto build alerts and rank movers programmatically. - Liquidity monitoring — track
liquidityUsd/reserveUsdacross pools to watch for liquidity add/pull events. - DEX analytics — compare volume and transaction flow across Uniswap, Raydium, PancakeSwap, and other DEXes.
- Crypto research & backtesting — export historical snapshots on a schedule to build a time-series dataset of pool metrics.
- Open the Actor: apify.com/logiover/geckoterminal-dex-scanner.
- Click Start with an empty input — it instantly returns 1000+ trending + top pools across ~15 major chains. No configuration needed.
- Browse results in the Overview table, then export to JSON / CSV / Excel from the Storage tab.
Want new pools only? Set mode to new. Want one chain? Set networks to ["solana"].
Install the CLI and run the Actor from your terminal:
npm install -g apify-cli
apify login
# Run with defaults (trending + top pools, ~15 chains, 1000+ results)
apify call logiover/geckoterminal-dex-scanner
# Run with input: new Solana pools with at least $10k liquidity
apify call logiover/geckoterminal-dex-scanner \
--input '{ "mode": "new", "networks": ["solana"], "minLiquidityUsd": 10000, "maxResults": 500 }'See examples/cli.md for more.
Run the Actor and get the dataset items back in a single synchronous HTTP call. Replace <YOUR_APIFY_TOKEN> with your token from Apify → Settings → API & Integrations.
curl -X POST "https://api.apify.com/v2/acts/logiover~geckoterminal-dex-scanner/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"mode": "new",
"networks": ["eth", "base", "solana"],
"minVolumeUsd": 5000,
"sort": "volume24hDesc",
"maxResults": 300
}'The response body is a JSON array of pool records. See examples/api-curl.md.
JavaScript / Node.js
npm install apify-clientimport { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('logiover/geckoterminal-dex-scanner').call({
mode: 'trending',
networks: ['solana', 'base'],
minLiquidityUsd: 20000,
sort: 'volume24hDesc',
maxResults: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Fetched ${items.length} pools`);
console.table(items.slice(0, 10).map((p) => ({
pool: p.poolName,
chain: p.network,
priceUsd: p.priceUsd,
vol24h: p.volumeUsd24h,
liq: p.liquidityUsd,
})));Python
pip install apify-clientfrom apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("logiover/geckoterminal-dex-scanner").call(run_input={
"mode": "new",
"networks": ["eth", "bsc"],
"minLiquidityUsd": 10000,
"maxResults": 500,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(f"Fetched {len(items)} pools")
for p in items[:10]:
print(p["poolName"], p["network"], p["priceUsd"], p["volumeUsd24h"])Full examples: examples/javascript.md · examples/python.md.
Every field is optional — run with an empty input to get 1000+ trending + top pools across ~15 major chains.
| Field | Type | Default | Description |
|---|---|---|---|
mode |
string enum | trending |
Scan mode: trending (hottest pools now), new (freshly created — best for catching new tokens early), or top (highest-liquidity pools per chain). |
networks |
array of string | [] (all major) |
Chains to scan. Empty or ["all"] sweeps ~15 major networks. Options include eth, solana, bsc, base, arbitrum, polygon_pos, avax, optimism, sui-network, ton, blast, mantle, linea, sei-network, cro, ftm, scroll, pulsechain. |
minLiquidityUsd |
integer | — | Only include pools with at least this much liquidity/reserve in USD. Filters out dust pools. |
minVolumeUsd |
integer | — | Only include pools with at least this much 24h trading volume in USD. |
sort |
string enum | "" (source rank) |
Order before applying maxResults: volume24hDesc, liquidityDesc, priceChange24hDesc, transactions24hDesc, or newestFirst. |
maxResults |
integer | 1000 |
Maximum number of pool records to return. Raise it to pull more (bounded by the run time budget and public rate limits). |
proxyConfiguration |
object | { "useApifyProxy": true } |
Apify proxy settings. Defaults to automatic proxy selection. |
Results are stored in the Actor's dataset (export to JSON, CSV, Excel, XML, RSS, or query via API). Each item is one liquidity pool:
| Field | Type | Description |
|---|---|---|
poolAddress |
string | On-chain address of the liquidity pool / pair contract. |
poolName |
string | Human-readable pool name, e.g. PEPE / WETH 0.3%. |
network |
string | GeckoTerminal network ID (eth, solana, bsc, base, …). |
chain |
string | Blockchain the pool lives on (alias of network). |
dexId |
string | Identifier of the DEX hosting the pool. |
dexName |
string | Display name of the DEX (Uniswap V3, Raydium, PancakeSwap, …). |
baseTokenSymbol |
string | Ticker of the base (traded) token. |
baseTokenName |
string | Full name of the base token. |
baseTokenAddress |
string | On-chain contract address of the base token. |
quoteTokenSymbol |
string | Ticker of the quote token (WETH, USDC, SOL, …). |
quoteTokenName |
string | Full name of the quote token. |
quoteTokenAddress |
string | On-chain contract address of the quote token. |
priceUsd |
number | Current price of the base token in USD. |
fdvUsd |
number | Fully diluted valuation of the base token in USD. |
marketCapUsd |
number | Market capitalization of the base token in USD (may be null). |
volumeUsd24h |
number | 24-hour trading volume in USD. |
volumeUsd6h |
number | 6-hour trading volume in USD. |
volumeUsd1h |
number | 1-hour trading volume in USD. |
priceChangePct5m |
number | Price change over the last 5 minutes (%). |
priceChangePct1h |
number | Price change over the last 1 hour (%). |
priceChangePct6h |
number | Price change over the last 6 hours (%). |
priceChangePct24h |
number | Price change over the last 24 hours (%). |
transactions24hBuys |
number | Number of buy transactions in the last 24h. |
transactions24hSells |
number | Number of sell transactions in the last 24h. |
transactions24hBuyers |
number | Unique buyer wallets in the last 24h. |
transactions24hSellers |
number | Unique seller wallets in the last 24h. |
reserveUsd |
number | Total reserves held in the pool, in USD. |
liquidityUsd |
number | Pool liquidity in USD (alias of reserveUsd). |
poolCreatedAt |
string | When the pool was created (ISO 8601). |
poolAgeHours |
number | Age of the pool in hours at scrape time. |
geckoterminalUrl |
string | Link to the pool page on GeckoTerminal. |
fetchedAt |
string | When this row was scraped (ISO 8601). |
{
"poolAddress": "0x11950d141ecb863f01007add7d1a342041227b58",
"poolName": "PEPE / WETH 0.3%",
"network": "eth",
"chain": "eth",
"dexId": "uniswap_v3",
"dexName": "Uniswap V3",
"baseTokenSymbol": "PEPE",
"baseTokenName": "Pepe",
"baseTokenAddress": "0x6982508145454ce325ddbe47a25d4ec3d2311933",
"quoteTokenSymbol": "WETH",
"quoteTokenName": "Wrapped Ether",
"quoteTokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"priceUsd": 0.00001042,
"fdvUsd": 4383000000,
"marketCapUsd": 4383000000,
"volumeUsd24h": 58210344.51,
"volumeUsd6h": 14872011.20,
"volumeUsd1h": 2610455.83,
"priceChangePct5m": 0.42,
"priceChangePct1h": 1.88,
"priceChangePct6h": -3.11,
"priceChangePct24h": 7.64,
"transactions24hBuys": 4821,
"transactions24hSells": 4103,
"transactions24hBuyers": 2915,
"transactions24hSellers": 2477,
"reserveUsd": 18904221.77,
"liquidityUsd": 18904221.77,
"poolCreatedAt": "2023-04-14T18:22:43Z",
"poolAgeHours": 27210.6,
"geckoterminalUrl": "https://www.geckoterminal.com/eth/pools/0x11950d141ecb863f01007add7d1a342041227b58",
"fetchedAt": "2026-07-13T09:15:02Z"
}- Schedule it — use Apify Schedules to run the scanner every few minutes and build a live feed of new pools.
- Webhooks — fire an Apify webhook on run success to push fresh pools to your own endpoint, Slack, Discord, or Telegram bot.
- Make / Zapier / n8n — connect via the Apify integrations to route pool data into 5000+ apps.
- Google Sheets / Airtable — export dataset rows straight into a sheet for a no-code dashboard.
- Your own app — call the Actor from Node.js or Python with
apify-client(see Quick start) and stream results into Postgres, BigQuery, or a vector store.
The dataset can be downloaded or fetched via API in any of these formats:
- JSON / JSONL
- CSV
- Excel (XLSX)
- HTML table
- XML / RSS
Fetch programmatically from the Dataset API, e.g. append &format=csv to a dataset-items request.
Run the scanner with mode: "new". It returns freshly created pools ordered newest-first, so you can catch tokens minutes after they list on a DEX. Combine with minLiquidityUsd to skip empty dust pools, and schedule the run every few minutes for a continuous new-pair feed.
Yes — if you want DexScreener-style new-pool and trending data as a structured, exportable dataset (JSON/CSV) instead of a web UI, this scanner covers the same ground: price, volume, liquidity, market cap, and buy/sell activity across 100+ chains. It's built for automation and bulk export rather than manual browsing. See also our companion DexScreener Boosted Tokens Scraper.
Yes. Leave networks empty (or set ["all"]) and the scanner sweeps ~15 major networks — Ethereum, Solana, BNB Chain, Base, Arbitrum, Polygon, Avalanche, Optimism, Sui, TON, and more — in a single run, returning 1000+ pools.
It's an easy, no-setup way to get GeckoTerminal-style DEX pool data as a ready-to-use dataset. You don't need to register for or manage any GeckoTerminal API keys, handle pagination, or normalize responses — the Actor returns clean, flat records you can export or query directly.
No. There's no API key and no login required for the underlying data. You only need a free Apify account to run the Actor on the platform; the scan itself needs no third-party credentials.
100+ chains, including Ethereum, Solana, BNB Chain (BSC), Base, Arbitrum, Polygon, Avalanche, Optimism, Sui, TON, Blast, Mantle, Linea, Sei, Cronos, Fantom/Sonic, Scroll, and PulseChain. Pass network IDs in the networks input, or leave it empty to sweep all major chains.
By default 1000+ pools. Raise maxResults to pull more — the practical ceiling is bounded by the run time budget and the public data source's rate limits.
Set minLiquidityUsd and/or minVolumeUsd to your thresholds, then set sort (e.g. liquidityDesc or volume24hDesc) to rank the results before maxResults is applied.
Absolutely. Filter by chain and minimum liquidity, sort by priceChangePct1h or transactions24hDesc, and schedule frequent runs. Pipe the output into your alerting bot via webhooks to get notified about early momentum pools.
You run it on your own Apify account, so cost depends on your Apify plan and usage. Apify offers free monthly usage credits — click Run on Apify and try it with an empty input at no upfront cost.
- CoinGecko Scraper — coin prices, market caps, and market data across thousands of tokens.
- DexScreener Boosted Tokens Scraper — trending and boosted tokens from DexScreener with live market data.
This repository contains documentation and client-usage examples only. It does not include the Actor's source code or any scraping implementation. The Actor runs on the Apify platform.
Data is provided for informational and research purposes only and is not financial advice. Always do your own research before trading. All product names, logos, and brands are property of their respective owners and are used for identification only; this project is not affiliated with or endorsed by GeckoTerminal, DexScreener, or CoinGecko.