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

# Fetch all pools (V2)

> Retrieve every SaucerSwap V2 concentrated liquidity pool with fee tier, tick, and liquidity data from the SaucerSwap REST API, with response schemas.

SaucerSwap offers a public [REST API](/api-reference/overview) endpoint to retrieve all liquidity pools, accompanied by useful metadata for each pool, including liquidity pool reserves, and their associated tokens. Use the following URL options to access the data.

The endpoint is `GET /v2/pools` on `https://api.saucerswap.finance` (mainnet) or `https://test-api.saucerswap.finance` (testnet). Requests require an API key; see [Authentication](/api-reference/authentication).

<Note>
  For SaucerSwap V1 liquidity pools, see [Fetch all pools (V1)](/developers/v1/liquidity/fetch-all-pools).
</Note>

## Data JSON schema

<CodeGroup>
  ```typescript theme={null}
  type ApiLiquidityPoolV2 = {
    id: number;
    contractId: string;
    tokenA: ApiToken;
    amountA: string; //total amount for tokenA, in smallest unit
    tokenB: ApiToken;
    amountB: string; //total amount for tokenB, in smallest unit
    fee: number;
    sqrtRatioX96: string;
    tickCurrent: number;
    liquidity: string;
  }

  type ApiToken = {
    decimals: number
    icon?: string
    id: string
    name: string
    price: string
    priceUsd: number
    symbol: string
    dueDiligenceComplete: boolean
    isFeeOnTransferToken: boolean
    timestampSecondsLastListingChange: number
    description: string | null
    website: string | null
    twitterHandle: string | null
    sentinelReport: string | null
  }
  ```
</CodeGroup>

## Code overview

*No gas cost — read-only call.*

<CodeGroup>
  ```typescript theme={null}
  const url = 'https://api.saucerswap.finance/v2/pools/';
  const response = await axios.get(url);
  const pools = response.data;
  for (const pool of pools as ApiLiquidityPoolV2[] ) {

    const symbolA = pool.tokenA.symbol;
    const symbolB = pool.tokenB.symbol;
    const feeTier = pool.fee / 10_000.0;
    const currTick = pool.tickCurrent;
    const liquidity = pool.liquidity;

    let output = '';
    output += `Pool id: ${pool.id}`;
    output += ` - ${symbolA}/${symbolB} @ ${feeTier}%`;
    output += ` - Current tick: ${currTick}`;
    output += `, Liquidity: ${liquidity}`;

    console.log(output);
  }
  ```
</CodeGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Fetch pool token ratio (V2)" href="/developers/v2/liquidity/fetch-pool-token-ratio">
    Read the live price ratio for one pool.
  </Card>

  <Card title="Fetch all pools (V1)" href="/developers/v1/liquidity/fetch-all-pools">
    The V1 equivalent with reserve amounts.
  </Card>

  <Card title="API authentication" href="/api-reference/authentication">
    Get an API key for the REST API.
  </Card>
</CardGroup>
