Skip to main content
Vaults.fyi delivers clean, standardized metrics so you can focus on analysis instead of data wrangling. You get normalized historical and real-time APY, TVL, utilization rates, and risk scores across 1,000+ vaults — sourced directly from onchain contracts and updated hourly.

What data is available

APY and yield breakdown

Access total APY split into base yield and reward token components. Compare net yields across protocols on a like-for-like basis.

Historical time series

Pull daily APY and TVL history for any vault. Build backtests, identify yield cycles, and track how protocols respond to market conditions.

Benchmark rates

Query the Vaults.fyi USD and ETH benchmark rates — aggregated risk-adjusted reference yields for stablecoin and ETH strategies.

Reputation scores

Each vault carries a reputation score based on longevity, TVL stability, yield volatility, and underlying asset health. Use it to filter out high-risk outliers.

Key endpoints for analysis

EndpointWhat it returns
GET /v2/detailed-vaultsCurrent APY, TVL, fees, rewards, and reputation score for all vaults. Filterable by asset, network, protocol.
GET /v2/historical/{network}/{vaultAddress}Daily APY and TVL time series for a specific vault.
GET /v2/benchmarks/{network}USD and ETH benchmark reference rates over time.
GET /v2/portfolio/positions/{userAddress}Wallet-level positions and flow data across DeFi.

Fetch historical vault data

import requests
import time

API_KEY = "your_api_key"
VAULT_ADDRESS = "0xBEEF..."
NETWORK = "mainnet"

to_ts = int(time.time())
from_ts = to_ts - 90 * 24 * 60 * 60  # 90 days

response = requests.get(
    f"https://api.vaults.fyi/v2/historical/{NETWORK}/{VAULT_ADDRESS}/apy",
    params={
        "fromTimestamp": from_ts,
        "toTimestamp": to_ts,
        "perPage": 100,
    },
    headers={"Authorization": f"Bearer {API_KEY}"},
)

data = response.json()
for entry in data["data"]:
    print(entry["timestamp"], entry["apy"]["total"])
The apy.total field is the net annualized yield. Use apy.base and apy.rewards to separate native protocol yield from token incentives.

Cross-protocol comparison

Because Vaults.fyi normalizes data across protocols, you can make direct comparisons that would otherwise require building per-protocol adapters. APY calculations follow a standardized methodology so the numbers mean the same thing regardless of the underlying protocol. Use cases this enables:
  • Benchmark analysis — compare a specific vault’s yield against the Vaults.fyi USD benchmark rate to assess relative performance
  • Protocol health monitoring — track TVL inflows and outflows across competing protocols over time
  • Risk-adjusted screening — filter vaults by reputation score to identify strategies worth tracking

Flows and position data

Beyond vault-level metrics, you can query wallet-level position data to analyze where capital is flowing across DeFi. This includes stablecoin, ETH, and ERC-20 positions held in yield strategies, along with estimated returns per position.
Push data directly into your analytics stack (Databricks, BigQuery, etc.) using the REST API on a scheduled basis. The API supports pagination for bulk historical pulls.

Interactive exploration

Explore the data without writing code using the analytics dashboard. It surfaces yield trends, protocol comparisons, and benchmark charts built on the same underlying API.
Need custom metrics, specific vault coverage, or higher rate limits? Contact us to discuss your data requirements.