Skip to main content

Base URL

https://api.vaults.fyi/v2

Authentication

Every request must include your API key as a header:
x-api-key: YOUR_API_KEY
All API keys have access to all endpoints. Rate limits depend on your plan — see Plans & Pricing, or contact support to increase your limit.

Networks

The API tracks vaults across 20+ EVM-compatible networks. Networks can be identified by name or CAIP-2 identifier:
NameChain IDCAIP-2
arbitrum42161eip155:42161
avalanche43114eip155:43114
base8453eip155:8453
berachain80094eip155:80094
bsc56eip155:56
celo42220eip155:42220
etherlink42793eip155:42793
gnosis100eip155:100
hyperliquid999eip155:999
ink57073eip155:57073
katana747474eip155:747474
linea59144eip155:59144
mainnet1eip155:1
mega-eth4326eip155:4326
monad143eip155:143
optimism10eip155:10
plasma9745eip155:9745
polygon137eip155:137
swellchain1923eip155:1923
unichain130eip155:130
worldchain480eip155:480
Use GET /v2/networks for the complete current list.

APY values

All APY fields are raw decimals. Multiply by 100 to display as a percentage:
// API returns: 0.0543
// Display as:  5.43%
const displayApy = (rawApy * 100).toFixed(2) + '%';

Pagination

All list endpoints use offset pagination with page (zero-indexed) and perPage:
GET /v2/detailed-vaults?page=0&perPage=50   # first page
GET /v2/detailed-vaults?page=1&perPage=50   # second page
The response includes nextPage — it is null when you are on the last page.

Error responses

StatusMeaning
400Invalid parameters
401Missing or invalid API key
403API key has exhausted available credits
404Resource not found
429Rate limit exceeded
500Internal server error
503Service temporarily unavailable
Error bodies follow this shape:
{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "Descriptive error message"
}
Some authentication errors omit statusCode; always key your handling off the HTTP status code first.

Quick start

Fetch the top 5 USDC vaults by 7-day APY on Ethereum mainnet:
curl -H "x-api-key: YOUR_API_KEY" \
  "https://api.vaults.fyi/v2/detailed-vaults\
?allowedAssets=USDC\
&allowedNetworks=mainnet\
&minTvl=1000000\
&sortBy=apy7day\
&sortOrder=desc\
&perPage=5"
Check a user’s idle assets and suggest vaults to deposit into:
# Step 1 — find idle assets
curl -H "x-api-key: YOUR_API_KEY" \
  "https://api.vaults.fyi/v2/portfolio/idle-assets/0xYourWallet"

# Step 2 — get ranked deposit suggestions
curl -H "x-api-key: YOUR_API_KEY" \
  "https://api.vaults.fyi/v2/portfolio/best-deposit-options/0xYourWallet\
?onlyTransactional=true&maxVaultsPerAsset=3"