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

# Discover pools

> Retrieve a list of pools with filtering, sorting, and pagination. Works on Solana (Meteora DLMM, DAMM V2) and Robinhood Chain (Uniswap V3, Uniswap V4); pick the network with `chain`.

Some filters behave differently per chain:
- `min_bin_step`, `max_bin_step`, `min_organic_score` and `max_organic_score` apply on `SOL` only and are ignored on `ROBINHOOD`.
- On `ROBINHOOD`, browsing hides pools under $5,000 liquidity unless you pass `min_liquidity`, `show_small_pools=true` or `search`.
- On `ROBINHOOD`, browsing also hides pools that report at least $50,000 TVL with under $500 of 24h volume (TVL painted by a single-sided deposit). A `search` request skips this filter.




## OpenAPI

````yaml /api-reference/openapi.json get /pools/discover
openapi: 3.0.0
info:
  title: LP Agent Open API
  version: 1.0.0
  description: |+
    Public API for LP Agent

    **Authentication**

    All endpoints require an API key passed via the `x-api-key` header.

servers:
  - url: https://api.lpagent.io/open-api/v1
    description: Production
security:
  - apiKeyAuth: []
tags: []
paths:
  /pools/discover:
    get:
      tags:
        - Pools
      summary: Discover pools
      description: >
        Retrieve a list of pools with filtering, sorting, and pagination. Works
        on Solana (Meteora DLMM, DAMM V2) and Robinhood Chain (Uniswap V3,
        Uniswap V4); pick the network with `chain`.


        Some filters behave differently per chain:

        - `min_bin_step`, `max_bin_step`, `min_organic_score` and
        `max_organic_score` apply on `SOL` only and are ignored on `ROBINHOOD`.

        - On `ROBINHOOD`, browsing hides pools under $5,000 liquidity unless you
        pass `min_liquidity`, `show_small_pools=true` or `search`.

        - On `ROBINHOOD`, browsing also hides pools that report at least $50,000
        TVL with under $500 of 24h volume (TVL painted by a single-sided
        deposit). A `search` request skips this filter.
      parameters:
        - in: query
          name: chain
          schema:
            type: string
            enum:
              - SOL
              - ROBINHOOD
            default: SOL
          description: >-
            Blockchain network to query. `SOL` returns Meteora (DLMM / DAMM v2)
            pools; `ROBINHOOD` returns Uniswap V3 and V4 pools on Robinhood
            Chain (EVM, chain id 4663). Unrecognised values match no pools.
        - in: query
          name: sortBy
          schema:
            type: string
            enum:
              - mcap
              - created_at
              - vol_24h
              - tvl
              - fee_tvl_ratio
              - fee_24h
            default: mcap
          description: >-
            Field to sort pools by. Any other value falls back to `mcap`. On
            `SOL`, `fee_24h` and `fee_tvl_ratio` are derived from the pool fee
            rate and 24h volume; on `ROBINHOOD` they use the stored 24h fee
            figures, which are empty for dynamic-fee pools and sort last.
        - in: query
          name: sortOrder
          schema:
            type: string
            enum:
              - asc
              - desc
              - default
            default: desc
          description: >-
            Sort order direction. `default` ignores `sortBy` and sorts by market
            cap, highest first.
        - in: query
          name: page
          schema:
            type: integer
            minimum: 1
            default: 1
          description: Page number for pagination
        - in: query
          name: pageSize
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
          description: Number of items per page
        - in: query
          name: feeTVLInterval
          schema:
            type: string
            enum:
              - 5m
              - 1h
              - 6h
              - 24h
            default: 24h
          description: Time interval for fee/TVL ratio calculation
        - in: query
          name: quote_token
          schema:
            type: string
          description: >-
            Filter by quote token **symbol** (case-insensitive), not address. On
            `SOL`: `SOL` or `USDC`. On `ROBINHOOD`: `WETH` (alias `ETH`) or
            `USDG`. An unknown symbol, `ALL`, or a combined value such as
            `SOL&USDC` applies no quote filter.
          example: USDC
        - in: query
          name: min_market_cap
          schema:
            type: number
          description: Minimum market cap filter
        - in: query
          name: max_market_cap
          schema:
            type: number
          description: Maximum market cap filter
        - in: query
          name: min_bin_step
          schema:
            type: number
          description: Minimum bin step filter. `SOL` only; ignored on `ROBINHOOD`.
        - in: query
          name: max_bin_step
          schema:
            type: number
          description: Maximum bin step filter. `SOL` only; ignored on `ROBINHOOD`.
        - in: query
          name: min_organic_score
          schema:
            type: number
          description: Minimum organic score filter. `SOL` only; ignored on `ROBINHOOD`.
        - in: query
          name: max_organic_score
          schema:
            type: number
          description: Maximum organic score filter. `SOL` only; ignored on `ROBINHOOD`.
        - in: query
          name: min_base_fee
          schema:
            type: number
          description: Minimum base fee filter
        - in: query
          name: max_base_fee
          schema:
            type: number
          description: Maximum base fee filter
        - in: query
          name: min_age_hr
          schema:
            type: number
          description: Minimum pool age in hours
        - in: query
          name: max_age_hr
          schema:
            type: number
          description: Maximum pool age in hours
        - in: query
          name: min_liquidity
          schema:
            type: number
          description: >-
            Minimum liquidity (TVL, USD) filter. When omitted on `ROBINHOOD`, a
            $5,000 floor applies unless `show_small_pools=true` or `search` is
            set. No default floor on `SOL`.
        - in: query
          name: max_liquidity
          schema:
            type: number
          description: Maximum liquidity filter
        - in: query
          name: min_24h_fees
          schema:
            type: number
          description: Minimum 24h fees filter
        - in: query
          name: max_24h_fees
          schema:
            type: number
          description: Maximum 24h fees filter
        - in: query
          name: min_24h_vol
          schema:
            type: number
          description: Minimum 24h volume filter
        - in: query
          name: max_24h_vol
          schema:
            type: number
          description: Maximum 24h volume filter
        - in: query
          name: min_1h_vol
          schema:
            type: number
          description: Minimum 1h volume filter
        - in: query
          name: max_1h_vol
          schema:
            type: number
          description: Maximum 1h volume filter
        - in: query
          name: platform
          schema:
            type: string
          description: >-
            Comma-separated protocols to filter by. Omit it (or send `all`) to
            keep every protocol on the chain. On `SOL`, `meteora` for DLMM and
            `meteora_damm_v2` for DAMM V2. On `ROBINHOOD`, `uniswap_v3` or
            `uniswap_v4`.
          example: uniswap_v3,uniswap_v4
        - in: query
          name: type
          deprecated: true
          schema:
            type: string
            default: all
          description: >-
            Older name for `platform`, still accepted. `platform` wins when both
            are sent.
        - in: query
          name: category
          schema:
            type: string
            enum:
              - stock
          description: >-
            Keep only pools where at least one token carries this label. `stock`
            is Robinhood's tokenized stocks and ETFs, matched by contract
            address against the issuer's registry, never by ticker. Only
            meaningful on `ROBINHOOD`: no Solana token is labelled, so on `SOL`
            the result is empty. Unknown values are ignored.
        - in: query
          name: show_small_pools
          schema:
            type: boolean
            default: false
          description: >-
            `ROBINHOOD` only: set `true` to drop the default $5,000 liquidity
            floor. No effect on `SOL`, which has no default floor.
        - in: query
          name: search
          schema:
            type: string
          description: >-
            Exact match on the pool ID or either token address (not a name
            search). On `ROBINHOOD`, `0x` addresses and 32-byte Uniswap V4 pool
            IDs are matched case-insensitively, so checksummed addresses work.
            Solana base58 addresses are case-sensitive. Setting `search` also
            skips the `ROBINHOOD` liquidity floor and painted-TVL filter.
      responses:
        '200':
          description: Successfully retrieved pools
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        pool:
                          type: string
                          description: Pool address
                          example: 5rCfABCxyz123
                        tvl:
                          type: number
                          description: Total value locked
                          example: 125000.5
                        fee:
                          type: number
                          description: Pool fee rate
                          example: 0.003
                        protocol:
                          type: string
                          description: Protocol name
                          example: meteora
                        chain:
                          type: string
                          example: SOL
                        token0:
                          type: string
                          description: Token X mint address
                          example: So11111111111111111111111111111111111111112
                        token1:
                          type: string
                          description: Token Y mint address
                        vol_5m:
                          type: number
                          description: Volume in last 5 minutes
                        vol_1h:
                          type: number
                          description: Volume in last 1 hour
                        vol_6h:
                          type: number
                          description: Volume in last 6 hours
                        vol_24h:
                          type: number
                          description: Volume in last 24 hours
                          example: 800000
                        base_price:
                          type: number
                          description: Base token price in USD
                          example: 150.25
                        quote_price:
                          type: number
                          description: Quote token price in USD
                          example: 1
                        mcap:
                          type: number
                          description: Market cap
                          example: 50000000
                        usd_price:
                          type: number
                          description: Token USD price
                        fdv:
                          type: number
                          description: Fully diluted valuation
                        organic_score:
                          type: number
                          description: Organic trading score
                          example: 75
                        top_holder:
                          type: number
                          description: Top holder percentage
                        mint_freeze:
                          type: boolean
                          description: Whether mint/freeze authority is enabled
                        price_5m_change:
                          type: number
                          description: Price change in last 5 minutes
                        price_1h_change:
                          type: number
                          description: Price change in last 1 hour
                        price_6h_change:
                          type: number
                          description: Price change in last 6 hours
                        price_24h_change:
                          type: number
                          description: Price change in last 24 hours
                        bin_step:
                          type: number
                          description: Bin step size
                          example: 10
                        liquidity_token0:
                          type: number
                          description: Liquidity of token X
                        liquidity_token1:
                          type: number
                          description: Liquidity of token Y
                        created_at:
                          type: string
                          format: date-time
                          description: Pool creation time
                        updated_at:
                          type: string
                          format: date-time
                        first_pool_created_at:
                          type: string
                          format: date-time
                        token0_symbol:
                          type: string
                          nullable: true
                          example: SOL
                        token0_name:
                          type: string
                          nullable: true
                          example: Solana
                        token0_decimals:
                          type: number
                          nullable: true
                          example: 9
                        token1_symbol:
                          type: string
                          nullable: true
                          example: USDC
                        token1_name:
                          type: string
                          nullable: true
                        token1_decimals:
                          type: number
                          nullable: true
                        token0_logo:
                          type: string
                          nullable: true
                        token1_logo:
                          type: string
                          nullable: true
                        token0_categories:
                          type: array
                          items:
                            type: string
                            enum:
                              - stock
                          description: >-
                            Labels on token X, matched by contract address.
                            Empty when none.
                        token1_categories:
                          type: array
                          items:
                            type: string
                            enum:
                              - stock
                        token0_impersonates:
                          type: array
                          items:
                            type: string
                            enum:
                              - stock
                          description: >-
                            Labels whose registered token shares token X's
                            ticker but not its address, e.g. an NVDA that is not
                            Robinhood's NVDA. Empty when none.
                        token1_impersonates:
                          type: array
                          items:
                            type: string
                            enum:
                              - stock
                        token0_stats:
                          type: object
                          nullable: true
                          description: Token X trading stats from Jupiter
                          properties:
                            volume:
                              type: object
                              properties:
                                stats1h:
                                  type: object
                                  properties:
                                    volume:
                                      type: number
                                    volume_change:
                                      type: number
                                stats6h:
                                  type: object
                                  properties:
                                    volume:
                                      type: number
                                    volume_change:
                                      type: number
                                stats24h:
                                  type: object
                                  properties:
                                    volume:
                                      type: number
                                    volume_change:
                                      type: number
                            holders:
                              type: number
                        token1_stats:
                          type: object
                          nullable: true
                          description: Token Y trading stats from Jupiter
                  pagination:
                    type: object
                    properties:
                      currentPage:
                        type: integer
                      pageSize:
                        type: integer
                      totalCount:
                        type: integer
                      totalPages:
                        type: integer
                      hasNextPage:
                        type: boolean
                      hasPreviousPage:
                        type: boolean
        '500':
          description: Internal server error
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication

````