curl --request GET \
--url https://api.vaults.fyi/beta/svm/detailed-vaults \
--header 'x-api-key: <api-key>'import requests
url = "https://api.vaults.fyi/beta/svm/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/beta/svm/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/beta/svm/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/beta/svm/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/beta/svm/detailed-vaults")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vaults.fyi/beta/svm/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": [
{
"address": "<string>",
"asset": {
"address": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetLogo": "<string>"
},
"name": "<string>",
"tvl": {
"usd": "<string>",
"native": "<string>"
},
"apy": {
"1day": {
"base": 123,
"reward": 123,
"total": 123
},
"7day": {
"base": 123,
"reward": 123,
"total": 123
},
"30day": {
"base": 123,
"reward": 123,
"total": 123
}
},
"protocol": {
"protocolId": "<string>",
"name": "<string>",
"product": "<string>",
"version": "<string>",
"protocolLogo": "<string>"
},
"curator": {
"name": "<string>",
"description": "<string>",
"websiteUrl": "<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 SVM detailed vaults
Retrieves a filtered list of SVM vaults with detailed information including address (vault account public key), name, protocol, curator, TVL, and APY details. APY filter inputs and response values use v2 decimal semantics.
curl --request GET \
--url https://api.vaults.fyi/beta/svm/detailed-vaults \
--header 'x-api-key: <api-key>'import requests
url = "https://api.vaults.fyi/beta/svm/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/beta/svm/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/beta/svm/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/beta/svm/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/beta/svm/detailed-vaults")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vaults.fyi/beta/svm/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": [
{
"address": "<string>",
"asset": {
"address": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetLogo": "<string>"
},
"name": "<string>",
"tvl": {
"usd": "<string>",
"native": "<string>"
},
"apy": {
"1day": {
"base": 123,
"reward": 123,
"total": 123
},
"7day": {
"base": 123,
"reward": 123,
"total": 123
},
"30day": {
"base": 123,
"reward": 123,
"total": 123
}
},
"protocol": {
"protocolId": "<string>",
"name": "<string>",
"product": "<string>",
"version": "<string>",
"protocolLogo": "<string>"
},
"curator": {
"name": "<string>",
"description": "<string>",
"websiteUrl": "<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 <= 5000Include only vaults with an asset of provided symbol(ticker)
1Assets 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.
1Asset SPL token mint account public keys to include.
^[1-9A-HJ-NP-Za-km-z]{32,44}$Asset SPL token mint account public keys to exclude. The parameter is ignored if "allowedAssetMints" is specified.
^[1-9A-HJ-NP-Za-km-z]{32,44}$Minimum TVL in USD of the vaults to be included
x >= 0Maximum TVL in USD of the vaults to be included
Minimum APY in v2 decimal units.
Maximum APY in v2 decimal units.
Field to sort by
tvl, apy1day, apy7day, apy30day Sort order, either asc or desc. Ascending is default.
asc, desc 
