> ## Documentation Index
> Fetch the complete documentation index at: https://docs.serialized.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Screener Pools

> The screener with one row per pool, under its explicit name: the same list, parameters, rows and cursor as GET /v1/screener.

`GET /v1/screener/pools` · **1 credit**

<Tip>One row per pool. **Live**: the [`screener-pools`](/streams/screener-pools-stream) 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).</Tip>

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`](/endpoints/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.

<RequestExample>
  ```bash cURL (trending, two chains) theme={null}
  curl 'https://api.serialized.xyz/v1/screener/pools?chains=evm:8453,solana&limit=2' \
    -H 'Authorization: YOUR_API_KEY'
  ```

  ```bash cURL (most traded over the last hour on Monad) theme={null}
  curl 'https://api.serialized.xyz/v1/screener/pools?chains=evm:143&sortBy=volume&timeframe=1h&limit=20' \
    -H 'Authorization: YOUR_API_KEY'
  ```
</RequestExample>


## OpenAPI

````yaml openapi.json GET /v1/screener/pools
openapi: 3.1.0
info:
  title: Serialized Data API
  description: >-
    On-chain data for trading apps - tokens, candles, token filters. Built on
    our own indexers. 18 EVM chains + Solana, live.
  version: 0.1.0
servers:
  - url: https://demo.serialized.xyz
    description: 'Demo: no key needed, read endpoints, rate-limited per IP'
  - url: https://api.serialized.xyz
    description: 'Production: your API key in the Authorization header'
security:
  - apiKey: []
  - {}
paths:
  /v1/screener/pools:
    get:
      summary: Screener Pools
      description: >-
        The screener with one row per pool, under its explicit name: the same
        list, parameters, rows, `meta` and cursor as `GET /v1/screener`.
      operationId: screener-pools
      parameters:
        - schema:
            type: string
            x-default: evm:8453,solana
          in: query
          name: chains
          required: true
          description: >-
            CSV of public chain ids (1-8). sortBy=createdAt serves ONE chain per
            call (indexed walk) - fan out per chain.
          example: evm:8453,solana
        - schema:
            default: trending
            type: string
            x-default: trending
          in: query
          name: sortBy
          required: false
          description: >-
            `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`.
          example: trending
        - schema:
            type: string
            x-default: desc
          in: query
          name: sortOrder
          required: false
          description: >-
            `desc` (default) or `asc`. A market whose sort value is unknown is
            served last in both orders.
          example: desc
        - schema:
            type: string
            x-default: 1h
          in: query
          name: timeframe
          required: false
          description: >-
            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.
          example: 1h
        - schema:
            type: string
            x-default: 1h
          in: query
          name: window
          required: false
          description: >-
            Previous name of `timeframe`, on `sortBy=volume` only: `5m`, `1h`,
            `6h` or `24h`. Give one or the other, never both.
          example: 1h
        - schema:
            type: string
            x-default: '{"marketCapUsd":{"gt":5000},"windows.5m.volumeUsd":{"gt":2000}}'
          in: query
          name: filters
          required: false
          description: >-
            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.
          example: '{"marketCapUsd":{"gt":5000},"windows.5m.volumeUsd":{"gt":2000}}'
        - schema:
            type: string
            x-default: 5m,1h
          in: query
          name: windows
          required: false
          description: >-
            CSV of the windows each row carries in `stats`, among `5m`, `1h`,
            `6h`, `24h`. Default: all four.
          example: 5m,1h
        - schema:
            minimum: 0
            type: number
          in: query
          name: ageMin
          required: false
          description: Keep the markets created at least this many minutes ago.
        - schema:
            minimum: 0
            type: number
            x-default: 480
          in: query
          name: ageMax
          required: false
          description: Keep the markets created at most this many minutes ago.
          example: 480
        - schema:
            minimum: 0
            type: number
            x-default: 10000
          in: query
          name: liquidityMin
          required: false
          description: Keep the markets with `liquidityUsd` at or above this (USD).
          example: 10000
        - schema:
            minimum: 0
            type: number
          in: query
          name: liquidityMax
          required: false
          description: Keep the markets with `liquidityUsd` at or below this (USD).
        - schema:
            minimum: 0
            type: number
            x-default: 5000
          in: query
          name: marketCapMin
          required: false
          description: Keep the markets with `marketCapUsd` at or above this (USD).
          example: 5000
        - schema:
            minimum: 0
            type: number
          in: query
          name: marketCapMax
          required: false
          description: Keep the markets with `marketCapUsd` at or below this (USD).
        - schema:
            minimum: 0
            type: number
            x-default: 2000
          in: query
          name: volumeMin
          required: false
          description: >-
            Keep the markets with a USD volume over the timeframe at or above
            this.
          example: 2000
        - schema:
            minimum: 0
            type: number
          in: query
          name: volumeMax
          required: false
          description: >-
            Keep the markets with a USD volume over the timeframe at or below
            this.
        - schema:
            minimum: 0
            type: number
          in: query
          name: txnsMin
          required: false
          description: >-
            Keep the markets with at least this many transactions over the
            timeframe.
        - schema:
            minimum: 0
            type: number
          in: query
          name: txnsMax
          required: false
          description: >-
            Keep the markets with at most this many transactions over the
            timeframe.
        - schema:
            minimum: 0
            type: number
          in: query
          name: feesMin
          required: false
          description: >-
            Keep the markets whose transaction fees over the timeframe are at or
            above this (USD).
        - schema:
            minimum: 0
            type: number
          in: query
          name: feesMax
          required: false
          description: >-
            Keep the markets whose transaction fees over the timeframe are at or
            below this (USD).
        - schema:
            minimum: 1
            maximum: 100
            default: 30
            type: integer
            x-default: 50
          in: query
          name: limit
          required: false
          description: Rows per page (default 30, max 100).
          example: 50
        - schema:
            type: string
          in: query
          name: cursor
          required: false
          description: >-
            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.
      responses:
        '200':
          description: Standard `{ data, meta }` envelope.
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: Authorization
      in: header
      description: Your raw API key (not needed on the demo server).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.