---
title: "Pools ranked by their best range's net APR"
method: GET
path: "/v1/pools"
tags: ["pools"]
---

# Pools ranked by their best range's net APR

`GET /v1/pools`

## Request

- Base URL: `https://api.lpsignal.app`
- URL: `https://api.lpsignal.app/v1/pools`
- Auth: none required

## Query parameters

- `chain` 'ethereum' | 'bsc' | 'base' | 'arbitrum' | 'optimism' | 'polygon' | 'robinhood'
- `class` 'stable' | 'correlated' | 'volatile'
- `window` 1 | 24 | 168 | 720
- `minTvlUsd` number
- `minPoolApr` number
- `stock` boolean
- `sort` 'netApr' | 'feeApr' | 'ilApr' | 'inRange' | 'emissionApr' | 'tvl' | 'fee' | 'volume24h' | 'fees24h' | 'poolApr'
- `order` 'asc' | 'desc'
- `limit` integer
- `offset` integer

## Response `200`

OK

- object
  - `pools` PoolListItem[]
    - `chain` 'ethereum' | 'bsc' | 'base' | 'arbitrum' | 'optimism' | 'polygon' | 'robinhood'
    - `address` string
    - `dex` string
    - `pair` string
    - `fee` integer: fee tier in millionths (500 = 0.05%)
    - `pairClass` string
    - `tvlUsd` number
    - `tvlAt` string, nullable
    - `volume24hUsd` number, nullable
    - `fees24hUsd` number, nullable: ESTIMATED: volume × fee rate
    - `poolApr24h` number, nullable: pool-level 24h fee APR, as DEX sites show it (a fraction: 0.42 = 42%)
    - `best` object
      - `windowHours` integer
      - `rangeBp` integer: half-width of the range in basis points of price; 0 = full range
      - `tickLower` integer
      - `tickUpper` integer
      - `exact` boolean: every hour has exact (feeGrowth) fees; only exact figures fire signals
      - `feeApr` number: fees earned, annualised (a fraction: 0.42 = 42%)
      - `ilApr` number: impermanent loss vs holding, annualised (≤ 0) (a fraction: 0.42 = 42%)
      - `netApr` number: feeApr + ilApr (a fraction: 0.42 = 42%)
      - `inRangeRatio` number: share of the window the price spent in the range (a fraction: 0.42 = 42%)
      - `asOf` string, date-time
      - `net24h` number, nullable: the same range over the last 24 h (a fraction: 0.42 = 42%)
      - `stakedEmissionApr` number: Slipstream gauge emissions if staked instead (informational) (a fraction: 0.42 = 42%)
  - `total` integer
  - `limit` integer
  - `offset` integer
  - `sort` string
  - `order` string

## Other responses

- `400`: invalid request

---

[API](https://skmtc.dev/lpsignal/apis/lpsignal-api.md) · [All operations](https://skmtc.dev/lpsignal/apis/lpsignal-api/llms.txt) · [OpenAPI document](https://skmtc.dev/lpsignal/apis/lpsignal-api/revisions/5fb8c06b1930?raw)
