curl --request GET \
--url https://api.vaults.fyi/v2/detailed-vaults \
--header 'x-api-key: <api-key>'import requests
url = "https://api.vaults.fyi/v2/detailed-vaults"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.vaults.fyi/v2/detailed-vaults', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vaults.fyi/v2/detailed-vaults",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vaults.fyi/v2/detailed-vaults"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.vaults.fyi/v2/detailed-vaults")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vaults.fyi/v2/detailed-vaults")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"itemsOnPage": 123,
"data": [
{
"vaultId": "<string>",
"address": "<string>",
"name": "<string>",
"network": {
"name": "mainnet",
"chainId": 123,
"networkCaip": "<string>"
},
"asset": {
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>"
},
"isTransactional": true,
"isAppFeatured": true,
"protocol": {
"protocolId": "<string>",
"name": "<string>",
"displayName": "<string>",
"product": "<string>",
"version": "<string>",
"protocolUrl": "<string>",
"description": "<string>",
"protocolLogo": "<string>"
},
"tags": [
"<string>"
],
"holdersData": {
"totalCount": 123,
"totalBalance": "<string>",
"topHolders": [
{
"address": "<string>",
"lpTokenBalance": "<string>"
}
]
},
"apy": {
"1day": {
"base": 123,
"reward": 123,
"total": 123
},
"7day": {
"base": 123,
"reward": 123,
"total": 123
},
"30day": {
"base": 123,
"reward": 123,
"total": 123
},
"1hour": {
"base": 123,
"reward": 123,
"total": 123
}
},
"tvl": {
"usd": "<string>",
"native": "<string>"
},
"lastUpdateTimestamp": 123,
"creationData": {
"deploymentTimestamp": 123
},
"rewards": [
{
"asset": {
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>"
},
"apy": {
"1hour": 123,
"1day": 123,
"7day": 123,
"30day": 123
}
}
],
"isCorrupted": true,
"userEventsIndexed": true,
"warnings": [
"<string>"
],
"flags": [
{
"content": "<string>",
"severity": "info",
"endDate": 123,
"resolution": "<string>"
}
],
"lendUrl": "<string>",
"description": "<string>",
"protocolVaultUrl": "<string>",
"score": {
"vaultScore": 123,
"vaultTvlScore": 123,
"protocolTvlScore": 123,
"holderScore": 123,
"networkScore": 123,
"assetScore": 123,
"totalScorePenalty": 123,
"penaltyComponents": [
{
"content": "<string>",
"severity": "info",
"endDate": 123,
"type": "flag",
"value": 123,
"resolution": "<string>"
}
]
},
"additionalIncentives": "<string>",
"curator": {
"name": "<string>",
"description": "<string>",
"websiteUrl": "<string>"
},
"lpToken": {
"address": "<string>",
"tokenCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123
},
"remainingCapacity": "<string>",
"maxCapacity": "<string>",
"childrenVaults": [
{
"vaultId": "<string>",
"address": "<string>",
"asset": {
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>"
},
"lpToken": {
"address": "<string>",
"tokenCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123
},
"additionalAssets": [
{
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>"
}
]
}
],
"additionalAssets": [
{
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>"
}
],
"transactionalProperties": {
"depositStepsType": "instant",
"redeemStepsType": "instant",
"rewardsSupported": true
},
"fees": {
"performanceFee": 123,
"managementFee": 123,
"withdrawalFee": 123,
"depositFee": 123
},
"apyComposite": {
"totalApy": {
"1day": {
"base": 123,
"reward": 123,
"total": 123
},
"7day": {
"base": 123,
"reward": 123,
"total": 123
},
"30day": {
"base": 123,
"reward": 123,
"total": 123
},
"1hour": {
"base": 123,
"reward": 123,
"total": 123
}
},
"intrinsicApy": {
"1day": {
"base": 123,
"reward": 123,
"total": 123
},
"7day": {
"base": 123,
"reward": 123,
"total": 123
},
"30day": {
"base": 123,
"reward": 123,
"total": 123
},
"1hour": {
"base": 123,
"reward": 123,
"total": 123
}
},
"asset": {
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>"
},
"vault": {
"vaultId": "<string>",
"address": "<string>"
}
}
}
],
"errors": {
"unsupportedNetworks": [
"<string>"
],
"unsupportedAssets": [
"<string>"
],
"unsupportedProtocols": [
"<string>"
]
},
"nextPage": 123
}{
"statusCode": 123,
"error": "Bad Request",
"message": "<string>",
"errorId": "<string>"
}{
"error": "Unauthorized",
"message": "An API key is required to access this service. Sign up at https://portal.vaults.fyi/signup to generate a key. We offer a Pay-As-You-Go plan so you only pay for what you use, with no commitments.",
"errorId": "<string>"
}{
"x402Version": 123,
"resource": {
"url": "<string>",
"description": "<string>",
"mimeType": "<string>",
"serviceName": "<string>",
"tags": [
"<string>"
],
"iconUrl": "<string>"
},
"error": "<string>",
"accepts": [
{
"scheme": "exact",
"network": "<string>",
"amount": "<string>",
"payTo": "<string>",
"maxTimeoutSeconds": 123,
"asset": "<string>",
"extra": {
"name": "<string>",
"version": "<string>"
}
}
],
"extensions": {}
}{
"error": "Forbidden",
"message": "This API key has exhausted its available credits. To resume service, please visit https://portal.vaults.fyi/signup to top-up your credits",
"errorId": "<string>"
}{
"error": "Not Found",
"message": "<string>"
}{
"message": "<string>",
"errorId": "<string>"
}{
"statusCode": 123,
"error": "Unprocessable Entity",
"message": "<string>",
"errorId": "<string>"
}{
"error": "Internal Server Error",
"message": "<string>",
"errorId": "<string>"
}{
"statusCode": 123,
"error": "Service Unavailable",
"message": "<string>",
"errorId": "<string>"
}List detailed vaults
Retrieves a comprehensive list of vaults with detailed performance metrics including APY, TVL, rewards, risk scores, and protocol information based on specified filters.
curl --request GET \
--url https://api.vaults.fyi/v2/detailed-vaults \
--header 'x-api-key: <api-key>'import requests
url = "https://api.vaults.fyi/v2/detailed-vaults"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.vaults.fyi/v2/detailed-vaults', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vaults.fyi/v2/detailed-vaults",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vaults.fyi/v2/detailed-vaults"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.vaults.fyi/v2/detailed-vaults")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vaults.fyi/v2/detailed-vaults")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"itemsOnPage": 123,
"data": [
{
"vaultId": "<string>",
"address": "<string>",
"name": "<string>",
"network": {
"name": "mainnet",
"chainId": 123,
"networkCaip": "<string>"
},
"asset": {
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>"
},
"isTransactional": true,
"isAppFeatured": true,
"protocol": {
"protocolId": "<string>",
"name": "<string>",
"displayName": "<string>",
"product": "<string>",
"version": "<string>",
"protocolUrl": "<string>",
"description": "<string>",
"protocolLogo": "<string>"
},
"tags": [
"<string>"
],
"holdersData": {
"totalCount": 123,
"totalBalance": "<string>",
"topHolders": [
{
"address": "<string>",
"lpTokenBalance": "<string>"
}
]
},
"apy": {
"1day": {
"base": 123,
"reward": 123,
"total": 123
},
"7day": {
"base": 123,
"reward": 123,
"total": 123
},
"30day": {
"base": 123,
"reward": 123,
"total": 123
},
"1hour": {
"base": 123,
"reward": 123,
"total": 123
}
},
"tvl": {
"usd": "<string>",
"native": "<string>"
},
"lastUpdateTimestamp": 123,
"creationData": {
"deploymentTimestamp": 123
},
"rewards": [
{
"asset": {
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>"
},
"apy": {
"1hour": 123,
"1day": 123,
"7day": 123,
"30day": 123
}
}
],
"isCorrupted": true,
"userEventsIndexed": true,
"warnings": [
"<string>"
],
"flags": [
{
"content": "<string>",
"severity": "info",
"endDate": 123,
"resolution": "<string>"
}
],
"lendUrl": "<string>",
"description": "<string>",
"protocolVaultUrl": "<string>",
"score": {
"vaultScore": 123,
"vaultTvlScore": 123,
"protocolTvlScore": 123,
"holderScore": 123,
"networkScore": 123,
"assetScore": 123,
"totalScorePenalty": 123,
"penaltyComponents": [
{
"content": "<string>",
"severity": "info",
"endDate": 123,
"type": "flag",
"value": 123,
"resolution": "<string>"
}
]
},
"additionalIncentives": "<string>",
"curator": {
"name": "<string>",
"description": "<string>",
"websiteUrl": "<string>"
},
"lpToken": {
"address": "<string>",
"tokenCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123
},
"remainingCapacity": "<string>",
"maxCapacity": "<string>",
"childrenVaults": [
{
"vaultId": "<string>",
"address": "<string>",
"asset": {
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>"
},
"lpToken": {
"address": "<string>",
"tokenCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123
},
"additionalAssets": [
{
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>"
}
]
}
],
"additionalAssets": [
{
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>"
}
],
"transactionalProperties": {
"depositStepsType": "instant",
"redeemStepsType": "instant",
"rewardsSupported": true
},
"fees": {
"performanceFee": 123,
"managementFee": 123,
"withdrawalFee": 123,
"depositFee": 123
},
"apyComposite": {
"totalApy": {
"1day": {
"base": 123,
"reward": 123,
"total": 123
},
"7day": {
"base": 123,
"reward": 123,
"total": 123
},
"30day": {
"base": 123,
"reward": 123,
"total": 123
},
"1hour": {
"base": 123,
"reward": 123,
"total": 123
}
},
"intrinsicApy": {
"1day": {
"base": 123,
"reward": 123,
"total": 123
},
"7day": {
"base": 123,
"reward": 123,
"total": 123
},
"30day": {
"base": 123,
"reward": 123,
"total": 123
},
"1hour": {
"base": 123,
"reward": 123,
"total": 123
}
},
"asset": {
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>"
},
"vault": {
"vaultId": "<string>",
"address": "<string>"
}
}
}
],
"errors": {
"unsupportedNetworks": [
"<string>"
],
"unsupportedAssets": [
"<string>"
],
"unsupportedProtocols": [
"<string>"
]
},
"nextPage": 123
}{
"statusCode": 123,
"error": "Bad Request",
"message": "<string>",
"errorId": "<string>"
}{
"error": "Unauthorized",
"message": "An API key is required to access this service. Sign up at https://portal.vaults.fyi/signup to generate a key. We offer a Pay-As-You-Go plan so you only pay for what you use, with no commitments.",
"errorId": "<string>"
}{
"x402Version": 123,
"resource": {
"url": "<string>",
"description": "<string>",
"mimeType": "<string>",
"serviceName": "<string>",
"tags": [
"<string>"
],
"iconUrl": "<string>"
},
"error": "<string>",
"accepts": [
{
"scheme": "exact",
"network": "<string>",
"amount": "<string>",
"payTo": "<string>",
"maxTimeoutSeconds": 123,
"asset": "<string>",
"extra": {
"name": "<string>",
"version": "<string>"
}
}
],
"extensions": {}
}{
"error": "Forbidden",
"message": "This API key has exhausted its available credits. To resume service, please visit https://portal.vaults.fyi/signup to top-up your credits",
"errorId": "<string>"
}{
"error": "Not Found",
"message": "<string>"
}{
"message": "<string>",
"errorId": "<string>"
}{
"statusCode": 123,
"error": "Unprocessable Entity",
"message": "<string>",
"errorId": "<string>"
}{
"error": "Internal Server Error",
"message": "<string>",
"errorId": "<string>"
}{
"statusCode": 123,
"error": "Service Unavailable",
"message": "<string>",
"errorId": "<string>"
}Authorizations
Query Parameters
Page number (starting from 0)
x >= 0Number of items per page
0 < x <= 5000Assets to be included by symbol(ticker).
1Assets to be excluded by symbol(ticker). The parameter is ignored if "allowedAssets" is specified.
1Protocols to be included by protocol ID or name.
1Protocols to be excluded by protocol ID or name. The parameter is ignored if "allowedProtocols" is specified.
1Minimum TVL in USD of the vaults to be included
x >= 0Minimum vault score required for a vault to be included
x >= 0Include only vaults that are supported in the transactional interface.
Include only vaults that are featured in app.vaults.fyi
Allow inclusion of corrupted vaults.
Whether to include vaults with warnings. Defaults to true.
Networks to be included (name or CAIP).
Include only vaults with provided network(name or CAIP)
mainnet, optimism, arbitrum, polygon, gnosis, base, unichain, swellchain, celo, worldchain, berachain, ink, bsc, hyperliquid, plasma, avalanche, katana, linea, mega-eth, monad, etherlink, robinhood, eip155:1, eip155:10, eip155:42161, eip155:137, eip155:100, eip155:8453, eip155:130, eip155:1923, eip155:42220, eip155:480, eip155:80094, eip155:57073, eip155:56, eip155:999, eip155:9745, eip155:43114, eip155:747474, eip155:59144, eip155:4326, eip155:143, eip155:42793, eip155:4663 Networks to be excluded (name or CAIP). The parameter is ignored if "allowedNetworks" is specified.
Include only vaults with provided network(name or CAIP)
mainnet, optimism, arbitrum, polygon, gnosis, base, unichain, swellchain, celo, worldchain, berachain, ink, bsc, hyperliquid, plasma, avalanche, katana, linea, mega-eth, monad, etherlink, robinhood, eip155:1, eip155:10, eip155:42161, eip155:137, eip155:100, eip155:8453, eip155:130, eip155:1923, eip155:42220, eip155:480, eip155:80094, eip155:57073, eip155:56, eip155:999, eip155:9745, eip155:43114, eip155:747474, eip155:59144, eip155:4326, eip155:143, eip155:42793, eip155:4663 Maximum TVL in USD of the vaults to be included
Maximum APY (in decimal) of the vaults to be included
Minimum APY (in decimal) of the vaults to be included
Tags to be included.
1Curators to be included.
1Sort order, either asc or desc. Ascending is default.
asc, desc Field to sort by
tvl, apy1day, apy7day, apy30day 
