Skip to main content

Get vault – Earn API

Updated on
Jul 31, 2026

Overview

The latest snapshot for one approved vault: the seven windowed APYs, a headline apy at the requested window, TVL, liquidity and capacity. Same row shape as one element of the browse list. An unknown or delisted vault is a 404.

include=liveLiquidity adds a fresh on-chain read of the vault's withdrawable liquidity (liveLiquidity). This is a live number and can differ from the snapshot availableLiquidityUsd. If the on-chain read fails, the snapshot detail still returns 200 with liveLiquidity: null and liveLiquidityError: "rpc_error".

Endpoint

GET https://earn-api.quicknode.dev/functions/v1/api/v1/vaults/{chainId}/{address}

Authorization

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

Parameters

ParameterLocationTypeRequiredDescription
chainIdpathintegerYesChain id the vault lives on.
addresspathstringYesVault (ERC-4626 share token) address.
windowqueryintegerNoMinutes for the headline `apy` (1–360), snapped to the nearest precomputed column. Defaults to 5. The seven windows are returned regardless.
includequerystring (liveLiquidity)NoCSV of extras. Supported value — `liveLiquidity`.

Example request

curl --location 'https://earn-api.quicknode.dev/functions/v1/api/v1/vaults/8453/0x1deefabee758aabdc29a542b24ca3b75afd56765' \
--header 'Accept: application/json' \
--header 'apikey: <EARN_PUBLIC_API_KEY>'

Response

FieldTypeRequiredDescription
chainIdintegerYesNumeric identifier of the chain where the vault is deployed.
vaultAddressstringYesLowercased vault (ERC-4626 share token) address.
namestring | nullYesHuman-readable vault name.
apynumber | nullYesHeadline APY (%) at the requested `window`, 2dp. Null means insufficient snapshot history at that window (the vault is still listed).
windowsobjectYesThe seven precomputed APY windows for a vault, as percentages (2dp). A null window means insufficient snapshot history for that lookback (e.g. a freshly launched vault), NOT zero.
windows.m5number | nullYesAPY percentage over the five-minute lookback window.
windows.m10number | nullYesAPY percentage over the ten-minute lookback window.
windows.m30number | nullYesAPY percentage over the 30-minute lookback window.
windows.h1number | nullYesAPY percentage over the one-hour lookback window.
windows.h2number | nullYesAPY percentage over the two-hour lookback window.
windows.h4number | nullYesAPY percentage over the four-hour lookback window.
windows.h6number | nullYesAPY percentage over the six-hour lookback window.
tvlUsdinteger | nullYesVault TVL in whole dollars (rounded), or null.
availableLiquidityUsdinteger | nullYesWithdrawable liquidity in whole dollars, or null.
maxDepositUsdinteger | nullYesDeposit cap in whole dollars; null means uncapped.
atCapacitybooleanYesTrue when the vault's max deposit is 0 (full).
latestAtstring (date-time)YesISO 8601 timestamp of the latest vault snapshot.
coveredbooleanNoPresent and `true` ONLY when this vault is an OpenCover covered fee wrapper. OMITTED entirely for plain vaults (not `false`), so uncovered rows stay byte-identical; treat absence as uncovered.
underlyingVaultobjectNoPresent ONLY when the vault is a covered fee wrapper: the wrapped (underlying) Morpho vault it deposits into. Omitted for plain vaults.
underlyingVault.addressstringWhen presentLowercase address of the underlying Morpho vault.
underlyingVault.namestring | nullWhen presentHuman-readable name of the underlying Morpho vault.
liveLiquidityobject | nullNoFresh on-chain liquidity data returned only when `include=liveLiquidity` is supplied.
liveLiquidity.morphoVersionstring (v1 | v2 | v2_with_v1_adapter)When presentMorpho vault version used for the live liquidity calculation.
liveLiquidity.withdrawableUsdcnumberWhen presentUSDC that can currently be withdrawn through a standard redemption, in decimal dollars.
liveLiquidity.forceDeallocatableUsdcnumberWhen presentUpper liquidity bound if every Morpho v2 adapter were force-deallocated, in decimal dollars. Earn does not use this penalty path.
liveLiquidityErrorstring (rpc_error)NoPresent when the live read failed (`liveLiquidity` is then null).

Example response

{
"chainId": 8453,
"vaultAddress": "0x1deefabee758aabdc29a542b24ca3b75afd56765",
"name": "Gauntlet USDC Frontier",
"apy": 5.35,
"windows": {
"m5": 5.35,
"m10": 5.3,
"m30": 5.31,
"h1": 5.31,
"h2": 5.31,
"h4": 5.31,
"h6": 5.31
},
"tvlUsd": 2960444,
"availableLiquidityUsd": 744240,
"maxDepositUsd": null,
"atCapacity": false,
"latestAt": "2026-07-31T13:00:33.653+00:00"
}

HTTP responses

StatusDescription
200The vault's latest snapshot.
400Bad path (chain id not a positive integer, or address not a 0x address) or a bad `window`.
404No such approved vault (unknown or delisted).
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.
500Internal server error.
OpenAPI source

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

Share this doc