Skip to main content
GET
GET /v1/screener/pools · 1 credit
One row per pool. Live: the screener-pools stream channel keeps the same rows up to date: the full list on subscribe, then every row that enters, changes or leaves (restricted access: enabled per API key on request).
The screener with one row per pool: each row is a market (chain + pool) with its identity, price, liquidity, market cap and windowed stats (5m, 1h, 6h, 24h). It is the list of GET /v1/screener under its explicit name: same parameters, sorts, filter tree, rows, meta and cursor, and that page is the reference for each of them. A cursor from one path works on the other.

Authorizations

Authorization
string
header
required

Your raw API key (not needed on the demo server).

Query Parameters

chains
string
required

CSV of public chain ids (1-8). sortBy=createdAt serves ONE chain per call (indexed walk) - fan out per chain.

sortBy
string
default:trending

trending (default), volume (alias top), marketCap, createdAt, or any numeric field: liquidityUsd, marketCapUsd, priceUsd, ageSeconds, priceChangePct, volumeUsd, feesUsd, txns, buys, sells, windows.<window>.<field>. trending is the relevance ranking: 24h activity weighted by real participation, so wash-traded markets rank below organically traded ones with the same figures. volume is strictly ordered by the gross USD volume of timeframe. A bare counter (volumeUsd, feesUsd, buys, sells, txns, priceChangePct) reads the timeframe. Every sort but createdAt ranks within each chain's own universe (top 500 by 24h volume plus top 100 by 1h volume, named in meta.universe). createdAt lists the newest markets of one chain and takes no filter: to rank the screener by age, use ageSeconds with sortOrder=asc.

sortOrder
string

desc (default) or asc. A market whose sort value is unknown is served last in both orders.

timeframe
string

Window the view works on: 5m, 1h, 6h or 24h (default 24h). Sets the window behind sortBy=volume and behind the bare counters (volumeUsd, feesUsd, buys, sells, txns, priceChangePct) in sortBy, filters and the flat filters.

window
string

Previous name of timeframe, on sortBy=volume only: 5m, 1h, 6h or 24h. Give one or the other, never both.

filters
string

Filter tree as URL-encoded JSON: {"<field>":{"<operator>":<value>}}, combined with AND, OR and NOT at any depth. Same grammar and field names as the Screener Stream. Operators: equals, not, in (every field), gt, gte, lt, lte (numbers), contains, startsWith, endsWith (text). Fields: chain, address (the token), name, symbol, priceNative, priceUsd, marketCapUsd, liquidityUsd, createdAt, ageSeconds, pool.address, pool.type, pool.quoteAddress, pool.quoteSymbol, the bare counters over the timeframe and windows.<5m|1h|6h|24h>.<volumeUsd|feesUsd|buys|sells|txns|priceChangePct>. Applied on the whole universe before the page is cut.

windows
string

CSV of the windows each row carries in stats, among 5m, 1h, 6h, 24h. Default: all four.

ageMin
number

Keep the markets created at least this many minutes ago.

Required range: x >= 0
ageMax
number

Keep the markets created at most this many minutes ago.

Required range: x >= 0
liquidityMin
number

Keep the markets with liquidityUsd at or above this (USD).

Required range: x >= 0
liquidityMax
number

Keep the markets with liquidityUsd at or below this (USD).

Required range: x >= 0
marketCapMin
number

Keep the markets with marketCapUsd at or above this (USD).

Required range: x >= 0
marketCapMax
number

Keep the markets with marketCapUsd at or below this (USD).

Required range: x >= 0
volumeMin
number

Keep the markets with a USD volume over the timeframe at or above this.

Required range: x >= 0
volumeMax
number

Keep the markets with a USD volume over the timeframe at or below this.

Required range: x >= 0
txnsMin
number

Keep the markets with at least this many transactions over the timeframe.

Required range: x >= 0
txnsMax
number

Keep the markets with at most this many transactions over the timeframe.

Required range: x >= 0
feesMin
number

Keep the markets whose transaction fees over the timeframe are at or above this (USD).

Required range: x >= 0
feesMax
number

Keep the markets whose transaction fees over the timeframe are at or below this (USD).

Required range: x >= 0
limit
integer
default:30

Rows per page (default 30, max 100).

Required range: 1 <= x <= 100
cursor
string

Opaque cursor from meta.nextCursor. Pins the computation each page was cut from, so a walk started within the last minute never skips or repeats a market. A cursor belongs to its view: same sortBy, sortOrder, timeframe and filters.

Response

200

Standard { data, meta } envelope.