> ## Documentation Index
> Fetch the complete documentation index at: https://api.unusualwhales.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> API requests use the base URL https://api.unusualwhales.com and require a bearer token in the `Authorization` header (`Authorization: Bearer <API_KEY>`). Create and manage API tokens at https://unusualwhales.com/dashboard/api.
> For live market data inside an AI tool, use the Unusual Whales MCP server at https://unusualwhales.com/public-api/mcp.
> Instructions for agents using Unusual Whales tools: https://unusualwhales.com/skill.md

# 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](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:
```text
where abs(gex_gamma_per_one_percent_move_oi) > 0 and abs(gex_gamma_per_one_percent_move_vol) >= abs(gex_gamma_per_one_percent_move_oi) * 2
```

Price at least two ATRs above the 20 day EMA:
```text
where atr_14 > 0 and price - ema_20 >= atr_14 * 2
```

Call volume at least twice put volume:
```text
where put_volume > 0 and call_volume >= put_volume * 2
```

Call to put volume ratio at least 10 or at most 0.1:
```text
where call_volume > 0 and put_volume > 0 and (call_volume / put_volume >= 10 or call_volume / put_volume <= 0.1)
```

Ratio of 7 day IV to 30 day IV at least 1.5 or at most 1 / 1.5:
```text
where iv7d > 0 and iv30d > 0 and (iv7d / iv30d >= 1.5 or iv7d / iv30d <= 1 / 1.5)
```

Price in the top 20% of its 52 week range on a logarithmic scale:
```text
where week_52_low > 0 and week_52_high > week_52_low and price > 0 and price <= week_52_high and log(price / week_52_low) / log(week_52_high / week_52_low) >= 0.8
```

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:
```text
where change > -1 and iv30d > 0 and abs(ln(1 + change)) >= 2 * iv30d * sqrt(1 / 251)
```

The same daily return screen using 7 day IV:
```text
where change > -1 and iv7d > 0 and abs(ln(1 + change)) >= 2 * iv7d * sqrt(1 / 251)
```

Distance from the 20 day EMA at least the 7 day expected move:
```text
where implied_move_7 > 0 and abs(price - ema_20) >= implied_move_7
```

Momentum excluding the latest month above 10%, with RSI at or below 30:
```text
where one_year_close > 0 and ((one_month_close / one_year_close) - 1) > 0.10 and rsi_14 <= 30
```

This combines a Gray and Vogel inspired momentum measure with an RSI pullback condition. See [How to Measure Momentum](https://alphaarchitect.com/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:

```json
{
  "min_open_interest": 50000,
  "max_gex_perc_change": -1,
  "max_gex_net_change": 0
}
```

Equivalent `query` expression:

```text
where open_interest >= 50000 and gex_perc_change <= -1 and gex_net_change <= 0
```

- A minimum total open interest of 50,000 screens for relatively active names, using open interest as a liquidity proxy.
- `gex_perc_change` is `(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: 0` selects the downward direction.
- `gex_ratio` is 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:

```json
{
  "min_open_interest": 50000,
  "max_gex_perc_change": -1,
  "min_gex_net_change": 0
}
```

Equivalent `query` expression:

```text
where open_interest >= 50000 and gex_perc_change <= -1 and gex_net_change >= 0
```

- The open interest and percentage-change thresholds are unchanged because the sign-change test is the same in both directions.
- `min_gex_net_change: 0` selects the upward direction. Net gamma rising through zero corresponds to `gex_ratio` crossing 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.




## OpenAPI

````yaml /openapi.yaml get /api/screener/stocks
openapi: 3.0.0
info:
  description: >
    For API Support or any questions email: support@unusualwhales.com


    Documentation for the official [UnusualWhales](https://unusualwhales.com)
    api


    ## Startup Tier

    Building a product on our data? Get started immediately with our self-serve
    Startup tier at $750/mo — 500 req/min, 80K daily requests, 90-day lookback,
    and commercial use included. Annual plan available at $7,500/yr (2 months
    free) with 1,000 req/min and 10 concurrent requests for market-open bursts.
    [Start building
    →](https://unusualwhales.com/checkout?plan=enterprise_startup&interval=monthly)


    Need Kafka streaming? Our Startup + Kafka tier at $3,000/mo adds real-time
    Kafka cluster access. Annual plan available at $30,000/yr (2 months free)
    with the same 1,000 req/min burst allowance. [Start building
    →](https://unusualwhales.com/checkout?plan=enterprise_startup_kafka&interval=monthly)


    ## Enterprise/Professional Subscribers

    For custom enterprise pricing, redistribution licenses, or bespoke
    solutions, email [oskar@unusualwhales.com, enterprise@unusualwhales.com or
    nastja.petrovic@unusualwhales.com](mailto:oskar@unusualwhales.com?cc=enterprise@unusualwhales.com,nastja.petrovic@unusualwhales.com).


    ## Changelog


    # 2026.09.28

    - The websocket documentation moved to
    [https://api.unusualwhales.com/docs/websocket](https://api.unusualwhales.com/docs/websocket),
    with one page per channel. REST endpoints that serve the same data as a
    websocket channel link to that channel's page.


    # 2026.09.21

    - Added a new websocket channel
    [`stock_screener`](https://api.unusualwhales.com/docs/websocket/stock-screener).
    It streams the latest stock screener row of every ticker and is the live
    counterpart of
    [`/screener/stocks`](https://api.unusualwhales.com/docs/operations/PublicApi.ScreenerController.stock_screener).


    # 2026.09.12

    - Added a new websocket channel
    [`ta_1d_live:{TICKER}`](https://api.unusualwhales.com/docs/websocket/technical-analysis-indicators).
    The channel streams technical-analysis indicator values (moving averages,
    RSI, MACD, Bollinger bands, ADX, Aroon, ATR, CCI, MFI, OBV, stochastics and
    Williams %R) computed on daily candles for one ticker. During regular
    trading hours it resends the day that is still forming as the price moves,
    so the newest message for a `date` replaces the ones before it. An indicator
    reads as `null` until enough daily history exists to compute it. The `1d` in
    the name is the candle interval and `live` means the values track the open
    session.


    # 2026.09.04

    - Added new websocket channels [`quotes` and
    `quotes:{TICKER}`](https://api.unusualwhales.com/docs/websocket/stock-quotes).
    They stream the live best bid and ask - for every ticker at once, or for a
    single ticker - and are the live counterpart of
    [`/stock/:ticker/quote`](https://api.unusualwhales.com/docs/operations/PublicApi.StockQuoteController.show).


    # 2026.09.01

    - Added a global
    [`greeks`](https://api.unusualwhales.com/docs/websocket/greeks) websocket
    channel. It streams the same per-contract option greeks as
    `greeks:<TICKER>`, but for every underlying at once. This is a high volume
    firehose - prefer the per-ticker channel unless you need the full tape.


    # 2026.08.30

    - MCP now advertises build guidance: `instructions` on initialize; builder
    prompts `build_dashboard_app`, `build_confluence_alert`,
    `build_trading_bot`, `build_data_stream`, `start_from_example`, and
    `setup_api_project`; tools `get_build_recipe` and `get_api_examples`
    (scripts from
    [https://github.com/unusual-whales/api-examples](https://github.com/unusual-whales/api-examples));
    and `resources/list` / `resources/templates/list` / `resources/read` for
    playbooks and example files.


    # 2026.08.28

    - Added a new websocket channel
    [`risk_reversal_skew`](https://api.unusualwhales.com/docs/websocket/risk-reversal-skew).
    The channel streams live 25- and 10-delta risk reversal skew (put implied
    volatility minus call implied volatility) per expiry across every ticker,
    the live counterpart of
    [`/stock/:ticker/historical-risk-reversal-skew`](https://api.unusualwhales.com/docs/operations/PublicApi.TickerController.historical_risk_reversal_skew).
    The channel is global only; there is no per-ticker variant.


    # 2026.08.22

    - Updated
    [`/stock/:ticker/gex-levels`](https://api.unusualwhales.com/docs/operations/PublicApi.TickerController.gex_levels)
    to derive its levels from directionalized volume instead of a cumulative
    total over the static open-interest snapshot.

    - Added `date`, `time`, `source`, and `nearby_flips` to the
    [`/stock/:ticker/gex-levels`](https://api.unusualwhales.com/docs/operations/PublicApi.TickerController.gex_levels)
    response. `nearby_flips` lists the five zero-gamma crossings nearest spot,
    ordered by distance from it. `time` is when the underlying exposure snapshot
    was calculated.


    # 2026.08.21

    - Added new websocket channels [`interpolated_iv` and
    `interpolated_iv:TICKER`](https://api.unusualwhales.com/docs/websocket/interpolated-iv).
    The channels stream interpolated implied volatility and expected moves at
    fixed horizons (1-365 trading days), the live counterpart of
    [`/stock/:ticker/interpolated-iv`](https://api.unusualwhales.com/docs/operations/PublicApi.TickerController.interpolated_iv).

    - Added new websocket channels [`iv_term_structure` and
    `iv_term_structure:TICKER`](https://api.unusualwhales.com/docs/websocket/iv-term-structure).
    The channels stream ATM implied volatility and expected moves per real
    option expiry — the raw entries behind `interpolated_iv` — the live
    counterpart of
    [`/stock/:ticker/volatility/term-structure`](https://api.unusualwhales.com/docs/operations/PublicApi.TickerController.implied_volatility_term_structure).


    # 2026.04.30

    Added a new advanced-tier endpoint group. All routes below require API
    Advanced, Enterprise Startup, Enterprise Startup + Kafka, or Enterprise
    tier.


    ### Company fundamentals

    - Added
    [`/companies/:ticker/profile`](https://api.unusualwhales.com/docs/operations/PublicApi.CompaniesController.profile)
    for sector, industry, market cap, P/E, EPS, dividend yield, analyst targets,
    52-week range, moving averages, and the full analyst rating breakdown.

    - Added
    [`/companies/:ticker/dividends`](https://api.unusualwhales.com/docs/operations/PublicApi.CompaniesController.dividends)
    for historical dividend events.

    - Added
    [`/companies/:ticker/splits`](https://api.unusualwhales.com/docs/operations/PublicApi.CompaniesController.splits)
    for historical stock-split events.

    - Added
    [`/companies/:ticker/earnings-estimates`](https://api.unusualwhales.com/docs/operations/PublicApi.CompaniesController.earnings_estimates)
    for forward analyst earnings and revenue estimates by quarter and year.

    - Added
    [`/companies/:ticker/transcripts/:quarter`](https://api.unusualwhales.com/docs/operations/PublicApi.CompaniesController.transcript)
    for earnings-call transcripts with speakers, statements, and per-statement
    sentiment.

    - Added
    [`/companies/listings`](https://api.unusualwhales.com/docs/operations/PublicApi.IntelController.listings)
    for the master list of US-traded securities (active or delisted).


    ### Macro

    - Added
    [`/commodities/:name`](https://api.unusualwhales.com/docs/operations/PublicApi.CommoditiesController.show)
    for long-running price series across WTI, Brent, natural gas, copper,
    aluminum, wheat, corn, cotton, sugar, coffee, and the global commodities
    index.

    - Added
    [`/economy/:indicator`](https://api.unusualwhales.com/docs/operations/PublicApi.EconomyController.show)
    for US economic indicator series (GDP, GDP per capita, treasury yield, fed
    funds rate, CPI, inflation, retail sales, durables, unemployment, payrolls).


    ### Forex

    - Added
    [`/forex/rate`](https://api.unusualwhales.com/docs/operations/PublicApi.ForexController.rate)
    for live FX spot rates with bid and ask.

    - Added
    [`/forex/intraday`](https://api.unusualwhales.com/docs/operations/PublicApi.ForexController.intraday)
    for 1min through 60min FX OHLC bars.

    - Added
    [`/forex/history`](https://api.unusualwhales.com/docs/operations/PublicApi.ForexController.history)
    for daily, weekly, and monthly FX OHLC bars.


    ### Digital currencies

    - Added
    [`/digital-currencies/intraday`](https://api.unusualwhales.com/docs/operations/PublicApi.DigitalCurrenciesController.intraday)
    for intraday OHLC bars priced against a fiat market.

    - Added
    [`/digital-currencies/history`](https://api.unusualwhales.com/docs/operations/PublicApi.DigitalCurrenciesController.history)
    for daily, weekly, and monthly OHLC bars.


    ### Market intel and analytics

    - Added
    [`/market/movers`](https://api.unusualwhales.com/docs/operations/PublicApi.IntelController.movers)
    for pre-ranked top gainers, top losers, and most actively traded US tickers.

    - Added
    [`/calendar/ipo`](https://api.unusualwhales.com/docs/operations/PublicApi.IntelController.ipo_calendar)
    for upcoming IPOs over the next 3 months.

    - Added
    [`/analytics/window`](https://api.unusualwhales.com/docs/operations/PublicApi.IntelController.analytics_window)
    for fixed-window statistical analytics across baskets of tickers (mean,
    stddev, correlation, drawdown, autocorrelation, covariance, and more).

    - Added
    [`/analytics/sliding`](https://api.unusualwhales.com/docs/operations/PublicApi.IntelController.analytics_sliding)
    for sliding-window statistical analytics.


    ### Congressional unusual trades (scope `unusual-trades`)

    - Added
    [`/congress/unusual-trades`](https://api.unusualwhales.com/docs/operations/PublicApi.UnusualTradesController.recent)
    for unusual congressional trades filtered by reason tag (committee_conflict,
    first_person_to_trade, low_marketcap, unusual_industry,
    unusually_large_trade, fec_donation_conflict).

    - Added
    [`/congress/unusual-trades/by-tickers`](https://api.unusualwhales.com/docs/operations/PublicApi.UnusualTradesController.by_tickers)
    with ticker, transaction type, date range, and politician filters.

    - Added
    [`/congress/unusual-trades/chart-data`](https://api.unusualwhales.com/docs/operations/PublicApi.UnusualTradesController.chart_data)
    returning trade points with SPY benchmark closes.

    - Added
    [`/congress/unusual-trades/stats`](https://api.unusualwhales.com/docs/operations/PublicApi.UnusualTradesController.stats)
    for aggregate overview statistics.


    ### Private markets (scope `private-markets`)

    - Added
    [`/private-markets/companies`](https://api.unusualwhales.com/docs/operations/PublicApi.PrivateMarketsController.companies)
    for the full Nasdaq Private Markets company list with sector and name
    filters.

    - Added
    [`/private-markets/companies/:npm_ticker`](https://api.unusualwhales.com/docs/operations/PublicApi.PrivateMarketsController.company_profile)
    for the company profile with latest price, total funding, and investor
    count.

    - Added
    [`/private-markets/companies/:npm_ticker/funding`](https://api.unusualwhales.com/docs/operations/PublicApi.PrivateMarketsController.funding)
    for funding round history.

    - Added
    [`/private-markets/companies/:npm_ticker/investors`](https://api.unusualwhales.com/docs/operations/PublicApi.PrivateMarketsController.investors)
    for disclosed investors.

    - Added
    [`/private-markets/companies/:npm_ticker/management`](https://api.unusualwhales.com/docs/operations/PublicApi.PrivateMarketsController.management)
    for disclosed leadership.

    - Added
    [`/private-markets/companies/:npm_ticker/pricing`](https://api.unusualwhales.com/docs/operations/PublicApi.PrivateMarketsController.pricing)
    for historical implied per-share pricing.

    - Added
    [`/private-markets/investors`](https://api.unusualwhales.com/docs/operations/PublicApi.PrivateMarketsController.top_investors)
    for top investors ranked by distinct company count.

    - Added
    [`/private-markets/investors/:name`](https://api.unusualwhales.com/docs/operations/PublicApi.PrivateMarketsController.investor_profile)
    for an investor's portfolio.

    - Added
    [`/private-markets/search`](https://api.unusualwhales.com/docs/operations/PublicApi.PrivateMarketsController.search)
    for substring search across companies and investors.


    ### MCP

    - Added 5 premium MCP catalogs covering the new endpoints:
    `uw_companies_extras`, `uw_macro`, `uw_forex`, `uw_digital_currencies`,
    `uw_intel`. Plus `uw_unusual_trades` and `uw_private_markets` for the
    scope-gated catalogs above.

    - Premium MCP catalogs and individual premium commands
    (`uw_stock.ownership`, `uw_flow.full_tape`, `uw_politicians`) are now hidden
    by default. Operators opt in via `UW_ENABLE_PREMIUM_TOOLS=true` (all on) or
    `UW_PREMIUM_TOOLS=uw_companies_extras,uw_macro,...` (per-tool allowlist
    supporting `<catalog_id>` or `<catalog_id>.<command>` form).


    # 2026.04.29

    - Added MCP tool `get_short_volume_ratio_by_exchange` for
    [`/shorts/:ticker/volumes-by-exchange`](https://api.unusualwhales.com/docs/operations/PublicApi.ShortController.short_volume_by_exchange)
    data.

    - Added MCP tool `get_short_volume_ratio_by_ticker` for
    [`/shorts/:ticker/volume-and-ratio`](https://api.unusualwhales.com/docs/operations/PublicApi.ShortController.short_volume_and_ratio)
    data.

    - Added MCP tool `get_short_screener` for
    [`/short_screener`](https://api.unusualwhales.com/docs/operations/PublicApi.ShortController.short_screener)

    - Added MCP tool `get_short_data_by_ticker` for
    [`/shorts/:ticker/data`](https://api.unusualwhales.com/docs/operations/PublicApi.ShortController.short_data)


    # 2026.04.14

    - Enhanced MCP [`/api/mcp`](https://api.unusualwhales.com/docs) `tools/call`
    validation to reject unsupported arguments, missing required arguments, and
    invalid enum values before tool execution.

    - MCP tool errors now include retry guidance telling clients to inspect
    `tools/list` `inputSchema` and retry with supported arguments.


    # 2026.03.02

    - Added authenticated MCP endpoint
    [`/api/mcp`](https://api.unusualwhales.com/docs) to expose existing AI tools
    to API subscribers using the same `Authorization: Bearer <API_TOKEN>` flow.

    - Supports MCP `initialize`, `tools/list`, and `tools/call` methods backed
    by the existing internal tool registry and execution pipeline.


    # 2026.01.20

    - Updated interest-float endpoint with new version and deprecated old
    version

    -
    [`/shorts/:ticker/interest-float/v2`](https://api.unusualwhales.com/docs#/operations/PublicApi.ShortController.short_interest_and_float_v2)

    - Added interest-float search screener endpoint

    -
    [`/short_screener`](https://api.unusualwhales.com/docs#/operations/PublicApi.ShortController.short_screener)


    # 2025.09.23


    - Added new websocket channels
    [`lit_trades`](https://api.unusualwhales.com/docs/websocket/lit-trades) and
    [`off_lit_trades`](https://api.unusualwhales.com/docs/websocket/off-lit-trades)
    to stream live lit (exchange-based) and off-lit (dark pool) trades
    respectively.


    # 2025.09.22


    - Added `newer_than` and `older_than` time filtering parameters to
    [`/alerts`](https://api.unusualwhales.com/docs#/operations/PublicApi.AlertsController.alerts)
    endpoint with 14-day maximum lookback period for custom alerts queries


    # 2025.08.20


    - Added
    [`/market/top-net-impact`](https://api.unusualwhales.com/docs#/operations/PublicApi.MarketController.top_net_impact)
    endpoint to get the top tickers by net premium (split between bullish and
    bearish). Supports filtering by `issue_types[]`, `date`, and `limit`
    (default 20, max 100).


    # 2025.06.18


    - Added
    [`/market/:sector/sector-tide`](https://api.unusualwhales.com/docs#/operations/PublicApi.MarketController.sec_indst)
    endpoint to get the market tide for a specific sector


    # 2025.06.02


    - Added
    [`/stock/:ticker/interpolated-iv`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.interpolated_iv)
    endpoint to get the interpolated iv for various days



    # 2025.05.29


    - Added
    [`/option-contract/:id/volume-profile`](https://api.unusualwhales.com/docs#/operations/PublicApi.OptionContractController.volume_profile)
    endpoint to get the volume profile of an option contract (volume by fill
    price)


    # 2025.05.23


    - Added
    [`/option-contract/:id/intraday`](https://api.unusualwhales.com/docs#/operations/PublicApi.OptionContractController.intraday)
    endpoint to get the volume, premium & OHLC for a contract in 1min ticks for
    a given trading day


    # 2025.05.07


    - Added `prev_close_price` field to
    [`/stock/:ticker/stock-state`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.last_stock_state)
    endpoint to provide the previous close price.


    # 2025.04.30


    - Enhanced
    [`/option-trades/full-tape/{date}`](https://api.unusualwhales.com/docs#/operations/PublicApi.OptionTradeController.full_tape)
    to allow users with `websocket` scope to access the last two trading days of
    data


    # 2025.04.23


    - Added
    [`/net-flow/expiry`](https://api.unusualwhales.com/docs#/operations/PublicApi.NetFlowController.expiry)
    endpoint to track net premium flow by tide type, moneyness, and expiration
    categories. This powers charts like those found on the [zero-DTE
    dashboard](https://unusualwhales.com/zero-dte)


    # 2025.04.08


    - Enhanced
    [`/market/correlations`](https://api.unusualwhales.com/docs#/operations/PublicApi.MarketController.correlations)
    endpoint with new date filtering options: `start_date` and `end_date`
    parameters to specify custom date ranges, complementing the existing
    `interval` parameter


    # 2025.03.23

    - Updated
    [`/stock/{ticker}/net-prem-ticks`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.net_prem_ticks)
    endpoint to

    include `call_volume`, `put_volume`, `call_volume_bid_side`, 
    `put_volume_bid_side`, `call_volume_ask_side`,  `put_volume_ask_side` &
    `net_delta`.


    # 2025.03.10


    - Added
    [`/news/headlines`](https://api.unusualwhales.com/docs#/operations/PublicApi.NewsController.headlines)
    endpoint to access financial news headlines with filtering capabilities

    - Added Shorts API endpoints:
      - [`/shorts/:ticker/data`](https://api.unusualwhales.com/docs#/operations/PublicApi.ShortController.short_data)
      - [`/shorts/:ticker/volumes-by-exchange`](https://api.unusualwhales.com/docs#/operations/PublicApi.ShortController.short_volume_by_exchange)
      - [`/shorts/:ticker/ftds`](https://api.unusualwhales.com/docs#/operations/PublicApi.ShortController.failures_to_deliver)
      - [`/shorts/:ticker/interest-float`](https://api.unusualwhales.com/docs#/operations/PublicApi.ShortController.short_interest_and_float)
      - [`/shorts/:ticker/volume-and-ratio`](https://api.unusualwhales.com/docs#/operations/PublicApi.ShortController.short_volume_and_ratio)

    # 2025.02.19


    - The endpoint
    [`/stock/:ticker/spot-exposures/:expiry/strike`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.spot_exposures_by_strike_expiry)
    has been deprecated and been replaced by
    [`/stock/:ticker/spot-exposures/expiry-strike`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.spot_exposures_by_strike_expiry_v2)


    To migrate over replace all your
    `/api/stock/:ticker/spot-exposures/:expiry/strike` calls with
    `/api/stock/:ticker/spot-exposures/expiry-strike?expirations[]=expiry`


    # 2025.02.13

    - The endpoint `/congress/recent-reports` has been removed as it returns the
    same data as `/congress/recent-trades`.


    # 2025.02.05

    - Enhanced
    [`/market/fda-calendar`](https://api.unusualwhales.com/docs#/operations/PublicApi.MarketController.fda_calendar)
    with better FDA data, additional fields (notes, outcomes, sources), and
    filtering by company metrics


    # 2025.02.03

    - Updated dark pool/off lit endpoints to allow filtering for size, premium &
    consolidated volume


    # 2025.01.22

    - Added
    [`gex_strike_expiry:<TICKER>`](https://api.unusualwhales.com/docs/websocket/gex)
    channel to the websocket

    - Added `call_option_symbol` & `put_option_symbol` to
    [`/stock/{ticker}/greeks`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.greeks)


    # 2025.01.16

    - Added
    [`/stock/:ticker/spot-exposures/:expiry/strike`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.spot_exposures_by_strike_expiry)


    # 2024.12.11

    - Added
    [`/alerts/configuration`](https://api.unusualwhales.com/docs#/operations/PublicApi.AlertsController.configs)

    - Added
    [`/alerts`](https://api.unusualwhales.com/docs#/operations/PublicApi.AlertsController.alerts)


    This allows one to grab all the alerts that have been triggerd for any alert
    that one has configured. With an existing unusualwhales account you can view
    and configure alerts directly on the
    [website](https://unusualwhales.com/custom-alerts)


    # 2024.12.02

    - Added
    [`/stock/:ticker/oi-per-strike`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.oi_per_strike)

    - Added
    [`/stock/:ticker/oi-per-expiry`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.oi_per_expiry)


    # 2024.11.19

    - Improved all earnings endpoint


    # 2024.11.09

    - Added `perc_of_total` & `perc_of_share_value` to
    [`/institution/:name/holdings`](https://api.unusualwhales.com/docs#/operations/PublicApi.InstitutionController.holdings)


    # 2024.10.30

    - Added
    [`/stock/:ticker/nope`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.nope)


    # 2024.10.28

    - Added
    [`/group-flow/:flow_group/greek-flow`](https://api.unusualwhales.com/docs#/operations/PublicApi.GroupFlowController.greek_flow)

    - Added
    [`/group-flow/:flow_group/greek-flow/:expiry`](https://api.unusualwhales.com/docs#/operations/PublicApi.GroupFlowController.greek_flow_expiry)

    - Added
    [`/stock/:ticker/greek-flow`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.greek_flow)

    - Added
    [`/stock/:ticker/greek-flow/:epxiry`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.greek_flow_expiry)


    # 2024.10.16

    - Added etf inflow & outflow endpoint
    [`/etfs/:ticker/in_outflow`](PublicApi.EtfController.in_outflow)


    # 2024.10.15

    - Added institutional latest filings endpoint
    [`/institution/latest_filings`](PublicApi.InstitutionController.latest_filings)

    - Added institutional ownership endpoint
    [`/institution/:ticker/ownership`](PublicApi.InstitutionController.ownership)


    # 2024.10.14

    - Added 2 new fields: `days_of_oi_increases` & `days_of_vol_greater_than_oi`
    to [`/market/oi-change`](PublicApi.MarketController.oi_change)

    ```

    days_of_oi_increases: The number of consecutive days that the open interest
    has increased for this contract. If on any day the open interest decreases
    or does not change the count will reset.


    days_of_vol_greater_than_oi: The number of consecutive days that the volume
    has been greater than the open interest for this contract. If on any day the
    volume is less than or equal to the open interest the count will reset.

    ```


    <br/>


    # 2024.10.10

    - Added institutional activity endpoint
    [`/institution/:name/activity`](PublicApi.InstitutionController.activity)


    # 2024.10.09

    - Added institutional list endpoint
    [`institutions`](PublicApi.InstitutionController.list)

    - Added institutional holdings endpoint
    [`/institution/:name/holdings`](PublicApi.InstitutionController.holdings)

    - Added institutional sector exposure endpoint
    [`/institution/:name/sectors`](PublicApi.InstitutionController.sectors)


    # 2024.08.01

    - Added new flow per strike intraday endpoint
    [`/stock/:ticker/flow-per-strike-intraday`](PublicApi.TickerController.flow_per_strike_intraday)


    # 2024.07.11

    - Added new correlation endpoint
    [`/market/correlations?tickers=SPY,QQQ,JPM,BAC`](PublicApi.MarketController.correlations)


    # 2024.05.30

    - Added the ability to filter
    [`/darkpool/:ticker`](PublicApi.DarkPoolController.darkpool_ticker) by
    timestamps through the two new query parameters `older_than` and
    `newer_than`


    # 2024.05.21

    - Added directionalized volume fields to
    [`/stock/:ticker/spot-exposures`](PublicApi.TickerController.spot_exposures_one_minute)
    and
    [`/stock/:ticker/spot-exposures/strike`](PublicApi.TickerController.spot_exposures_by_strike)


    # 2024.05.17

    - Added the channels `gex:TICKER` & `gex_strike:TICKER` to the
    [websocket](https://api.unusualwhales.com/docs/websocket)


    # 2024.05.07

    - Added the ability to filter
    [`/option-trades/flow-alerts`](PublicApi.OptionTradeController.flow_alerts)
    by timestamps through the two new query parameters `older_than` and
    `newer_than`


    # 2024.05.06

    - Added endpoint
    [`/stock/:ticker/stock-state`](PublicApi.TickerController.last_stock_state)
    to retrieve the last stock price & volume

    - Added endpoint
    [`/stock/:ticker/volatility/realized`](PublicApi.TickerController.realized_volatility)
    to retrieve a stock's realized volatility


    # 2024.05.03

    - The data returned by /stock/:ticker/option-contracts has been limited to
    500 results


    # 2024.05.02

    - Added endpoint
    [`/market/:ticker/etf-tide`](PublicApi.MarketController.etf_tide)


    # 2024.05.01

    - Added endpoint
    [`/stock/:ticker/spot-exposures/strike`](PublicApi.TickerController.spot_exposures_by_strike)

    - Added new channel
    [`price:TICKER`](https://api.unusualwhales.com/docs/websocket) to the
    websocket. The channel will push live price updates for the given ticker.


    # 2024.04.25

    - Added endpoint
    [`/stock/:ticker/greek-exposure/strike`](PublicApi.TickerController.greek_exposure_by_strike)

    - Added endpoint
    [`/stock/:ticker/greek-exposure/expiry`](PublicApi.TickerController.greek_exposure_by_expiry)

    - Added endpoint
    [`/stock/:ticker/greek-exposure/strike-expiry`](PublicApi.TickerController.greek_exposure_by_strike_expiry)


    # 2024.03.28

    - Fixed field name volatility -> risk_reversal for endpoint
    [`/stock/:ticker/historical_risk_reversal_skew`](PublicApi.TickerController.historical_risk_reversal_skew)


    # 2024.03.26

    - Added endpoint
    [`/stock/:ticker/greeks`](PublicApi.TickerController.greeks)

    - Added endpoint
    [`/stock/:ticker/historical_risk_reversal_skew`](PublicApi.TickerController.historical_risk_reversal_skew)


    # 2024.03.23

    - BREAKING CHANGE:

    Previously `/option-contract/:id/flow` would return the data as a json list.
    This has been now changed so that the endpoint

    returns the data in the format `{"data": [], "date": "2024-03-22"}`.
    Secondly, the endpoint will now only return data for

    a single trading day.


    # 2024.03.06

    - Added endpoint
    [`/option-trades/flow-alerts`](PublicApi.OptionTradeController.flow_alerts)

    - Added flow-alerts streaming to the WebSocket.


    # 2024.03.04

    - Added endpoint
    [`/stock/:ticker/max-pain`](https://api.unusualwhales.com/docs#/operations/PublicApi.TickerController.max_pain)


    # 2024.02.16

    - Added new endpoint section
    [`Seasonality`](https://api.unusualwhales.com/docs#/operations/PublicApi.SeasonalityController.market_seasonality)
    with new endpoints:
        - [`/seasonality/market`](https://api.unusualwhales.com/docs#/operations/PublicApi.SeasonalityController.market_seasonality)
        - [`/seasonality/:month/performers`](https://api.unusualwhales.com/docs#/operations/PublicApi.SeasonalityController.month_performers)
        - [`/seasonality/:ticker/monthly`](https://api.unusualwhales.com/docs#/operations/PublicApi.SeasonalityController.monthly)
        - [`/seasonality/:ticker/year-month`](https://api.unusualwhales.com/docs#/operations/PublicApi.SeasonalityController.year_month)

    # 2024.02.07

    - Added endpoints
    [`/stock/:ticker/expiry-breakdown`](https://api.unusualwhales.com/docs#/operations/PublicApi.OptionContractController.expiry_breakdown)
    &
    [`/stock/:ticker/option-contracts`](https://api.unusualwhales.com/docs#/operations/PublicApi.OptionContractController.option_contracts).
    These 2 endpoints allow access to the data located here:
    [https://unusualwhales.com/stock/AAPL/option-chains](https://unusualwhales.com/stock/AAPL/option-chains)
  title: UnusualWhales Api
  version: '1.0'
servers:
  - url: https://api.unusualwhales.com
    variables: {}
security:
  - authorization: []
tags: []
paths:
  /api/screener/stocks:
    get:
      tags:
        - screener
      summary: Stock Screener
      description: >
        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](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:

        ```text

        where abs(gex_gamma_per_one_percent_move_oi) > 0 and
        abs(gex_gamma_per_one_percent_move_vol) >=
        abs(gex_gamma_per_one_percent_move_oi) * 2

        ```


        Price at least two ATRs above the 20 day EMA:

        ```text

        where atr_14 > 0 and price - ema_20 >= atr_14 * 2

        ```


        Call volume at least twice put volume:

        ```text

        where put_volume > 0 and call_volume >= put_volume * 2

        ```


        Call to put volume ratio at least 10 or at most 0.1:

        ```text

        where call_volume > 0 and put_volume > 0 and (call_volume / put_volume
        >= 10 or call_volume / put_volume <= 0.1)

        ```


        Ratio of 7 day IV to 30 day IV at least 1.5 or at most 1 / 1.5:

        ```text

        where iv7d > 0 and iv30d > 0 and (iv7d / iv30d >= 1.5 or iv7d / iv30d <=
        1 / 1.5)

        ```


        Price in the top 20% of its 52 week range on a logarithmic scale:

        ```text

        where week_52_low > 0 and week_52_high > week_52_low and price > 0 and
        price <= week_52_high and log(price / week_52_low) / log(week_52_high /
        week_52_low) >= 0.8

        ```


        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:

        ```text

        where change > -1 and iv30d > 0 and abs(ln(1 + change)) >= 2 * iv30d *
        sqrt(1 / 251)

        ```


        The same daily return screen using 7 day IV:

        ```text

        where change > -1 and iv7d > 0 and abs(ln(1 + change)) >= 2 * iv7d *
        sqrt(1 / 251)

        ```


        Distance from the 20 day EMA at least the 7 day expected move:

        ```text

        where implied_move_7 > 0 and abs(price - ema_20) >= implied_move_7

        ```


        Momentum excluding the latest month above 10%, with RSI at or below 30:

        ```text

        where one_year_close > 0 and ((one_month_close / one_year_close) - 1) >
        0.10 and rsi_14 <= 30

        ```


        This combines a Gray and Vogel inspired momentum measure with an RSI
        pullback condition. See [How to Measure
        Momentum](https://alphaarchitect.com/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:


        ```json

        {
          "min_open_interest": 50000,
          "max_gex_perc_change": -1,
          "max_gex_net_change": 0
        }

        ```


        Equivalent `query` expression:


        ```text

        where open_interest >= 50000 and gex_perc_change <= -1 and
        gex_net_change <= 0

        ```


        - A minimum total open interest of 50,000 screens for relatively active
        names, using open interest as a liquidity proxy.

        - `gex_perc_change` is `(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: 0`
        selects the downward direction.

        - `gex_ratio` is 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:


        ```json

        {
          "min_open_interest": 50000,
          "max_gex_perc_change": -1,
          "min_gex_net_change": 0
        }

        ```


        Equivalent `query` expression:


        ```text

        where open_interest >= 50000 and gex_perc_change <= -1 and
        gex_net_change >= 0

        ```


        - The open interest and percentage-change thresholds are unchanged
        because the sign-change test is the same in both directions.

        - `min_gex_net_change: 0` selects the upward direction. Net gamma rising
        through zero corresponds to `gex_ratio` crossing 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.
      operationId: PublicApi.ScreenerController.stock_screener
      parameters:
        - description: >-
            Query language expression combined with the other filters. Use the
            query language for complex filters with mathematical calculations
            and comparisons between fields. Get supported fields, operators, and
            scopes from /api/screener/stocks/dsl.
          example: >-
            where price * 0.75 <= week_52_low and insider_buy_volume12m >= 10000
            and insider_sell_volume12m <= 1000 and marketcap >= 1B
          in: query
          name: query
          required: false
          schema:
            type: string
        - description: >-
            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.
          example: 0.5
          in: query
          name: min_pct_price_change_1_year
          required: false
          schema:
            format: float
            type: number
        - description: >-
            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.
          example: -0.2
          in: query
          name: max_pct_price_change_1_year
          required: false
          schema:
            format: float
            type: number
        - description: >-
            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.
          example: 0.25
          in: query
          name: min_pct_price_change_6_month
          required: false
          schema:
            format: float
            type: number
        - description: >-
            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.
          example: -0.25
          in: query
          name: max_pct_price_change_6_month
          required: false
          schema:
            format: float
            type: number
        - description: >-
            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.
          example: 0.12
          in: query
          name: min_pct_price_change_3_month
          required: false
          schema:
            format: float
            type: number
        - description: >-
            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.
          example: -0.12
          in: query
          name: max_pct_price_change_3_month
          required: false
          schema:
            format: float
            type: number
        - description: >-
            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.
          example: 0.15
          in: query
          name: min_pct_price_change_1_month
          required: false
          schema:
            format: float
            type: number
        - description: >-
            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.
          example: -0.1
          in: query
          name: max_pct_price_change_1_month
          required: false
          schema:
            format: float
            type: number
        - description: >-
            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.
          example: 0.05
          in: query
          name: min_pct_price_change_1_week
          required: false
          schema:
            format: float
            type: number
        - description: >-
            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.
          example: -0.2
          in: query
          name: max_pct_price_change_1_week
          required: false
          schema:
            format: float
            type: number
        - description: ''
          in: query
          name: ticker
          required: false
          schema:
            $ref: '#/components/schemas/Ticker'
        - description: >-
            Maximum full rows to return. Defaults to 50 and is capped at 500.
            Smaller explicit limits are honored.
          in: query
          name: limit
          required: false
          schema:
            default: 50
            maximum: 500
            minimum: 1
            type: integer
        - description: >-
            Zero-based page number. The number of skipped rows is offset
            multiplied by the effective limit.
          in: query
          name: offset
          required: false
          schema:
            default: 0
            maximum: 500
            minimum: 0
            type: integer
        - description: ''
          in: query
          name: issue_types[]
          required: false
          schema:
            $ref: '#/components/schemas/Issue_types'
        - description: The minimum % change to the previous trading day.
          example: '-0.45'
          in: query
          name: min_change
          required: false
          schema:
            type: string
        - description: The maximum % change to the previous trading day.
          example: '0.2'
          in: query
          name: max_change
          required: false
          schema:
            type: string
        - description: The minimum stock price.
          example: '5.23'
          in: query
          name: min_underlying_price
          required: false
          schema:
            type: string
        - description: The maximum stock price.
          example: '10.53'
          in: query
          name: max_underlying_price
          required: false
          schema:
            type: string
        - description: >-
            Boolean whether to only include stocks which are part of the S&P
            500. Setting this to false has no effect.
          in: query
          name: is_s_p_500
          required: false
          schema:
            type: boolean
        - description: >-
            Boolean wheter to only include stocks which pay dividends. Setting
            this to false has no effect.
          in: query
          name: has_dividends
          required: false
          schema:
            type: boolean
        - description: ''
          in: query
          name: sectors[]
          required: false
          schema:
            $ref: '#/components/schemas/Sectors'
        - description: >-
            Return securities with this exact company industry label. Separate
            multiple labels with commas to match any listed industry. Labels
            come from company data, not a fixed enumeration. The industries and
            industry_type aliases are also accepted.
          example: Semiconductors
          in: query
          name: industry
          required: false
          schema:
            type: string
        - description: The minimum marketcap.
          example: '1000000'
          in: query
          name: min_marketcap
          required: false
          schema:
            type: string
        - description: The maximum marketcap.
          example: '250000000'
          in: query
          name: max_marketcap
          required: false
          schema:
            type: string
        - description: The minimum ratio of options volume vs 3 day avg options volume.
          example: '0.25'
          in: query
          name: min_perc_3_day_total
          required: false
          schema:
            type: string
        - description: The maximum ratio of options volume vs 3 day avg options volume.
          example: '1.72'
          in: query
          name: max_perc_3_day_total
          required: false
          schema:
            type: string
        - description: >-
            The minimum ratio of call options volume vs 3 day avg call options
            volume.
          example: '0.25'
          in: query
          name: min_perc_3_day_call
          required: false
          schema:
            type: string
        - description: >-
            The maximum ratio of call options volume vs 3 day avg call options
            volume.
          example: '1.72'
          in: query
          name: max_perc_3_day_call
          required: false
          schema:
            type: string
        - description: >-
            The minimum ratio of put options volume vs 3 day avg put options
            volume.
          example: '0.25'
          in: query
          name: min_perc_3_day_put
          required: false
          schema:
            type: string
        - description: >-
            The maximum ratio of put options volume vs 3 day avg put options
            volume.
          example: '1.72'
          in: query
          name: max_perc_3_day_put
          required: false
          schema:
            type: string
        - description: The minimum ratio of options volume vs 30 day avg options volume.
          example: '0.25'
          in: query
          name: min_perc_30_day_total
          required: false
          schema:
            type: string
        - description: The maximum ratio of options volume vs 30 day avg options volume.
          example: '1.72'
          in: query
          name: max_perc_30_day_total
          required: false
          schema:
            type: string
        - description: >-
            The minimum ratio of call options volume vs 30 day avg call options
            volume.
          example: '0.25'
          in: query
          name: min_perc_30_day_call
          required: false
          schema:
            type: string
        - description: >-
            The maximum ratio of call options volume vs 30 day avg call options
            volume.
          example: '1.72'
          in: query
          name: max_perc_30_day_call
          required: false
          schema:
            type: string
        - description: >-
            The minimum ratio of put options volume vs 30 day avg put options
            volume.
          example: '0.25'
          in: query
          name: min_perc_30_day_put
          required: false
          schema:
            type: string
        - description: >-
            The maximum ratio of put options volume vs 30 day avg put options
            volume.
          example: '1.72'
          in: query
          name: max_perc_30_day_put
          required: false
          schema:
            type: string
        - description: The minimum open interest change compared to the previous day.
          example: '-0.45'
          in: query
          name: min_total_oi_change_perc
          required: false
          schema:
            type: string
        - description: The maximum open interest change compared to the previous day.
          example: '0.2'
          in: query
          name: max_total_oi_change_perc
          required: false
          schema:
            type: string
        - description: >-
            The minimum open interest change of call contracts compared to the
            previous day.
          example: '-0.45'
          in: query
          name: min_call_oi_change_perc
          required: false
          schema:
            type: string
        - description: >-
            The maximum open interest change of call contracts compared to the
            previous day.
          example: '0.2'
          in: query
          name: max_call_oi_change_perc
          required: false
          schema:
            type: string
        - description: >-
            The minimum open interest change of put contracts compared to the
            previous day.
          example: '-0.45'
          in: query
          name: min_put_oi_change_perc
          required: false
          schema:
            type: string
        - description: >-
            The maximum open interest change of put contracts compared to the
            previous day.
          example: '0.2'
          in: query
          name: max_put_oi_change_perc
          required: false
          schema:
            type: string
        - description: The minimum implied move.
          example: '0.45'
          in: query
          name: min_implied_move
          required: false
          schema:
            type: string
        - description: The maximum implied move.
          example: '1.4'
          in: query
          name: max_implied_move
          required: false
          schema:
            type: string
        - description: The minimum implied move perc.
          example: '0.15'
          in: query
          name: min_implied_move_perc
          required: false
          schema:
            type: string
        - description: The maximum implied move perc.
          example: '0.6'
          in: query
          name: max_implied_move_perc
          required: false
          schema:
            type: string
        - description: The minimum volatility.
          example: '0.15'
          in: query
          name: min_volatility
          required: false
          schema:
            type: string
        - description: The maximum volatility.
          example: '0.6'
          in: query
          name: max_volatility
          required: false
          schema:
            type: string
        - description: The minimum iv rank.
          example: '0.15'
          in: query
          name: min_iv_rank
          required: false
          schema:
            type: string
        - description: The maximum iv rank.
          example: '22.6'
          in: query
          name: max_iv_rank
          required: false
          schema:
            type: string
        - description: The minimum options volume.
          example: '10000'
          in: query
          name: min_volume
          required: false
          schema:
            type: integer
        - description: The maximum options volume.
          example: '35000'
          in: query
          name: max_volume
          required: false
          schema:
            type: integer
        - description: The minimum call options volume.
          example: '10000'
          in: query
          name: min_call_volume
          required: false
          schema:
            type: integer
        - description: The maximum call options volume.
          example: '35000'
          in: query
          name: max_call_volume
          required: false
          schema:
            type: integer
        - description: The minimum put options volume.
          example: '10000'
          in: query
          name: min_put_volume
          required: false
          schema:
            type: integer
        - description: The maximum put options volume.
          example: '35000'
          in: query
          name: max_put_volume
          required: false
          schema:
            type: integer
        - description: The minimum options premium.
          example: '10000'
          in: query
          name: min_premium
          required: false
          schema:
            type: string
        - description: The minimum options premium.
          example: '35000'
          in: query
          name: max_premium
          required: false
          schema:
            type: string
        - description: The minimum call options premium.
          example: '10000'
          in: query
          name: min_call_premium
          required: false
          schema:
            type: string
        - description: The minimum call options premium.
          example: '35000'
          in: query
          name: max_call_premium
          required: false
          schema:
            type: string
        - description: The minimum put options premium.
          example: '10000'
          in: query
          name: min_put_premium
          required: false
          schema:
            type: string
        - description: The minimum put options premium.
          example: '35000'
          in: query
          name: max_put_premium
          required: false
          schema:
            type: string
        - description: The minimum net options premium.
          example: '10000'
          in: query
          name: min_net_premium
          required: false
          schema:
            type: string
        - description: The minimum net options premium.
          example: '35000'
          in: query
          name: max_net_premium
          required: false
          schema:
            type: string
        - description: The minimum net call options premium.
          example: '10000'
          in: query
          name: min_net_call_premium
          required: false
          schema:
            type: string
        - description: The maximum net call options premium.
          example: '35000'
          in: query
          name: max_net_call_premium
          required: false
          schema:
            type: string
        - description: The minimum net put options premium.
          example: '10000'
          in: query
          name: min_net_put_premium
          required: false
          schema:
            type: string
        - description: The maximum net put options premium.
          example: '35000'
          in: query
          name: max_net_put_premium
          required: false
          schema:
            type: string
        - description: The minimum open interest.
          example: '10000'
          in: query
          name: min_oi
          required: false
          schema:
            type: integer
        - description: The maximum open interest.
          example: '35000'
          in: query
          name: max_oi
          required: false
          schema:
            type: integer
        - description: The minimum open interest vs options volume ratio.
          example: '0.5'
          in: query
          name: min_oi_vs_vol
          required: false
          schema:
            type: string
        - description: The maximum open interest vs options volume ratio.
          example: '1.5'
          in: query
          name: max_oi_vs_vol
          required: false
          schema:
            type: string
        - description: The minimum put to call ratio.
          example: '0.5'
          in: query
          name: min_put_call_ratio
          required: false
          schema:
            type: string
        - description: The maximum put to call ratio.
          example: '1.5'
          in: query
          name: max_put_call_ratio
          required: false
          schema:
            type: string
        - description: >-
            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.
          in: query
          name: order
          required: false
          schema:
            default: volume
            type: string
        - description: ''
          in: query
          name: order_direction
          required: false
          schema:
            $ref: '#/components/schemas/OrderDirection'
        - description: The minimum stock volume vs average 30 day volume.
          example: '1.2'
          in: query
          name: min_stock_volume_vs_avg30_volume
          required: false
          schema:
            type: string
        - description: The maximum stock volume vs average 30 day volume.
          example: '10.0'
          in: query
          name: max_avg30_volume
          required: false
          schema:
            type: string
        - description: ''
          in: query
          name: date
          required: false
          schema:
            $ref: '#/components/schemas/Optional_Market_Date'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Stock_Screener_response'
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Authentication_Error'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden_Error'
          description: Forbidden
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_Message'
          description: Unprocessable Entity
        '500':
          content:
            text/plain:
              schema:
                $ref: >-
                  #/components/schemas/Error_Message_on_an_internal_server_error.
          description: Internal Server Error
      callbacks: {}
components:
  schemas:
    Ticker:
      description: >-
        A comma separated list of tickers. To exclude certain tickers prefix the
        first ticker with a `-`.
      example: AAPL,INTC
      title: Ticker
      type: string
    Issue_types:
      description: An array of 1 or more issue types.
      example:
        - Common Stock
        - Index
      items:
        $ref: '#/components/schemas/Single_issue_type'
      title: Issue types
      type: array
    Sectors:
      description: An array of 1 or more sectors.
      example:
        - Consumer Cyclical
        - Technology
        - Utilities
      items:
        $ref: '#/components/schemas/Single_sector'
      title: Sectors
      type: array
    OrderDirection:
      default: desc
      description: Whether to sort descending or ascending. Descending by default.
      enum:
        - desc
        - asc
      example: asc
      title: OrderDirection
      type: string
    Optional_Market_Date:
      description: |
        A trading date in the format of YYYY-MM-DD.
        This is optional and by default the last trading date.
      example: '2024-01-18T00:00:00.000Z'
      title: Optional Market Date
      type: string
    Stock_Screener_response:
      description: Matching stock screener rows. Decimal values are JSON strings.
      example:
        data:
          - ask: '212.37'
            ask_quantity: 200
            avg30_volume: '130548356.35'
            avg_30_day_call_oi: '8051988.5'
            avg_30_day_call_volume: '2249702.1667'
            avg_30_day_put_oi: '6761847.1333'
            avg_30_day_put_volume: '1233488.0333'
            avg_3_day_call_volume: '1827235'
            avg_3_day_put_volume: '1035420.3333'
            avg_7_day_call_volume: '2072806.2857'
            avg_7_day_put_volume: '1152390'
            bearish_premium: '251292082.00'
            bid: '212.22'
            bid_quantity: 1
            bullish_premium: '263159651.00'
            call_open_interest: 8264707
            call_premium: '386488449.00'
            call_premium_mid_side: '39629161.00'
            call_volume: 1154879
            call_volume_ask_side: 515816
            call_volume_bid_side: 559199
            call_volume_mid_side: 79840
            close: '212.32'
            cum_dir_delta: -677914
            cum_dir_gamma: -259659
            cum_dir_vega: -743026
            date: '2026-09-15T00:00:00.000Z'
            dividend_yield: '0.0024491333835719668425018839'
            earnings_perc: '0.0126872078603453209958981208'
            eps_growth_12q: '7.88000000000000017760'
            eps_growth_16q: '68.37500000000000138750'
            eps_growth_4q: '1.24242424242424242424'
            eps_growth_8q: '2.41538461538461538462'
            er_time: unknown
            etf_share_flow: null
            five_year_perc: '8.504028648164726947179946285'
            full_name: null
            gex_charm_per_one_percent_move_dir: '-4173772259.32'
            gex_charm_per_one_percent_move_oi: '-178109539132.43'
            gex_charm_per_one_percent_move_vol: '-86622472511.05'
            gex_delta_per_one_percent_move_oi: '91551310557.8'
            gex_delta_per_one_percent_move_vol: '6933889994.39'
            gex_gamma_per_one_percent_move_dir: '60387043.67'
            gex_gamma_per_one_percent_move_oi: '614273906.59'
            gex_gamma_per_one_percent_move_vol: '1162736871.6'
            gex_net_change: '1142737.0464'
            gex_perc_change: '2.5576649791004452'
            gex_ratio: '0.70511582545094547148'
            gex_vanna_per_one_percent_move_dir: '1351888.72'
            gex_vanna_per_one_percent_move_oi: '181215271.33'
            gex_vanna_per_one_percent_move_vol: '23383778.47'
            has_options: true
            high: '212.68'
            implied_move: '13.995'
            implied_move_1: '3.074'
            implied_move_14: '9.284'
            implied_move_180: '38.44'
            implied_move_30: '13.995'
            implied_move_365: '55.601'
            implied_move_5: '5.711'
            implied_move_60: '21.765'
            implied_move_7: '6.568'
            implied_move_90: '26.744'
            implied_move_perc: '0.066'
            implied_move_perc_1: '0.014'
            implied_move_perc_14: '0.044'
            implied_move_perc_180: '0.181'
            implied_move_perc_30: '0.066'
            implied_move_perc_365: '0.262'
            implied_move_perc_5: '0.027'
            implied_move_perc_60: '0.103'
            implied_move_perc_7: '0.031'
            implied_move_perc_90: '0.126'
            industry_type: Semiconductors
            insider_buy_volume_12m: 0
            insider_buy_volume_3m: 0
            insider_buy_volume_6m: 0
            insider_sell_volume_12m: 6468150
            insider_sell_volume_3m: 3755740
            insider_sell_volume_6m: 4992922
            intraday_change: '0.0008484962760441218063542943'
            is_index: false
            issue_type: Common Stock
            iv30d: '0.339'
            iv30d_1d: '0.335'
            iv30d_1m: '0.379'
            iv30d_1w: '0.344'
            iv_percentile_1m: '50'
            iv_percentile_1y: '8.4'
            iv_rank: '10.7619'
            iv_rank_1m: '25.5102'
            last_earnings_date: '2026-08-26T00:00:00.000Z'
            latest_dividend: '0.25000000000000000000'
            latest_dividend_date: '2026-09-10T00:00:00.000Z'
            latest_dividend_payment_date: '2026-10-01T00:00:00.000Z'
            low: '212.14'
            marketcap: '5116912000000'
            net_call_premium: '-1688824.00'
            net_premium: '12448069.00'
            net_put_premium: '-14136893.00'
            next_dividend_date: '2026-09-10T00:00:00.000Z'
            next_earnings_date: '2026-11-18T00:00:00.000Z'
            one_day_perc: '0.0064467197572999620781190747'
            one_month_perc: '-0.0570261147628353171078344289'
            one_week_perc: '-0.0594072564568289549461746334'
            one_year_perc: '0.1944866385372714486638537271'
            open: '212.14'
            prev_call_oi: 8045834
            prev_call_volume: 2013743
            prev_close: '210.96'
            prev_put_oi: 7124369
            prev_put_volume: 1206385
            put_call_ratio: '0.4763910331731722544093363894'
            put_open_interest: 7246905
            put_premium: '200197635.00'
            put_premium_mid_side: '21803110.00'
            put_volume: 550174
            put_volume_ask_side: 255999
            put_volume_bid_side: 243660
            put_volume_mid_side: 39512
            quote_time: 1789515606340
            realized_volatility: '0.442142'
            relative_volume: '0.6741319344079202572051379182'
            rv_1d_last_12q: '0.69530601632178044935'
            sector: Technology
            shares_outstanding: '24100000000'
            shares_outstanding_growth_12q: '-0.02429149797570850202'
            shares_outstanding_growth_4q: '-0.00823045267489711934'
            shares_outstanding_growth_8q: '-0.01752955564614757440'
            short_int: '0'
            six_month_perc: '0.1779195561719833564493758669'
            steepness_180_30: '1.1327433628318584070796460177'
            stock_volume: 88006816
            three_month_perc: '-0.000611908684396328547893622'
            ticker: NVDA
            total_open_interest: 15511612
            ttm_dividend: '0.52000000000000000000'
            variance_risk_premium: '-0.054142'
            volatility: '0.339'
            volatility_1: '0.406'
            volatility_14: '0.328'
            volatility_180: '0.384'
            volatility_30: '0.339'
            volatility_365: '0.39'
            volatility_5: '0.339'
            volatility_60: '0.374'
            volatility_7: '0.329'
            volatility_90: '0.375'
            week_52_high: '236.54'
            week_52_low: '164.27'
            ytd_perc: '0.1384450402144772117962466488'
            z_score: '0.3012839205652179291530506224'
      properties:
        data:
          description: >-
            Rows after filtering, sorting, and pagination. Empty when no rows
            match.
          items:
            properties:
              adx_14:
                description: >-
                  Average directional index over 14 periods, from 0 to 100. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              aroon_14_down:
                description: >-
                  Aroon down over 14 periods, from 0 to 100. Each period is one
                  regular session daily candle. Null when the source value is
                  unavailable or there is insufficient history for the
                  indicator.
                format: double
                nullable: true
                type: number
              aroon_14_up:
                description: >-
                  Aroon up over 14 periods, from 0 to 100. Each period is one
                  regular session daily candle. Null when the source value is
                  unavailable or there is insufficient history for the
                  indicator.
                format: double
                nullable: true
                type: number
              ask:
                description: >-
                  Latest best ask price, in the instrument's quoted price units.
                  Null for historical snapshots.
                nullable: true
                type: string
              ask_quantity:
                description: >-
                  Shares available at the latest best ask. Null for historical
                  snapshots.
                format: int64
                nullable: true
                type: integer
              atr_14:
                description: >-
                  Average true range over 14 periods. Each period is one regular
                  session daily candle. Null when the source value is
                  unavailable or there is insufficient history for the
                  indicator.
                format: double
                nullable: true
                type: number
              avg30_volume:
                description: >-
                  Average regular-session share volume for observations later
                  than 30 calendar days before the latest market open, rather
                  than exactly 30 trading sessions.
                nullable: true
                type: string
              avg_30_day_call_oi:
                description: >-
                  Mean non-null call open interest among up to the 30 most
                  recent earlier stored dates.
                nullable: true
                type: string
              avg_30_day_call_volume:
                description: >-
                  Mean call contract volume over up to the 30 most recent
                  earlier stored dates.
                nullable: true
                type: string
              avg_30_day_put_oi:
                description: >-
                  Mean non-null put open interest among up to the 30 most recent
                  earlier stored dates.
                nullable: true
                type: string
              avg_30_day_put_volume:
                description: >-
                  Mean put contract volume over up to the 30 most recent earlier
                  stored dates.
                nullable: true
                type: string
              avg_3_day_call_volume:
                description: >-
                  Mean call contract volume over up to the 3 most recent earlier
                  stored dates.
                nullable: true
                type: string
              avg_3_day_put_volume:
                description: >-
                  Mean put contract volume over up to the 3 most recent earlier
                  stored dates.
                nullable: true
                type: string
              avg_7_day_call_volume:
                description: >-
                  Mean call contract volume over up to the 7 most recent earlier
                  stored dates.
                nullable: true
                type: string
              avg_7_day_put_volume:
                description: >-
                  Mean put contract volume over up to the 7 most recent earlier
                  stored dates.
                nullable: true
                type: string
              bb_14_2_lower:
                description: >-
                  Lower Bollinger band over 14 closing prices at 2 standard
                  deviations. Each period is one regular session daily candle.
                  Null when the source value is unavailable or there is
                  insufficient history for the indicator.
                format: double
                nullable: true
                type: number
              bb_14_2_middle:
                description: >-
                  Middle Bollinger band, the simple moving average of the close
                  over 14 periods. Each period is one regular session daily
                  candle. Null when the source value is unavailable or there is
                  insufficient history for the indicator.
                format: double
                nullable: true
                type: number
              bb_14_2_upper:
                description: >-
                  Upper Bollinger band over 14 closing prices at 2 standard
                  deviations. Each period is one regular session daily candle.
                  Null when the source value is unavailable or there is
                  insufficient history for the indicator.
                format: double
                nullable: true
                type: number
              bb_20_2_lower:
                description: >-
                  Lower Bollinger band over 20 closing prices at 2 standard
                  deviations. Each period is one regular session daily candle.
                  Null when the source value is unavailable or there is
                  insufficient history for the indicator.
                format: double
                nullable: true
                type: number
              bb_20_2_middle:
                description: >-
                  Middle Bollinger band, the simple moving average of the close
                  over 20 periods. Each period is one regular session daily
                  candle. Null when the source value is unavailable or there is
                  insufficient history for the indicator.
                format: double
                nullable: true
                type: number
              bb_20_2_upper:
                description: >-
                  Upper Bollinger band over 20 closing prices at 2 standard
                  deviations. Each period is one regular session daily candle.
                  Null when the source value is unavailable or there is
                  insufficient history for the indicator.
                format: double
                nullable: true
                type: number
              bearish_premium:
                description: >-
                  Call bid-side premium plus put ask-side premium, in US
                  dollars. Excludes mid-side and unclassified trades.
                nullable: false
                type: string
              bid:
                description: >-
                  Latest best bid price, in the instrument's quoted price units.
                  Null for historical snapshots.
                nullable: true
                type: string
              bid_quantity:
                description: >-
                  Shares available at the latest best bid. Null for historical
                  snapshots.
                format: int64
                nullable: true
                type: integer
              bullish_premium:
                description: >-
                  Call ask-side premium plus put bid-side premium, in US
                  dollars. Excludes mid-side and unclassified trades.
                nullable: false
                type: string
              call_open_interest:
                description: Call option open interest for the represented trading date.
                format: int64
                nullable: true
                type: integer
              call_premium:
                description: Total call option premium in US dollars on the row's date.
                nullable: false
                type: string
              call_premium_mid_side:
                description: call premium in US dollars classified between the bid and ask.
                nullable: true
                type: string
              call_volume:
                description: Call option contracts traded on the row's date.
                format: int64
                nullable: false
                type: integer
              call_volume_ask_side:
                description: call option contracts classified on the ask side.
                format: int64
                nullable: true
                type: integer
              call_volume_bid_side:
                description: call option contracts classified on the bid side.
                format: int64
                nullable: true
                type: integer
              call_volume_mid_side:
                description: call option contracts classified on the mid side.
                format: int64
                nullable: true
                type: integer
              cci_14:
                description: >-
                  Commodity channel index over 14 periods. This oscillator has
                  no fixed bounds. Each period is one regular session daily
                  candle. Null when the source value is unavailable or there is
                  insufficient history for the indicator.
                format: double
                nullable: true
                type: number
              close:
                description: >-
                  Latest trade price from the latest accepted trading session,
                  in the instrument's quoted price units. May be null when
                  index-price access rules hide prices.
                nullable: true
                type: string
              cum_dir_delta:
                description: >-
                  Trade-level sum of floor(sign * abs(delta * contracts * 100)).
                  Call ask and put bid trades are positive. Call bid and put ask
                  trades are negative. Other trades contribute zero.
                format: int64
                nullable: true
                type: integer
              cum_dir_gamma:
                description: >-
                  Trade-level sum of floor(sign * abs(gamma * contracts * 100)).
                  Ask-side trades are positive, bid-side trades are negative,
                  and other trades contribute zero.
                format: int64
                nullable: true
                type: integer
              cum_dir_vega:
                description: >-
                  Trade-level sum of floor(sign * abs(vega * contracts * 100)).
                  Ask-side trades are positive, bid-side trades are negative,
                  and other trades contribute zero.
                format: int64
                nullable: true
                type: integer
              date:
                description: New York trading date represented by this row.
                format: date
                type: string
              dividend_yield:
                description: >-
                  ttm_dividend divided by the latest accepted stock price. A
                  value of 0.04 means 4 percent. Null when price is zero or an
                  input is missing.
                nullable: true
                type: string
              earnings_perc:
                description: >-
                  Fractional price return from the regular close immediately
                  before the latest earnings reaction window, relative to the
                  row's date. A value of 0.05 means 5 percent. Null when the
                  reference price is zero or an input is missing.
                nullable: true
                type: string
              ema_14:
                description: >-
                  Exponential moving average of the close over 14 periods. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              ema_20:
                description: >-
                  Exponential moving average of the close over 20 periods. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              ema_21:
                description: >-
                  Exponential moving average of the close over 21 periods. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              ema_50:
                description: >-
                  Exponential moving average of the close over 50 periods. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              ema_9:
                description: >-
                  Exponential moving average of the close over 9 periods. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              eps_growth_12q:
                description: >-
                  Fractional EPS growth: (current EPS - EPS 12 reports earlier)
                  / abs(EPS 12 reports earlier). Null when an input is missing
                  or the comparison EPS is zero.
                nullable: true
                type: string
              eps_growth_16q:
                description: >-
                  Fractional EPS growth: (current EPS - EPS 16 reports earlier)
                  / abs(EPS 16 reports earlier). Null when an input is missing
                  or the comparison EPS is zero.
                nullable: true
                type: string
              eps_growth_4q:
                description: >-
                  Fractional EPS growth: (current EPS - EPS 4 reports earlier) /
                  abs(EPS 4 reports earlier). Null when an input is missing or
                  the comparison EPS is zero.
                nullable: true
                type: string
              eps_growth_8q:
                description: >-
                  Fractional EPS growth: (current EPS - EPS 8 reports earlier) /
                  abs(EPS 8 reports earlier). Null when an input is missing or
                  the comparison EPS is zero.
                nullable: true
                type: string
              er_time:
                description: >-
                  Earnings announcement timing, such as premarket, postmarket,
                  or unknown.
                nullable: true
                type: string
              etf_share_flow:
                description: >-
                  Signed change in an ETF's share count for the source
                  observation date. Positive values indicate inflow and negative
                  values indicate outflow.
                format: int64
                nullable: true
                type: integer
              five_year_close:
                description: >-
                  Reference price for five_year_perc. Null when the reference
                  price is unavailable.
                nullable: true
                type: string
              five_year_perc:
                description: >-
                  Fractional price return from the latest regular close on or
                  before five calendar years earlier, relative to the row's
                  date. A value of 0.05 means 5 percent. Null when the reference
                  price is zero or an input is missing.
                nullable: true
                type: string
              full_name:
                description: Company or security display name.
                nullable: true
                type: string
              gex_charm_per_one_percent_move_dir:
                description: >-
                  Sum of charm weighted by directional session volume. Ask-side
                  volume is negative and bid-side volume is positive. Mid-side
                  volume is excluded. Multiplied by the underlying price and
                  365.
                nullable: true
                type: string
              gex_charm_per_one_percent_move_oi:
                description: >-
                  Sum of charm weighted by open interest. Put charm is negated.
                  Multiplied by the underlying price and 365.
                nullable: true
                type: string
              gex_charm_per_one_percent_move_vol:
                description: >-
                  Sum of charm weighted by session option volume. Put charm is
                  negated. Multiplied by the underlying price and 365.
                nullable: true
                type: string
              gex_daily_call_charm:
                description: >-
                  Daily call charm exposure from gex_daily for the row's date.
                  Includes open interest and the contract multiplier of 100,
                  without underlying-price scaling. Put gamma is negated; other
                  Greeks retain their source signs. Net is call plus put. Null
                  when a required side is unavailable.
                nullable: true
                type: string
              gex_daily_call_delta:
                description: >-
                  Daily call delta exposure from gex_daily for the row's date.
                  Includes open interest and the contract multiplier of 100,
                  without underlying-price scaling. Put gamma is negated; other
                  Greeks retain their source signs. Net is call plus put. Null
                  when a required side is unavailable.
                nullable: true
                type: string
              gex_daily_call_gex:
                description: >-
                  Daily call gamma exposure from gex_daily for the row's date.
                  Includes open interest and the contract multiplier of 100,
                  without underlying-price scaling. Put gamma is negated; other
                  Greeks retain their source signs. Net is call plus put. Null
                  when a required side is unavailable.
                nullable: true
                type: string
              gex_daily_call_vanna:
                description: >-
                  Daily call vanna exposure from gex_daily for the row's date.
                  Includes open interest and the contract multiplier of 100,
                  without underlying-price scaling. Put gamma is negated; other
                  Greeks retain their source signs. Net is call plus put. Null
                  when a required side is unavailable.
                nullable: true
                type: string
              gex_daily_net_charm:
                description: >-
                  Daily net charm exposure from gex_daily for the row's date.
                  Includes open interest and the contract multiplier of 100,
                  without underlying-price scaling. Put gamma is negated; other
                  Greeks retain their source signs. Net is call plus put. Null
                  when a required side is unavailable.
                nullable: true
                type: string
              gex_daily_net_delta:
                description: >-
                  Daily net delta exposure from gex_daily for the row's date.
                  Includes open interest and the contract multiplier of 100,
                  without underlying-price scaling. Put gamma is negated; other
                  Greeks retain their source signs. Net is call plus put. Null
                  when a required side is unavailable.
                nullable: true
                type: string
              gex_daily_net_gex:
                description: >-
                  Daily net gamma exposure from gex_daily for the row's date.
                  Includes open interest and the contract multiplier of 100,
                  without underlying-price scaling. Put gamma is negated; other
                  Greeks retain their source signs. Net is call plus put. Null
                  when a required side is unavailable.
                nullable: true
                type: string
              gex_daily_net_vanna:
                description: >-
                  Daily net vanna exposure from gex_daily for the row's date.
                  Includes open interest and the contract multiplier of 100,
                  without underlying-price scaling. Put gamma is negated; other
                  Greeks retain their source signs. Net is call plus put. Null
                  when a required side is unavailable.
                nullable: true
                type: string
              gex_daily_put_charm:
                description: >-
                  Daily put charm exposure from gex_daily for the row's date.
                  Includes open interest and the contract multiplier of 100,
                  without underlying-price scaling. Put gamma is negated; other
                  Greeks retain their source signs. Net is call plus put. Null
                  when a required side is unavailable.
                nullable: true
                type: string
              gex_daily_put_delta:
                description: >-
                  Daily put delta exposure from gex_daily for the row's date.
                  Includes open interest and the contract multiplier of 100,
                  without underlying-price scaling. Put gamma is negated; other
                  Greeks retain their source signs. Net is call plus put. Null
                  when a required side is unavailable.
                nullable: true
                type: string
              gex_daily_put_gex:
                description: >-
                  Daily put gamma exposure from gex_daily for the row's date.
                  Includes open interest and the contract multiplier of 100,
                  without underlying-price scaling. Put gamma is negated; other
                  Greeks retain their source signs. Net is call plus put. Null
                  when a required side is unavailable.
                nullable: true
                type: string
              gex_daily_put_vanna:
                description: >-
                  Daily put vanna exposure from gex_daily for the row's date.
                  Includes open interest and the contract multiplier of 100,
                  without underlying-price scaling. Put gamma is negated; other
                  Greeks retain their source signs. Net is call plus put. Null
                  when a required side is unavailable.
                nullable: true
                type: string
              gex_delta_per_one_percent_move_oi:
                description: >-
                  Sum of delta weighted by open interest. Delta retains its
                  source sign for calls and puts. Multiplied by the underlying
                  price squared.
                nullable: true
                type: string
              gex_delta_per_one_percent_move_vol:
                description: >-
                  Sum of delta weighted by session option volume. Delta retains
                  its source sign for calls and puts. Multiplied by the
                  underlying price squared.
                nullable: true
                type: string
              gex_gamma_per_one_percent_move_dir:
                description: >-
                  Sum of gamma weighted by directional session volume. Ask-side
                  volume is negative and bid-side volume is positive. Mid-side
                  volume is excluded. Multiplied by the underlying price
                  squared.
                nullable: true
                type: string
              gex_gamma_per_one_percent_move_oi:
                description: >-
                  Sum of gamma weighted by open interest. Put gamma is negated.
                  Multiplied by the underlying price squared.
                nullable: true
                type: string
              gex_gamma_per_one_percent_move_vol:
                description: >-
                  Sum of gamma weighted by session option volume. Put gamma is
                  negated. Multiplied by the underlying price squared.
                nullable: true
                type: string
              gex_net_change:
                description: >-
                  Current daily net gamma minus the previous trading-date value.
                  Null unless both values are available. Intraday exposure
                  updates do not recalculate this comparison.
                nullable: true
                type: string
              gex_perc_change:
                description: >-
                  Fractional daily net gamma change: (current - previous) /
                  previous. Null when the previous value is zero or either value
                  is missing. Intraday exposure updates do not recalculate this
                  comparison.
                nullable: true
                type: string
              gex_ratio:
                description: >-
                  Absolute daily put gamma divided by daily call gamma. Null
                  when either side is missing or call gamma is zero. Intraday
                  exposure updates do not recalculate this ratio.
                nullable: true
                type: string
              gex_vanna_per_one_percent_move_dir:
                description: >-
                  Sum of vanna weighted by directional session volume. Ask-side
                  volume is negative and bid-side volume is positive. Mid-side
                  volume is excluded. Multiplied by same-date 30-day implied
                  volatility and the underlying price. Zero when same-date
                  implied volatility is unavailable.
                nullable: true
                type: string
              gex_vanna_per_one_percent_move_oi:
                description: >-
                  Sum of vanna weighted by open interest. Put vanna is negated.
                  Multiplied by same-date 30-day implied volatility and the
                  underlying price. Zero when same-date implied volatility is
                  unavailable.
                nullable: true
                type: string
              gex_vanna_per_one_percent_move_vol:
                description: >-
                  Sum of vanna weighted by session option volume. Put vanna is
                  negated. Multiplied by same-date 30-day implied volatility and
                  the underlying price. Zero when same-date implied volatility
                  is unavailable.
                nullable: true
                type: string
              has_options:
                description: Whether the security has listed equity options.
                nullable: true
                type: boolean
              high:
                description: >-
                  Highest price in the latest accepted trading session, in the
                  instrument's quoted price units. May be null when index-price
                  access rules hide prices.
                nullable: true
                type: string
              implied_move:
                description: Expected absolute move for the 30-calendar-day horizon.
                nullable: true
                type: string
              implied_move_1:
                description: Expected absolute move. Fixed 1-calendar-day horizon.
                nullable: true
                type: string
              implied_move_14:
                description: Expected absolute move. Fixed 14-calendar-day horizon.
                nullable: true
                type: string
              implied_move_180:
                description: Expected absolute move. Fixed 180-calendar-day horizon.
                nullable: true
                type: string
              implied_move_30:
                description: Expected absolute move. Fixed 30-calendar-day horizon.
                nullable: true
                type: string
              implied_move_365:
                description: Expected absolute move. Fixed 365-calendar-day horizon.
                nullable: true
                type: string
              implied_move_5:
                description: Expected absolute move. Fixed 5-calendar-day horizon.
                nullable: true
                type: string
              implied_move_60:
                description: Expected absolute move. Fixed 60-calendar-day horizon.
                nullable: true
                type: string
              implied_move_7:
                description: Expected absolute move. Fixed 7-calendar-day horizon.
                nullable: true
                type: string
              implied_move_90:
                description: Expected absolute move. Fixed 90-calendar-day horizon.
                nullable: true
                type: string
              implied_move_perc:
                description: >-
                  Expected 30-calendar-day move as a fraction of the underlying
                  price. A value of 0.05 means 5 percent.
                nullable: true
                type: string
              implied_move_perc_1:
                description: >-
                  Expected move as a fraction of the underlying price. A value
                  of 0.05 means 5 percent. Fixed 1-calendar-day horizon.
                nullable: true
                type: string
              implied_move_perc_14:
                description: >-
                  Expected move as a fraction of the underlying price. A value
                  of 0.05 means 5 percent. Fixed 14-calendar-day horizon.
                nullable: true
                type: string
              implied_move_perc_180:
                description: >-
                  Expected move as a fraction of the underlying price. A value
                  of 0.05 means 5 percent. Fixed 180-calendar-day horizon.
                nullable: true
                type: string
              implied_move_perc_30:
                description: >-
                  Expected move as a fraction of the underlying price. A value
                  of 0.05 means 5 percent. Fixed 30-calendar-day horizon.
                nullable: true
                type: string
              implied_move_perc_365:
                description: >-
                  Expected move as a fraction of the underlying price. A value
                  of 0.05 means 5 percent. Fixed 365-calendar-day horizon.
                nullable: true
                type: string
              implied_move_perc_5:
                description: >-
                  Expected move as a fraction of the underlying price. A value
                  of 0.05 means 5 percent. Fixed 5-calendar-day horizon.
                nullable: true
                type: string
              implied_move_perc_60:
                description: >-
                  Expected move as a fraction of the underlying price. A value
                  of 0.05 means 5 percent. Fixed 60-calendar-day horizon.
                nullable: true
                type: string
              implied_move_perc_7:
                description: >-
                  Expected move as a fraction of the underlying price. A value
                  of 0.05 means 5 percent. Fixed 7-calendar-day horizon.
                nullable: true
                type: string
              implied_move_perc_90:
                description: >-
                  Expected move as a fraction of the underlying price. A value
                  of 0.05 means 5 percent. Fixed 90-calendar-day horizon.
                nullable: true
                type: string
              industry_type:
                description: Company industry label.
                nullable: true
                type: string
              insider_buy_volume_12m:
                description: >-
                  Insider buy share-volume aggregate for the trailing 12
                  calendar months, after subtracting reported 10b5 volume. The
                  window includes its cutoff and the source snapshot's as-of
                  date. Zero may mean no qualifying volume or no matching source
                  rows.
                format: int64
                nullable: false
                type: integer
              insider_buy_volume_3m:
                description: >-
                  Insider buy share-volume aggregate for the trailing 3 calendar
                  months, after subtracting reported 10b5 volume. The window
                  includes its cutoff and the source snapshot's as-of date. Zero
                  may mean no qualifying volume or no matching source rows.
                format: int64
                nullable: false
                type: integer
              insider_buy_volume_6m:
                description: >-
                  Insider buy share-volume aggregate for the trailing 6 calendar
                  months, after subtracting reported 10b5 volume. The window
                  includes its cutoff and the source snapshot's as-of date. Zero
                  may mean no qualifying volume or no matching source rows.
                format: int64
                nullable: false
                type: integer
              insider_sell_volume_12m:
                description: >-
                  Insider sell share-volume aggregate for the trailing 12
                  calendar months, after subtracting reported 10b5 volume. The
                  window includes its cutoff and the source snapshot's as-of
                  date. Zero may mean no qualifying volume or no matching source
                  rows.
                format: int64
                nullable: false
                type: integer
              insider_sell_volume_3m:
                description: >-
                  Insider sell share-volume aggregate for the trailing 3
                  calendar months, after subtracting reported 10b5 volume. The
                  window includes its cutoff and the source snapshot's as-of
                  date. Zero may mean no qualifying volume or no matching source
                  rows.
                format: int64
                nullable: false
                type: integer
              insider_sell_volume_6m:
                description: >-
                  Insider sell share-volume aggregate for the trailing 6
                  calendar months, after subtracting reported 10b5 volume. The
                  window includes its cutoff and the source snapshot's as-of
                  date. Zero may mean no qualifying volume or no matching source
                  rows.
                format: int64
                nullable: false
                type: integer
              intraday_change:
                description: >-
                  Fractional session price change: (close - open) / open. A
                  value of 0.05 means 5 percent. Null when open is zero or an
                  input is missing.
                nullable: true
                type: string
              is_index:
                description: >-
                  Whether the returned issue_type is Index. False when
                  issue_type is absent or null.
                type: boolean
              issue_type:
                description: Security issue type, such as Common Stock, ETF, or Index.
                nullable: true
                type: string
              iv30d:
                description: Alias of the current 30-calendar-day implied volatility.
                nullable: true
                type: string
              iv30d_1d:
                description: >-
                  Thirty-day implied volatility from exactly the previous
                  trading date. Null when that date's value is unavailable.
                nullable: true
                type: string
              iv30d_1m:
                description: >-
                  Thirty-day implied volatility from exactly 21 trading dates
                  before the row's date. Null when that date's value is
                  unavailable.
                nullable: true
                type: string
              iv30d_1w:
                description: >-
                  Thirty-day implied volatility from exactly five trading dates
                  before the row's date. Null when that date's value is
                  unavailable.
                nullable: true
                type: string
              iv_percentile_1m:
                description: >-
                  Percent rank of IV over observations later than 30 calendar
                  days before the row's date, multiplied by 100. Tied values
                  share a rank.
                nullable: true
                type: string
              iv_percentile_1y:
                description: >-
                  Percent rank of IV over observations later than one calendar
                  year before the row's date, multiplied by 100. Tied values
                  share a rank.
                nullable: true
                type: string
              iv_rank:
                description: >-
                  One-year IV rank: 100 * (current - minimum) / (maximum -
                  minimum), using observations later than one calendar year
                  before the row's date. Null when maximum equals minimum or
                  source data is missing.
                nullable: true
                type: string
              iv_rank_1m:
                description: >-
                  IV rank over observations later than 30 calendar days before
                  the row's date: 100 * (current - minimum) / (maximum -
                  minimum). Null when maximum equals minimum or source data is
                  missing.
                nullable: true
                type: string
              last_earnings_date:
                description: 'Latest known earnings report date. Format: YYYY-MM-DD.'
                format: date
                nullable: true
                type: string
              last_earnings_price:
                description: >-
                  Reference price for earnings_perc. Null when the reference
                  price is unavailable.
                nullable: true
                type: string
              latest_dividend:
                description: >-
                  Split-adjusted dividend per share from the latest selected
                  dividend record.
                nullable: true
                type: string
              latest_dividend_date:
                description: >-
                  Ex-dividend date of the latest selected dividend record.
                  Format: YYYY-MM-DD.
                format: date
                nullable: true
                type: string
              latest_dividend_payment_date:
                description: >-
                  Payment date of the latest selected dividend record. Format:
                  YYYY-MM-DD.
                format: date
                nullable: true
                type: string
              low:
                description: >-
                  Lowest price in the latest accepted trading session, in the
                  instrument's quoted price units. May be null when index-price
                  access rules hide prices.
                nullable: true
                type: string
              macd_12_26_9:
                description: >-
                  MACD line with fast period 12, slow period 26 and signal
                  period 9. Each period is one regular session daily candle.
                  Null when the source value is unavailable or there is
                  insufficient history for the indicator.
                format: double
                nullable: true
                type: number
              macd_12_26_9_histogram:
                description: >-
                  Histogram of MACD configured with periods 12, 26 and 9. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              macd_12_26_9_signal:
                description: >-
                  Signal line of MACD configured with periods 12, 26 and 9. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              marketcap:
                description: >-
                  Shares outstanding multiplied by the latest accepted stock
                  price, rounded to whole dollars. Uses the stored company
                  market value when shares or price are unavailable.
                nullable: true
                type: string
              mfi_14:
                description: >-
                  Money flow index over 14 periods using price and volume, from
                  0 to 100. Each period is one regular session daily candle.
                  Null when the source value is unavailable or there is
                  insufficient history for the indicator.
                format: double
                nullable: true
                type: number
              missing_periscope:
                description: >-
                  Present and true when index-price access rules hide the
                  returned price fields.
                type: boolean
              net_call_premium:
                description: >-
                  Call ask-side premium minus bid-side premium, in US dollars.
                  Each contributing trade is capped at 2,000,000 dollars before
                  aggregation.
                nullable: true
                type: string
              net_premium:
                description: >-
                  Net call premium minus net put premium, in US dollars. Null
                  when either input is unavailable.
                nullable: true
                type: string
              net_put_premium:
                description: >-
                  Put ask-side premium minus bid-side premium, in US dollars.
                  Each contributing trade is capped at 2,000,000 dollars before
                  aggregation.
                nullable: true
                type: string
              next_dividend_date:
                description: 'Next scheduled ex-dividend date. Format: YYYY-MM-DD.'
                format: date
                nullable: true
                type: string
              next_earnings_date:
                description: 'Next scheduled earnings date. Format: YYYY-MM-DD.'
                format: date
                nullable: true
                type: string
              obv:
                description: >-
                  On balance volume, a cumulative signed volume measure in
                  shares. Each period is one regular session daily candle. Null
                  when the source value is unavailable or there is insufficient
                  history for the indicator.
                format: double
                nullable: true
                type: number
              one_day_perc:
                description: >-
                  Fractional price return from the previous trading session's
                  regular close, relative to the row's date. A value of 0.05
                  means 5 percent. Null when the reference price is zero or an
                  input is missing.
                nullable: true
                type: string
              one_month_close:
                description: >-
                  Reference price for one_month_perc. Null when the reference
                  price is unavailable.
                nullable: true
                type: string
              one_month_perc:
                description: >-
                  Fractional price return from the latest regular close on or
                  before one calendar month earlier, relative to the row's date.
                  A value of 0.05 means 5 percent. Null when the reference price
                  is zero or an input is missing.
                nullable: true
                type: string
              one_week_close:
                description: >-
                  Reference price for one_week_perc. Null when the reference
                  price is unavailable.
                nullable: true
                type: string
              one_week_perc:
                description: >-
                  Fractional price return from the latest regular close on or
                  before seven calendar days earlier, relative to the row's
                  date. A value of 0.05 means 5 percent. Null when the reference
                  price is zero or an input is missing.
                nullable: true
                type: string
              one_year_close:
                description: >-
                  Reference price for one_year_perc. Null when the reference
                  price is unavailable.
                nullable: true
                type: string
              one_year_perc:
                description: >-
                  Fractional price return from the latest regular close on or
                  before one calendar year earlier, relative to the row's date.
                  A value of 0.05 means 5 percent. Null when the reference price
                  is zero or an input is missing.
                nullable: true
                type: string
              open:
                description: >-
                  Opening price of the latest accepted trading session, in the
                  instrument's quoted price units.
                nullable: true
                type: string
              prev_call_oi:
                description: Call open interest from the previous trading-date state.
                format: int64
                nullable: true
                type: integer
              prev_call_volume:
                description: >-
                  Call contract volume from the prior available option-flow
                  state.
                format: int64
                nullable: true
                type: integer
              prev_close:
                description: >-
                  Regular-session close from the prior available screener state,
                  in the instrument's quoted price units.
                nullable: true
                type: string
              prev_put_oi:
                description: Put open interest from the previous trading-date state.
                format: int64
                nullable: true
                type: integer
              prev_put_volume:
                description: >-
                  Put contract volume from the prior available option-flow
                  state.
                format: int64
                nullable: true
                type: integer
              put_call_ratio:
                description: >-
                  Put contract volume divided by call contract volume. Null when
                  call volume is zero.
                nullable: true
                type: string
              put_open_interest:
                description: Put option open interest for the represented trading date.
                format: int64
                nullable: true
                type: integer
              put_premium:
                description: Total put option premium in US dollars on the row's date.
                nullable: false
                type: string
              put_premium_mid_side:
                description: put premium in US dollars classified between the bid and ask.
                nullable: true
                type: string
              put_volume:
                description: Put option contracts traded on the row's date.
                format: int64
                nullable: false
                type: integer
              put_volume_ask_side:
                description: put option contracts classified on the ask side.
                format: int64
                nullable: true
                type: integer
              put_volume_bid_side:
                description: put option contracts classified on the bid side.
                format: int64
                nullable: true
                type: integer
              put_volume_mid_side:
                description: put option contracts classified on the mid side.
                format: int64
                nullable: true
                type: integer
              quote_time:
                description: >-
                  Quote source time as a Unix timestamp in milliseconds. Null
                  for historical snapshots.
                format: int64
                nullable: true
                type: integer
              realized_volatility:
                description: >-
                  Annualized sample standard deviation of daily log returns from
                  20 market opens before the row's date through that date.
                  Calculated as stddev(daily_log_returns) * sqrt(252), rounded
                  to six decimal places.
                nullable: true
                type: string
              relative_volume:
                description: >-
                  Trading-date share volume divided by avg30_volume. A value of
                  1 equals the average. Null when the average is zero or an
                  input is missing.
                nullable: true
                type: string
              rsi_14:
                description: >-
                  Relative strength index of the close over 14 periods, from 0
                  to 100. Each period is one regular session daily candle. Null
                  when the source value is unavailable or there is insufficient
                  history for the indicator.
                format: double
                nullable: true
                type: number
              rv_1d_last_12q:
                description: >-
                  Mean absolute one-day post-earnings return divided by the
                  expected-move fraction over up to 12 preceding earnings
                  reports. A value of 1 means the absolute move equaled the
                  expected move on average.
                nullable: true
                type: string
              sector:
                description: Company sector.
                nullable: true
                type: string
              shares_outstanding:
                description: >-
                  Latest available shares outstanding as a share count. Uses
                  company metadata when the selected report has no value.
                nullable: true
                type: string
              shares_outstanding_growth_12q:
                description: >-
                  Fractional share-count growth: (current shares - shares 12
                  reports earlier) / abs(shares 12 reports earlier). Null when
                  an input is missing or the comparison share count is zero.
                nullable: true
                type: string
              shares_outstanding_growth_4q:
                description: >-
                  Fractional share-count growth: (current shares - shares 4
                  reports earlier) / abs(shares 4 reports earlier). Null when an
                  input is missing or the comparison share count is zero.
                nullable: true
                type: string
              shares_outstanding_growth_8q:
                description: >-
                  Fractional share-count growth: (current shares - shares 8
                  reports earlier) / abs(shares 8 reports earlier). Null when an
                  input is missing or the comparison share count is zero.
                nullable: true
                type: string
              short_int:
                description: >-
                  Short interest as a fraction of public float. A value of 0.086
                  means 8.6 percent.
                nullable: true
                type: string
              six_month_close:
                description: >-
                  Reference price for six_month_perc. Null when the reference
                  price is unavailable.
                nullable: true
                type: string
              six_month_perc:
                description: >-
                  Fractional price return from the latest regular close on or
                  before six calendar months earlier, relative to the row's
                  date. A value of 0.05 means 5 percent. Null when the reference
                  price is zero or an input is missing.
                nullable: true
                type: string
              sma_10:
                description: >-
                  Simple moving average of the close over 10 periods. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              sma_14:
                description: >-
                  Simple moving average of the close over 14 periods. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              sma_20:
                description: >-
                  Simple moving average of the close over 20 periods. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              sma_200:
                description: >-
                  Simple moving average of the close over 200 periods. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              sma_50:
                description: >-
                  Simple moving average of the close over 50 periods. Each
                  period is one regular session daily candle. Null when the
                  source value is unavailable or there is insufficient history
                  for the indicator.
                format: double
                nullable: true
                type: number
              steepness_180_30:
                description: >-
                  volatility_180 divided by volatility_30. Null when an input is
                  missing or volatility_30 is zero.
                nullable: true
                type: string
              stoch_5_3_3_d:
                description: >-
                  Slow D line of the stochastic oscillator with fast K period 5
                  and simple moving average smoothing periods 3 and 3, from 0 to
                  100. Each period is one regular session daily candle. Null
                  when the source value is unavailable or there is insufficient
                  history for the indicator.
                format: double
                nullable: true
                type: number
              stoch_5_3_3_k:
                description: >-
                  Slow K line of the stochastic oscillator with fast K period 5
                  and simple moving average smoothing periods 3 and 3, from 0 to
                  100. Each period is one regular session daily candle. Null
                  when the source value is unavailable or there is insufficient
                  history for the indicator.
                format: double
                nullable: true
                type: number
              stock_volume:
                description: Cumulative shares traded across the New York trading date.
                format: int64
                nullable: true
                type: integer
              three_month_close:
                description: >-
                  Reference price for three_month_perc. Null when the reference
                  price is unavailable.
                nullable: true
                type: string
              three_month_perc:
                description: >-
                  Fractional price return from the latest regular close on or
                  before three calendar months earlier, relative to the row's
                  date. A value of 0.05 means 5 percent. Null when the reference
                  price is zero or an input is missing.
                nullable: true
                type: string
              ticker:
                description: Ticker symbol.
                example: AAPL
                type: string
              total_open_interest:
                description: >-
                  Total option open interest, normally the sum of call and put
                  open interest.
                format: int64
                nullable: true
                type: integer
              ttm_dividend:
                description: >-
                  Sum of split-adjusted dividends per share during the 12 months
                  ending on the source snapshot's as-of date. That as-of date is
                  not included in the response.
                nullable: true
                type: string
              variance_risk_premium:
                description: >-
                  Thirty-day implied volatility observed at the start of the
                  realized-volatility window minus realized_volatility.
                nullable: true
                type: string
              volatility:
                description: Current 30-calendar-day implied volatility as a decimal value.
                nullable: true
                type: string
              volatility_1:
                description: >-
                  Implied volatility as a decimal value. Fixed 1-calendar-day
                  horizon.
                nullable: true
                type: string
              volatility_14:
                description: >-
                  Implied volatility as a decimal value. Fixed 14-calendar-day
                  horizon.
                nullable: true
                type: string
              volatility_180:
                description: >-
                  Implied volatility as a decimal value. Fixed 180-calendar-day
                  horizon.
                nullable: true
                type: string
              volatility_30:
                description: >-
                  Implied volatility as a decimal value. Fixed 30-calendar-day
                  horizon.
                nullable: true
                type: string
              volatility_365:
                description: >-
                  Implied volatility as a decimal value. Fixed 365-calendar-day
                  horizon.
                nullable: true
                type: string
              volatility_5:
                description: >-
                  Implied volatility as a decimal value. Fixed 5-calendar-day
                  horizon.
                nullable: true
                type: string
              volatility_60:
                description: >-
                  Implied volatility as a decimal value. Fixed 60-calendar-day
                  horizon.
                nullable: true
                type: string
              volatility_7:
                description: >-
                  Implied volatility as a decimal value. Fixed 7-calendar-day
                  horizon.
                nullable: true
                type: string
              volatility_90:
                description: >-
                  Implied volatility as a decimal value. Fixed 90-calendar-day
                  horizon.
                nullable: true
                type: string
              week_52_high:
                description: >-
                  Maximum split-adjusted regular-session high over the preceding
                  calendar year.
                nullable: true
                type: string
              week_52_low:
                description: >-
                  Minimum split-adjusted regular-session low over the preceding
                  calendar year.
                nullable: true
                type: string
              willr_14:
                description: >-
                  Williams %R over 14 periods, from -100 to 0. Each period is
                  one regular session daily candle. Null when the source value
                  is unavailable or there is insufficient history for the
                  indicator.
                format: double
                nullable: true
                type: number
              ytd_close:
                description: >-
                  Reference price for ytd_perc. Null when the reference price is
                  unavailable.
                nullable: true
                type: string
              ytd_perc:
                description: >-
                  Fractional price return from the latest regular close on or
                  before January 1 of the row's year, relative to the row's
                  date. A value of 0.05 means 5 percent. Null when the reference
                  price is zero or an input is missing.
                nullable: true
                type: string
              z_score:
                description: >-
                  ((close - prev_close) / prev_close) * sqrt(251) /
                  volatility_30. Null when an input is missing or a denominator
                  is zero.
                nullable: true
                type: string
            type: object
          type: array
      required:
        - data
      title: Stock Screener response
      type: object
    Authentication_Error:
      description: >-
        Returned with HTTP 401 when a request carries no API token, or carries
        one the API cannot use. The response also carries a `WWW-Authenticate`
        header with the `Bearer` challenge. Branch on `reason` rather than on
        `message`, whose wording can change.
      example:
        code: authentication_required
        documentation_url: https://api.unusualwhales.com/docs
        expected_format: uuid
        message: >-
          The API token provided is not in the expected format. Unusual Whales
          API tokens are UUIDs, such as 123e4567-e89b-12d3-a456-426614174000.
        reason: malformed_token
        request_id: GNI_YTC1CRnw2LACGBvE
        retryable: false
        support_email: dev@unusualwhales.com
        token_url: https://unusualwhales.com/dashboard/api
      properties:
        code:
          description: Always `authentication_required`.
          enum:
            - authentication_required
          type: string
        documentation_url:
          description: Where to read this API documentation.
          type: string
        expected_format:
          description: >-
            Present only when `reason` is `malformed_token`. The format the
            token must take.
          enum:
            - uuid
          type: string
        message:
          description: A plain description of the failure, written for a person.
          type: string
        reason:
          description: >-
            Which authentication failure occurred. `missing_token` means the
            request carried no token. `malformed_token` means a token was
            supplied but is not a UUID. `unrecognized_token` means the token is
            a UUID that no active token matches, which happens after a token is
            revoked or regenerated, or when it belongs to a different account.
          enum:
            - missing_token
            - malformed_token
            - unrecognized_token
          type: string
        request_id:
          description: >-
            Identifies this request in Unusual Whales logs. Quote it when
            contacting support. It matches the `x-request-id` response header,
            and is absent when no request id was assigned.
          type: string
        retryable:
          description: >-
            Always `false`. Replaying the same request unchanged returns the
            same error. Retrying with a corrected token can succeed.
          enum:
            - false
          type: boolean
        support_email:
          description: Where to send questions about API access.
          type: string
        token_url:
          description: Where to create and manage API tokens.
          type: string
      title: Authentication Error
      type: object
    Forbidden_Error:
      description: >-
        Returned with HTTP 403 when the API token is valid and recognized, but
        is not entitled to what the request asked for. Branch on `code`, which
        names the entitlement that is missing; `message` is written for a person
        and its wording can change. Unlike a 401 this response carries no
        `WWW-Authenticate` header, because presenting different credentials for
        the same token does not change the outcome.


        Only `code` and `message` are guaranteed. The remaining fields are sent
        by some checks and not others, so treat every one of them as optional.


        A 403 whose body is not JSON, or is JSON without a `code` field, did not
        come from this API. Those are produced by Cloudflare in front of the
        API, or by a proxy on the caller's own network, and neither says
        anything about the token or the subscription.
      example:
        code: missing_access
        documentation_url: https://api.unusualwhales.com/docs
        message: >-
          The API token provided is valid but is not permitted to access this
          route.
        reason: route_not_permitted
        request_id: GNI_YTC1CRnw2LACGBvE
        retryable: false
        support_email: dev@unusualwhales.com
        token_url: https://unusualwhales.com/dashboard/api
      properties:
        code:
          description: >-
            Which entitlement is missing. `missing_access` means the token is
            restricted to a set of routes that excludes the requested one.
            `historic_data_access_missing` means a date in the request predates
            the earliest date the token may query. `advanced_tier_required`,
            `futures_access_required`, `politics_scope_required` and
            `volatility_scope_required` each mean the endpoint needs a
            subscription tier or data add-on the account does not have.
            `admin_required` means the endpoint is internal to Unusual Whales.
          enum:
            - missing_access
            - historic_data_access_missing
            - advanced_tier_required
            - futures_access_required
            - politics_scope_required
            - volatility_scope_required
            - admin_required
          type: string
        documentation_url:
          description: Where to read this API documentation.
          type: string
        message:
          description: >-
            A plain description of what is missing and how to obtain it, written
            for a person. Do not branch on this string.
          type: string
        reason:
          description: >-
            Present only when `code` is `missing_access`. Narrows the cause
            within that code.
          enum:
            - route_not_permitted
          type: string
        request_id:
          description: >-
            Identifies this request in Unusual Whales logs. Quote it when
            contacting support. It matches the `x-request-id` response header,
            and is absent when no request id was assigned.
          type: string
        retryable:
          description: >-
            When present, always `false`. Replaying the same request unchanged
            returns the same error. Changing the request, the token, or the
            subscription can succeed.
          enum:
            - false
          type: boolean
        support_email:
          description: Where to send questions about API access.
          type: string
        token_url:
          description: Where to create and manage API tokens.
          type: string
      required:
        - code
        - message
      title: Forbidden Error
      type: object
    Error_Message:
      description: A json object containing information on the error cause.
      example:
        msg: >-
          Invalid path input: MSFT12 (valid example: AAPL) - Invalid query
          input(s): date=2023-02-140 (valid example: date=2024-01-18)
        path: /api/darkpool/MSFT12
        query: date=2023-02-140
        url: localhost:4000/api/darkpool/MSFT12?date=2023-02-140
      properties:
        msg:
          description: An error message containing information about the faulty input.
          type: string
        path:
          description: The URL path segment.
          type: string
        query:
          description: The URL query segment.
          type: string
        url:
          description: The full URL causing the error.
          type: string
      title: Error Message
      type: object
    Error_Message_on_an_internal_server_error.:
      description: >-
        A plain message informing, that an internal server error occured. In
        this case please send a mail with the full URL that caused the issue to
        support@unusualwhales.com.
      example: Something went wrong
      title: Error Message on an internal server error.
      type: string
    Single_issue_type:
      description: A singular issue type.
      enum:
        - Common Stock
        - ETF
        - Index
        - ADR
      example: Common Stock
      title: Single issue type
      type: string
    Single_sector:
      description: A singular sector.
      enum:
        - Basic Materials
        - Communication Services
        - Consumer Cyclical
        - Consumer Defensive
        - Energy
        - Financial Services
        - Healthcare
        - Industrials
        - Real Estate
        - Technology
        - Utilities
      example: Real Estate
      title: Single sector
      type: string
  securitySchemes:
    authorization:
      scheme: bearer
      type: http

````