> ## 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.

# Market Screener

> Every tradable market, paginated: filters by chain, sort by trending (relevance), volume, market cap or creation time, per-window stats on every row, cursor pagination. The discovery primitive - poll it to detect new markets.

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

Every tradable market, paginated: filters by chain, sort by trending (relevance, the default), volume, market cap or creation time, cursor pagination. Each row is a market (chain + pool) with its identity, price, liquidity, market cap and windowed stats (5m, 1h, 6h, 24h). The discovery primitive - poll it to detect new markets.

<Note>`sortBy=trending` (default) ranks by relevance: 24h activity weighted by real participation, so a wash-traded market ranks below an organically traded one with the same figures. `sortBy=volume` is strictly ordered by the gross USD volume of `window` (default `24h`, that is `volume24hUsd` descending; `5m`, `1h`, `6h` rank on `stats.<window>.volumeUsd`). `sortBy=marketCap` ranks on `marketCapUsd`. `window` applies to `volume` only.</Note>

<Note>Each row carries `priceNative`/`priceUsd`, `marketCapUsd`, `liquidityUsd`, `createdAt`, the 24h headline figures (`volume24hUsd`, `priceChange24hPct`, `txns`, `buys`, `sells`) and `stats`, one object per window (`5m`, `1h`, `6h`, `24h`) with seven fields named as in a [Market Data](/endpoints/market-data) window: `volumeNative`, `volumeUsd`, `buys`, `sells`, `txns`, `feesNative` and `priceChangePct` (the price change over the window, in percent). `volume24hUsd`, `txns`, `buys` and `sells` equal their `stats.24h` counterparts. `sortBy=createdAt` rows carry identity, price and market cap; windowed stats belong to the ranked listings. `priceNative`, `priceUsd` and `marketCapUsd` are `null` on a market that has not traded yet.</Note>

<Note>For `trending`/`volume`/`marketCap`, the universe is selected PER CHAIN: the top 300 markets by 24h USD volume plus the top 100 by 1h USD volume of that chain, among the markets that pass our quality filters (stablecoin, wrapped and native pairs, drained pools and wash-traded markets are left out), refreshed every few seconds and named in `meta.universe`. The two tops overlap, so a large chain lists between 300 and 400 markets; a smaller chain lists every eligible market among its most active ones. `meta.chains` lists every requested chain with `markets` (the size of its universe) and `asOf` (the time its figures were computed). Pages merge the chains on the rank key. The cursor pins, for each chain, the computation the page was cut from and resumes right after the last market it served: every page of a walk started within the last minute comes from the same figures, so a market is served exactly once whatever the ranks did since. `meta.chains[*].asOf` tells you which computation a page reflects.</Note>

<RequestExample>
  ```bash cURL (trending, two chains) theme={null}
  curl 'https://api.serialized.xyz/v1/screener?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?chains=evm:143&sortBy=volume&window=1h&limit=20' \
    -H 'Authorization: YOUR_API_KEY'
  ```

  ```bash cURL (newest markets on Base) theme={null}
  curl 'https://api.serialized.xyz/v1/screener?chains=evm:8453&sortBy=createdAt&limit=20' \
    -H 'Authorization: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "data": [
      {
        "chain": "evm:8453",
        "address": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64",
        "type": "UNISWAP_V3",
        "token": {
          "address": "0x4ed4e862860bed51a9570b96d89af5e1b0efefed",
          "name": "Degen",
          "symbol": "DEGEN"
        },
        "quote": {
          "address": "0x4200000000000000000000000000000000000006",
          "symbol": "WETH"
        },
        "priceNative": "0.000000547821",
        "priceUsd": 0.0010305242898887457,
        "marketCapUsd": 37436168.14123417,
        "liquidityUsd": 239687.07091684965,
        "volume24hUsd": 1284561.72,
        "priceChange24hPct": 3.747121113042337,
        "txns": 4821,
        "buys": 2610,
        "sells": 2211,
        "createdAt": 1705088299000,
        "stats": {
          "5m": {
            "volumeNative": 1.204518,
            "volumeUsd": 4213.44,
            "buys": 14,
            "sells": 9,
            "txns": 23,
            "feesNative": 0.000612,
            "priceChangePct": 0.31
          },
          "1h": {
            "volumeNative": 19.84211,
            "volumeUsd": 69416.03,
            "buys": 221,
            "sells": 184,
            "txns": 405,
            "feesNative": 0.010774,
            "priceChangePct": 1.12
          },
          "6h": {
            "volumeNative": 96.11803,
            "volumeUsd": 336268.9,
            "buys": 1036,
            "sells": 870,
            "txns": 1906,
            "feesNative": 0.050688,
            "priceChangePct": 2.05
          },
          "24h": {
            "volumeNative": 367.19334,
            "volumeUsd": 1284561.72,
            "buys": 2610,
            "sells": 2211,
            "txns": 4821,
            "feesNative": 0.128261,
            "priceChangePct": 3.747121113042337
          }
        }
      },
      {
        "chain": "solana",
        "address": "48WkwrpuxrjunUiWPjKE6mwt72L8Jt44ZKDzeoxfpJFq",
        "type": "PUMP_FUN",
        "token": {
          "address": "Gy5norvZpbgv69cxuLnLg27FBj7f13yXr9g5oLEQpump",
          "name": "Abdul El-Sayed",
          "symbol": "SAYED"
        },
        "quote": {
          "address": "So11111111111111111111111111111111111111112",
          "symbol": "SOL"
        },
        "priceNative": "0.000000004137723910209546",
        "priceUsd": 3.108043618992381e-7,
        "marketCapUsd": 432.6024893944764,
        "liquidityUsd": 2330.4088733171225,
        "volume24hUsd": 918342.11,
        "priceChange24hPct": -12.63,
        "txns": 3140,
        "buys": 1702,
        "sells": 1438,
        "createdAt": 1786046774000,
        "stats": {
          "5m": {
            "volumeNative": 21.0452,
            "volumeUsd": 4209.04,
            "buys": 18,
            "sells": 11,
            "txns": 26,
            "feesNative": 0.00145,
            "priceChangePct": -0.84
          },
          "1h": {
            "volumeNative": 402.118,
            "volumeUsd": 80423.6,
            "buys": 244,
            "sells": 197,
            "txns": 398,
            "feesNative": 0.02205,
            "priceChangePct": -3.9
          },
          "6h": {
            "volumeNative": 1611.77,
            "volumeUsd": 322354,
            "buys": 802,
            "sells": 689,
            "txns": 1341,
            "feesNative": 0.07455,
            "priceChangePct": -7.41
          },
          "24h": {
            "volumeNative": 4591.71,
            "volumeUsd": 918342.11,
            "buys": 1702,
            "sells": 1438,
            "txns": 3140,
            "feesNative": 0.157,
            "priceChangePct": -12.63
          }
        }
      }
    ],
    "meta": {
      "asOf": 1787163135004,
      "sortBy": "trending",
      "hasMore": true,
      "nextCursor": "eyJ2Ijo0LCJzIjoidHJlbmRpbmciLCJ3IjoiMjRoIiwiYyI6eyJldm06ODQ1MyI6eyJrIjo4LjcxLCJhIjoiMHgwY2E2NDg1YjdlOWNmODE0YTNmZDA5ZDgxNjcyYjA3MzIzNTM1YjY0IiwidCI6MTc4NzE2MzEzNTAwNH0sInNvbGFuYSI6eyJrIjo2Ljk0LCJhIjoiNDhXa3dycHV4cmp1blVpV1BqS0U2bXd0NzJMOEp0NDRaS0R6ZW94ZnBKRnEiLCJ0IjoxNzg3MTYzMTM3MjEwfX19",
      "universe": "perChain:top300ByVolume24hUsd+top100ByVolume1hUsd",
      "chains": {
        "evm:8453": { "markets": 341, "asOf": 1787163135004 },
        "solana": { "markets": 352, "asOf": 1787163137210 }
      }
    }
  }
  ```
</ResponseExample>


## OpenAPI

````yaml openapi.json GET /v1/screener
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:
    get:
      summary: Market Screener
      description: >-
        Every tradable market, paginated: filters by chain, sort by trending
        (relevance), volume, market cap or creation time, per-window stats on
        every row, cursor pagination. The discovery primitive - poll it to
        detect new markets.
      operationId: market-screener
      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`, `marketCap` or `createdAt`.
            `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 `window` (default 24h: `volume24hUsd`
            descending). trending/volume/marketCap rank within each chain's own
            universe (top 300 by 24h volume plus top 100 by 1h volume, named in
            `meta.universe`).
          example: trending
        - schema:
            type: string
            x-default: 1h
          in: query
          name: window
          required: false
          description: >-
            Rank window for `sortBy=volume`: `5m`, `1h`, `6h` or `24h` (default
            `24h`). Not accepted with the other sorts (`trending` is a 24h
            relevance).
          example: 1h
        - 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.
      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.