Zum Hauptinhalt springen

List vaults – Earn API

Aktualisiert am
Jul 31, 2026

Übersicht

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.

Parameter

ParameterLocationTypErforderlichBeschreibung
KettenAbfrageZeichenketteNeinCSV of chain ids. Defaults to all enabled chains.
windowAbfrageGanzzahlNeinMinutes for the headline `apy`, snapped to the nearest precomputed column. Defaults to 5. The seven windowed APYs are always returned in `windows`.
minTvlAbfragenumber (decimal)NeinMinimum vault TVL in decimal dollars. Defaults to 0.
minLiquidityAbfragenumber (decimal)NeinMinimum withdrawable liquidity in decimal dollars. Defaults to 0.
includeCoveredAbfragebooleschNeinOpt 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>'

Antwort

FeldTypErforderlichBeschreibung
modestring (browse)JaIdentifies the response as an unranked vault browse list.
windowGanzzahlJaThe applied headline-APY window (minutes) after snapping.
vaultsarray<object>JaApproved vaults that match the supplied filters.
vaults[].chainIdGanzzahlJaNumeric identifier of the chain where the vault is deployed.
vaults[].vaultAddressZeichenketteJaLowercase address of the ERC-4626 vault share token.
vaults[].namestring | nullJaHuman-readable name of the vault.
vaults[].apynumber (decimal) | nullJaHeadline APY percentage for the applied `window`, rounded to two decimal places. Returns null when there is insufficient history.
vaults[].windowsObjektJaAPY percentages for the seven precomputed lookback windows. A null value means there is insufficient history for that window.
vaults[].windows.m5number (decimal) | nullJaAPY percentage over the five-minute lookback window.
vaults[].windows.m10number (decimal) | nullJaAPY percentage over the ten-minute lookback window.
vaults[].windows.m30number (decimal) | nullJaAPY percentage over the 30-minute lookback window.
vaults[].windows.h1number (decimal) | nullJaAPY percentage over the one-hour lookback window.
vaults[].windows.h2number (decimal) | nullJaAPY percentage over the two-hour lookback window.
vaults[].windows.h4number (decimal) | nullJaAPY percentage over the four-hour lookback window.
vaults[].windows.h6number (decimal) | nullJaAPY percentage over the six-hour lookback window.
vaults[].tvlUsdinteger | nullJaVault TVL in whole US dollars, rounded to the nearest dollar.
vaults[].availableLiquidityUsdinteger | nullJaWithdrawable liquidity in whole US dollars, rounded to the nearest dollar.
vaults[].maxDepositUsdinteger | nullJaDeposit capacity in whole US dollars. Null means the vault is uncapped.
vaults[].atCapacitybooleschJaTrue when the vault has no remaining deposit capacity.
vaults[].latestAtstring (date-time)JaISO 8601 timestamp of the latest vault snapshot.
vaults[].coveredbooleschNeinPresent 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

StatusBeschreibung
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.