Ir al contenido principal

List vaults – Earn API

Actualizado el
Jul 31, 2026

Resumen

Every approved vault with the seven windowed APYs, TVL, liquidity and capacity from the latest snapshot. For a capital-aware allocation preview, use GET /v1/vaults/rankings.

Endpoint

GET https://earn-api.quicknode.dev/functions/v1/api/v1/vaults

Authorization

Include the published apikey header. This read request is public and does not require a SIWE signature.

Parámetros

ParameterLocationTipoObligatorioDescripción
cadenasquerycadenaNoCSV of chain ids. Defaults to all enabled chains.
windowqueryenteroNoMinutes for the headline `apy`, snapped to the nearest precomputed column. Defaults to 5. The seven windowed APYs are always returned in `windows`.
minTvlquerynumber (decimal)NoMinimum vault TVL in decimal dollars. Defaults to 0.
minLiquidityquerynumber (decimal)NoMinimum withdrawable liquidity in decimal dollars. Defaults to 0.
includeCoveredquerybooleanoNoOpt in to OpenCover covered fee-wrapper rows (`covered: true`). Defaults to false. When omitted or false, the response contains plain vaults only.

Example request

curl --request GET \
--url 'https://earn-api.quicknode.dev/functions/v1/api/v1/vaults?chains=1&window=5&minTvl=0&minLiquidity=0&includeCovered=false' \
--header 'Accept: application/json' \
--header 'apikey: <EARN_PUBLIC_API_KEY>'

Respuesta

CampoTipoObligatorioDescripción
modestring (browse)Identifies the response as an unranked vault browse list.
windowenteroThe applied headline-APY window (minutes) after snapping.
vaultsarray<object>Approved vaults that match the supplied filters.
vaults[].chainIdenteroNumeric identifier of the chain where the vault is deployed.
vaults[].vaultAddresscadenaLowercase address of the ERC-4626 vault share token.
vaults[].namestring | nullHuman-readable name of the vault.
vaults[].apynumber (decimal) | nullHeadline APY percentage for the applied `window`, rounded to two decimal places. Returns null when there is insufficient history.
vaults[].windowsobjetoAPY percentages for the seven precomputed lookback windows. A null value means there is insufficient history for that window.
vaults[].windows.m5number (decimal) | nullAPY percentage over the five-minute lookback window.
vaults[].windows.m10number (decimal) | nullAPY percentage over the ten-minute lookback window.
vaults[].windows.m30number (decimal) | nullAPY percentage over the 30-minute lookback window.
vaults[].windows.h1number (decimal) | nullAPY percentage over the one-hour lookback window.
vaults[].windows.h2number (decimal) | nullAPY percentage over the two-hour lookback window.
vaults[].windows.h4number (decimal) | nullAPY percentage over the four-hour lookback window.
vaults[].windows.h6number (decimal) | nullAPY percentage over the six-hour lookback window.
vaults[].tvlUsdinteger | nullVault TVL in whole US dollars, rounded to the nearest dollar.
vaults[].availableLiquidityUsdinteger | nullWithdrawable liquidity in whole US dollars, rounded to the nearest dollar.
vaults[].maxDepositUsdinteger | nullDeposit capacity in whole US dollars. Null means the vault is uncapped.
vaults[].atCapacitybooleanoTrue when the vault has no remaining deposit capacity.
vaults[].latestAtstring (date-time)ISO 8601 timestamp of the latest vault snapshot.
vaults[].coveredbooleanoNoPresent and true only for an OpenCover covered fee wrapper. Omitted for plain vaults.

Example response

The response includes every matching vault. This example shows one exact vault entry from the response:

{
"mode": "browse",
"window": 5,
"vaults": [
{
"chainId": 1,
"vaultAddress": "0x8e56cb6bc1a8961ed9062b99045d3299b27cdb4d",
"name": "Avantgarde USDC Dynamic",
"apy": 3.67,
"windows": {
"m5": 3.67,
"m10": 3.66,
"m30": 3.63,
"h1": 3.63,
"h2": 3.64,
"h4": 3.63,
"h6": 3.62
},
"tvlUsd": 105169,
"availableLiquidityUsd": 63085,
"maxDepositUsd": null,
"atCapacity": false,
"latestAt": "2026-07-31T12:55:33.542+00:00"
}
]
}

HTTP responses

EstadoDescripción
200The browse vault list.
400One or more query parameters are malformed or outside their accepted range.
429Rate limit exceeded. `Retry-After` (seconds) tells you when to retry. Reads, feedback, and push writes are keyed per IP; create/update/delete are keyed per wallet+IP; deposit/withdraw/claim calldata is keyed per strategy+IP.
500Vault data is temporarily unavailable.
OpenAPI source

This page is based on operation listVaults in the Earn OpenAPI 3.1 specification.