Unusual Options Activity Scanner
Pricing
from $1.50 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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
| Input | Default | Notes |
|---|---|---|
| tickers | (all) | Comma-separated ticker symbols. Leave blank to scan the whole market. |
| optionType | both | calls, puts, or both |
| minVolume | 500 | Minimum number of contracts traded today |
| minVolumeOIRatio | 1.25 | Minimum Vol/OI ratio to qualify as "unusual" |
| minPremium | 0 | Minimum estimated dollars spent (e.g. 250000 to focus on institutional-scale flow) |
| excludeIndexETFs | false | Drop broad market indices and ETFs (SPX, VIX, SPY, QQQ, etc.). Individual stock ETFs are kept. |
| daysToExpirationMin | 0 | Minimum days until expiration. Set to 1 to exclude same-day (0 DTE) contracts. |
| daysToExpirationMax | 365 | Maximum days until expiration. Default caps at one year (long-dated LEAPS territory). |
| sortBy | volumeOIRatio | Sort by: volume, volatility, days to expiration, or expiration date |
| limit | 100 | Max 1000. In ticker_flow_summary mode, limits the number of tickers returned. |
| includeGreeks | false | Add 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 expiresmoneyness— 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 todayvolumeOIRatio— 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 volatilitydelta— 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 whenincludeGreeksis 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 hadtotalPremium,callPremium,putPremium— estimated dollars spent per side, per scan, not per full dayputCallPremiumRatio— 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,maxVolumeOIRatiotopContractSymbol— the single contract with the largest estimated premium, the best place to start digging inspreadSuspectCount,spansEarningsCount— how many of the contracts look like spread trades or earnings hedging rather than directional betsnextEarningsDate,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,moneynessfrom strike vsunderlyingPrice,spansEarningsfrom 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 textstock-earnings-calendar— upcoming and recent earnings dates with estimatesstock-analyst-ratings— daily feed of all analyst upgrades/downgrades