{"openapi":"3.1.0","info":{"title":"Technical Indicators API","version":"1.0.0","description":"Live technical-analysis indicators that traders and trading bots run on a price series, computed on demand from the closes you pass in — no key, nothing cached. Get Wilder's RSI; the MACD line, signal line and histogram; the upper, middle and lower Bollinger Bands with bandwidth and %B; and simple or exponential moving averages. Every value is computed live from your input and works for any market — forex, stocks, crypto or commodities. A technical-indicator engine, distinct from raw price feeds and from pivot/fibonacci level tools: it turns a series of prices into the momentum, trend and volatility indicators a strategy acts on.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/technicals-api","description":"oanor gateway"}],"tags":[{"name":"Technicals"}],"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/bollinger":{"get":{"operationId":"get_v1_bollinger","tags":["Technicals"],"summary":"Bollinger Bands with bandwidth and %B","description":"","parameters":[{"name":"prices","in":"query","required":true,"description":"Comma-separated close prices, oldest first","schema":{"type":"string"},"example":"100.00,101.63,103.18,104.54,105.65,106.44,106.88,106.95,106.66,106.02,105.09,103.94,102.65,101.30,100.00,98.82,97.86,97.18,96.83,96.85,97.25,98.00,99.07,100.40,101.92,103.55,105.19,106.75,108.14,109.29,110.13,110.62,110.74,110.49,109.89,109.00,107.87,106.59,105.25,103.93"},{"name":"period","in":"query","required":false,"description":"SMA period (default 20)","schema":{"type":"string"},"example":"20"},{"name":"stddev","in":"query","required":false,"description":"Standard-deviation multiplier (default 2)","schema":{"type":"string"},"example":"2"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"lower":97.085915,"upper":114.321085,"middle":105.7035,"period":20,"source":"TECHNICALS","stddev":2,"bandwidth":0.163052,"indicator":"bollinger","percent_b":0.3971,"lower_series":[95.358334,94.936218,94.523246,94.223272,94.08938,94.120519,94.260257,94.403919,94.426464,94.241541,93.852356,93.353421,92.874945,92.536361,92.426882,92.598685,93.06891,93.819155,94.798605,95.925629,97.085915],"upper_series":[109.488666,109.635782,109.685754,109.574728,109.29462,108.890481,108.461743,108.149081,108.106536,108.439459,109.155644,110.158579,111.305055,112.452639,113.481118,114.298315,114.84609,115.096845,115.058395,114.773371,114.321085],"middle_series":[102.4235,102.286,102.1045,101.899,101.692,101.5055,101.361,101.2765,101.2665,101.3405,101.504,101.756,102.09,102.4945,102.954,103.4485,103.9575,104.458,104.9285,105.3495,105.7035]},"meta":{"timestamp":"2026-06-10T22:56:27.531Z","request_id":"ceb8cae3-e758-4628-a3da-f18c325a139b"},"status":"ok","message":"Bollinger Bands 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/ma":{"get":{"operationId":"get_v1_ma","tags":["Technicals"],"summary":"Simple or exponential moving average","description":"","parameters":[{"name":"prices","in":"query","required":true,"description":"Comma-separated close prices, oldest first","schema":{"type":"string"},"example":"100.00,101.63,103.18,104.54,105.65,106.44,106.88,106.95,106.66,106.02,105.09,103.94,102.65,101.30,100.00,98.82,97.86,97.18,96.83,96.85,97.25,98.00,99.07,100.40,101.92,103.55,105.19,106.75,108.14,109.29,110.13,110.62,110.74,110.49,109.89,109.00,107.87,106.59,105.25,103.93"},{"name":"period","in":"query","required":false,"description":"Period (default 20)","schema":{"type":"string"},"example":"20"},{"name":"type","in":"query","required":false,"description":"sma or ema (default sma)","schema":{"type":"string"},"example":"ema"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"type":"ema","count":21,"value":106.003828,"period":20,"series":[100.777607,100.441644,100.209107,100.100621,100.129133,100.299692,100.609245,101.045507,101.588792,102.212717,102.886744,103.576578,104.24738,104.865725,105.40137,105.828858,106.130872,106.296503,106.324455,106.222126,106.003828],"source":"TECHNICALS","indicator":"ma"},"meta":{"timestamp":"2026-06-10T22:56:27.634Z","request_id":"ed8f0f0a-352b-4862-8706-d54533068228"},"status":"ok","message":"Moving average 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/macd":{"get":{"operationId":"get_v1_macd","tags":["Technicals"],"summary":"MACD line, signal line and histogram","description":"","parameters":[{"name":"prices","in":"query","required":true,"description":"Comma-separated close prices, oldest first","schema":{"type":"string"},"example":"100.00,101.63,103.18,104.54,105.65,106.44,106.88,106.95,106.66,106.02,105.09,103.94,102.65,101.30,100.00,98.82,97.86,97.18,96.83,96.85,97.25,98.00,99.07,100.40,101.92,103.55,105.19,106.75,108.14,109.29,110.13,110.62,110.74,110.49,109.89,109.00,107.87,106.59,105.25,103.93"},{"name":"fast","in":"query","required":false,"description":"Fast EMA period (default 12)","schema":{"type":"string"},"example":"12"},{"name":"slow","in":"query","required":false,"description":"Slow EMA period (default 26)","schema":{"type":"string"},"example":"26"},{"name":"signal","in":"query","required":false,"description":"Signal EMA period (default 9)","schema":{"type":"string"},"example":"9"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"fast":12,"macd":1.286794,"slow":26,"trend":"bearish","signal":1.752961,"source":"TECHNICALS","histogram":-0.466167,"indicator":"macd","macd_series":[0,0.130028,0.354068,0.634052,0.934734,1.222679,1.469443,1.651615,1.752386,1.760314,1.672277,1.492506,1.231746,0.905717,0.536256,0.14655,-0.237026,-0.589093,-0.886135,-1.107167,-1.235814,-1.262694,-1.184007,-1.002768,-0.728091,-0.374562,0.037514,0.484382,0.939856,1.377736,1.772112,2.09999,2.342515,2.485889,2.522027,2.450602,2.276573,2.012173,1.675197,1.286794],"signal_period":9,"histogram_series":[0,0.104023,0.26245,0.433947,0.587703,0.700519,0.757826,0.751998,0.682216,0.552115,0.371262,0.153193,-0.086054,-0.329666,-0.559301,-0.759206,-0.914226,-1.013034,-1.048061,-1.015275,-0.915137,-0.753613,-0.539941,-0.286962,-0.009828,0.274961,0.549629,0.797198,1.002138,1.152014,1.237112,1.251992,1.195614,1.07119,0.885863,0.65155,0.382016,0.094093,-0.194306,-0.466167]},"meta":{"timestamp":"2026-06-10T22:56:27.710Z","request_id":"ce7cfa51-a6c7-4417-a6af-1e40a6758a06"},"status":"ok","message":"MACD 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":["Technicals"],"summary":"Service metadata and endpoint list","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Pass prices as a comma-separated list, oldest first (prices=44.34,44.09,44.15,...).","source":"Computed in-process from caller-supplied prices (no upstream)","service":"technicals-api","endpoints":{"GET /v1/ma":"Simple or exponential moving average (prices=..., period=20, type=sma|ema).","GET /v1/rsi":"Wilder RSI (prices=..., period=14).","GET /v1/macd":"MACD line, signal and histogram (prices=..., fast=12, slow=26, signal=9).","GET /v1/meta":"This document.","GET /v1/bollinger":"Bollinger Bands + bandwidth & %B (prices=..., period=20, stddev=2)."},"description":"Live technical-analysis indicators computed on demand from the price series you pass in. The rsi endpoint returns Wilder's Relative Strength Index; the macd endpoint returns the MACD line, signal line and histogram; the bollinger endpoint returns the upper, middle and lower Bollinger Bands with bandwidth and %B; the ma endpoint returns a simple or exponential moving average. Computed live from your input, nothing stored — works for any market (forex, stocks, crypto, commodities). A technical-indicator engine, distinct from raw price feeds and from pivot/fibonacci level tools.","upstream_status":"ok"},"meta":{"timestamp":"2026-06-10T22:56:27.794Z","request_id":"4ebcb8ba-862e-4e50-b296-068e4cb2c588"},"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"}}}},"/v1/rsi":{"get":{"operationId":"get_v1_rsi","tags":["Technicals"],"summary":"Wilder Relative Strength Index","description":"","parameters":[{"name":"prices","in":"query","required":true,"description":"Comma-separated close prices, oldest first","schema":{"type":"string"},"example":"100.00,101.63,103.18,104.54,105.65,106.44,106.88,106.95,106.66,106.02,105.09,103.94,102.65,101.30,100.00,98.82,97.86,97.18,96.83,96.85,97.25,98.00,99.07,100.40,101.92,103.55,105.19,106.75,108.14,109.29,110.13,110.62,110.74,110.49,109.89,109.00,107.87,106.59,105.25,103.93"},{"name":"period","in":"query","required":false,"description":"Lookback period (default 14)","schema":{"type":"string"},"example":"14"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":26,"value":46.0368,"period":14,"series":[50,45.8118,42.6796,40.5639,39.4792,39.5786,41.6436,45.4109,50.3368,55.689,60.8782,65.5389,69.4786,72.6784,75.1756,77.045,78.3288,79.0643,79.25,77.7034,73.9722,68.7022,62.6039,56.4873,50.8826,46.0368],"signal":"neutral","source":"TECHNICALS","indicator":"rsi"},"meta":{"timestamp":"2026-06-10T22:56:27.881Z","request_id":"bd492d73-bebe-411e-8dcd-b9c8e6719265"},"status":"ok","message":"RSI 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"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":4800,"rps_limit":3,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":675,"monthly_call_quota":105000,"rps_limit":10,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1900,"monthly_call_quota":500000,"rps_limit":25,"hard_limit":true},{"slug":"business","name":"Business","price_cents_month":4450,"monthly_call_quota":3050000,"rps_limit":55,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/technicals-api"}