← Back to list
💰

dexscreener-api Checked

Free, no-auth multi-chain DEX pair data — prices, volume, liquidity, transactions, and token prof…
💰 Finance & Trading skills By agiprolabs Version v1.0.0 Added 2026-09-20 Updated 2026-09-20 Source ↗ Part of Finance & Trading →
9.0Overall rating
2Views
19Downloads
366Stars

Installation

🤖 Install via AI

Copy the prompt below and send it to your AI assistant (e.g. Claude Code) — it will follow the instructions and install automatically.

Install the "dexscreener-api" skill by following the instructions at https://skill123.me/install/dexscreener-api.
⌨️ Command line install

Run in your terminal — downloads and installs to ~/.claude/skills/.

curl -fsSL https://skill123.me/install/dexscreener-api.sh | bash
📦 Download ZIP

Download the zip and extract it into your skills directory (e.g. ~/.claude/skills/), then restart your session.

⬇ Download v1.0.0 · 13 KB
📊 Static rating
9.0/10
Trigger
8.0
Structure
9.3
Workflow
8.0
Content
10.0
Engineering
10.0
Security
10.0

Six-dimension rubric with reviewer rationale.

View scorecard ↓
🛡 Dynamic test
—

Not live-tested yet — this skill is rated on static analysis only.

About this skill

Free, no-auth multi-chain DEX pair data — prices, volume, liquidity, transactions, and token profiles

DexScreener API — Free Multi-Chain DEX Data

DexScreener provides DEX pair data across 80+ chains with **no API key required**. Prices, volume, liquidity, transaction counts, and token profiles — all free. Best for quick lookups, cross-chain comparison, and lightweight monitoring.

Documentation

Free, no-auth multi-chain DEX pair data — prices, volume, liquidity, transactions, and token profiles

DexScreener API — Free Multi-Chain DEX Data

DexScreener provides DEX pair data across 80+ chains with **no API key required**. Prices, volume, liquidity, transaction counts, and token profiles — all free. Best for quick lookups, cross-chain comparison, and lightweight monitoring.

Quick Start

No authentication needed. Just make requests:


import httpx

# Search for a token
resp = httpx.get("https://api.dexscreener.com/latest/dex/search", params={"q": "BONK"})
pairs = resp.json()["pairs"]
for p in pairs[:3]:
    print(f"{p['baseToken']['symbol']}/{p['quoteToken']['symbol']} on {p['chainId']}: ${p['priceUsd']}")

# Or with curl
curl "https://api.dexscreener.com/latest/dex/search?q=BONK"

Base URL

https://api.dexscreener.com

No API key, no headers required. Rate limits: ~300 req/min for DEX data endpoints, 60 req/min for profile/boost endpoints.

Core Endpoints

### Search Pairs


# Search by token name, symbol, or address (returns ~30 pairs across all chains)
GET /latest/dex/search?q=BONK
GET /latest/dex/search?q=So11111111111111111111111111111111111111112

### Get Pairs by Chain + Pair Address


# Single pair
GET /latest/dex/pairs/solana/PAIR_ADDRESS

# Multiple pairs (comma-separated)
GET /latest/dex/pairs/solana/PAIR1,PAIR2,PAIR3

### Get Pairs by Token Address


# All pairs containing this token across all chains
GET /latest/dex/tokens/TOKEN_MINT_ADDRESS

# Chain-specific (v1)
GET /token-pairs/v1/solana/TOKEN_MINT

# Multiple tokens on one chain (v1)
GET /tokens/v1/solana/TOKEN1,TOKEN2,TOKEN3

### Token Profiles & Boosts


# Latest token profiles (60 req/min)
GET /token-profiles/latest/v1

# Latest boosted tokens
GET /token-boosts/latest/v1

# Top boosted tokens (sorted by total boost amount)
GET /token-boosts/top/v1

# Token orders (ads, profile claims)
GET /orders/v1/solana/TOKEN_ADDRESS

# Community takeovers
GET /community-takeovers/latest/v1

Pair Response Schema

View full documentation

{
  "chainId": "solana",
  "dexId": "raydium",
  "url": "https://dexscreener.com/solana/PAIR_ADDR",
  "pairAddress": "3nMFwZX...",
  "labels": ["CLMM"],
  "baseToken": { "address": "So11...", "name": "Wrapped SOL", "symbol": "SOL" },
  "quoteToken": { "address": "EPjF...", "name": "USD Coin", "symbol": "USDC" },
  "priceNative": "86.08",
  "priceUsd": "86.08",
  "txns": {
    "m5":  { "buys": 25, "sells": 18 },
    "h1":  { "buys": 916, "sells": 1282 },
    "h6":  { "buys": 11309, "sells": 12661 },
    "h24": { "buys": 27974, "sells": 31475 }
  },
  "volume": { "m5": 41680, "h1": 6773038, "h6": 71628073, "h24": 167164493 },
  "priceChange": { "m5": -0.01, "h1": -0.36, "h6": 0.82, "h24": 0.25 },
  "liquidity": { "usd": 28168478, "base": 232348, "quote": 8167805 },
  "fdv": 8171740,
  "marketCap": 8171740,
  "pairCreatedAt": 1688106058000,
  "info": {
    "imageUrl": "https://cdn.dexscreener.com/...",
    "websites": [{ "url": "https://...", "label": "Website" }],
    "socials": [{ "url": "https://x.com/...", "type": "twitter" }]
  }
}

**Key notes:**

  • priceNative and priceUsd are **strings** (preserves precision)
  • pairCreatedAt is **milliseconds** (divide by 1000 for unix timestamp)
  • labels: "CLMM" (concentrated), "DLMM" (dynamic), "wp" (whirlpool)
  • info is optional — only present if the token profile has been claimed
  • fdv/marketCap may be absent for tokens without supply data

Common Patterns

### Quick Token Lookup


def lookup_token(address: str) -> dict | None:
    """Get the best pair for a token by liquidity."""
    resp = httpx.get(f"https://api.dexscreener.com/latest/dex/tokens/{address}")
    pairs = resp.json().get("pairs", [])
    if not pairs:
        return None
    # Sort by liquidity (highest first)
    pairs.sort(key=lambda p: p.get("liquidity", {}).get("usd", 0), reverse=True)
    return pairs[0]

### Cross-Chain Price Check


def find_best_price(symbol: str) -> list[dict]:
    """Find a token across all chains and compare prices."""
    resp = httpx.get("https://api.dexscreener.com/latest/dex/search", params={"q": symbol})
    pairs = resp.json().get("pairs", [])
    results = []
    for p in pairs:
        if p["baseToken"]["symbol"].upper() == symbol.upper():
            results.append({
                "chain": p["chainId"],
                "dex": p["dexId"],
                "price": float(p.get("priceUsd", 0)),
                "liquidity": p.get("liquidity", {}).get("usd", 0),
                "volume_24h": p.get("volume", {}).get("h24", 0),
            })
    return sorted(results, key=lambda x: x["liquidity"], reverse=True)

### Monitor New Tokens via Boosts


def get_newly_boosted() -> list[dict]:
    """Get tokens that were recently boosted (paid promotion)."""
    resp = httpx.get("https://api.dexscreener.com/token-boosts/latest/v1")
    return [
        {
            "chain": t["chainId"],
            "address": t["tokenAddress"],
            "boost_amount": t.get("amount", 0),
            "total_boost": t.get("totalAmount", 0),
            "description": t.get("description", ""),
        }
        for t in resp.json()
    ]

### Buy/Sell Ratio Analysis


def analyze_pressure(pair: dict) -> dict:
    """Analyze buy/sell pressure from transaction counts."""
    txns = pair.get("txns", {})
    result = {}
    for tf in ["m5", "h1", "h6", "h24"]:
        data = txns.get(tf, {})
        buys = data.get("buys", 0)
        sells = data.get("sells", 0)
        total = buys + sells
        result[tf] = {
            "buys": buys, "sells": sells, "total": total,
            "buy_ratio": buys / total if total > 0 else 0.5,
        }
    return result

Supported Chains

Major chains: solana, ethereum, base, arbitrum, bsc, polygon, avalanche, optimism, zksync, scroll, linea, tron, near, aptos, ton, sui, hyperliquid

80+ chains total. The chainId matches the URL path on dexscreener.com.

Limitations

  • **No OHLCV/candle data** — Use Birdeye or SolanaTracker for historical candles
  • **No pagination** — Search returns ~30 results max
  • **No wallet/trader data** — Use Birdeye or Helius for wallet analysis
  • **No token security data** — Use Birdeye token_security endpoint
  • **Snapshot data only** — Current state, not historical time series
  • **No WebSocket** — Polling only

When to Use DexScreener vs Alternatives

| Need | Use |

|------|-----|

| Quick free token lookup | **DexScreener** |

| Cross-chain comparison | **DexScreener** |

| Historical OHLCV for backtesting | Birdeye or SolanaTracker |

| Wallet/trader analysis | Helius or SolanaTracker |

| Real-time streaming | Yellowstone gRPC or Birdeye WebSocket |

| Token security check | Birdeye or SolanaTracker risk score |

Files

### References

  • references/endpoints.md — Complete endpoint listing with response schemas
  • references/error_handling.md — Rate limits, error codes, best practices

### Scripts

  • scripts/token_lookup.py — Look up any token across all chains with liquidity analysis
  • scripts/boost_monitor.py — Monitor newly boosted/promoted tokens

Score breakdown

Trigger
8.0
Description states What (free no-auth multi-chain DEX pair data), When (quick lookups, cross-chain comparison, lightweight monitoring) and the body carries both a Limitations section and a when-to-use-vs-alternatives table - the best boundary definition in this batch so far.
Structure
9.3
234-line SKILL.md, two references (endpoints, error handling), two scripts; Files section maps roles; no redundant files.
Workflow
8.0
Quick start with copy-paste Python/curl, documented response schema with key gotchas, reusable patterns (best pair by liquidity, buy/sell pressure), and alternative-routing for unsupported needs; guards via error-handling reference and timeouts; no explicit verification loop.
Content
10.0
Imperative, concrete endpoints and code; schema notes are exactly the type details an agent needs; zero filler.
Engineering
10.0
Valid frontmatter; scripts have shebangs, dependency docs, timeouts and exception handling; all referenced paths exist.
Security
10.0
6.0 manifest: data reads none beyond CLI args; side effects none; network only to official api.dexscreener.com; credentials none (API is keyless); persistence none. Capabilities match declared scope. No injection, no destructive commands.
Clean tool-wrapper for the free no-auth DexScreener API: endpoint surface, full pair-response schema with type gotchas (string prices, ms timestamps), common analysis patterns, explicit Limitations section, and a when-to-use-vs-alternatives routing table (Birdeye/Helius/SolanaTracker/Yellowstone). Scripts call only api.dexscreener.com with timeout and exception handling. 6.0 manifest: network destinations api.dexscreener.com only (official, matches declared purpose); no credentials, no file writes, no persistence; capabilities match declared scope. Read-only market-data skill, no execution, no advice risk.