Skip to content
Projects

vincentkoc/dexscraper has 120 GitHub stars and 30 forks. Star changes are not measured yet. Last checked 2026-11-12 08:07 UTC. Last push 2026-11-09.

How these counts are measured

Real-time DexScreener scraper python SDK for multi-chain token discovery, filtering, and OHLC/OHLCVT export for metatrader and bots.

Measured star growth

in 24h
Collecting history
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

👻 Dexscraper

Real-time DexScreener market data in one CLI/SDK.

CI PyPI Release License Python

[!IMPORTANT] This project is independent and not affiliated with DexScreener.
Use at your own risk for research purposes only and comply with DexScreener terms.

[!WARNING] The unofficial DexScreener screener WebSocket endpoints under wss://io.dexscreener.com/dex/screener/... now return 404 and are treated as dead. Prefer the official DexScreener API (https://api.dexscreener.com/...) for supported market data access. Streaming via this package's historical io.dexscreener.com WebSocket path is not currently available.

Install Dexscraper

Install with `pip` or `uv`
# pip install
pip install dexscraper

# or uv install
uv pip install dexscraper

# add the Rich terminal UI used by --format rich
pip install "dexscraper[rich]"
Alternative: Development install
# download and install from main branch
git clone https://github.com/vincentkoc/dexscraper.git
cd dexscraper
pip install -e .[dev]
Optional: Cloudflare bypass enhancements (cloudscraper v3)
# Recommended when using --cloudflare-bypass in interactive or --once modes
pip install "cloudscraper @ git+https://github.com/VeNoMouS/[email protected]"
  • dexscraper auto-detects cloudscraper major version at runtime.
  • If <3 is detected, bypass still works in compatibility mode and the CLI prints a one-time warning in non-streaming flows with the install command above.

Why Dexscraper?

DexScreener data is useful, but scraping it consistently is painful: protocol changes, Cloudflare behavior, reconnect logic, and export formatting. Dexscraper gives you one stable interface for real-time extraction, filtering, and export, both from CLI and Python code.

What You Get

  • Real-time streaming of webSocket extraction
  • Multi-chain and multi-DEX filtering
  • Trending/top/gainers/new presets
  • Structured token profiles and OHLC/OHLCVT output for tools like Metatrader
  • Optional Cloudflare bypass flow (with runtime v3 feature detection)
  • Typed Python SDK + CLI

Commands

dexscraper                                                                    # streaming json
dexscraper interactive                                                        # gui mode
dexscraper trending --chain solana --limit 10 --once                          # trending
dexscraper top --chain ethereum --min-liquidity 50000 --once                  # top
dexscraper trending --chain solana --format json --output pairs.json --once   # trending to file
dexscraper --mode trending --chain solana --format rich                       # gui mode

Options

Run dexscraper --help for the full list. Grouped summary:

Area Flags
Output --format/-f {json,ohlc,mt5,ohlcv,ohlcvt,rich}, --once, --limit N (default 20), --output FILE (with --once), --debug/-d
Connection --cloudflare-bypass, --rate-limit/-r N (req/s, default 4.0), --max-retries/-m N (default 5)
Presets --mode {trending,top,gainers,new,transactions,boosted}
Scope --chain NAME (default solana) or --chains a,b, --dex NAME or --dexs a,b, --timeframe/-t {m5,h1,h6,h24} (default h24)
Ranking --rank-by {trendingScoreM5,trendingScoreH1,trendingScoreH6,trendingScoreH24,volume,txns,priceChangeH24,priceChangeH6,priceChangeH1,liquidity,fdv,marketCap}, --order {asc,desc}
Liquidity / value --min-liquidity, --max-liquidity (USD), --min-fdv, --max-fdv, --min-mcap, --max-mcap
Volume (USD) --min-volume, --max-volume (24h), --min-volume-h6, --max-volume-h6, --min-volume-h1, --max-volume-h1
Transactions --min-txns, --max-txns (24h), --min-txns-h6, --max-txns-h6, --min-txns-h1, --max-txns-h1
Price change (%) --min-change, --max-change (24h), --min-change-h6, --max-change-h6, --min-change-h1, --max-change-h1
Pair age (hours) --min-age, --max-age
Promotion --enhanced (enhanced token info only), --min-boosts N, --min-ads N

Chains: solana, ethereum, base, bsc, polygon, arbitrum, optimism, avalanche. DEXs: raydium, pumpfun, pumpswap, orca, jupiter, meteora, uniswap, uniswapv3, sushiswap, pancakeswap, aerodrome, baseswap.

Python SDK

import asyncio
from dexscraper import DexScraper, ScrapingConfig, Filters, Chain, RankBy, Timeframe

config = ScrapingConfig(
    timeframe=Timeframe.H1,
    rank_by=RankBy.VOLUME,
    filters=Filters(chain_ids=[Chain.SOLANA], liquidity_min=50_000),
)

async def main():
    scraper = DexScraper(config=config, use_cloudflare_bypass=True)
    batch = await scraper.extract_token_data()
    for token in batch.get_top_tokens(10):
        if token.price is not None:
            print(token.get_display_name(), token.price)

asyncio.run(main())

Contributing

Contributions are welcome. See CONTRIBUTING.md.

Open an issue for bugs, start a discussion for questions, and star the repo if it helps.


Made with 💙 by Vincent Koc · GPL-3.0

Explore related projects