# FX Volatility API
> A live forex volatility analytic as an API, computed from European Central Bank daily reference rates. For any currency pair it returns the realised annualised volatility — the standard deviation of daily log returns scaled to a year — along with daily-return statistics; for the whole basket it ranks 30+ currencies by their average pairwise volatility, showing who is calm and who is choppy. The risk and position-sizing input forex, options and trading desks need. Look up a pair, rank the basket, or get one currency's volatility profile. Live, no key. Distinct from raw exchange-rate and currency-strength APIs — this is the realised-volatility (risk) measure.

## 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/fxvolatility-api/..."
```

## Pricing
- **Free** (Free) — 300 calls/Mo, 3 req/s
- **Trader** ($9/Mo) — 11,000 calls/Mo, 10 req/s
- **Pro** ($25/Mo) — 55,000 calls/Mo, 25 req/s
- **Business** ($58/Mo) — 280,000 calls/Mo, 45 req/s

## Endpoints

### Volatility

#### `GET /v1/currency` — One currency volatility profile

**Parameters:**
- `code` (query, required, string) — 3-letter currency code Example: `TRY`
- `period` (query, optional, string) — 1m | 3m | 6m | 1y Example: `6m`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/fxvolatility-api/v1/currency?code=TRY&period=6m"
```

**Response:**
```json
{
    "data": {
        "of": 30,
        "rank": 17,
        "period": "6m",
        "to_date": "2026-06-08",
        "currency": "TRY",
        "from_date": "2025-12-05",
        "vs_currencies": [
            {
                "currency": "HUF",
                "annualized_vol_pct": 13.52
            },
            {
                "currency": "ZAR",
                "annualized_vol_pct": 12.44
            },
            {
                "currency": "BRL",
                "annualized_vol_pct": 10.21
            },
            {
                "currency": "ILS",
                "annualized_vol_pct": 9.2
            },
            {
                "currency": "KRW",
                "annualized_vol_pct": 9.77
            },
            {
                "currency": "NOK",
                "annualized_vol_pct": 9.01
            },
            {
                "currency": "JPY",
                "annualized_vol_pct": 7.76
            },
            {
                "currency": "INR",
                "annualized_vol_pct": 6
            },
            {
                "currency": "SEK",
                "annualized_vol_pct": 10.33
            },
            {
                "currency": "THB",
                "annualized_vol_pct": 8.95
            },
            {
                "currency": "HKD",
                "annualized_vol_pct": 1.76
            },
            {
                "currency": "NZD",
                "annualized_vol_pct": 8.44
            },
            {
  
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/pair` — Realised annualised volatility for a pair

**Parameters:**
- `base` (query, required, string) — Base currency Example: `EUR`
- `quote` (query, required, string) — Quote currency Example: `USD`
- `period` (query, optional, string) — 1m | 3m | 6m | 1y Example: `3m`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/fxvolatility-api/v1/pair?base=EUR&quote=USD&period=3m"
```

**Response:**
```json
{
    "data": {
        "base": "EUR",
        "pair": "EURUSD",
        "quote": "USD",
        "period": "3m",
        "to_date": "2026-06-08",
        "from_date": "2026-03-06",
        "observations": 63,
        "annualized_vol_pct": 6.24,
        "daily_return_mean_pct": -0.003,
        "daily_return_stdev_pct": 0.393
    },
    "meta": {
        "timestamp": "2026-06-09T03:03:41.297Z",
        "request_id": "0c288e08-aea5-462e-a699-a6bcab4002cf"
    },
    "status": "ok",
    "message": "Pair volatility retrieved successfully",
    "success": true
}
```

#### `GET /v1/volatility` — Rank currencies by average volatility

**Parameters:**
- `period` (query, optional, string) — 1m | 3m | 6m | 1y Example: `3m`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/fxvolatility-api/v1/volatility?period=3m"
```

**Response:**
```json
{
    "data": {
        "count": 30,
        "period": "3m",
        "ranking": [
            {
                "rank": 1,
                "currency": "HUF",
                "avg_annualized_vol_pct": 12.48
            },
            {
                "rank": 2,
                "currency": "ZAR",
                "avg_annualized_vol_pct": 11.01
            },
            {
                "rank": 3,
                "currency": "NOK",
                "avg_annualized_vol_pct": 9.52
            },
            {
                "rank": 4,
                "currency": "BRL",
                "avg_annualized_vol_pct": 9.49
            },
            {
                "rank": 5,
                "currency": "ILS",
                "avg_annualized_vol_pct": 9.03
            },
            {
                "rank": 6,
                "currency": "KRW",
                "avg_annualized_vol_pct": 9.01
            },
            {
                "rank": 7,
                "currency": "SEK",
                "avg_annualized_vol_pct": 8.96
            },
            {
                "rank": 8,
                "currency": "INR",
                "avg_annualized_vol_pct": 8.09
            },
            {
                "rank": 9,
                "currency": "JPY",
                "avg_annualized_vol_pct": 7.98
            },
            {
                "rank": 10,
                "currency": "THB",
                "avg_annualized_vol_pct": 7.95
            },
            {
                "rank
…(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/fxvolatility-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "method": "annualised stdev of daily log returns, 252 trading days",
        "source": "ECB daily reference rates via Frankfurter (live)",
        "periods": [
            "1m",
            "3m",
            "6m",
            "1y"
        ],
        "service": "fxvolatility-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/pair": "Realised annualised volatility + return stats for a pair (base=EUR&quote=USD, period=).",
            "GET /v1/currency": "One currency's average volatility, rank and per-pair vols (code=TRY, period=).",
            "GET /v1/volatility": "Rank currencies by average pairwise annualised volatility (period=1m|3m|6m|1y)."
        },
        "description": "Live FX realised-volatility analytic from ECB reference rates (Frankfurter): annualised volatility (stdev of daily log returns) for any currency pair, plus a basket ranking of currencies by average pairwise volatility. Live, no key. Distinct from raw-rate and currency-strength APIs.",
        "currencies_live": 30
    },
    "meta": {
        "timestamp": "2026-06-09T03:03:41.563Z",
        "request_id": "9d4435cd-0a43-4469-a7ce-f735e50c9189"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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