{"openapi":"3.1.0","info":{"title":"Opening Gap Statistics API","version":"1.0.0","description":"The overnight-gap behaviour day-traders actually trade, computed live from Yahoo Finance daily OHLC — no key, nothing stored. A gap is the jump between yesterday's close and today's open — the move that happens while the market is shut, on overnight news and futures drift. Traders live and die on two questions: how often does a name gap, and does the gap fill (price retraces to yesterday's close) or run (it keeps going). This API answers both with hard frequencies. For each instrument it returns how often it gaps up and down beyond a configurable threshold, the average size of up- and down-gaps, the gap-fill rate (the share of gaps where price traded back through the prior close intraday — for an up-gap, the day's low reaching the prior close), and the continuation rate (how often the day closes in the direction of the gap rather than fading it), plus the largest recent gaps. The asset endpoint returns one instrument's full gap profile with its biggest recent gaps; the screener endpoint ranks a universe of liquid stocks and ETFs by gappiness or gap-fill rate, surfacing the names that gap most and the ones whose gaps reliably fill. This is the opening-gap / overnight-jump microstructure cut — distinct from the price, candlestick-pattern, volatility and risk APIs in the catalogue. It is what happens between the close and the open.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/gapstats-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":"Rank the universe by gap metric","description":"","parameters":[{"name":"metric","in":"query","required":false,"description":"gap_frequency, fill_rate, avg_gap or continuation","schema":{"type":"string"},"example":"gap_frequency"},{"name":"threshold","in":"query","required":false,"description":"Gap-size cutoff in percent (0.1-5)","schema":{"type":"string"},"example":"0.5"},{"name":"window","in":"query","required":false,"description":"Lookback in trading days (60-1000)","schema":{"type":"string"},"example":"252"},{"name":"class","in":"query","required":false,"description":"index, sector, commodity, bond, stock or all","schema":{"type":"string"},"example":"all"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Ranked by gap_frequency over window_days of daily OHLC. A gap is the open vs the prior close beyond gap_threshold_pct (default 0.5%). gap_fill_rate = share of gaps where the day traded back through the prior close; continuation_rate = share that closed in the gap's direction. Read fresh per call, nothing cached.","class":"all","count":20,"metric":"gap_frequency","source":"Yahoo Finance","results":[{"name":"AMD","rank":1,"class":"stock","symbol":"AMD","gap_days":196,"available":true,"trading_days":252,"avg_up_gap_pct":2.46,"avg_abs_gap_pct":2.31,"avg_down_gap_pct":-2.1,"gap_fill_rate_pct":51,"gap_frequency_pct":77.8,"up_gap_fill_rate_pct":46,"up_gap_frequency_pct":44.8,"continuation_rate_pct":51,"down_gap_fill_rate_pct":57.8,"down_gap_frequency_pct":32.9},{"name":"Crude Oil ETF","rank":2,"class":"commodity","symbol":"USO","gap_days":188,"available":true,"trading_days":252,"avg_up_gap_pct":2.2,"avg_abs_gap_pct":2.08,"avg_down_gap_pct":-1.94,"gap_fill_rate_pct":26.1,"gap_frequency_pct":74.6,"up_gap_fill_rate_pct":24.8,"up_gap_frequency_pct":40.1,"continuation_rate_pct":53.7,"down_gap_fill_rate_pct":27.6,"down_gap_frequency_pct":34.5},{"name":"Silver ETF","rank":3,"class":"commodity","symbol":"SLV","gap_days":185,"available":true,"trading_days":252,"avg_up_gap_pct":2.37,"avg_abs_gap_pct":2.59,"avg_down_gap_pct":-2.93,"gap_fill_rate_pct":21.1,"gap_frequency_pct":73.4,"up_gap_fill_rate_pct":23.9,"up_gap_frequency_pct":44.8,"continuation_rate_pct":55.1,"down_gap_fill_rate_pct":16.7,"down_gap_frequency_pct":28.6},{"name":"Tesla","rank":4,"class":"stock","symbol":"TSLA","gap_days":179,"available":true,"trading_days":252,"avg_up_gap_pct":1.42,"avg_abs_gap_pct":1.51,"avg_down_gap_pct":-1.63,"gap_fill_rate_pct":48.6,"gap_frequency_pct":71,"up_gap_fill_rate_pct":51.5,"up_gap_frequency_pct":40.9,"continuation_rate_pct":55.3,"down_gap_fill_rate_pct":44.7,"down_gap_frequency_pct":30.2},{"name":"Nvidia","rank":5,"class":"stock","symbol":"NVDA","gap_days":162,"available":true,"trading_days":252,"avg_up_gap_pct":1.45,"avg_abs_gap_pct":1.41,"avg_down_gap_pct":-1.36,"gap_fill_rate_pct":41.4,"gap_frequency_pct":64.3,"up_gap_fill_rate_pct":39.4,"up_gap_frequency_pct":37.3,"continuation_rate_pct":48.1,"down_gap_fill_rate_pct":44.1,"down_gap_frequency_pct":27},{"name":"Gold ETF","rank":6,"class":"commodity","symbol":"GLD","gap_days":143,"available":true,"trading_days":252,"avg_up_gap_pct":1.29,"avg_abs_gap_pct":1.44,"avg_down_gap_pct":-1.69,"gap_fill_rate_pct":21,"gap_frequency_pct":56.7,"up_gap_fill_rate_pct":25.6,"up_gap_frequency_pct":35.7,"continuation_rate_pct":54.5,"down_gap_fill_rate_pct":13.2,"down_gap_frequency_pct":21},{"name":"Technology Sector","rank":7,"class":"sector","symbol":"XLK","gap_days":135,"available":true,"trading_days":252,"avg_up_gap_pct":1.06,"avg_abs_gap_pct":1.08,"avg_down_gap_pct":-1.12,"gap_fill_rate_pct":35.6,"gap_frequency_pct":53.6,"up_gap_fill_rate_pct":34.5,"up_gap_frequency_pct":33.3,"continuation_rate_pct":50.4,"down_gap_fill_rate_pct":37.3,"down_gap_frequency_pct":20.2},{"name":"Alphabet","rank":8,"class":"stock","symbol":"GOOGL","gap_days":130,"available":true,"trading_days":252,"avg_up_gap_pct":1.46,"avg_abs_gap_pct":1.38,"avg_down_gap_pct":-1.28,"gap_fill_rate_pct":46.2,"gap_frequency_pct":51.6,"up_gap_fill_rate_pct":45.2,"up_gap_frequency_pct":29,"continuation_rate_pct":40,"down_gap_fill_rate_pct":47.4,"down_gap_frequency_pct":22.6},{"name":"Amazon","rank":9,"class":"stock","symbol":"AMZN","gap_days":124,"available":true,"trading_days":252,"avg_up_gap_pct":1.38,"avg_abs_gap_pct":1.39,"avg_down_gap_pct":-1.41,"gap_fill_rate_pct":43.5,"gap_frequency_pct":49.2,"up_gap_fill_rate_pct":42.3,"up_gap_frequency_pct":28.2,"continuation_rate_pct":55.6,"down_gap_fill_rate_pct":45.3,"down_gap_frequency_pct":21},{"name":"Meta Platforms","rank":10,"class":"stock","symbol":"META","gap_days":124,"available":true,"trading_days":252,"avg_up_gap_pct":1.67,"avg_abs_gap_pct":1.46,"avg_down_gap_pct":-1.28,"gap_fill_rate_pct":41.9,"gap_frequency_pct":49.2,"up_gap_fill_rate_pct":36.8,"up_gap_frequency_pct":22.6,"continuation_rate_pct":54.8,"down_gap_fill_rate_pct":46.3,"down_gap_frequency_pct":26.6},{"name":"Microsoft","rank":11,"class":"stock","symbol":"MSFT","gap_days":118,"available":true,"trading_days":252,"avg_up_gap_pct":1.19,"avg_abs_gap_pct":1.19,"avg_down_gap_pct":-1.2,"gap_fill_rate_pct":50,"gap_frequency_pct":46.8,"up_gap_fill_rate_pct":53.3,"up_gap_frequency_pct":23.8,"continuation_rate_pct":44.9,"down_gap_fill_rate_pct":46.6,"down_gap_frequency_pct":23},{"name":"Russell 2000 ETF","rank":12,"class":"index","symbol":"IWM","gap_days":108,"available":true,"trading_days":252,"avg_up_gap_pct":0.93,"avg_abs_gap_pct":0.98,"avg_down_gap_pct":-1.05,"gap_fill_rate_pct":41.7,"gap_frequency_pct":42.9,"up_gap_fill_rate_pct":40.3,"up_gap_frequency_pct":24.6,"continuation_rate_pct":50.9,"down_gap_fill_rate_pct":43.5,"down_gap_frequency_pct":18.3},{"name":"Nasdaq 100 ETF","rank":13,"class":"index","symbol":"QQQ","gap_days":103,"available":true,"trading_days":252,"avg_up_gap_pct":0.95,"avg_abs_gap_pct":0.94,"avg_down_gap_pct":-0.93,"gap_fill_rate_pct":31.1,"gap_frequency_pct":40.9,"up_gap_fill_rate_pct":27.1,"up_gap_frequency_pct":23.4,"continuation_rate_pct":47.6,"down_gap_fill_rate_pct":36.4,"down_gap_frequency_pct":17.5},{"name":"Energy Sector","rank":14,"class":"sector","symbol":"XLE","gap_days":99,"available":true,"trading_days":252,"avg_up_gap_pct":1.03,"avg_abs_gap_pct":1.14,"avg_down_gap_pct":-1.29,"gap_fill_rate_pct":39.4,"gap_frequency_pct":39.3,"up_gap_fill_rate_pct":39.7,"up_gap_frequency_pct":23,"continuation_rate_pct":52.5,"down_gap_fill_rate_pct":39,"down_gap_frequency_pct":16.3},{"name":"Netflix","rank":15,"class":"stock","symbol":"NFLX","gap_days":98,"available":true,"trading_days":252,"avg_up_gap_pct":1.21,"avg_abs_gap_pct":1.3,"avg_down_gap_pct":-1.4,"gap_fill_rate_pct":56.1,"gap_frequency_pct":38.9,"up_gap_fill_rate_pct":60,"up_gap_frequency_pct":19.8,"continuation_rate_pct":44.9,"down_gap_fill_rate_pct":52.1,"down_gap_frequency_pct":19},{"name":"Apple","rank":16,"class":"stock","symbol":"AAPL","gap_days":89,"available":true,"trading_days":252,"avg_up_gap_pct":1.06,"avg_abs_gap_pct":0.97,"avg_down_gap_pct":-0.84,"gap_fill_rate_pct":51.7,"gap_frequency_pct":35.3,"up_gap_fill_rate_pct":48.1,"up_gap_frequency_pct":21.4,"continuation_rate_pct":46.1,"down_gap_fill_rate_pct":57.1,"down_gap_frequency_pct":13.9},{"name":"20Y+ Treasuries ETF","rank":17,"class":"bond","symbol":"TLT","gap_days":65,"available":true,"trading_days":252,"avg_up_gap_pct":0.73,"avg_abs_gap_pct":0.74,"avg_down_gap_pct":-0.74,"gap_fill_rate_pct":9.2,"gap_frequency_pct":25.8,"up_gap_fill_rate_pct":3.8,"up_gap_frequency_pct":10.3,"continuation_rate_pct":50.8,"down_gap_fill_rate_pct":12.8,"down_gap_frequency_pct":15.5},{"name":"Financials Sector","rank":18,"class":"sector","symbol":"XLF","gap_days":63,"available":true,"trading_days":252,"avg_up_gap_pct":0.79,"avg_abs_gap_pct":0.86,"avg_down_gap_pct":-0.92,"gap_fill_rate_pct":36.5,"gap_frequency_pct":25,"up_gap_fill_rate_pct":32.3,"up_gap_frequency_pct":12.3,"continuation_rate_pct":55.6,"down_gap_fill_rate_pct":40.6,"down_gap_frequency_pct":12.7},{"name":"S&P 500 ETF","rank":19,"class":"index","symbol":"SPY","gap_days":61,"available":true,"trading_days":252,"avg_up_gap_pct":0.79,"avg_abs_gap_pct":0.84,"avg_down_gap_pct":-0.9,"gap_fill_rate_pct":29.5,"gap_frequency_pct":24.2,"up_gap_fill_rate_pct":29.7,"up_gap_frequency_pct":14.7,"continuation_rate_pct":49.2,"down_gap_fill_rate_pct":29.2,"down_gap_frequency_pct":9.5},{"name":"Dow Jones ETF","rank":20,"class":"index","symbol":"DIA","gap_days":61,"available":true,"trading_days":252,"avg_up_gap_pct":0.8,"avg_abs_gap_pct":0.82,"avg_down_gap_pct":-0.85,"gap_fill_rate_pct":27.9,"gap_frequency_pct":24.2,"up_gap_fill_rate_pct":24.2,"up_gap_frequency_pct":13.1,"continuation_rate_pct":49.2,"down_gap_fill_rate_pct":32.1,"down_gap_frequency_pct":11.1}],"gappiest":{"symbol":"AMD","gap_frequency_pct":77.8},"sorted_by":"gap_frequency_pct","unavailable":[],"window_days":252,"gap_threshold_pct":0.5},"meta":{"timestamp":"2026-06-12T10:34:43.825Z","request_id":"e56020c9-385f-465f-99f4-f14255dd87de"},"status":"ok","message":"Gap 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":"Full gap profile of one instrument with largest recent gaps","description":"","parameters":[{"name":"symbol","in":"query","required":true,"description":"Universe symbol","schema":{"type":"string"},"example":"TSLA"},{"name":"threshold","in":"query","required":false,"description":"Gap-size cutoff in percent (0.1-5)","schema":{"type":"string"},"example":"0.5"},{"name":"window","in":"query","required":false,"description":"Lookback in trading days (60-1000)","schema":{"type":"string"},"example":"252"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"Tesla","note":"Gap = open vs prior close beyond gap_threshold_pct (default 0.5%). gap_fill_rate = day traded back through the prior close; continuation_rate = closed in the gap's direction. largest_gaps lists the five biggest recent gaps with whether each filled. Read fresh per call, nothing cached.","class":"stock","reads":{"bias":"gaps tend to continue intraday","fill":"gaps fill about half the time","gappiness":"very gap-prone"},"source":"Yahoo Finance","symbol":"TSLA","gap_days":179,"window_days":252,"largest_gaps":[{"date":"2025-07-07","filled":false,"gap_pct":-7.6,"direction":"down","closed_in_gap_direction":false},{"date":"2025-09-15","filled":false,"gap_pct":6.87,"direction":"up","closed_in_gap_direction":false},{"date":"2025-07-24","filled":false,"gap_pct":-6.78,"direction":"down","closed_in_gap_direction":true},{"date":"2025-07-01","filled":false,"gap_pct":-6.04,"direction":"down","closed_in_gap_direction":false},{"date":"2026-04-08","filled":true,"gap_pct":4.94,"direction":"up","closed_in_gap_direction":false}],"trading_days":252,"avg_up_gap_pct":1.42,"avg_abs_gap_pct":1.51,"avg_down_gap_pct":-1.63,"gap_fill_rate_pct":48.6,"gap_frequency_pct":71,"gap_threshold_pct":0.5,"up_gap_fill_rate_pct":51.5,"up_gap_frequency_pct":40.9,"continuation_rate_pct":55.3,"down_gap_fill_rate_pct":44.7,"down_gap_frequency_pct":30.2},"meta":{"timestamp":"2026-06-12T10:34:44.039Z","request_id":"be172552-a787-482d-a834-d91904f6eca5"},"status":"ok","message":"Asset gap profile 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":"The universe and its classes","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"The universe the screener ranks — liquid index/sector/commodity/bond ETFs and large-cap stocks. Pass class= to a screener call to rank within one class.","count":20,"assets":[{"name":"S&P 500 ETF","class":"index","symbol":"SPY"},{"name":"Nasdaq 100 ETF","class":"index","symbol":"QQQ"},{"name":"Russell 2000 ETF","class":"index","symbol":"IWM"},{"name":"Dow Jones ETF","class":"index","symbol":"DIA"},{"name":"Technology Sector","class":"sector","symbol":"XLK"},{"name":"Financials Sector","class":"sector","symbol":"XLF"},{"name":"Energy Sector","class":"sector","symbol":"XLE"},{"name":"Gold ETF","class":"commodity","symbol":"GLD"},{"name":"Silver ETF","class":"commodity","symbol":"SLV"},{"name":"Crude Oil ETF","class":"commodity","symbol":"USO"},{"name":"20Y+ Treasuries ETF","class":"bond","symbol":"TLT"},{"name":"Apple","class":"stock","symbol":"AAPL"},{"name":"Microsoft","class":"stock","symbol":"MSFT"},{"name":"Nvidia","class":"stock","symbol":"NVDA"},{"name":"Tesla","class":"stock","symbol":"TSLA"},{"name":"Amazon","class":"stock","symbol":"AMZN"},{"name":"Meta Platforms","class":"stock","symbol":"META"},{"name":"Alphabet","class":"stock","symbol":"GOOGL"},{"name":"AMD","class":"stock","symbol":"AMD"},{"name":"Netflix","class":"stock","symbol":"NFLX"}],"source":"Yahoo Finance","classes":["index","sector","commodity","bond","stock"]},"meta":{"timestamp":"2026-06-12T10:34:44.130Z","request_id":"4b19518a-18bb-40ba-a8ef-78b5c75991a4"},"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":"metric is gap_frequency (default), fill_rate, avg_gap or continuation. window is 60-1000 trading days (default 252). threshold is the gap-size cutoff in percent, 0.1-5 (default 0.5). class filters to index/sector/commodity/bond/stock (default all). Read fresh per call, nothing cached.","source":"Yahoo Finance daily OHLC, live","classes":["index","sector","commodity","bond","stock"],"metrics":["gap_frequency","fill_rate","avg_gap","continuation"],"service":"gapstats-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/asset":"Full gap profile of one instrument with its largest recent gaps (symbol=TSLA, window=252).","GET /v1/screener":"Rank the universe by gap metric (metric=gap_frequency, window=252, class=all).","GET /v1/universe":"The universe and its classes."},"description":"Opening gap statistics — the overnight-gap behaviour day-traders trade, live from Yahoo Finance daily OHLC (no key, nothing stored). For each instrument it returns how often it gaps up/down, the average gap size, the gap-fill rate (share of gaps where price traded back through the prior close) and the continuation rate (share closing in the gap's direction), plus the largest recent gaps. asset returns one instrument's full gap profile; screener ranks liquid stocks and ETFs by gappiness or gap-fill rate. The opening-gap / overnight-jump microstructure cut — distinct from the price, candlestick-pattern, volatility and risk APIs.","gappiest_252d":"AMD","universe_size":20,"upstream_status":"ok","default_gap_threshold_pct":0.5},"meta":{"timestamp":"2026-06-12T10:34:44.306Z","request_id":"9ae17d54-e878-4637-8719-6c06403b8a7f"},"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":660,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1100,"monthly_call_quota":14900,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3620,"monthly_call_quota":82500,"rps_limit":16,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":8300,"monthly_call_quota":470000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/gapstats-api"}