Overview
Return a vault’s historical metrics over time, bucketed at a configurable interval. Every endpoint is keyed by chain ID plus vault address and backed by Turtle’s on-chain vault-metrics indexer. There are four series, plus a combined endpoint:GET /v2/opportunities/{chainId}/{vaultAddress}/historical/aprfor APR over timeGET /v2/opportunities/{chainId}/{vaultAddress}/historical/apyfor APY over timeGET /v2/opportunities/{chainId}/{vaultAddress}/historical/share-pricefor share price over timeGET /v2/opportunities/{chainId}/{vaultAddress}/historical/tvlfor TVL over timeGET /v2/opportunities/{chainId}/{vaultAddress}/historicalfor the combined series
Availability: the APR, APY, and share price series are live and returning data. Historical TVL (and the combined
/historical endpoint, which includes it) is still coming online. These currently return an empty data array for most vaults while the TVL backfill completes.Shared parameters
All historical endpoints take the same path and query parameters. Path ParametersEVM chain ID (e.g.
1 for Ethereum, 8453 for Base).0x-prefixed, 40-hex vault contract address.
Inclusive lower bound of the range, RFC3339 / ISO-8601 (e.g.
2025-06-11T00:00:00Z).Inclusive upper bound of the range, RFC3339 / ISO-8601.
Point spacing (granularity) in seconds. Defaults to
86400 (1 day).APY/APR trailing window (lookback) in seconds, independent of
step. Defaults to 604800 (7 days). Applies to the apr and apy series.APR over time
Ordered list of APR buckets.
Bucket representative time, RFC3339 / ISO-8601.
On-chain block number of the snapshot chosen as the bucket representative.
APR for the bucket, expressed as a decimal (e.g.
0.0824 = 8.24%). base is the underlying yield, reward is incentive APR, and total is their sum.APY over time
apy object (base / reward / total) in place of apr.
Share price over time
The vault’s underlying token.
null when the vault has not been indexed yet, or its token is not registered.Share price for the bucket.
native is denominated in the base asset; usd is the USD value, or null when no USD price was available for that bucket.TVL over time
Historical TVL is coming online. The endpoint is live and accepts the shared parameters, but currently returns an empty
data array ({ "baseAsset": null, "data": [] }) for most vaults while the TVL backfill completes.TVL for the bucket.
native is denominated in the base asset; usd is the USD value, or null when no USD price was available for that bucket.
