Skip to main content

Options Leg

The options leg filters stocks by how the options market is positioned around them β€” implied volatility levels, put/call skew, positioning direction, and unusual activity.

options leg shape
"options": {
"pattern": "bullish_positioning",
"horizon": "long",
"min_strength": 0.6
}

:::info US-listed optionable stocks only Covers approximately ~557 US-listed optionable names. Non-US stocks are excluded from this leg β€” they can't match and don't reduce the overall result count. :::


Fields​

FieldTypeRequiredDescription
patternstring (enum)βœ…Options-behaviour pattern. See full enum below.
horizon"short" | "long"β€”Which horizon to read. "long" (default) = longer-dated positioning / conviction lens. "short" = near-term gamma / expiry lens.
min_strengthnumber (0–1)β€”Minimum signal strength. Omit to return all matches, ranked by strength descending.

pattern enum​

These are the valid values for pattern. The supported column shows availability:

  • yes β€” live, use freely
  • approx β€” live but based on a proxy metric; results are directionally correct
  • future β€” planned, not yet live (returns 400 if used)

Implied Volatility​

patternLabelSupportedWhat it detects
iv_cheapIV cheapyesImplied vol at the low end of its own 1-year history β€” options are inexpensive relative to the stock's own past
iv_richIV richyesImplied vol at the high end of its own history β€” options are expensive
iv_crushIV crush (post-event)futureIV collapsing fast after an earnings/event (planned)

Positioning Direction​

patternLabelSupportedWhat it detects
bullish_positioningBullish positioningyesOptions crowd leaning bullish β€” positioning score elevated, calls heavier than puts
bearish_positioningBearish positioningyesOptions crowd leaning bearish β€” puts heavier, positioning score depressed
crowded_one_sidedCrowded / one-sidedyesExtreme one-sided positioning either direction β€” elevated unwind or squeeze risk
divided_opinionDivided opinionapproxPositioning near zero but activity high β€” the crowd is split on direction

Sentiment & Skew​

patternLabelSupportedWhat it detects
fear_buildingFear buildingyesPut skew unusually elevated vs own history β€” the market is pricing downside protection
greed_euphoriaGreed / euphoriayesCall skew rich β€” traders paying up for upside; sentiment running hot
event_premiumEvent / catalyst premiumapproxOptions pricing an upcoming dated catalyst (earnings, FDA, macro)

Positioning Shifts​

patternLabelSupportedWhat it detects
positioning_flipPositioning flipapproxPositioning reversed sharply vs prior session β€” a crowd change in progress
distrust_short_believe_longDistrust short / believe longyesShort-term bearish but long-term bullish positioning β€” market doubts near-term but believes in the thesis
believe_short_distrust_longBelieve short / distrust longyesShort-term bullish but long-term bearish β€” tactical bounce, not conviction

Structure & Activity​

patternLabelSupportedWhat it detects
unusual_activityUnusual options activityyesOption volume unusually high vs own history β€” informed flow or catalyst speculation
short_gamma_unstableShort-gamma / unstableyesDealers net short gamma β€” moves get amplified in both directions; watch for sharp intraday swings
pinned_max_painPinned to max-painyesSpot price near max-pain level heading into expiry β€” pinning effect expected

Divergence​

patternLabelSupportedWhat it detects
options_vs_price_divergenceOptions vs price divergenceapproxOptions positioning moving opposite to the price trend β€” smart money disagreeing with price
options_vs_news_divergenceOptions vs news divergencefutureOptions positioning opposite to news sentiment (planned)

horizon​

ValueWhat it reads
"long" (default)Longer-dated options (weeks–months) β€” positioning and conviction lens
"short"Near-term options (days–1 week) β€” gamma, pinning, and expiry dynamics

For short_gamma_unstable and pinned_max_pain, always use "horizon": "short". For positioning patterns (bullish_positioning, fear_building, etc.), "long" is usually more meaningful.


min_strength​

Strength is a 0–1 score measuring how strongly the signal is firing relative to the stock's own history:

RangeInterpretation
0.8–1.0Strong, clear signal
0.5–0.8Moderate signal
0.3–0.5Weak / marginal
< 0.3Noise

Omit min_strength to see all matches ranked by strength β€” useful for exploration. Set 0.6+ in production to avoid noise.


Examples​

Options crowd bullish β€” US large-caps sorted by signal strength
{
"universe": { "include": [{ "country": ["US"], "size": ["large","mega"] }] },
"options": { "pattern": "bullish_positioning", "horizon": "long" },
"sort": "options",
"limit": 20
}
IV cheap + price near 52-week high (breakout with cheap options)
{
"ta": [{ "anchor": [{ "pattern": "near_52w_high", "b": "0.05" }] }],
"options": { "pattern": "iv_cheap", "min_strength": 0.5 }
}
Fear building β€” combine with oversold TA for contrarian entry
{
"universe": { "include": [{ "country": ["US"] }] },
"ta": [{ "anchor": [{ "pattern": "oversold", "a": "rsi14" }] }],
"options": { "pattern": "fear_building", "horizon": "long", "min_strength": 0.6 }
}
Unusual activity β€” smart money flow alert
{
"universe": { "include": [{ "country": ["US"] }] },
"options": { "pattern": "unusual_activity", "min_strength": 0.7 },
"sort": "options"
}
Short-gamma instability β€” watch for amplified moves
{
"universe": { "include": [{ "country": ["US"], "size": ["large","mega"] }] },
"options": { "pattern": "short_gamma_unstable", "horizon": "short" },
"sort": "options"
}
Positioning flip β€” crowd just changed direction
{
"universe": { "include": [{ "country": ["US"] }] },
"options": { "pattern": "positioning_flip", "horizon": "long", "min_strength": 0.5 }
}