# Cross-Asset Tail Risk API
> Ranks the major markets by how brutal their bad days are, computed live from Yahoo Finance daily closes — no key, nothing stored. Volatility and the Sharpe ratio assume returns are symmetric and well-behaved, but the losses that actually blow up a book live in the left tail — the rare, deep down-days a standard-deviation number smooths away. This API measures that tail directly. For each market it returns Value-at-Risk (the daily loss not exceeded on 95% / 99% of days, both the historical percentile and the normal-distribution parametric estimate), the Conditional VaR / Expected Shortfall (the average loss on the worst days, beyond VaR — how bad the bad days really are), and the shape of the return distribution: skewness (negative = crash-prone, a long left tail) and excess kurtosis (high = fat-tailed, outlier-prone). The asset endpoint returns one instrument's full tail-risk profile; the screener endpoint ranks the cross-asset universe (equities, sectors, commodities, bonds, FX and crypto; filterable by class) from the most tail-risky to the safest. This is the cross-asset distribution-tail / VaR-CVaR cut — distinct from the bring-your-own-series risk-metrics engine, the crypto-only coin risk scorecard, the drawdown-pain (Ulcer) screener and the volatility APIs. It is the left tail, measured across the whole book.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/tailrisk-api/..."
```

## Pricing
- **Free** (Free) — 640 calls/Mo, 2 req/s
- **Starter** ($12/Mo) — 14,700 calls/Mo, 6 req/s
- **Pro** ($37/Mo) — 81,000 calls/Mo, 16 req/s
- **Mega** ($84/Mo) — 466,000 calls/Mo, 40 req/s

## Endpoints

### Screener

#### `GET /v1/screener` — Rank the universe by tail-risk metric

**Parameters:**
- `metric` (query, optional, string) — cvar, var, kurtosis or skew Example: `cvar`
- `confidence` (query, optional, string) — Confidence level: 95 or 99 Example: `95`
- `window` (query, optional, string) — Lookback in trading days (60-1000) Example: `252`
- `class` (query, optional, string) — equity, sector, commodity, bond, fx, crypto or all Example: `all`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tailrisk-api/v1/screener?metric=cvar&confidence=95&window=252&class=all"
```

**Response:**
```json
{
    "data": {
        "note": "Ranked by cvar over window_days of daily returns at 95% confidence. VaR = daily loss not exceeded on 95% of days; CVaR (expected shortfall) = average loss on the worst 5% of days. Negative skew = crash-prone; high excess kurtosis = fat-tailed. Losses are reported as positive percentages. Read fresh per call, nothing cached.",
        "class": "all",
        "count": 20,
        "metric": "cvar",
        "safest": {
            "symbol": "HYG",
            "cvar_pct": 0.62
        },
        "source": "Yahoo Finance",
        "results": [
            {
                "name": "Silver",
                "rank": 1,
                "class": "commodity",
                "symbol": "SLV",
                "cvar_pct": 9.7,
                "skewness": -2.184,
                "available": true,
                "observations": 252,
                "var_hist_pct": 4.89,
                "confidence_pct": 95,
                "excess_kurtosis": 13.926,
                "var_parametric_pct": 5.88,
                "daily_volatility_pct": 3.77
            },
            {
                "name": "Ethereum",
                "rank": 2,
                "class": "crypto",
                "symbol": "ETH-USD",
                "cvar_pct": 8.53,
                "skewness": -0.002,
                "available": true,
                "observations": 252,
                "var_hist_pct": 5.49,
                "confidence_pct": 95,
                "excess_kurtosis": 2.564,
    
…(truncated, see openapi.json for full schema)
```

### Asset

#### `GET /v1/asset` — Full tail-risk profile of one instrument

**Parameters:**
- `symbol` (query, required, string) — Universe symbol Example: `SPY`
- `confidence` (query, optional, string) — Confidence level: 95 or 99 Example: `95`
- `window` (query, optional, string) — Lookback in trading days (60-1000) Example: `252`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tailrisk-api/v1/asset?symbol=SPY&confidence=95&window=252"
```

**Response:**
```json
{
    "data": {
        "name": "S&P 500",
        "note": "VaR is the daily loss not exceeded on 95% of days (historical percentile and normal parametric); CVaR is the average loss on the worst 5% of days. skewness < 0 means a long left tail (crash-prone); excess kurtosis > 0 means fatter tails than a normal distribution. Read fresh per call, nothing cached.",
        "class": "equity",
        "reads": {
            "cvar": "contained tail risk",
            "skew": "crash-prone (long left tail)",
            "kurtosis": "fat-tailed"
        },
        "source": "Yahoo Finance",
        "symbol": "SPY",
        "cvar_pct": 1.8,
        "skewness": -0.324,
        "window_days": 252,
        "observations": 252,
        "var_hist_pct": 1.35,
        "confidence_pct": 95,
        "excess_kurtosis": 1.526,
        "var_parametric_pct": 1.19,
        "daily_volatility_pct": 0.78
    },
    "meta": {
        "timestamp": "2026-06-12T10:34:47.026Z",
        "request_id": "8616273f-73e2-40c7-b055-1cfb6d146380"
    },
    "status": "ok",
    "message": "Asset tail risk retrieved successfully",
    "success": true
}
```

### Universe

#### `GET /v1/universe` — The cross-asset universe and its classes

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tailrisk-api/v1/universe"
```

**Response:**
```json
{
    "data": {
        "note": "The cross-asset universe the screener ranks. Pass class= to a screener call to rank within one class.",
        "count": 20,
        "assets": [
            {
                "name": "S&P 500",
                "class": "equity",
                "symbol": "SPY"
            },
            {
                "name": "Nasdaq 100",
                "class": "equity",
                "symbol": "QQQ"
            },
            {
                "name": "US Small Caps",
                "class": "equity",
                "symbol": "IWM"
            },
            {
                "name": "Developed ex-US",
                "class": "equity",
                "symbol": "EFA"
            },
            {
                "name": "Emerging Markets",
                "class": "equity",
                "symbol": "EEM"
            },
            {
                "name": "Technology",
                "class": "sector",
                "symbol": "XLK"
            },
            {
                "name": "Financials",
                "class": "sector",
                "symbol": "XLF"
            },
            {
                "name": "Energy",
                "class": "sector",
                "symbol": "XLE"
            },
            {
                "name": "Health Care",
                "class": "sector",
                "symbol": "XLV"
            },
            {
                "name": "Utilities",
                "class": "sector",
                "symbo
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tailrisk-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "metric is cvar (default), var, kurtosis or skew. confidence is 95 (default) or 99. window is 60-1000 trading days (default 252). class filters to equity/sector/commodity/bond/fx/crypto (default all). Losses are reported as positive percentages. Read fresh per call, nothing cached.",
        "source": "Yahoo Finance daily closes, live",
        "classes": [
            "equity",
            "sector",
            "commodity",
            "bond",
            "fx",
            "crypto"
        ],
        "metrics": [
            "cvar",
            "var",
            "kurtosis",
            "skew"
        ],
        "service": "tailrisk-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/asset": "Full tail-risk profile of one instrument (symbol=SPY, confidence=95, window=252).",
            "GET /v1/screener": "Rank the universe by tail-risk metric (metric=cvar, confidence=95, window=252, class=all).",
            "GET /v1/universe": "The cross-asset universe and its classes."
        },
        "description": "Cross-asset tail risk — ranks the major markets by how brutal their bad days are, live from Yahoo Finance daily closes (no key, nothing stored). For each market it returns Value-at-Risk (historical and parametric, 95%/99%), Conditional VaR / Expected Shortfall (average loss on the worst days), and the return-distribution shape: skewness (crash-proneness) and excess kurtosis (fat tails). asset re
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/tailrisk-api
OpenAPI spec: https://www.oanor.com/api/tailrisk-api/openapi.json
