Skip to main content
Python function: screenOptions()
SpecificationValue
Delivery Frequencycontinuous
Data Frequencydaily snapshot, real-time
Reporting LagLive: real-time; Historical: daily snapshots
Coverage5,000+ U.S. equity options symbols, all strikes and expirations
AvailabilityFree

Product Overview

Overview

The Options Screener allows you to discover and filter option contracts for any underlying ticker. Given one or more underlying symbols, it returns all available option contracts with their Greeks, implied volatility, volume, and open interest — optionally filtered by contract type, days to expiry, strike range, expiry date range, and Greek/IV thresholds. The screener supports two modes:
  • Historical: Screen contracts as they existed on a specific past trading date.
  • Live: Screen today’s available contracts (falls back to the previous trading day if today’s data is not yet published).

Data Pipeline

Historical Screening

Historical option chain data is sourced from archived daily snapshots:
  • Daily chain snapshots: Each trading day, a snapshot of all active option contracts is captured with Greeks, IV, volume, and open interest.
  • Smoothed Greeks: Greeks and implied volatilities come from the same Smooth Market Value (SMV) pipeline described in the Options Greeks & Implied Volatility reference — ensuring consistent, non-arbitrageable values.

Live Screening

Live screening queries real-time option chain data:
  • Real-time chain: The current option chain is fetched from the live market data feed, including real-time Greeks computed from the latest 1-minute snapshots.
  • Pagination: For underlyings with large option chains (thousands of strikes × multiple expirations), results are paginated and assembled automatically.

Coverage

  • Underlying symbols: 5,000+ U.S. equities and ETFs with listed options.
  • Contract types: Calls, puts, or both.
  • Expirations: All standard and weekly expirations.
  • History: Daily snapshots available for historical screening.

Supported Modes

ModeTriggerBehavior
Historicaltrade_date providedScreens contracts for the given date.
Livetrade_date omittedUses today’s date; falls back to previous trading day if today’s data is not yet available.

Querying the Data

Basic Usage

from scalarlib import screenOptions

# All AAPL options on a given date
contracts = screenOptions(tickers=['AAPL'], trade_date='2026-02-06')
aapl_df = contracts['AAPL']

# Live screening (today's contracts)
contracts = screenOptions(tickers=['NVDA'])

# Filtered: short-dated calls with delta and IV constraints
contracts = screenOptions(
    tickers=['AAPL', 'MSFT'],
    trade_date='2026-02-06',
    contract_type='call',
    days_to_expiry=(5, 30),
    delta_range=(0.2, 0.8),
    iv_range=(0.1, 0.5)
)

# Extract symbols for use in getOptionsQuotes
symbols = contracts['AAPL']['symbol'].tolist()
quotes = getOptionsQuotes(tickers=symbols, start='2026-02-01', end='2026-02-06')

Parameters

ParameterTypeRequiredDescription
tickerslist of strYesUnderlying ticker symbols (e.g., ['AAPL', 'NVDA']).
trade_datestrNoDate to screen ('YYYY-MM-DD'). Default: today (live mode).
contract_typestrNo'call', 'put', or None for both. Default: None.
days_to_expirytuple of floatNo(min, max) days to expiry filter.
strike_rangetuple of floatNo(min, max) strike price filter.
expiry_date_rangetuple of strNo('YYYY-MM-DD', 'YYYY-MM-DD') earliest and latest expiry.
delta_rangetuple of floatNo(min, max) delta filter.
gamma_rangetuple of floatNo(min, max) gamma filter.
theta_rangetuple of floatNo(min, max) theta filter.
vega_rangetuple of floatNo(min, max) vega filter.
iv_rangetuple of floatNo(min, max) implied volatility filter (e.g., (0.1, 0.5) for 10%–50%).

Column Definitions

Screen Options Schema

ColumnTypeDescription
symbolstringOption symbol in OPRA format (e.g., AAPL260211C00275000).
tickerstringUnderlying ticker (e.g., AAPL).
contract_typestring"call" or "put".
expiry_datestringExpiration date.
strike_pricefloat64Strike price.
trade_datestringThe screening date.
deltafloat64Option delta (consistent across call/put at the same strike).
gammafloat64Option gamma.
thetafloat64Option theta (daily time decay).
vegafloat64Option vega.
implied_volfloat64Smoothed mid implied volatility.
days_to_expiryfloat64Calendar days until expiration.
volumefloat64Daily trading volume.
open_interestfloat64Open interest.

Typical Workflow

The options screener is typically the first step in an options analysis workflow:
  1. Screen: Use screenOptions to discover available contracts matching your criteria.
  2. Quote: Pass the resulting symbols to getOptionsQuotes for detailed quote data with full Greeks.
  3. Analyze: Use the quote data for pricing analysis, strategy construction, or risk management.