---
title: "GET /pools"
method: GET
path: "/pools"
tags: ["pools"]
---

# GET /pools

`GET /pools`

Returns pool data for all listed pools, optionally filterable by the pool's comptroller address.

**Versioning** (controlled via `accept-version` header):
- `stable` (default): `chainId` is **required**. Returns a paginated list of pools with embedded markets (filtered to `isListed: true`) and a top-level `tokens` array of `TokenMetadata`.
- `next`: `chainId` is optional; accepts a JSON array string for multi-chain queries (e.g. `["56","1"]`). Returns pools grouped by chainId alongside a separately paginated markets list with `underlyingTokenMetadata` embedded in each market. No top-level `tokens` field.

## Query parameters

- `address` string
- `name` string
- `priceOracleAddress` string
- `chainId` string
- `order` string
- `limit` integer
- `page` integer

## Headers

- `accept-version` 'stable' | 'next'

## Response `200`

Returns Pool data for all listed pools.

- union
  - PoolsStableResponse — Response when using accept-version: stable. chainId is required. Pools include embedded markets. A top-level tokens array carries all token metadata.
    - `limit` number, required
    - `page` number, required
    - `total` number, required
    - `result` Pool[], required — Pools with embedded markets (isListed only) and eModeGroups.
      - `chainId` string, required
      - `address` string, required
      - `name` string, required
      - `description` string, nullable
      - `priceOracleAddress` string, required
      - `closeFactorMantissa` string, nullable
      - `liquidationIncentiveMantissa` string, nullable
      - `minLiquidatableCollateralMantissa` string, nullable
      - `markets` Market[] — Embedded markets. Present in the stable /pools response only.
        - `address` string, required
        - `chainId` string, required
        - `symbol` string
        - `name` string
        - `underlyingAddress` string, nullable
        - `underlyingName` string
        - `underlyingSymbol` string
        - `underlyingDecimal` integer
        - `borrowerDailyXvsMantissa` string, nullable
        - `supplierDailyXvsMantissa` string, nullable
        - `xvsBorrowIndex` string, nullable
        - `xvsSupplyIndex` string, nullable
        - `borrowRatePerBlock` string
        - `supplyRatePerBlock` string
        - `exchangeRateMantissa` string
        - `underlyingPriceMantissa` string
        - `totalBorrowsMantissa` string
        - `totalSupplyMantissa` string
        - `cashMantissa` string
        - `totalReservesMantissa` string
        - `reserveFactorMantissa` string
        - `collateralFactorMantissa` string
        - `liquidationThresholdMantissa` string
        - `liquidationIncentiveMantissa` string
        - `isBorrowable` boolean
        - `canBeCollateral` boolean
        - `borrowApy` string
        - `supplyApy` string
        - `borrowApyDecimal` string, nullable
        - `supplyApyDecimal` string, nullable
        - `totalBorrowApyDecimal` string, nullable
        - `totalSupplyApyDecimal` string, nullable
        - `borrowXvsApy` string, nullable
        - `supplyXvsApy` string, nullable
        - `borrowXvsApr` string, nullable
        - `supplyXvsApr` string, nullable
        - `totalSupplyUnderlyingCents` integer
        - `totalBorrowCents` integer
        - `liquidityCents` string
        - `tokenPriceCents` string
        - `totalDistributedMantissa` string, nullable
        - `lastCalculatedXvsAccruedBlockNumber` string, nullable
        - `supplyCapsMantissa` string, nullable
        - `borrowCapsMantissa` string
        - `borrowerCount` integer
        - `supplierCount` integer
        - `estimatedPrimeBorrowApyBoost` string, nullable
        - `estimatedPrimeSupplyApyBoost` string, nullable
        - `pausedActionsBitmap` integer
        - `isListed` boolean
        - `poolComptrollerAddress` string, required
        - `badDebtMantissa` string
        - `isPriceInvalid` boolean
        - `rewardsDistributors` RewardsDistributor[]
          - `id` string, required
          - `rewardTokenAddress` string, required
          - `marketAddress` string, required
          - `chainId` string, required
          - `lastRewardingSupplyBlockOrTimestamp` string, required
          - `lastRewardingBorrowBlockOrTimestamp` string, required
          - `supplySpeed` string, required
          - `borrowSpeed` string, required
          - `priceMantissa` string
          - `rewardsDistributorContractAddress` string, required
          - `rewardType` 'venus' | 'merkl' | 'intrinsic' | 'off-chain' | 'yield-to-maturity', required
          - `rewardDetails` object, nullable
            - `name` string
            - `description` string
            - `merklCampaignId` string
            - `apr` string
            - `apy` string
          - `isActive` boolean, required
        - `pointsDistributions` PointsDistribution[]
          - `id` string, required
          - `pointsProgram` 'ethena' | 'etherfi' | 'kelp' | 'solv' | 'aster', required
          - `marketAddress` string, required
          - `chainId` string, required
          - `action` 'supply' | 'borrow', required
          - `title` string, required
          - `incentive` string, nullable
          - `description` string, nullable
          - `extraInfoUrl` string, nullable
          - `startDate` string, nullable
          - `endDate` string, nullable
        - `eModeSettings` EModeSetting[] — E-mode settings for this market. Present in the stable /pools response only.
          - `id` string, required
          - `chainId` string, required
          - `marketAddress` string, required
          - `poolId` integer, required
          - `collateralFactorMantissa` string, required
          - `liquidationThresholdMantissa` string, required
          - `liquidationIncentiveMantissa` string, required
          - `canBeCollateral` boolean, required
          - `isBorrowable` boolean, required
        - `underlyingTokenMetadata` TokenMetadata[] — Embedded token metadata with price data. Present in the next version response only.
          - `address` string, required
          - `name` string, nullable
          - `symbol` string, nullable
          - `chainId` string, required
          - `decimals` integer, required
          - `maturityDate` string, nullable
          - `tokenPrices` TokenPrice[]
            - `id` string, required
            - `tokenAddress` string, required
            - `tokenWrappedAddress` string, nullable
            - `priceMantissa` string, nullable
            - `chainId` string, required
            - `priceSource` 'oracle' | 'coingecko' | 'merkl', required
            - `priceOracleAddress` string, nullable
            - `mainOracleAddress` string, nullable
            - `mainOracleName` string, nullable
            - `isPriceInvalid` boolean
            - `hasErrorFetchingPrice` boolean
      - `eModeGroups` EModeGroup[]
        - `id` string, required
        - `comptrollerAddress` string, required
        - `chainId` string, required
        - `label` string, required
        - `poolId` integer, required
        - `isActive` boolean, required
        - `allowCorePoolFallback` boolean, required
        - `eModeSettings` EModeSetting[]
          - `id` string, required
          - `chainId` string, required
          - `marketAddress` string, required
          - `poolId` integer, required
          - `collateralFactorMantissa` string, required
          - `liquidationThresholdMantissa` string, required
          - `liquidationIncentiveMantissa` string, required
          - `canBeCollateral` boolean, required
          - `isBorrowable` boolean, required
    - `tokens` TokenMetadata[], required — Token metadata (with prices) for every underlying and reward token referenced in result. Not present in the next version — token metadata is embedded inside each market as underlyingTokenMetadata instead.
      - `address` string, required
      - `name` string, nullable
      - `symbol` string, nullable
      - `chainId` string, required
      - `decimals` integer, required
      - `maturityDate` string, nullable
      - `tokenPrices` TokenPrice[]
        - `id` string, required
        - `tokenAddress` string, required
        - `tokenWrappedAddress` string, nullable
        - `priceMantissa` string, nullable
        - `chainId` string, required
        - `priceSource` 'oracle' | 'coingecko' | 'merkl', required
        - `priceOracleAddress` string, nullable
        - `mainOracleAddress` string, nullable
        - `mainOracleName` string, nullable
        - `isPriceInvalid` boolean
        - `hasErrorFetchingPrice` boolean
  - PoolsNextResponse — Response when using accept-version: next. chainId is optional and accepts a JSON array string for multi-chain queries (e.g. `["56","1"]`). Pools are grouped by chainId. Markets are returned separately with underlyingTokenMetadata embedded.
    - `pools` object, required — All matching pools keyed by chainId. Each pool includes eModeGroups but not markets (markets are in the separate markets field).
    - `markets` object, required — Paginated market list across all requested chains. Each market has underlyingTokenMetadata embedded.
      - `limit` number, required
      - `page` number, required
      - `total` number, required
      - `result` Market[], required
        - `address` string, required
        - `chainId` string, required
        - `symbol` string
        - `name` string
        - `underlyingAddress` string, nullable
        - `underlyingName` string
        - `underlyingSymbol` string
        - `underlyingDecimal` integer
        - `borrowerDailyXvsMantissa` string, nullable
        - `supplierDailyXvsMantissa` string, nullable
        - `xvsBorrowIndex` string, nullable
        - `xvsSupplyIndex` string, nullable
        - `borrowRatePerBlock` string
        - `supplyRatePerBlock` string
        - `exchangeRateMantissa` string
        - `underlyingPriceMantissa` string
        - `totalBorrowsMantissa` string
        - `totalSupplyMantissa` string
        - `cashMantissa` string
        - `totalReservesMantissa` string
        - `reserveFactorMantissa` string
        - `collateralFactorMantissa` string
        - `liquidationThresholdMantissa` string
        - `liquidationIncentiveMantissa` string
        - `isBorrowable` boolean
        - `canBeCollateral` boolean
        - `borrowApy` string
        - `supplyApy` string
        - `borrowApyDecimal` string, nullable
        - `supplyApyDecimal` string, nullable
        - `totalBorrowApyDecimal` string, nullable
        - `totalSupplyApyDecimal` string, nullable
        - `borrowXvsApy` string, nullable
        - `supplyXvsApy` string, nullable
        - `borrowXvsApr` string, nullable
        - `supplyXvsApr` string, nullable
        - `totalSupplyUnderlyingCents` integer
        - `totalBorrowCents` integer
        - `liquidityCents` string
        - `tokenPriceCents` string
        - `totalDistributedMantissa` string, nullable
        - `lastCalculatedXvsAccruedBlockNumber` string, nullable
        - `supplyCapsMantissa` string, nullable
        - `borrowCapsMantissa` string
        - `borrowerCount` integer
        - `supplierCount` integer
        - `estimatedPrimeBorrowApyBoost` string, nullable
        - `estimatedPrimeSupplyApyBoost` string, nullable
        - `pausedActionsBitmap` integer
        - `isListed` boolean
        - `poolComptrollerAddress` string, required
        - `badDebtMantissa` string
        - `isPriceInvalid` boolean
        - `rewardsDistributors` RewardsDistributor[]
          - `id` string, required
          - `rewardTokenAddress` string, required
          - `marketAddress` string, required
          - `chainId` string, required
          - `lastRewardingSupplyBlockOrTimestamp` string, required
          - `lastRewardingBorrowBlockOrTimestamp` string, required
          - `supplySpeed` string, required
          - `borrowSpeed` string, required
          - `priceMantissa` string
          - `rewardsDistributorContractAddress` string, required
          - `rewardType` 'venus' | 'merkl' | 'intrinsic' | 'off-chain' | 'yield-to-maturity', required
          - `rewardDetails` object, nullable
            - `name` string
            - `description` string
            - `merklCampaignId` string
            - `apr` string
            - `apy` string
          - `isActive` boolean, required
        - `pointsDistributions` PointsDistribution[]
          - `id` string, required
          - `pointsProgram` 'ethena' | 'etherfi' | 'kelp' | 'solv' | 'aster', required
          - `marketAddress` string, required
          - `chainId` string, required
          - `action` 'supply' | 'borrow', required
          - `title` string, required
          - `incentive` string, nullable
          - `description` string, nullable
          - `extraInfoUrl` string, nullable
          - `startDate` string, nullable
          - `endDate` string, nullable
        - `eModeSettings` EModeSetting[] — E-mode settings for this market. Present in the stable /pools response only.
          - `id` string, required
          - `chainId` string, required
          - `marketAddress` string, required
          - `poolId` integer, required
          - `collateralFactorMantissa` string, required
          - `liquidationThresholdMantissa` string, required
          - `liquidationIncentiveMantissa` string, required
          - `canBeCollateral` boolean, required
          - `isBorrowable` boolean, required
        - `underlyingTokenMetadata` TokenMetadata[] — Embedded token metadata with price data. Present in the next version response only.
          - `address` string, required
          - `name` string, nullable
          - `symbol` string, nullable
          - `chainId` string, required
          - `decimals` integer, required
          - `maturityDate` string, nullable
          - `tokenPrices` TokenPrice[]
            - `id` string, required
            - `tokenAddress` string, required
            - `tokenWrappedAddress` string, nullable
            - `priceMantissa` string, nullable
            - `chainId` string, required
            - `priceSource` 'oracle' | 'coingecko' | 'merkl', required
            - `priceOracleAddress` string, nullable
            - `mainOracleAddress` string, nullable
            - `mainOracleName` string, nullable
            - `isPriceInvalid` boolean
            - `hasErrorFetchingPrice` boolean

## Other responses

- `400` — Malformed Query

---

[API](https://skmtc.net/venus/apis/venus-protocol-api.md) · [All operations](https://skmtc.net/venus/apis/venus-protocol-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/venus/venus-protocol-api/revisions/742e86bc3ab0/schema)
