Unusual Options Activity Scanner avatar

Unusual Options Activity Scanner

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Unusual Options Activity Scanner

Unusual Options Activity Scanner

Scans US options markets (stocks, ETFs, indices) for unusual activity (extreme Vol/OI smart-money signal) or most-active contracts. Returns strike, expiration, volume, open interest, Vol/OI, bid/ask, IV, delta, underlying price, optional Greeks. Built for AI trading agents and options flow analysis.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Michal Búci

Michal Búci

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Daily feed of unusual options activity and most-active contracts across US stocks, ETFs, and indices. Data sourced from Barchart, delayed approximately 15-30 minutes.

What it does

Returns option contracts that are trading at unusually high volume relative to their Open Interest (OI) — the total number of contracts that already existed from prior days. When today's volume is far above OI, it suggests new large positions are being opened, which is often called a "smart money" signal. Also returns the highest-volume contracts regardless of OI. Each row includes the strike price, expiration date, volume, OI, the Volume/OI ratio, pricing, Implied Volatility (IV), delta, and the stock's current price.

Scan Modes

  • unusual_activity — Contracts where today's trading volume is much higher than the prior day's Open Interest (OI), specifically where the ratio exceeds the threshold (default: 1.25). This matches Barchart's own definition of "unusual" activity.
  • most_active — Contracts with the highest raw trading volume today, regardless of the Vol/OI ratio.
  • ticker_flow_summary — One summary row per stock ticker, combining all its unusual contracts into call/put dollar totals, a put/call ratio, net directional exposure, and contract count. The compact mode for AI agents asking "which stocks have notable options activity today" — then drill into specific tickers using the contract modes.

Filters

InputDefaultNotes
tickers(all)Comma-separated ticker symbols. Leave blank to scan the whole market.
optionTypebothcalls, puts, or both
minVolume500Minimum number of contracts traded today
minVolumeOIRatio1.25Minimum Vol/OI ratio to qualify as "unusual"
minPremium0Minimum estimated dollars spent (e.g. 250000 to focus on institutional-scale flow)
excludeIndexETFsfalseDrop broad market indices and ETFs (SPX, VIX, SPY, QQQ, etc.). Individual stock ETFs are kept.
daysToExpirationMin0Minimum days until expiration. Set to 1 to exclude same-day (0 DTE) contracts.
daysToExpirationMax365Maximum days until expiration. Default caps at one year (long-dated LEAPS territory).
sortByvolumeOIRatioSort by: volume, volatility, days to expiration, or expiration date
limit100Max 1000. In ticker_flow_summary mode, limits the number of tickers returned.
includeGreeksfalseAdd gamma, theta, vega, and rho from CBOE (contract modes only)

Output

Every row has a rowType field: either contract or tickerSummary. Fields that don't apply to the row type will be null.

Contract rows (unusual_activity, most_active):

The bet itself:

  • ticker, optionType, strike, expirationDate — e.g. an AAPL call with strike 200 expiring 2026-07-17 reads as "a bet that AAPL will be above $200 by July 17" (call = bullish, put = bearish)
  • daysToExpiration — how many days the bet has left before it expires
  • moneyness — ITM (In The Money — the bet is already winning), ATM (At The Money — right at the strike price), OTM (Out of The Money — the stock still needs to move)
  • contractSymbol — unique identifier (e.g. AAPL|20260516|200.00C), use this to track the same contract across multiple runs

The unusual-activity signal:

  • volume — contracts traded today; openInterest — contracts that were already open before today
  • volumeOIRatio — the key signal. Around 0.5 is normal. 10+ means today's trading far outnumbers everything previously open — someone is opening a big new position.
  • estimatedPremium — approximate dollars spent (volume × midpoint × 100). Under ~$100k is retail scale; $1M+ is institutional scale.
  • sideHint — a rough guess at who drove the last trade: ask (likely a buyer), bid (likely a seller), mid (unclear). Captured at scan time, not at trade time — treat as a weak indicator only.
  • spreadSuspect — true when this looks like one leg of a two-leg spread trade (matched volume on the same ticker, expiration, and option type). Spread trades limit risk in both directions and are not pure directional bets — discount as a signal.
  • spansEarnings, nextEarningsDate — whether this contract's life covers the stock's next earnings report. Options that span earnings are often bought as insurance against a big move, not as a directional bet.

Prices:

  • underlyingPrice, percentChange — the stock price and its move today (decimal: 0.0291 = +2.91%)
  • lastPrice, bid, ask, midpoint — option prices per share (multiply by 100 for total contract cost)

Volatility and Greeks (safe to skip as a beginner — delta is the one worth learning first):

  • impliedVolatility (IV) — how large a move the market expects, annualized (0.42 = 42% per year); higher = more expected volatility
  • delta — how much the option price moves per $1 move in the stock; also a rough probability the bet wins (0.85 ≈ 85% chance)
  • gamma, theta, vega, rho — advanced sensitivity metrics: how fast delta changes with price, time decay per day, sensitivity to volatility changes, sensitivity to interest rates. Only populated when includeGreeks is enabled.

Where it came from: tradeTime (UTC), source, dataDelayMinutes, scannedAt

Ticker summary rows (ticker_flow_summary), sorted by totalPremium highest first:

  • ticker, contractCount — the stock and how many unusual contracts it had
  • totalPremium, callPremium, putPremium — estimated dollars spent per side, per scan, not per full day
  • putCallPremiumRatio — below 1 = more money in calls (bullish lean), above 1 = more money in puts (bearish lean)
  • netDeltaShares — approximate net directional exposure in share-equivalents (positive = net bullish pressure, negative = net bearish)
  • callVolume, putVolume, maxVolumeOIRatio
  • topContractSymbol — the single contract with the largest estimated premium, the best place to start digging in
  • spreadSuspectCount, spansEarningsCount — how many of the contracts look like spread trades or earnings hedging rather than directional bets
  • nextEarningsDate, underlyingPrice, percentChange

Verifying the data

  • Cross-check any row on barchart.com/options/unusual-activity — same source, numbers should match within the delay window.
  • Independent check: Yahoo Finance → ticker → Options → pick the expiration → find the strike. Volume, open interest, and last price should agree (both delayed).
  • Derived fields are recomputable: volumeOIRatio = volume / openInterest, estimatedPremium = volume × midpoint × 100, moneyness from strike vs underlyingPrice, spansEarnings from the two dates.

Data disclaimer

All Barchart data is delayed approximately 15-30 minutes. This actor is intended for end-of-day analysis, pre-market screening, and AI agent tooling — not live day-trading execution.

Typical queries for AI agents via MCP

  • "Which stocks have the most unusual options flow today?" (ticker_flow_summary, excludeIndexETFs, minPremium 250000)
  • "Show top 20 unusual call flow across the market today with 7-60 days to expiration and premium > $100k"
  • "Scan my portfolio tickers AAPL, NVDA, TSLA, MSFT for any unusual put activity"
  • "List most active same-day (0 DTE) contracts on SPY, QQQ, IWM"
  • "Find unusual call buying that does NOT span an earnings report" (filter spansEarnings=false rows)

Companion actors

  • finviz-ticker-news — real-time ticker news with full article text
  • stock-earnings-calendar — upcoming and recent earnings dates with estimates
  • stock-analyst-ratings — daily feed of all analyst upgrades/downgrades