Pools
Browse, filter, and inspect on-chain liquidity pools across all major Solana DEXes.
All token parameters accept both symbols (SOL, BTC) and mint addresses.
Free Endpoints (no auth)
Anonymous callers are rate-limited and may see short-lived cached responses. API key holders get higher limits.
GET /v1/pools
Paginated pool list with optional filters.
Query parameters:
| Param | Description | Example |
|---|---|---|
token | Pools containing this token | ?token=SOL |
tokens | Pools containing ANY of these tokens | ?tokens=SOL,USDC,BTC |
pair | Pools for a specific pair | ?pair=SOL,USDC |
dex | Filter by DEX | ?dex=orca-whirlpool |
limit | Results per page (max 200) | ?limit=50 |
offset | Pagination offset | ?offset=100 |
Response:
{
"pools": [
{
"address": "HJPjoWUrhoZzkNfRpHuieeFk9AnbVjTk9Gc5SJRqsQTK",
"dex": "orca-whirlpool",
"mintA": "So11111111111111111111111111111111111111112",
"mintB": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"symbolA": "SOL",
"symbolB": "USDC",
"decimalsA": 9,
"decimalsB": 6,
"feeBps": 1,
"price": 80.31,
"baseSymbol": "SOL",
"quoteSymbol": "USDC",
"reserveA": "1234567890",
"reserveB": "98765432100",
"sqrtPrice": "1234567890123456789",
"tickCurrent": -32768,
"cacheAgeMs": 150,
"tvlUsd": 12450000.42,
"volume24hUsd": 8740000.18
}
],
"count": 50,
"total": 284,
"offset": 0,
"limit": 50
}Pool Object Fields:
| Field | Type | Description |
|---|---|---|
address | string | Base58 pool account address |
dex | string | DEX identifier (orca-whirlpool, raydium-clmm, meteora-dlmm, etc.) |
mintA, mintB | string | Base58 mint addresses for the two pool sides |
symbolA, symbolB | string | null | Tracked symbols (null for unrecognised mints) |
decimalsA, decimalsB | number | Token decimals |
feeBps | number | Pool fee in basis points |
price | number | null | Implied price (baseSymbol per quoteSymbol) |
baseSymbol, quoteSymbol | string | null | Normalised base/quote pair (when one side is a stablecoin) |
reserveA, reserveB | string | null | Token reserves in raw units (CLMM pools may be null) |
sqrtPrice | string | null | CLMM-only: Q64.64 sqrt price |
tickCurrent | number | CLMM-only: current tick |
cacheAgeMs | number | Milliseconds since the last on-chain state update for this pool (-1 if never observed) |
tvlUsd | number | null | TVL in USD (enriched from GeckoTerminal, may be null) |
volume24hUsd | number | null | 24h trading volume in USD (enriched from GeckoTerminal, may be null) |
GET /v1/pools/:token
All pools for a token.
GET /v1/pools/SOL
GET /v1/pools/So11111111111111111111111111111111111111112GET /v1/pools/:tokenA/:tokenB
Pools for a specific pair.
GET /v1/pools/SOL/USDC
GET /v1/pools/JUP/SOLAdditional Endpoints
GET /v1/pool/:address
Decoded single pool state with full details.
GET /v1/pool/HJPjoWUrhoZzkNfRpHuieeFk9AnbVjTk9Gc5SJRqsQTKReturns reserves, sqrtPrice, tick, implied price, fee, DEX type, cache age.
GET /v1/pools/new
Recently discovered pools. Snapshot endpoint backed by the recent discovery ring buffer, newest first.
This endpoint is free and does not require an API key. API keys still bypass the anonymous cache and get higher limits.
Query parameters:
limit— Max results (default 50, max 200)
Response:
{
"pools": [
{
"address": "...",
"dex": "raydium-cpmm",
"symbolA": "NEWTOKEN",
"symbolB": "SOL",
"discoveredAt": 1712000000000,
...
}
],
"count": 50
}The API keeps the most recent 500 discovered pools in memory and returns the newest entries first.
Starter+ only: GET /v1/stream/pools
The realtime new-pool SSE stream is a paid surface and requires starter or pro tier.
GET /v1/pools/seed
Bulk pool export for seeding your own pool database. Higher page size (500 vs 200).
Same filters as /v1/pools: ?token, ?tokens, ?pair, ?dex, ?limit, ?offset
GET /v1/pools/dead
Coming soon — Dedpool: dead/suspicious pool detection and safety scoring.
Rate Limits
See Plans & Rate Limits for the authoritative tier table.
