Skip to content
GET /v1/ranking

Multi-asset universe ranked by volatility, Sharpe, return or drawdown

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/assetvolatility-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/assetvolatility-api/v1/ranking" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/assetvolatility-api/v1/ranking", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/assetvolatility-api/v1/ranking");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/assetvolatility-api/v1/ranking",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "data": {
        "note": "Annualised realised volatility (std of daily log returns x sqrt(252)), trailing return, a Sharpe-style risk-adjusted return (annualised return / annualised volatility, zero risk-free) and the worst drawdown over window_days. sort by volatility (calmest first), sharpe, return or drawdown. Not financial advice.",
        "class": "commodities",
        "assets": [
            {
                "key": "oil",
                "class": "commodities",
                "label": "Crude Oil",
                "vol_regime": "high volatility",
                "observations": 90,
                "sharpe_ratio": 5.65,
                "ann_return_pct": 349.3,
                "max_drawdown_pct": -16.48,
                "total_return_pct": 71.02,
                "ann_volatility_pct": 61.8
            },
            {
                "key": "broad_commodities",
                "class": "commodities",
                "label": "Broad Commodities",
                "vol_regime": "elevated volatility",
                "observations": 90,
                "sharpe_ratio": 3.23,
                "ann_return_pct": 76.7,
                "max_drawdown_pct": -8.96,
                "total_return_pct": 22.56,
                "ann_volatility_pct": 23.8
            },
            {
                "key": "silver",
                "class": "commodities",
                "label": "Silver",
                "vol_regime": "high volatility",
                "observations": 90,
                "sharpe_ratio": -0.56,
                "ann_return_pct": -38.7,
                "max_drawdown_pct": -32.16,
                "total_return_pct": -16.04,
                "ann_volatility_pct": 69.2
            },
            {
                "key": "natural_gas",
                "class": "commodities",
                "label": "Natural Gas",
                "vol_regime": "high volatility",
                "observations": 90,
                "sharpe_ratio": -0.7,
                "ann_return_pct": -30.4,
                "max_drawdown_pct": -24.93,
                "total_return_pct": -12.13,
                "ann_volatility_pct": 43.4
            },
            {
                "key": "gold",
                "class": "commodities",
                "label": "Gold",
                "vol_regime": "elevated volatility",
                "observations": 90,
                "sharpe_ratio": -0.78,
                "ann_return_pct": -24.5,
                "max_drawdown_pct": -23.56,
                "total_return_pct": -9.55,
                "ann_volatility_pct": 31.5
            }
        ],
        "source": "Yahoo Finance",
        "calmest": [
            {
                "key": "broad_commodities",
                "ann_volatility_pct": 23.8
            },
            {
                "key": "gold",
                "ann_volatility_pct": 31.5
            },
            {
                "key": "natural_gas",
                "ann_volatility_pct": 43.4
            }
        ],
    
…