Skip to main content
GET
/
v1
/
earn
/
vaults
List vaults with optional filtering
curl --request GET \
  --url https://earn.li.fi/v1/earn/vaults
{
  "data": [
    {
      "address": "0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A",
      "network": "base",
      "chainId": 8453,
      "slug": "morpho-base-usdc-0x7bfa",
      "name": "Morpho USDC Vault",
      "description": "Optimized USDC lending vault on Morpho",
      "protocol": {
        "name": "Morpho",
        "logoUri": "https://example.com/morpho-logo.png",
        "url": "https://morpho.org"
      },
      "underlyingTokens": [
        {
          "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "symbol": "USDC",
          "decimals": 6,
          "weight": 1
        }
      ],
      "lpTokens": [
        {
          "address": "0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A",
          "symbol": "mUSDC",
          "decimals": 18,
          "priceUsd": "1.02"
        }
      ],
      "rewardTokens": [],
      "tags": [
        "stablecoin",
        "lending"
      ],
      "analytics": {
        "apy": {
          "base": 0.0534,
          "reward": null,
          "total": 0.0534
        },
        "apy1d": 0.0521,
        "apy7d": 0.0538,
        "apy30d": 0.0545,
        "tvl": {
          "usd": "12500000.00",
          "native": "12500000000000"
        },
        "updatedAt": "2026-03-31T14:30:00.000Z"
      },
      "caps": {
        "totalCap": "50000000000000",
        "maxCap": "100000000000000"
      },
      "timeLock": 0,
      "kyc": false,
      "provider": "morpho",
      "syncedAt": "2026-03-31T14:30:00.000Z",
      "isTransactional": true,
      "isRedeemable": true,
      "depositPacks": [
        {
          "name": "morpho-deposit",
          "stepsType": "instant"
        }
      ],
      "redeemPacks": [
        {
          "name": "morpho-redeem",
          "stepsType": "instant"
        }
      ]
    }
  ],
  "nextCursor": "eyJpZCI6MTAwfQ",
  "total": 47
}

Query Parameters

chainId
integer

Filter by EVM chain ID (e.g., 8453 for Base, 1 for Ethereum).

Required range: 1 <= x <= 9007199254740991
asset
string

Filter by underlying token symbol or address (e.g., USDC).

Minimum string length: 1
protocol
string

Filter by protocol name (e.g., morpho-v1, aave-v3).

Minimum string length: 1
minTvlUsd
number

Minimum TVL in USD. Use this to filter out low-liquidity vaults (e.g., 1000000 for $1M+).

Required range: x >= 0
sortBy
enum<string>

Sort order for results. apy sorts by highest total APY first. tvl sorts by highest TVL first.

Available options:
apy,
tvl
cursor
string

Pagination cursor from a previous response's nextCursor field. Omit to start from the beginning.

Minimum string length: 1
limit
integer

Number of results per page. Defaults to 50.

Required range: 1 <= x <= 100

Response

200 - application/json

Paginated vault list

data
object[]
required

Array of vault objects matching the filters.

total
integer
required

Total number of vaults matching the filters across all pages.

Required range: -9007199254740991 <= x <= 9007199254740991
Example:

47

nextCursor
string

Cursor to pass as the cursor parameter to fetch the next page. Absent when there are no more results.

Example:

"eyJpZCI6MTAwfQ"