Stock Screener
A complet stock market screener which can be used to screen for etfs in-/outflow, tickers by various volatility metrics such as steepness, IV rank, realized volatility, expected moves, companies where insiders bought shares over 3m, 6m, tickers by various option metrics (greek flow, options premium/volume, net call premium, amount of new chains, total open interest, flex open interest, etc.) and live stock quotes, prices and volume.
The date defaults to the current or last market day. Earlier dates return stored snapshots as of regular market close. Live bid and ask quotes are null for historical snapshots.
Rows default to combined call and put volume in descending order.
For real time streaming of the latest screener row of every ticker, subscribe to the stock_screener websocket channel, see https://api.unusualwhales.com/docs/websocket/stock-screener.
Decimal values are returned as strings. Fractional returns use 0.05 for 5 percent. Unavailable values are null.
Query language examples
Pass an expression in query. It is combined with the other filters. Get the grammar and current field reference from /api/screener/stocks/dsl.
Volume based gamma exposure at least twice the magnitude of OI based gamma exposure:
Price at least two ATRs above the 20 day EMA:
Call volume at least twice put volume:
Call to put volume ratio at least 10 or at most 0.1:
Ratio of 7 day IV to 30 day IV at least 1.5 or at most 1 / 1.5:
Price in the top 20% of its 52 week range on a logarithmic scale:
The logarithmic position is 0 at the low and 1 at the high. Equal steps represent equal proportional price moves.
Absolute log return since the previous close at least two approximate daily standard deviations using 30 day IV:
The same daily return screen using 7 day IV:
Distance from the 20 day EMA at least the 7 day expected move:
Momentum excluding the latest month above 10%, with RSI at or below 30:
This combines a Gray and Vogel inspired momentum measure with an RSI pullback condition. See How to Measure Momentum for background.
one_month_close and one_year_close are the latest regular closes on or before one calendar month and one calendar year before the row date. The formula measures the return between those reference closes.
The one_year_close > 0 guard keeps the denominator positive. This filter is not the full Quantitative Momentum strategy.
Gamma-dominance flips
Aggregate gamma provides a view into trader sentiment over short timeframes because near-the-money gamma tends to be highest in the closest expiries.
To screen for bearish trade ideas based on a flip from call gamma-dominance to put gamma-dominance, use these query parameters:
Equivalent query expression:
- A minimum total open interest of 50,000 screens for relatively active names, using open interest as a liquidity proxy.
gex_perc_changeis(current net gamma - previous net gamma) / previous net gamma. A value below -1 indicates a sign change in either direction, not necessarily a fall in net gamma.max_gex_net_change: 0selects the downward direction.gex_ratiois absolute put gamma divided by absolute call gamma. A downward net gamma cross corresponds to this ratio crossing upward through 1 into put gamma-dominance, when call gamma is nonzero.
To screen for bullish trade ideas based on the opposite flip, from put gamma-dominance to call gamma-dominance, use these query parameters:
Equivalent query expression:
- The open interest and percentage-change thresholds are unchanged because the sign-change test is the same in both directions.
min_gex_net_change: 0selects the upward direction. Net gamma rising through zero corresponds togex_ratiocrossing downward through 1 into call gamma-dominance.
These thresholds are inclusive. A gex_perc_change of exactly -1 means net gamma reached zero, so both screens also include that boundary, where gex_ratio is 1 when defined. A strict flip has gex_perc_change < -1. Percentage change is null when previous net gamma is zero, and the ratio is null when call gamma is zero.
Authorizations
Query Parameters
Return securities with a price change over one calendar year of at least this decimal fraction, inclusive. 0.5 means a 50% gain and -0.2 means a 20% loss. Uses the latest accepted price and the latest regular close on or before the calendar cutoff. Rows with an unavailable return are excluded.
Return securities with a price change over one calendar year of at most this decimal fraction, inclusive. 0.5 means a 50% gain and -0.2 means a 20% loss. Uses the latest accepted price and the latest regular close on or before the calendar cutoff. Rows with an unavailable return are excluded.
Return securities with a price change over six calendar months of at least this decimal fraction, inclusive. 0.5 means a 50% gain and -0.2 means a 20% loss. Uses the latest accepted price and the latest regular close on or before the calendar cutoff. Rows with an unavailable return are excluded.
Return securities with a price change over six calendar months of at most this decimal fraction, inclusive. 0.5 means a 50% gain and -0.2 means a 20% loss. Uses the latest accepted price and the latest regular close on or before the calendar cutoff. Rows with an unavailable return are excluded.
Return securities with a price change over three calendar months of at least this decimal fraction, inclusive. 0.5 means a 50% gain and -0.2 means a 20% loss. Uses the latest accepted price and the latest regular close on or before the calendar cutoff. Rows with an unavailable return are excluded.
Return securities with a price change over three calendar months of at most this decimal fraction, inclusive. 0.5 means a 50% gain and -0.2 means a 20% loss. Uses the latest accepted price and the latest regular close on or before the calendar cutoff. Rows with an unavailable return are excluded.
Return securities with a price change over one calendar month of at least this decimal fraction, inclusive. 0.5 means a 50% gain and -0.2 means a 20% loss. Uses the latest accepted price and the latest regular close on or before the calendar cutoff. Rows with an unavailable return are excluded.
Return securities with a price change over one calendar month of at most this decimal fraction, inclusive. 0.5 means a 50% gain and -0.2 means a 20% loss. Uses the latest accepted price and the latest regular close on or before the calendar cutoff. Rows with an unavailable return are excluded.
Return securities with a price change over seven calendar days of at least this decimal fraction, inclusive. 0.5 means a 50% gain and -0.2 means a 20% loss. Uses the latest accepted price and the latest regular close on or before the calendar cutoff. Rows with an unavailable return are excluded.
Return securities with a price change over seven calendar days of at most this decimal fraction, inclusive. 0.5 means a 50% gain and -0.2 means a 20% loss. Uses the latest accepted price and the latest regular close on or before the calendar cutoff. Rows with an unavailable return are excluded.
The minimum options premium.
The minimum options premium.
The minimum call options premium.
The minimum call options premium.
The minimum put options premium.
The minimum put options premium.
The minimum net options premium.
The minimum net options premium.
The minimum net call options premium.
The maximum net call options premium.
The minimum net put options premium.
The maximum net put options premium.
Sort by a screener field, such as ticker, marketcap, stock_volume, z_score, or steepness_180_30. The default volume is combined call and put contract volume. Quote fields support sorting only for current data. The added is_index and missing_periscope fields are not sortable.
Return securities whose signed fractional distance from sma_10 is at least this value, inclusive. Calculated as (price - sma_10) / sma_10, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from sma_10 is at most this value, inclusive. Calculated as (price - sma_10) / sma_10, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from sma_14 is at least this value, inclusive. Calculated as (price - sma_14) / sma_14, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from sma_14 is at most this value, inclusive. Calculated as (price - sma_14) / sma_14, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from sma_20 is at least this value, inclusive. Calculated as (price - sma_20) / sma_20, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from sma_20 is at most this value, inclusive. Calculated as (price - sma_20) / sma_20, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from sma_50 is at least this value, inclusive. Calculated as (price - sma_50) / sma_50, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from sma_50 is at most this value, inclusive. Calculated as (price - sma_50) / sma_50, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from sma_200 is at least this value, inclusive. Calculated as (price - sma_200) / sma_200, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from sma_200 is at most this value, inclusive. Calculated as (price - sma_200) / sma_200, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from ema_9 is at least this value, inclusive. Calculated as (price - ema_9) / ema_9, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from ema_9 is at most this value, inclusive. Calculated as (price - ema_9) / ema_9, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from ema_14 is at least this value, inclusive. Calculated as (price - ema_14) / ema_14, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from ema_14 is at most this value, inclusive. Calculated as (price - ema_14) / ema_14, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from ema_20 is at least this value, inclusive. Calculated as (price - ema_20) / ema_20, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from ema_20 is at most this value, inclusive. Calculated as (price - ema_20) / ema_20, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from ema_21 is at least this value, inclusive. Calculated as (price - ema_21) / ema_21, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from ema_21 is at most this value, inclusive. Calculated as (price - ema_21) / ema_21, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from ema_50 is at least this value, inclusive. Calculated as (price - ema_50) / ema_50, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from ema_50 is at most this value, inclusive. Calculated as (price - ema_50) / ema_50, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from bb_14_2_upper is at least this value, inclusive. Calculated as (price - bb_14_2_upper) / bb_14_2_upper, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from bb_14_2_upper is at most this value, inclusive. Calculated as (price - bb_14_2_upper) / bb_14_2_upper, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from bb_14_2_middle is at least this value, inclusive. Calculated as (price - bb_14_2_middle) / bb_14_2_middle, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from bb_14_2_middle is at most this value, inclusive. Calculated as (price - bb_14_2_middle) / bb_14_2_middle, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from bb_14_2_lower is at least this value, inclusive. Calculated as (price - bb_14_2_lower) / bb_14_2_lower, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from bb_14_2_lower is at most this value, inclusive. Calculated as (price - bb_14_2_lower) / bb_14_2_lower, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from bb_20_2_upper is at least this value, inclusive. Calculated as (price - bb_20_2_upper) / bb_20_2_upper, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from bb_20_2_upper is at most this value, inclusive. Calculated as (price - bb_20_2_upper) / bb_20_2_upper, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from bb_20_2_middle is at least this value, inclusive. Calculated as (price - bb_20_2_middle) / bb_20_2_middle, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from bb_20_2_middle is at most this value, inclusive. Calculated as (price - bb_20_2_middle) / bb_20_2_middle, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from bb_20_2_lower is at least this value, inclusive. Calculated as (price - bb_20_2_lower) / bb_20_2_lower, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
Return securities whose signed fractional distance from bb_20_2_lower is at most this value, inclusive. Calculated as (price - bb_20_2_lower) / bb_20_2_lower, using the latest accepted price for the row and regular-session daily candles for the indicator. 0.01 means 1% above and -0.01 means 1% below. Rows with missing inputs or a zero indicator are excluded. Raw indicator values remain available in query formulas.
