{"openapi":"3.1.0","info":{"title":"FX Volatility API","version":"1.0.0","description":"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.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/fxvolatility-api","description":"oanor gateway"}],"tags":[{"name":"Volatility"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/currency":{"get":{"operationId":"get_v1_currency","tags":["Volatility"],"summary":"One currency volatility profile","description":"","parameters":[{"name":"code","in":"query","required":true,"description":"3-letter currency code","schema":{"type":"string"},"example":"TRY"},{"name":"period","in":"query","required":false,"description":"1m | 3m | 6m | 1y","schema":{"type":"string"},"example":"6m"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"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},{"currency":"AUD","annualized_vol_pct":8.51},{"currency":"USD","annualized_vol_pct":1.51},{"currency":"PHP","annualized_vol_pct":6.38},{"currency":"MXN","annualized_vol_pct":8.11},{"currency":"CAD","annualized_vol_pct":4.49},{"currency":"IDR","annualized_vol_pct":4.13},{"currency":"MYR","annualized_vol_pct":5.75},{"currency":"PLN","annualized_vol_pct":8.11},{"currency":"CHF","annualized_vol_pct":7.24},{"currency":"RON","annualized_vol_pct":6.58},{"currency":"CNY","annualized_vol_pct":2.64},{"currency":"ISK","annualized_vol_pct":6.53},{"currency":"GBP","annualized_vol_pct":6.45},{"currency":"CZK","annualized_vol_pct":7},{"currency":"SGD","annualized_vol_pct":3.8},{"currency":"DKK","annualized_vol_pct":5.85},{"currency":"EUR","annualized_vol_pct":5.85}],"avg_annualized_vol_pct":7.11},"meta":{"timestamp":"2026-06-09T03:03:41.203Z","request_id":"cfaab5d8-18bc-48a0-ac02-14450d3f1faa"},"status":"ok","message":"Currency volatility retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/pair":{"get":{"operationId":"get_v1_pair","tags":["Volatility"],"summary":"Realised annualised volatility for a pair","description":"","parameters":[{"name":"base","in":"query","required":true,"description":"Base currency","schema":{"type":"string"},"example":"EUR"},{"name":"quote","in":"query","required":true,"description":"Quote currency","schema":{"type":"string"},"example":"USD"},{"name":"period","in":"query","required":false,"description":"1m | 3m | 6m | 1y","schema":{"type":"string"},"example":"3m"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"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}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/volatility":{"get":{"operationId":"get_v1_volatility","tags":["Volatility"],"summary":"Rank currencies by average volatility","description":"","parameters":[{"name":"period","in":"query","required":false,"description":"1m | 3m | 6m | 1y","schema":{"type":"string"},"example":"3m"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"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":11,"currency":"HKD","avg_annualized_vol_pct":7.9},{"rank":12,"currency":"USD","avg_annualized_vol_pct":7.89},{"rank":13,"currency":"NZD","avg_annualized_vol_pct":7.86},{"rank":14,"currency":"AUD","avg_annualized_vol_pct":7.61},{"rank":15,"currency":"TRY","avg_annualized_vol_pct":7.52},{"rank":16,"currency":"RON","avg_annualized_vol_pct":7.36},{"rank":17,"currency":"MXN","avg_annualized_vol_pct":7.33},{"rank":18,"currency":"CAD","avg_annualized_vol_pct":7.18},{"rank":19,"currency":"IDR","avg_annualized_vol_pct":7.15},{"rank":20,"currency":"PHP","avg_annualized_vol_pct":7.13},{"rank":21,"currency":"MYR","avg_annualized_vol_pct":6.96},{"rank":22,"currency":"CNY","avg_annualized_vol_pct":6.62},{"rank":23,"currency":"CHF","avg_annualized_vol_pct":6.38},{"rank":24,"currency":"PLN","avg_annualized_vol_pct":6.34},{"rank":25,"currency":"ISK","avg_annualized_vol_pct":6.31},{"rank":26,"currency":"GBP","avg_annualized_vol_pct":6.04},{"rank":27,"currency":"CZK","avg_annualized_vol_pct":5.94},{"rank":28,"currency":"SGD","avg_annualized_vol_pct":5.79},{"rank":29,"currency":"DKK","avg_annualized_vol_pct":5.57},{"rank":30,"currency":"EUR","avg_annualized_vol_pct":5.57}],"to_date":"2026-06-08","from_date":"2026-03-06","observations":64},"meta":{"timestamp":"2026-06-09T03:03:41.448Z","request_id":"d2068f5e-927b-4062-8bb7-398129d724bd"},"status":"ok","message":"FX volatility retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service metadata","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"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}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":300,"rps_limit":3,"hard_limit":true},{"slug":"trader","name":"Trader","price_cents_month":900,"monthly_call_quota":11000,"rps_limit":10,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2500,"monthly_call_quota":55000,"rps_limit":25,"hard_limit":true},{"slug":"business","name":"Business","price_cents_month":5800,"monthly_call_quota":280000,"rps_limit":45,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/fxvolatility-api"}