{"openapi":"3.1.0","info":{"title":"Beta Screener API","version":"1.0.0","description":"Ranks a cross-asset universe by beta to a benchmark, so you can see at a glance which markets amplify the benchmark's moves and which dampen or hedge them, computed live from Yahoo Finance daily closes — no key, nothing stored. Beta is the single number that says how much an asset moves for each 1% the market moves: a beta of 1.3 rises ~1.3% when the benchmark rises 1% (and falls harder when it drops), a beta near 0 is decoupled, a negative beta moves against the market (a hedge). The screener endpoint ranks the 21-instrument universe (equities, sectors, commodities, bonds, crypto; filterable by class) by beta to a chosen benchmark (the S&P 500 by default), each with its correlation and R-squared so you know how reliable the beta is. The asset endpoint returns one instrument's full beta profile against the benchmark. The dispersion endpoint returns the spread of betas across the universe — the high-beta-minus-low-beta gap, the mean beta and the share of risk-on names — a read on how much the market is rewarding risk-taking right now. This is the systematic-risk / market-sensitivity ranking cut — distinct from a bring-your-own-series CAPM/beta calculator, the total-risk Sharpe/Sortino screener, the correlation matrix and the price APIs. It ranks live assets by how much market risk they carry.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/betadispersion-api","description":"oanor gateway"}],"tags":[{"name":"Screener"},{"name":"Asset"},{"name":"Dispersion"},{"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/screener":{"get":{"operationId":"get_v1_screener","tags":["Screener"],"summary":"Rank the universe by beta to a benchmark","description":"","parameters":[{"name":"benchmark","in":"query","required":false,"description":"Universe symbol used as benchmark","schema":{"type":"string"},"example":"SPY"},{"name":"window","in":"query","required":false,"description":"Lookback in trading days (60-756)","schema":{"type":"string"},"example":"252"},{"name":"class","in":"query","required":false,"description":"equity, sector, commodity, bond, crypto or all","schema":{"type":"string"},"example":"all"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Assets ranked by beta to SPY over window_days of daily returns. Beta > 1 amplifies the benchmark, < 1 dampens it, < 0 moves against it. correlation/R-squared show how reliable the beta is (a low R-squared beta is noisy). Read fresh per call, nothing cached.","class":"all","count":21,"source":"Yahoo Finance","results":[{"beta":2.813,"name":"Ethereum","rank":1,"class":"crypto","symbol":"ETH-USD","available":true,"r_squared":0.272,"correlation":0.521,"observations":252,"classification":"very high-beta (sharply amplifies)","ann_volatility_pct":66.49},{"beta":1.758,"name":"Bitcoin","rank":2,"class":"crypto","symbol":"BTC-USD","available":true,"r_squared":0.263,"correlation":0.513,"observations":252,"classification":"very high-beta (sharply amplifies)","ann_volatility_pct":42.23},{"beta":1.595,"name":"Technology","rank":3,"class":"sector","symbol":"XLK","available":true,"r_squared":0.761,"correlation":0.872,"observations":252,"classification":"very high-beta (sharply amplifies)","ann_volatility_pct":22.52},{"beta":1.582,"name":"Silver","rank":4,"class":"commodity","symbol":"SLV","available":true,"r_squared":0.106,"correlation":0.326,"observations":252,"classification":"very high-beta (sharply amplifies)","ann_volatility_pct":59.83},{"beta":1.364,"name":"Emerging Markets","rank":5,"class":"equity","symbol":"EEM","available":true,"r_squared":0.599,"correlation":0.774,"observations":252,"classification":"high-beta (amplifies the market)","ann_volatility_pct":21.71},{"beta":1.335,"name":"US Small Caps","rank":6,"class":"equity","symbol":"IWM","available":true,"r_squared":0.694,"correlation":0.833,"observations":252,"classification":"high-beta (amplifies the market)","ann_volatility_pct":19.73},{"beta":1.313,"name":"Nasdaq 100","rank":7,"class":"equity","symbol":"QQQ","available":true,"r_squared":0.887,"correlation":0.942,"observations":252,"classification":"high-beta (amplifies the market)","ann_volatility_pct":17.18},{"beta":1,"name":"S&P 500","rank":8,"class":"equity","symbol":"SPY","available":true,"r_squared":1,"correlation":1,"observations":252,"classification":"market-like","ann_volatility_pct":12.32},{"beta":0.998,"name":"Developed ex-US","rank":9,"class":"equity","symbol":"EFA","available":true,"r_squared":0.6,"correlation":0.775,"observations":252,"classification":"market-like","ann_volatility_pct":15.86},{"beta":0.971,"name":"Industrials","rank":10,"class":"sector","symbol":"XLI","available":true,"r_squared":0.551,"correlation":0.742,"observations":252,"classification":"market-like","ann_volatility_pct":16.1},{"beta":0.735,"name":"Financials","rank":11,"class":"sector","symbol":"XLF","available":true,"r_squared":0.386,"correlation":0.621,"observations":252,"classification":"below-market","ann_volatility_pct":14.56},{"beta":0.586,"name":"Gold","rank":12,"class":"commodity","symbol":"GLD","available":true,"r_squared":0.07,"correlation":0.264,"observations":252,"classification":"below-market","ann_volatility_pct":27.37},{"beta":0.439,"name":"Health Care","rank":13,"class":"sector","symbol":"XLV","available":true,"r_squared":0.129,"correlation":0.359,"observations":252,"classification":"defensive (low market sensitivity)","ann_volatility_pct":15.04},{"beta":0.372,"name":"Real Estate","rank":14,"class":"sector","symbol":"XLRE","available":true,"r_squared":0.111,"correlation":0.334,"observations":252,"classification":"defensive (low market sensitivity)","ann_volatility_pct":13.72},{"beta":0.246,"name":"High-Yield Credit","rank":15,"class":"bond","symbol":"HYG","available":true,"r_squared":0.502,"correlation":0.708,"observations":252,"classification":"defensive (low market sensitivity)","ann_volatility_pct":4.28},{"beta":0.212,"name":"Utilities","rank":16,"class":"sector","symbol":"XLU","available":true,"r_squared":0.032,"correlation":0.18,"observations":252,"classification":"defensive (low market sensitivity)","ann_volatility_pct":14.53},{"beta":0.154,"name":"20Y+ Treasuries","rank":17,"class":"bond","symbol":"TLT","available":true,"r_squared":0.038,"correlation":0.194,"observations":252,"classification":"defensive (low market sensitivity)","ann_volatility_pct":9.82},{"beta":0.009,"name":"Consumer Staples","rank":18,"class":"sector","symbol":"XLP","available":true,"r_squared":0,"correlation":0.009,"observations":252,"classification":"defensive (low market sensitivity)","ann_volatility_pct":12.96},{"beta":-0.165,"name":"Energy","rank":19,"class":"sector","symbol":"XLE","available":true,"r_squared":0.01,"correlation":-0.098,"observations":252,"classification":"inverse / hedge (moves against the benchmark)","ann_volatility_pct":20.7},{"beta":-0.273,"name":"Broad Commodities","rank":20,"class":"commodity","symbol":"DBC","available":true,"r_squared":0.031,"correlation":-0.176,"observations":252,"classification":"inverse / hedge (moves against the benchmark)","ann_volatility_pct":19.05},{"beta":-1.252,"name":"Crude Oil","rank":21,"class":"commodity","symbol":"USO","available":true,"r_squared":0.119,"correlation":-0.345,"observations":252,"classification":"inverse / hedge (moves against the benchmark)","ann_volatility_pct":44.74}],"benchmark":"SPY","lowest_beta":{"beta":-1.252,"symbol":"USO"},"unavailable":[],"window_days":252,"highest_beta":{"beta":2.813,"symbol":"ETH-USD"},"benchmark_name":"S&P 500"},"meta":{"timestamp":"2026-06-12T10:34:54.176Z","request_id":"2aa1d400-ff6b-4bba-8c23-0b3665c4db55"},"status":"ok","message":"Beta screener 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/asset":{"get":{"operationId":"get_v1_asset","tags":["Asset"],"summary":"Beta profile of one instrument vs the benchmark","description":"","parameters":[{"name":"symbol","in":"query","required":true,"description":"Universe symbol","schema":{"type":"string"},"example":"XLK"},{"name":"benchmark","in":"query","required":false,"description":"Benchmark symbol","schema":{"type":"string"},"example":"SPY"},{"name":"window","in":"query","required":false,"description":"Lookback in trading days (60-756)","schema":{"type":"string"},"example":"252"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"beta":1.595,"name":"Technology","note":"beta = cov(asset, benchmark) / var(benchmark) on daily returns aligned over common trading days. A beta of 1.3 means the asset tends to move ~1.3% for each 1% of the benchmark. R-squared is the share of the asset's moves explained by the benchmark. Read fresh per call, nothing cached.","class":"sector","source":"Yahoo Finance","symbol":"XLK","benchmark":"SPY","r_squared":0.761,"correlation":0.872,"window_days":252,"observations":252,"benchmark_name":"S&P 500","classification":"very high-beta (sharply amplifies)","ann_volatility_pct":22.52},"meta":{"timestamp":"2026-06-12T10:34:54.390Z","request_id":"202b7909-d5f2-413a-a32f-815ef4af107c"},"status":"ok","message":"Asset beta 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/dispersion":{"get":{"operationId":"get_v1_dispersion","tags":["Dispersion"],"summary":"Beta dispersion across the universe with a risk-appetite read","description":"","parameters":[{"name":"benchmark","in":"query","required":false,"description":"Benchmark symbol","schema":{"type":"string"},"example":"SPY"},{"name":"window","in":"query","required":false,"description":"Lookback in trading days (60-756)","schema":{"type":"string"},"example":"252"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Beta dispersion across the whole universe vs SPY. A wide high-minus-low spread and a high share of >1.15 betas indicates the market is rewarding risk-taking (risk-on); a large negative-beta share indicates available hedges / a defensive regime. Read fresh per call, nothing cached.","read":"balanced beta distribution","count":21,"lowest":{"beta":-1.252,"symbol":"USO"},"source":"Yahoo Finance","highest":{"beta":2.813,"symbol":"ETH-USD"},"benchmark":"SPY","mean_beta":0.752,"window_days":252,"benchmark_name":"S&P 500","high_beta_share":0.333,"negative_beta_share":0.143,"beta_spread_high_minus_low":4.065},"meta":{"timestamp":"2026-06-12T10:34:54.585Z","request_id":"9efdbf0f-eade-47d5-9e59-c82481680142"},"status":"ok","message":"Beta dispersion 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":{"note":"benchmark is any universe symbol (default SPY). window is 60-756 trading days (default 252). class filters to equity/sector/commodity/bond/crypto (default all). Beta is cov(asset,benchmark)/var(benchmark) on daily returns. Read fresh per call, nothing cached.","source":"Yahoo Finance daily closes, live","classes":["equity","sector","commodity","bond","crypto"],"service":"betadispersion-api","universe":["SPY","QQQ","IWM","EFA","EEM","XLK","XLF","XLE","XLV","XLI","XLU","XLP","XLRE","GLD","SLV","USO","DBC","TLT","HYG","BTC-USD","ETH-USD"],"endpoints":{"GET /v1/meta":"This document.","GET /v1/asset":"Beta profile of one instrument vs the benchmark (symbol=XLK, benchmark=SPY, window=252).","GET /v1/screener":"Rank the universe by beta to a benchmark (benchmark=SPY, window=252, class=all).","GET /v1/dispersion":"Beta dispersion across the universe with a risk-appetite read (benchmark=SPY, window=252)."},"description":"Beta screener / beta dispersion — ranks a cross-asset universe by beta to a benchmark (default S&P 500), live from Yahoo Finance daily closes (no key, nothing stored). screener ranks the universe (filterable by class) by beta, each with correlation and R-squared; asset returns one instrument's beta profile; dispersion returns the spread of betas across the universe (high-minus-low, mean beta, risk-on share) as a risk-appetite read. The systematic-risk / market-sensitivity ranking cut — distinct from the BYO CAPM/beta calculator, the total-risk Sharpe/Sortino screener, the correlation matrix and the price APIs.","universe_size":21,"upstream_status":"ok","highest_beta_vs_spy":"ETH-USD"},"meta":{"timestamp":"2026-06-12T10:34:54.773Z","request_id":"63ce27f6-8fb5-4d63-9b96-3ab53e233db0"},"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":700,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1150,"monthly_call_quota":16800,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3560,"monthly_call_quota":90000,"rps_limit":16,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":7980,"monthly_call_quota":495000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/betadispersion-api"}