{"openapi":"3.1.0","info":{"title":"ATR & Volatility Stops API","version":"1.0.0","description":"Live Average True Range and volatility-stop analytics that traders run to size stops to market noise, computed on demand from the OHLC candles you pass in — no key, no cache, nothing stored. The atr endpoint returns the Average True Range using Wilder's smoothing, its value as a percent of price, and the latest true range — the single number that tells you how much an instrument typically moves. The stops endpoint returns ATR-based stop levels: the Chandelier Exit for a long and for a short (highest high or lowest low offset by a multiple of ATR) and, if you pass an entry price, an ATR trailing stop with its distance in money and percent. The keltner endpoint returns the Keltner Channel — an EMA mid-line with ATR-scaled upper and lower bands — and where the last price sits. Because true range needs the full high, low and close, this is a different tool from closes-only indicator APIs and from single-coin volatility feeds: you supply the candles for any market — forex, stocks, crypto or commodities. Computed locally and deterministically, so it is instant and private. Ideal for stop placement, position sizing, breakout filters and risk dashboards. ATR uses Wilder's smoothing. Live, nothing stored. 3 compute endpoints. For closes-only indicators like RSI or MACD use a technical-indicators API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/atr-api","description":"oanor gateway"}],"tags":[{"name":"ATR"},{"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/atr":{"get":{"operationId":"get_v1_atr","tags":["ATR"],"summary":"Average True Range + ATR%","description":"","parameters":[{"name":"candles","in":"query","required":true,"description":"OHLC candles open:high:low:close, comma-separated oldest first","schema":{"type":"string"},"example":"100:102:99:101,101:104:100:103,103:105:101:102,102:104:100:101,101:103:99:100,100:103:99:102,102:105:101:104,104:106:102:103,103:105:101:104,104:107:103:106,106:108:104:105,105:107:103:104,104:106:102:105,105:108:104:107,107:109:105:106,106:108:104:107"},{"name":"period","in":"query","required":false,"description":"ATR period (default 14)","schema":{"type":"string"},"example":"14"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"atr":3.93841108,"method":"Wilder","period":14,"source":"ATR","atr_pct":3.6808,"candles":16,"last_close":107,"true_range_last":4},"meta":{"timestamp":"2026-06-11T07:49:15.174Z","request_id":"83f20bdb-ebbd-45b9-9fdd-cf23c61761e5"},"status":"ok","message":"ATR computed","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/keltner":{"get":{"operationId":"get_v1_keltner","tags":["ATR"],"summary":"Keltner Channel — EMA mid with ATR bands","description":"","parameters":[{"name":"candles","in":"query","required":true,"description":"OHLC candles open:high:low:close","schema":{"type":"string"},"example":"100:102:99:101,101:104:100:103,103:105:101:102,102:104:100:101,101:103:99:100,100:103:99:102,102:105:101:104,104:106:102:103,103:105:101:104,104:107:103:106,106:108:104:105,105:107:103:104,104:106:102:105,105:108:104:107,107:109:105:106,106:108:104:107"},{"name":"period","in":"query","required":false,"description":"Period (default 14)","schema":{"type":"string"},"example":"14"},{"name":"multiplier","in":"query","required":false,"description":"ATR multiplier (default 2)","schema":{"type":"string"},"example":"2"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"atr":3.93841108,"note":"Keltner Channel = EMA(close, period) +/- multiplier x ATR. Mid is the EMA; bands are ATR-scaled.","lower":96.62104721,"upper":112.37469153,"width":15.75364431,"middle":104.49786937,"period":14,"source":"ATR","candles":16,"position":"inside","last_close":107,"multiplier":2},"meta":{"timestamp":"2026-06-11T07:49:15.254Z","request_id":"94e781b7-f40a-4b6f-a7fd-d8e987d72006"},"status":"ok","message":"Keltner channel computed","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/stops":{"get":{"operationId":"get_v1_stops","tags":["ATR"],"summary":"Chandelier Exit + ATR trailing stop","description":"","parameters":[{"name":"candles","in":"query","required":true,"description":"OHLC candles open:high:low:close","schema":{"type":"string"},"example":"100:102:99:101,101:104:100:103,103:105:101:102,102:104:100:101,101:103:99:100,100:103:99:102,102:105:101:104,104:106:102:103,103:105:101:104,104:107:103:106,106:108:104:105,105:107:103:104,104:106:102:105,105:108:104:107,107:109:105:106,106:108:104:107"},{"name":"period","in":"query","required":false,"description":"ATR period (default 14)","schema":{"type":"string"},"example":"14"},{"name":"multiplier","in":"query","required":false,"description":"ATR multiplier (default 3)","schema":{"type":"string"},"example":"3"},{"name":"entry","in":"query","required":false,"description":"Entry price for a trailing stop","schema":{"type":"string"},"example":"107"},{"name":"side","in":"query","required":false,"description":"long or short (default long)","schema":{"type":"string"},"example":"long"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"atr":3.93841108,"note":"Chandelier Exit long = highest high - multiplier x ATR; short = lowest low + multiplier x ATR. ATR via Wilder over `period`.","side":"long","entry":107,"period":14,"source":"ATR","candles":16,"last_close":107,"lowest_low":99,"multiplier":3,"highest_high":109,"stop_distance":11.81523324,"trailing_stop":95.18476676,"stop_distance_pct":11.0423,"chandelier_exit_long":97.18476676,"chandelier_exit_short":110.81523324},"meta":{"timestamp":"2026-06-11T07:49:15.323Z","request_id":"44a696e5-2cee-4e4a-be07-e4532e321bd1"},"status":"ok","message":"Stops computed","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":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"candles = open:high:low:close, comma-separated, oldest first. period defaults to 14; you need at least period+1 candles. multiplier defaults to 3 (stops) / 2 (keltner).","source":"Computed in-process from caller-supplied OHLC candles (no upstream)","service":"atr-api","endpoints":{"GET /v1/atr":"Average True Range + ATR% (candles=o:h:l:c,...&period=14).","GET /v1/meta":"This document.","GET /v1/stops":"Chandelier Exit + ATR trailing stop (candles=...&period=14&multiplier=3&entry=105&side=long).","GET /v1/keltner":"Keltner Channel — EMA mid with ATR bands (candles=...&period=14&multiplier=2)."},"description":"Live Average True Range and volatility-stop analytics computed on demand from OHLC candles. The atr endpoint returns the ATR (Wilder's smoothing), its value as a percent of price and the true-range series; the stops endpoint returns ATR-based stop levels — the Chandelier Exit for long and short and an ATR trailing stop from an entry price; the keltner endpoint returns the Keltner Channel (EMA mid-line with ATR bands). A volatility-and-stops engine that needs the full high/low/close, distinct from closes-only indicator tools and single-coin volatility feeds. Computed locally, nothing stored — works for forex, stocks, crypto or commodities.","upstream_status":"ok"},"meta":{"timestamp":"2026-06-11T07:49:15.394Z","request_id":"3fd154ed-f212-4bc1-9fbc-e6ae149273d7"},"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":4700,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":700,"monthly_call_quota":91500,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2020,"monthly_call_quota":475000,"rps_limit":18,"hard_limit":true},{"slug":"business","name":"Business","price_cents_month":4550,"monthly_call_quota":2910000,"rps_limit":45,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/atr-api"}