{"openapi":"3.1.0","info":{"title":"OBV & Volume Screener (Multi-Asset) API","version":"1.0.0","description":"Which markets are under accumulation or distribution and where volume is surging, computed live from Yahoo Finance (no key, nothing stored). Price tells you what is happening; volume tells you whether to believe it. On-Balance Volume adds the day's volume when a market closes up and subtracts it when it closes down, so a rising OBV means buyers are in control (accumulation) and a falling OBV means sellers are (distribution) — and a divergence between OBV and price is an early warning of a turn. A volume surge — today's volume well above its recent average — flags conviction behind a move. For a cross-asset, cross-sector universe — equity indices and sectors, gold, oil, commodities, bonds and crypto — this computes each asset's OBV trend over the last month, its latest volume versus the 20-day average, and tags it accumulation, distribution or neutral. The screener endpoint returns the markets under accumulation and distribution and the ones with a volume surge. The asset endpoint returns one market's OBV/volume card. The universe endpoint lists what is covered. The cross-asset volume / OBV screener cut — distinct from the bring-your-own-candle volume-indicator API and the crypto volume-profile API; it adds the volume dimension the price-only screeners miss.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/obv-api","description":"oanor gateway"}],"tags":[{"name":"Screener"},{"name":"Asset"},{"name":"Universe"},{"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":"Cross-asset board with accumulation/distribution and volume surges","description":"","parameters":[{"name":"class","in":"query","required":false,"description":"Filter by class: equities, sector, commodities, bonds, crypto","schema":{"type":"string"},"example":"sector"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Each market's On-Balance Volume trend over ~20 days (positive = accumulation/buying pressure, negative = distribution) and its latest volume versus the 20-day average (volume_ratio >= 1.5 = a surge). OBV confirms or warns against the price move. Sorted by OBV trend (strongest accumulation first).","class":"sector","assets":[{"key":"health_care","class":"sector","label":"Health Care","money_flow":"strong accumulation","volume_ratio":0.95,"volume_surge":false,"latest_volume":10546400,"avg_volume_20d":11126215,"obv_trend_20d_pct":59.7},{"key":"utilities","class":"sector","label":"Utilities","money_flow":"strong accumulation","volume_ratio":0.9,"volume_surge":false,"latest_volume":19144400,"avg_volume_20d":21259410,"obv_trend_20d_pct":59.2},{"key":"real_estate","class":"sector","label":"Real Estate","money_flow":"strong accumulation","volume_ratio":1.12,"volume_surge":false,"latest_volume":5513200,"avg_volume_20d":4907580,"obv_trend_20d_pct":22.4},{"key":"financials","class":"sector","label":"Financials","money_flow":"accumulation","volume_ratio":1.12,"volume_surge":false,"latest_volume":41279300,"avg_volume_20d":36719725,"obv_trend_20d_pct":12.9},{"key":"technology","class":"sector","label":"Technology","money_flow":"distribution","volume_ratio":1.21,"volume_surge":false,"latest_volume":18230100,"avg_volume_20d":15061510,"obv_trend_20d_pct":-8.1},{"key":"energy","class":"sector","label":"Energy","money_flow":"strong distribution","volume_ratio":1.08,"volume_surge":false,"latest_volume":40848200,"avg_volume_20d":37748050,"obv_trend_20d_pct":-15.4},{"key":"industrials","class":"sector","label":"Industrials","money_flow":"strong distribution","volume_ratio":1.37,"volume_surge":false,"latest_volume":11045300,"avg_volume_20d":8070470,"obv_trend_20d_pct":-39.8}],"source":"Yahoo Finance","scanned":7,"accumulation":[{"key":"health_care","label":"Health Care","obv_trend_20d_pct":59.7},{"key":"utilities","label":"Utilities","obv_trend_20d_pct":59.2},{"key":"real_estate","label":"Real Estate","obv_trend_20d_pct":22.4},{"key":"financials","label":"Financials","obv_trend_20d_pct":12.9}],"distribution":[{"key":"technology","label":"Technology","obv_trend_20d_pct":-8.1},{"key":"energy","label":"Energy","obv_trend_20d_pct":-15.4},{"key":"industrials","label":"Industrials","obv_trend_20d_pct":-39.8}],"volume_surges":[]},"meta":{"timestamp":"2026-06-12T10:35:00.411Z","request_id":"65368c41-350e-4904-9828-d5a0adb144dc"},"status":"ok","message":"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":"One market OBV / volume card","description":"","parameters":[{"name":"asset","in":"query","required":true,"description":"Asset key (see /v1/universe)","schema":{"type":"string"},"example":"sp500"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"key":"sp500","note":"One market's volume card: the OBV trend over ~20 days (accumulation vs distribution), the latest volume and 20-day average, and whether volume is surging (>=1.5x average).","class":"equities","label":"S&P 500","source":"Yahoo Finance","symbol":"SPY","money_flow":"strong accumulation","volume_ratio":1.67,"volume_surge":true,"latest_volume":86176700,"avg_volume_20d":51531220,"obv_trend_20d_pct":15},"meta":{"timestamp":"2026-06-12T10:35:00.614Z","request_id":"5eda5e24-8f95-4191-b34f-ffa01691ae39"},"status":"ok","message":"Asset 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/universe":{"get":{"operationId":"get_v1_universe","tags":["Universe"],"summary":"Supported instruments","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Supported instruments. Pass key as asset= to /v1/asset, class= to /v1/screener.","count":21,"assets":[{"key":"sp500","class":"equities","label":"S&P 500","symbol":"SPY"},{"key":"nasdaq100","class":"equities","label":"Nasdaq 100","symbol":"QQQ"},{"key":"small_caps","class":"equities","label":"US Small Caps","symbol":"IWM"},{"key":"developed_intl","class":"equities","label":"Developed ex-US","symbol":"EFA"},{"key":"emerging","class":"equities","label":"Emerging Markets","symbol":"EEM"},{"key":"technology","class":"sector","label":"Technology","symbol":"XLK"},{"key":"financials","class":"sector","label":"Financials","symbol":"XLF"},{"key":"energy","class":"sector","label":"Energy","symbol":"XLE"},{"key":"health_care","class":"sector","label":"Health Care","symbol":"XLV"},{"key":"industrials","class":"sector","label":"Industrials","symbol":"XLI"},{"key":"utilities","class":"sector","label":"Utilities","symbol":"XLU"},{"key":"real_estate","class":"sector","label":"Real Estate","symbol":"XLRE"},{"key":"gold","class":"commodities","label":"Gold","symbol":"GLD"},{"key":"silver","class":"commodities","label":"Silver","symbol":"SLV"},{"key":"oil","class":"commodities","label":"Crude Oil","symbol":"USO"},{"key":"natural_gas","class":"commodities","label":"Natural Gas","symbol":"UNG"},{"key":"broad_commodities","class":"commodities","label":"Broad Commodities","symbol":"DBC"},{"key":"long_treasuries","class":"bonds","label":"Long Treasuries","symbol":"TLT"},{"key":"high_yield","class":"bonds","label":"High-Yield Credit","symbol":"HYG"},{"key":"bitcoin","class":"crypto","label":"Bitcoin","symbol":"BTC-USD"},{"key":"ether","class":"crypto","label":"Ether","symbol":"ETH-USD"}],"source":"Yahoo Finance","classes":["equities","sector","commodities","bonds","crypto"]},"meta":{"timestamp":"2026-06-12T10:35:00.736Z","request_id":"713d3c4e-6a22-4047-a63c-98ce7c92c9a6"},"status":"ok","message":"Universe 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":"screener class= filters by class. asset= is a supported key (see /v1/universe). OBV is the running signed-volume sum; obv_trend_20d_pct is its change over ~20 sessions. Read fresh per call, nothing cached.","source":"Yahoo Finance daily closes + volume (3mo range) across a multi-asset universe, live","classes":["equities","sector","commodities","bonds","crypto"],"service":"obv-api","settings":{"obv_lookback":20,"surge_threshold":1.5},"endpoints":{"GET /v1/meta":"This document.","GET /v1/asset":"One market's OBV / volume card (asset=sp500).","GET /v1/screener":"Cross-asset board with accumulation/distribution and volume surges (class=sector optional).","GET /v1/universe":"The supported instruments."},"description":"OBV & volume screener (multi-asset) — which markets are under accumulation or distribution and where volume is surging, live from Yahoo Finance (no key, nothing stored). screener returns the markets under accumulation and distribution and the volume surges across a cross-asset board. asset returns one market's OBV/volume card (OBV trend, volume ratio, surge flag). universe lists what is covered. The cross-asset volume / OBV screener cut — distinct from the bring-your-own-candle volume-indicator API and the crypto volume-profile API; it adds the volume dimension the price-only screeners miss.","universe_size":21,"assets_scanned":21,"upstream_status":"ok"},"meta":{"timestamp":"2026-06-12T10:35:01.551Z","request_id":"579ab782-0f13-438a-a6dc-ebd5a5970c72"},"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":840,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1016,"monthly_call_quota":18600,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3140,"monthly_call_quota":92500,"rps_limit":16,"hard_limit":true},{"slug":"business","name":"Business","price_cents_month":7280,"monthly_call_quota":502000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/obv-api"}