Get vault risk metrics

Get one vault's return and risk metrics.

GEThttps://api-v2.syncrone.fi/api/catalog/advanced-vaults/{network}/{vaultId}/risk

Return and risk metrics on the vault's daily share price (after fees, before rewards) over a window: total return, CAGR, volatility, Sharpe, Sortino, max drawdown and Calmar, with the drawdown series. Returns, volatility and drawdowns are fractions; ratios are plain numbers and null when undefined.

← Vaults API overview

Try it#

GET/advanced-vaults/mainnet/0x98C23E9d8f34FEFb1B7BD6a91B7FF122F4e16F5c/risk?window=1m

Kept in this browser tab only, and sent to Syncrone with each request. No key yet? Create one ↗

Example vaults
Parameters
Response
Paste an API key, then press Send. The parameters are pre-filled with a real example.
curl
curl "https://api-v2.syncrone.fi/api/catalog/advanced-vaults/mainnet/0x98C23E9d8f34FEFb1B7BD6a91B7FF122F4e16F5c/risk?window=1m" \
  -H "x-api-key: $SYNCRONE_API_KEY"

Example#

A real response to the pre-filled Try it request, recorded from Syncrone data. Values move with every indexing run.

200GET /advanced-vaults/mainnet/0x98C23E9d8f34FEFb1B7BD6a91B7FF122F4e16F5c/risk?window=1m
{
  "address": "0x98C23E9d8f34FEFb1B7BD6a91B7FF122F4e16F5c",
  "network": {
    "name": "mainnet",
    "chainId": 1,
    "networkCaip": "eip155:1"
  },
  "benchmarkId": "edca4b94-02b1-4a32-ba7c-deb246e4b524",
  "slug": "aave-v3-eth-usdc",
  "window": "1m",
  "fromTimestamp": 1789344000,
  "toTimestamp": 1791936000,
  "sharePriceUnit": "asset",
  "riskFreeRate": 0,
  "riskFreeRateSource": "default",
  "sortinoMar": 0,
  "sortinoMarSource": "default",
  "totalReturn": 0.0033438283408870895,
  "cagr": 0.04145146249376275,
  "volatility": 0.0001482756818167143,
  "sharpe": 273.933305312654,
  "sortino": null,
  "maxDrawdown": 0,
  "calmar": null,
  "observedDays": 31,
  "returnDays": 30,
  "elapsedDays": 30,
  "drawdown": [
    {
      "timestamp": 1789344000,
      "drawdown": 0
    },
    {
      "timestamp": 1789430400,
      "drawdown": 0
    },
    {
      "timestamp": 1789516800,
      "drawdown": 0
    },
    {
      "timestamp": 1789603200,
      "drawdown": 0
    },
    {
      "timestamp": 1789689600,
      "drawdown": 0
    },
    {
      "timestamp": 1789776000,
      "drawdown": 0
    },
    {
      "timestamp": 1789862400,
      "drawdown": 0
    },
    {
      "timestamp": 1789948800,
      "drawdown": 0
    },
    {
      "timestamp": 1790035200,
      "drawdown": 0
    },
    {
      "timestamp": 1790121600,
      "drawdown": 0
    },
    {
      "timestamp": 1790208000,
      "drawdown": 0
    },
    {
      "timestamp": 1790294400,
      "drawdown": 0
    },
    {
      "timestamp": 1790380800,
      "drawdown": 0
    },
    {
      "timestamp": 1790467200,
      "drawdown": 0
    },
    {
      "timestamp": 1790553600,
      "drawdown": 0
    },
    {
      "timestamp": 1790640000,
      "drawdown": 0
    },
    {
      "timestamp": 1790726400,
      "drawdown": 0
    },
    {
      "timestamp": 1790812800,
      "drawdown": 0
    },
    {
      "timestamp": 1790899200,
      "drawdown": 0
    },
    {
      "timestamp": 1790985600,
      "drawdown": 0
    },
    {
      "timestamp": 1791072000,
      "drawdown": 0
    },
    {
      "timestamp": 1791158400,
      "drawdown": 0
    },
    {
      "timestamp": 1791244800,
      "drawdown": 0
    },
    {
      "timestamp": 1791331200,
      "drawdown": 0
    },
    {
      "timestamp": 1791417600,
      "drawdown": 0
    },
    {
      "timestamp": 1791504000,
      "drawdown": 0
    },
    {
      "timestamp": 1791590400,
      "drawdown": 0
    },
    {
      "timestamp": 1791676800,
      "drawdown": 0
    },
    {
      "timestamp": 1791763200,
      "drawdown": 0
    },
    {
      "timestamp": 1791849600,
      "drawdown": 0
    },
    {
      "timestamp": 1791936000,
      "drawdown": 0
    }
  ],
  "dataQuality": {
    "excludedDays": [],
    "anomalies": [],
    "thresholds": {
      "spikeMinMove": 0.02,
      "spikeRevertDays": 3,
      "spikeRevertShare": 0.1,
      "jumpMinMove": 0.1
    }
  }
}

Parameters#

NameTypeDescription
networkpathrequiredstring

Network name (mainnet, base, arbitrum…), CAIP-2 id (eip155:1) or chain id (1).

vaultIdpathrequiredstring

Vault address (the share or receipt token, any case). A vault listed without an address is addressed by its slug.

windowquerystring1m | 3m | 6m | 1y | max

Trailing window. Use fromTimestamp/toTimestamp instead for a custom range.

default: max
fromTimestampqueryinteger

Start of the period, Unix seconds, inclusive.

default: 0
toTimestampqueryinteger

End of the period, Unix seconds, inclusive. Defaults to now.

riskFreeRatequerynumber

Annual risk-free rate as a fraction (0.04 = 4%), for Sharpe.

default: 0
sortinoMarquerynumber

Annual minimum acceptable return as a fraction, for Sortino.

default: 0
spikeMinMovequerynumber

One-day move (fraction) from which a move undone within spikeRevertDays is flagged as a spike.

default: 0.02
jumpMinMovequerynumber

One-day move (fraction) from which a move that is not undone is flagged as a jump.

default: 0.1

Response#

200 returns JSON with these fields. APY values are fractions (0.04 = 4%); timestamps are Unix seconds.

FieldTypeDescription
addressstring

The vault address.

networkobject

name, chainId, networkCaip.

benchmarkIdstring

Syncrone id of the vault's series.

slugstring

Readable id of the vault's series.

windowstring

The window used.

riskFreeRatenumber

The rate used for Sharpe.

riskFreeRateSourcestring

request, or default (0).

sortinoMarnumber

The minimum acceptable return used for Sortino.

sortinoMarSourcestring

request, or default (0).

returnDaysinteger

Consecutive-day returns used for volatility and the ratios.

elapsedDaysinteger

Calendar days from the first to the last price.

fromTimestampinteger | null

First day in the window, unix seconds.

toTimestampinteger | null

Last day in the window, unix seconds.

sharePriceUnitstring | null

asset, or usd for a published USD NAV.

totalReturnnumber | null

Share price change over the window.

cagrnumber | null

Annualized return.

volatilitynumber | null

Annualized volatility of daily returns.

sharpenumber | null

Sharpe ratio at riskFreeRate.

sortinonumber | null

Sortino ratio at sortinoMar; null with no downside.

maxDrawdownnumber | null

Worst peak-to-trough drop, as a negative fraction.

calmarnumber | null

CAGR over the absolute max drawdown.

observedDaysinteger

Days with a share price in the window.

drawdown[]object

timestamp, drawdown for each day under its running peak.

dataQualityobject

excludedDays[] (days read at a block that did not advance), anomalies[] (timestamp, dailyReturn, kind: spike or jump; kept in the metrics) and the thresholds used.

Errors#

StatusMeaning
400Invalid query or path parameter, or unknown network.
401Missing or rejected API key.
404No vault with this id on this network.
429Too many requests from the docs playground. Wait a minute.
500The service failed.

Error bodies carry error and, for invalid parameters, details.