Get vault risk metrics
Get one vault's return and risk metrics.
https://api-v2.syncrone.fi/api/catalog/advanced-vaults/{network}/{vaultId}/riskReturn 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.
Try it#
Example#
A real response to the pre-filled Try it request, recorded from Syncrone data. Values move with every indexing run.
GET /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#
| Name | Type | Description |
|---|---|---|
| networkpathrequired | string | Network name ( |
| vaultIdpathrequired | string | Vault address (the share or receipt token, any case). A vault listed without an address is addressed by its |
| windowquery | string1m | 3m | 6m | 1y | max | Trailing window. Use |
| fromTimestampquery | integer | Start of the period, Unix seconds, inclusive. |
| toTimestampquery | integer | End of the period, Unix seconds, inclusive. Defaults to now. |
| riskFreeRatequery | number | Annual risk-free rate as a fraction (0.04 = 4%), for Sharpe. |
| sortinoMarquery | number | Annual minimum acceptable return as a fraction, for Sortino. |
| spikeMinMovequery | number | One-day move (fraction) from which a move undone within |
| jumpMinMovequery | number | One-day move (fraction) from which a move that is not undone is flagged as a jump. |
Response#
200 returns JSON with these fields. APY values are fractions (0.04 = 4%); timestamps are Unix seconds.
| Field | Type | Description |
|---|---|---|
| address | string | The vault address. |
| network | object |
|
| benchmarkId | string | Syncrone id of the vault's series. |
| slug | string | Readable id of the vault's series. |
| window | string | The window used. |
| riskFreeRate | number | The rate used for Sharpe. |
| riskFreeRateSource | string |
|
| sortinoMar | number | The minimum acceptable return used for Sortino. |
| sortinoMarSource | string |
|
| returnDays | integer | Consecutive-day returns used for volatility and the ratios. |
| elapsedDays | integer | Calendar days from the first to the last price. |
| fromTimestamp | integer | null | First day in the window, unix seconds. |
| toTimestamp | integer | null | Last day in the window, unix seconds. |
| sharePriceUnit | string | null |
|
| totalReturn | number | null | Share price change over the window. |
| cagr | number | null | Annualized return. |
| volatility | number | null | Annualized volatility of daily returns. |
| sharpe | number | null | Sharpe ratio at |
| sortino | number | null | Sortino ratio at |
| maxDrawdown | number | null | Worst peak-to-trough drop, as a negative fraction. |
| calmar | number | null | CAGR over the absolute max drawdown. |
| observedDays | integer | Days with a share price in the window. |
| drawdown[] | object |
|
| dataQuality | object |
|
Errors#
| Status | Meaning |
|---|---|
| 400 | Invalid query or path parameter, or unknown network. |
| 401 | Missing or rejected API key. |
| 404 | No vault with this id on this network. |
| 429 | Too many requests from the docs playground. Wait a minute. |
| 500 | The service failed. |
Error bodies carry error and, for invalid parameters, details.