Circle of Wizards All APIs on RapidAPI →

FlowScan - Unusual Options Activity

See where the smart money is positioning — institutional-scale options sweeps and blocks, served as clean JSON.

FlowScan surfaces unusual options activity sourced from Benzinga's options-activity signal feed: large sweeps, blocks, and notable prints with the strike, expiry, premium, and bullish/bearish read already parsed for you. Instead of scraping a terminal or paying for an enterprise data plan, you get a small REST API that returns the latest flow, the biggest bets, per-ticker activity, and a daily sentiment summary. Data is refreshed on a rolling cadence and cached, so calls are fast and cheap.

Endpoints

Endpoint What it returns
GET /flow/latest The most recent unusual options prints (up to 50), newest first. Each item carries id, timestamp, ticker, expiry, strike, type (CALL/PUT), sentiment (BULLISH/BEARISH/NEUTRAL), premium_usd, option_price, open_interest, volume, trade_type (e.g. SWEEP/BLOCK/TRADE), execution, aggressor_ind, underlying_price, and description.
GET /flow/big-bets The premium-threshold subset of the feed: SWEEP prints with premium_usd at or above the threshold (default 500000). Same item shape as /flow/latest. Optional query param min_premium overrides the threshold, e.g. ?min_premium=1000000.
GET /flow/ticker/{ticker} All current flow prints for a single symbol, e.g. /flow/ticker/AAPL. Symbol is case-insensitive and must be 1–5 letters. Same item shape as /flow/latest.
GET /flow/summary/daily An aggregate roll-up of the current feed: total, bullish, bearish, neutral counts, bullish_ratio, bearish_ratio, a by_trade_type breakdown, top_tickers (up to 10, by print count), and total_premium_usd.
GET /flow/expiry/{date} All prints expiring on a given date in YYYY-MM-DD format, e.g. /flow/expiry/2026-07-18. Same item shape as /flow/latest.
GET /health Liveness check — returns { "status": "ok", "ts": "..." }.

Why this API

  • Parsed and structured, not raw. Every print arrives as typed JSON with the call/put side, sentiment, premium in USD, and trade type already extracted — no XML, no HTML scraping on your end.
  • Institutional flow, not retail noise. /flow/big-bets isolates large sweep orders (default $500K+ premium) so you can focus on size that moves markets, with a tunable min_premium threshold.
  • Built-in sentiment aggregation. /flow/summary/daily gives you bullish/bearish ratios, top tickers, and total premium in a single call, so you don't have to aggregate the raw feed yourself.
  • Fast and cached. Responses serve from cache and are refreshed on a rolling cadence, so endpoints stay snappy under load.
  • Simple, predictable REST. Five focused flow endpoints plus a health check, consistent item shape across all of them, and plain query params.

Typical use cases

  • Power an unusual-options-activity dashboard or alert bot that watches /flow/big-bets for large sweeps as they appear.
  • Pull /flow/ticker/{ticker} to show options flow context on a stock or watchlist page.
  • Feed /flow/summary/daily into a daily market-sentiment digest (bullish/bearish ratio, top tickers, total premium).
  • Track flow into a specific expiry with /flow/expiry/{date} ahead of earnings, OPEX, or known catalysts.
  • Backfill a quant/screener pipeline with structured sweep and block data without standing up your own scraper.

Good to know

  • Empty arrays are normal during quiet windows. /flow/big-bets is a premium-threshold subset of the live feed — when no recent trade crosses the "big" bar, it legitimately returns an empty array []. This is expected behavior, not an error.
  • Per-ticker results can be empty. /flow/ticker/{ticker} returns only the prints currently in the feed for that symbol. If there has been no recent flow for that ticker, you'll get an empty array with a 200 status.
  • Market-hours dependent. Unusual options activity is driven by live trading. Expect rich data during US market hours and a thinner, slower-changing feed overnight, on weekends, and on market holidays.
  • Freshness. Data is refreshed on a rolling cadence and served from cache, so a single print may take a few minutes to appear and the same set can be returned across closely-spaced calls. /flow/latest returns up to the 50 most recent prints.
  • Field availability varies by print. Numeric fields such as premium_usd, open_interest, volume, strike, and underlying_price reflect what the upstream feed provides for each record and may be null when not reported; iv_percent is not currently populated.
  • Source. Data originates from Benzinga's options-activity signal feed and is normalized into the JSON shape documented above.