Skip to main content
POST
/
alpha
/
advanced-analytics
/
{network}
/
{vaultId}
Get advanced vault analytics
curl --request POST \
  --url https://api.vaults.fyi/alpha/advanced-analytics/{network}/{vaultId} \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "select": {
    "maxDrawdown": true,
    "detailedVault": true,
    "withdrawalPauseRatio": true,
    "composition": true
  }
}
'
import requests

url = "https://api.vaults.fyi/alpha/advanced-analytics/{network}/{vaultId}"

payload = { "select": {
"maxDrawdown": True,
"detailedVault": True,
"withdrawalPauseRatio": True,
"composition": True
} }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
select: {
maxDrawdown: true,
detailedVault: true,
withdrawalPauseRatio: true,
composition: true
}
})
};

fetch('https://api.vaults.fyi/alpha/advanced-analytics/{network}/{vaultId}', 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/alpha/advanced-analytics/{network}/{vaultId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'select' => [
'maxDrawdown' => true,
'detailedVault' => true,
'withdrawalPauseRatio' => true,
'composition' => true
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.vaults.fyi/alpha/advanced-analytics/{network}/{vaultId}"

payload := strings.NewReader("{\n \"select\": {\n \"maxDrawdown\": true,\n \"detailedVault\": true,\n \"withdrawalPauseRatio\": true,\n \"composition\": true\n }\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.vaults.fyi/alpha/advanced-analytics/{network}/{vaultId}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"select\": {\n \"maxDrawdown\": true,\n \"detailedVault\": true,\n \"withdrawalPauseRatio\": true,\n \"composition\": true\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.vaults.fyi/alpha/advanced-analytics/{network}/{vaultId}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"select\": {\n \"maxDrawdown\": true,\n \"detailedVault\": true,\n \"withdrawalPauseRatio\": true,\n \"composition\": true\n }\n}"

response = http.request(request)
puts response.read_body
{
  "vaultId": "<string>",
  "network": "<string>",
  "maxDrawdown": {
    "mdd30days": 123,
    "mdd90days": 123,
    "mdd365days": 123
  },
  "detailedVault": {
    "vaultId": "<string>",
    "address": "<string>",
    "name": "<string>",
    "network": {
      "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": {
      "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>",
        "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>",
          "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": {
      "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>"
      }
    }
  },
  "withdrawalPauseRatio": 123,
  "composition": [
    {
      "id": "<string>",
      "supplyAssets": "<string>",
      "allocation": 123,
      "name": "<string>"
    }
  ]
}
{
"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

x-api-key
string
header
required

Path Parameters

network
enum<string>
required

Include only vaults with provided network(name or CAIP)

Available options:
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
vaultId
string
required

Vault id of the vault for which the data will be returned

Body

application/json

Request body for the advanced-analytics list endpoint. Use select to opt into per-item analytics sections.

Request body for the advanced-analytics list endpoint. Use select to opt into per-item analytics sections.

select
object

Choose which analytics sections to include in the response. Pricing scales with the selection.

Response

Default Response

vaultId
string
required
network
string
required
maxDrawdown
object

Max drawdown metrics for vault price per share

detailedVault
object
withdrawalPauseRatio
number | null

Ratio (0-1) of time the vault withdrawals were paused over the last 2 years. Null when the protocol has no withdrawal-pause event source or the tracked event has not yet been backfilled.

composition
object[] | null

List of investments the vault is allocated to, with allocation percentages.