Skip to content

Options · Exposure, levels, volatility and OI

Options screener

Screen contracts or underlyings by flow, open interest, volatility and modeled exposure.
On this page

Filters, sorts and pages the tracked contracts (grain=contract) or underlyings (grain=ticker) by their flow of the session, open interest, implied volatility, greeks, modeled dealer exposure and, for underlyings, volatility rank and gamma regime. Presets: unusual_activity, large_premium, sweeps, golden_sweeps, blocks, vol_gt_oi, zero_dte, zero_dte_lottos, high_iv, near_spot_gamma, bullish_flow, bearish_flow, oi_gainers, leaps_accumulation, unusual_short_otm, repeated_hits, call_sells, put_sells, overnight_spx, negative_gamma, near_walls, high_iv_rank, cheap_vol, iv_movers, backwardation. Contract presets are screens such as unusual_activity, large_premium, sweeps and 0dte; the last six are underlying screens. The screened universe is the underlyings the platform tabulates, listed in meta.coverage. Pages follow a snapshot by row offset (up to 10,000 rows); if the data was refreshed between pages the response carries the warning snapshot_changed. Gamma exposures are modeled estimates. Dealer positioning is a model, not observed: with classic_oi the dealer is assumed long the calls and short the puts of the open interest, with flow_adjusted the classified prints since the open interest date adjust it. Public open interest does not identify who holds a position, so the values are estimates of exposure under that assumption.

Example request

curl -sS --get "https://api.ordermap.si/v1/options/screener" \
  -H "Authorization: Bearer $ORDERMAP_API_KEY" \
  --data-urlencode underlying_symbols=SPXW,SPY

Set ORDERMAP_API_KEY to your key. Replace the dates with a recent trading date.

Parameters

93 parameters, none required.

ParameterType and limitsDescription
grainqueryoptionalstringcontracttickerdefault contractRows per contract or per underlying.
presetqueryoptionalstringunusual_activitylarge_premiumsweepsgolden_sweepsblocksvol_gt_oizero_dtezero_dte_lottoshigh_ivnear_spot_gammabullish_flowbearish_flowoi_gainersleaps_accumulationunusual_short_otmrepeated_hitscall_sellsput_sellsovernight_spxnegative_gammanear_wallshigh_iv_rankcheap_voliv_moversbackwardationA saved screen of the chosen grain; explicit filters override its criteria. See the description for the list.
underlying_symbolsqueryoptionalarray<string>comma-separated in one parameter1 to 50 itemseach at most 128 characterspattern ^[A-Za-z][A-Za-z0-9.]{0,7}$Underlyings to screen, comma separated, at most 50. Default: every underlying the platform tabulates.
datequeryoptionalstringdateTrading date (YYYY-MM-DD). Default: the current session, else the most recent completed one.
sessionqueryoptionalstringrthgthalldefault rthTrading session: rth is the regular session, gth the overnight (global trading hours) session before the trading date, all both. Overnight data requires the Pro plan and exists only for underlyings with an overnight session; GET /v1/options/sessions shows which.
sortqueryoptionalstringat most 52 characterspattern ^(abs_)?[a-z0-9_]{1,48}$Row field to sort by, or abs_<field> for the absolute value. Any numeric field of the grain's rows; default per preset, else premium (contracts) or option_volume (underlyings).
orderqueryoptionalstringdescascdefault descDescending (largest first) or ascending.
contract_typequeryoptionalstringcallputCalls or puts. Omit for both.
moneynessqueryoptionalarray<string>comma-separated in one parameteritmatmotm1 to 3 itemsContract grain: moneyness classes, comma separated: itm, atm, otm.
flagsqueryoptionalarray<string>comma-separated in one parameterunusualgoldenvol_gt_oisize_gt_oisweepblockrepeated1 to 7 itemsContract grain: row flags that must all be set: unusual, golden, vol_gt_oi, size_gt_oi, sweep, block, repeated.
regimequeryoptionalarray<string>comma-separated in one parameterpositivenegativeneutral1 to 3 itemsTicker grain: gamma regimes to include: positive, negative, neutral.
min_volumequeryoptionalintegermin 0max 1000000000Minimum contracts traded today.
max_volumequeryoptionalintegermin 0max 1000000000Maximum contracts traded today.
min_open_interestqueryoptionalintegermin 0max 1000000000Minimum open interest.
max_open_interestqueryoptionalintegermin 0max 1000000000Maximum open interest.
min_volume_to_open_interestqueryoptionalnumbermin 0max 1000000000Minimum volume over open interest.
min_premiumqueryoptionalnumbermin 0max 1000000000000Minimum premium traded today in US dollars.
max_premiumqueryoptionalnumbermin 0max 1000000000000Maximum premium traded today in US dollars.
min_net_premiumqueryoptionalnumbermin -1000000000000max 1000000000000Minimum net premium (ask side minus bid side) in US dollars.
min_dtequeryoptionalintegermin 0max 3650Minimum days to expiration.
max_dtequeryoptionalintegermin 0max 3650Maximum days to expiration.
min_otm_percentqueryoptionalnumbermin -100max 1000Minimum percent out of the money.
max_otm_percentqueryoptionalnumbermin -100max 1000Maximum percent out of the money.
min_implied_volatilityqueryoptionalnumbermin 0max 5Minimum implied volatility as a decimal.
max_implied_volatilityqueryoptionalnumbermin 0max 5Maximum implied volatility as a decimal.
min_abs_deltaqueryoptionalnumbermin 0max 1Minimum absolute delta.
max_abs_deltaqueryoptionalnumbermin 0max 1Maximum absolute delta.
min_ask_percentqueryoptionalnumbermin 0max 100Minimum share of volume at the ask side, percent.
min_bid_percentqueryoptionalnumbermin 0max 100Minimum share of volume at the bid side, percent.
max_spread_percentqueryoptionalnumbermin 0max 1000000Maximum bid/ask spread in percent of the mid.
max_multileg_percentqueryoptionalnumbermin 0max 100Maximum share of volume in multi-leg prints, percent.
min_sweep_premiumqueryoptionalnumbermin 0max 1000000000000Minimum sweep premium in US dollars (per contract, or per underlying for the ticker grain).
min_largest_print_premiumqueryoptionalnumbermin 0max 1000000000000Minimum premium of the largest print in US dollars.
min_open_interest_changequeryoptionalintegermin -1000000000max 1000000000Minimum open interest change in contracts.
min_open_interest_change_percentqueryoptionalnumbermin -1000000000max 1000000000Minimum open interest change in percent.
min_repeated_hit_countqueryoptionalintegermin 0max 1000000Minimum bursts of five or more same-side prints within 100 ms.
min_last_pricequeryoptionalnumbermin 0max 1000000000Minimum last price.
max_mid_pricequeryoptionalnumbermin 0max 1000000000Maximum mid price.
min_underlying_pricequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: underlying price. (minimum).
max_underlying_pricequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: underlying price. (maximum).
min_change_percentqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: change in percent. (minimum).
max_change_percentqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: change in percent. (maximum).
min_option_volumequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: option contracts traded today. (minimum).
max_option_volumequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: option contracts traded today. (maximum).
min_call_volumequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: call contracts. (minimum).
max_call_volumequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: call contracts. (maximum).
min_put_volumequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: put contracts. (minimum).
max_put_volumequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: put contracts. (maximum).
min_put_call_volume_ratioqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: put over call volume. (minimum).
max_put_call_volume_ratioqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: put over call volume. (maximum).
min_put_call_open_interest_ratioqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: put over call open interest. (minimum).
max_put_call_open_interest_ratioqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: put over call open interest. (maximum).
min_total_premiumqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: premium traded in US dollars. (minimum).
max_total_premiumqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: premium traded in US dollars. (maximum).
min_net_call_premiumqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: net call premium in US dollars. (minimum).
max_net_call_premiumqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: net call premium in US dollars. (maximum).
min_net_put_premiumqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: net put premium in US dollars. (minimum).
max_net_put_premiumqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: net put premium in US dollars. (maximum).
max_sweep_premiumqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: sweep premium in US dollars. (maximum).
min_iv30queryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: 30-day at-the-money implied volatility. (minimum).
max_iv30queryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: 30-day at-the-money implied volatility. (maximum).
min_iv_rankqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: one-year implied volatility rank, 0 to 1. (minimum).
max_iv_rankqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: one-year implied volatility rank, 0 to 1. (maximum).
min_iv_percentilequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: one-year implied volatility percentile, 0 to 1. (minimum).
max_iv_percentilequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: one-year implied volatility percentile, 0 to 1. (maximum).
min_iv30_changequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: change of the 30-day volatility versus the previous close. (minimum).
max_iv30_changequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: change of the 30-day volatility versus the previous close. (maximum).
min_realized_volatility_20dqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: 20-day realized volatility. (minimum).
max_realized_volatility_20dqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: 20-day realized volatility. (maximum).
min_volatility_risk_premiumqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: 30-day implied minus 20-day realized volatility. (minimum).
max_volatility_risk_premiumqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: 30-day implied minus 20-day realized volatility. (maximum).
min_term_slope_7_30queryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: 7-day minus 30-day implied volatility. (minimum).
max_term_slope_7_30queryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: 7-day minus 30-day implied volatility. (maximum).
min_risk_reversal_25d_30dqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: 25-delta risk reversal at 30 days. (minimum).
max_risk_reversal_25d_30dqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: 25-delta risk reversal at 30 days. (maximum).
min_net_gamma_exposurequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: net modeled dealer gamma exposure. (minimum).
max_net_gamma_exposurequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: net modeled dealer gamma exposure. (maximum).
min_gamma_flip_distance_percentqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: distance from the underlying price to the gamma flip, percent. (minimum).
max_gamma_flip_distance_percentqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: distance from the underlying price to the gamma flip, percent. (maximum).
min_call_wall_distance_percentqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: distance to the call wall, percent. (minimum).
max_call_wall_distance_percentqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: distance to the call wall, percent. (maximum).
min_put_wall_distance_percentqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: distance to the put wall, percent. (minimum).
max_put_wall_distance_percentqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: distance to the put wall, percent. (maximum).
min_gamma_tiltqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: positive call gamma over the absolute negative put gamma. (minimum).
max_gamma_tiltqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: positive call gamma over the absolute negative put gamma. (maximum).
min_next_expiration_sharequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: share of gamma in the nearest expiration. (minimum).
max_next_expiration_sharequeryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: share of gamma in the nearest expiration. (maximum).
min_max_pain_distance_percentqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: distance to max pain, percent. (minimum).
max_max_pain_distance_percentqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: distance to max pain, percent. (maximum).
min_expected_move_1d_percentqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: one-day expected move, percent. (minimum).
max_expected_move_1d_percentqueryoptionalnumbermin -1000000000000max 1000000000000Ticker grain: one-day expected move, percent. (maximum).
limitqueryoptionalintegerdefault 100min 1max 500Maximum rows to return.
cursor_idqueryoptionalstringat most 1024 charactersOpaque cursor returned as pagination.next_cursor_id; resumes the same query on the next page.

Response

StatusMeaningBody
200Successful response.Schema below
400Invalid, unknown or repeated parameters, or an invalid cursor.Error object
401Missing or invalid API key.Error object
403The plan, dataset release or account state does not allow this request.Error object
422The request is valid but no data exists for it.Error object
429Rate limit, burst limit or cooldown; wait Retry-After seconds.Retry-AfterError object
500Internal error.Error object
503Data temporarily unavailable; retry after Retry-After seconds.Retry-AfterError object
504The request timed out.Error object

Authenticated responses carry the X-RateLimit-* headers (see rate limits); 429 and 503 add Retry-After.

200 response body

  • dataarray<object>required72 fields inside
    • asknumber | nullAsk.
    • ask_percentnumber | nullShare of volume at the ask side, percent.
    • average_sizenumber | nullAverage print size in contracts.
    • bidnumber | nullBid.
    • bid_percentnumber | nullShare of volume at the bid side, percent.
    • block_countnumber | nullBlocks.
    • block_premiumnumber | nullBlock premium in US dollars.
    • call_volumenumber | nullCall contracts.
    • call_wall_distance_percentnumber | nullDistance to the call wall, percent.
    • change_percentnumber | nullChange of the last price from the previous close, percent.
    • contract_typestring | nullcall or put.
    • cross_percentnumber | nullShare of volume in crosses, percent.
    • date_of_expirystring | nullExpiration date.
    • days_to_expirynumber | nullCalendar days to expiration.
    • deltanumber | nullDelta.
    • delta_exposurenumber | nullModeled dealer delta exposure of the open interest.
    • estimated_opening_contractsnumber | nullEstimated contracts opened today.
    • expected_move_1d_percentnumber | nullOne-day expected move, percent.
    • flagsarray<string> | nullRow flags: unusual, golden, vol_gt_oi, size_gt_oi, sweep, block, repeated.unusualgoldenvol_gt_oisize_gt_oisweepblockrepeated
    • floor_percentnumber | nullShare of volume in floor prints, percent.
    • gammanumber | nullGamma.
    • gamma_exposurenumber | nullModeled dealer gamma exposure of the open interest.
    • gamma_flip_distance_percentnumber | nullDistance from the underlying price to the gamma flip, percent.
    • gamma_tiltnumber | nullPositive call gamma over the absolute negative put gamma.
    • golden_sweep_countnumber | nullGolden sweeps.
    • implied_volatilitynumber | nullImplied volatility as a decimal.
    • implied_volatility_vs_atmnumber | nullImplied volatility minus the at-the-money volatility.
    • iso_percentnumber | nullShare of volume in intermarket sweep orders, percent.
    • iv30number | null30-day at-the-money implied volatility.
    • iv30_changenumber | nullChange of the 30-day volatility versus the previous close.
    • iv_percentilenumber | nullOne-year implied volatility percentile, 0 to 1.
    • iv_ranknumber | nullOne-year implied volatility rank, 0 to 1.
    • largest_print_premiumnumber | nullPremium of the largest print in US dollars.
    • last_pricenumber | nullLast price.
    • max_pain_distance_percentnumber | nullDistance to max pain, percent.
    • midnumber | nullMid price.
    • mid_percentnumber | nullShare of volume at the mid, percent.
    • moneynessstring | nullitm, atm or otm.
    • multileg_percentnumber | nullShare of volume in multi-leg prints, percent.
    • net_call_premiumnumber | nullNet call premium in US dollars.
    • net_gamma_exposurenumber | nullNet modeled dealer gamma exposure.
    • net_premiumnumber | nullAsk-side minus bid-side premium in US dollars.
    • net_put_premiumnumber | nullNet put premium in US dollars.
    • next_expiration_sharenumber | nullShare of gamma in the nearest expiration.
    • open_interestnumber | nullOpen interest.
    • open_interest_changenumber | nullOpen interest change versus the previous date.
    • open_interest_change_percentnumber | nullThat change in percent.
    • option_volumenumber | nullOption contracts traded today.
    • otm_percentnumber | nullPercent out of the money (negative when in the money).
    • premiumnumber | nullPremium traded today in US dollars.
    • put_call_open_interest_rationumber | nullPut over call open interest.
    • put_call_volume_rationumber | nullPut over call volume.
    • put_volumenumber | nullPut contracts.
    • put_wall_distance_percentnumber | nullDistance to the put wall, percent.
    • realized_volatility_20dnumber | null20-day realized volatility.
    • regimestring | nullGamma regime: positive, negative or neutral.
    • repeated_hit_countnumber | nullBursts of five or more same-side prints within 100 ms.
    • risk_reversal_25d_30dnumber | null25-delta risk reversal at 30 days.
    • spread_percentnumber | nullBid/ask spread in percent of the mid.
    • strikenumber | nullStrike in dollars.
    • sweep_countnumber | nullInferred sweeps.
    • sweep_premiumnumber | nullSweep premium in US dollars.
    • term_slope_7_30number | null7-day minus 30-day implied volatility.
    • thetanumber | nullTheta per day.
    • total_premiumnumber | nullPremium traded in US dollars.
    • tradesnumber | nullPrints today.
    • underlying_pricenumber | nullUnderlying price.
    • underlying_symbolstring | nullOption root of the contract.
    • veganumber | nullVega per volatility point.
    • volatility_risk_premiumnumber | null30-day implied minus 20-day realized volatility.
    • volumenumber | nullContracts traded today.
    • volume_to_open_interestnumber | nullVolume over open interest.
  • metaobjectrequiredMeta object
  • paginationobjectrequiredPagination object

Example response

{
  "data": [
    {
      "ask_percent": 58.1,
      "contract_type": "call",
      "date_of_expiry": "2026-10-16",
      "days_to_expiry": 0,
      "delta": 0.31,
      "flags": [
        "unusual"
      ],
      "implied_volatility": 0.138,
      "net_premium": 1900000,
      "open_interest": 4120,
      "otm_percent": 0.479,
      "premium": 8400000,
      "strike": 6050,
      "underlying_price": 6021.4,
      "underlying_symbol": "SPXW",
      "volume": 18200,
      "volume_to_open_interest": 4.42
    }
  ],
  "meta": {
    "as_of": 1760659200123,
    "coverage": {
      "complete": true
    },
    "delay_ms": 0,
    "delayed": false,
    "request_id": "0199f0c2-5a1e-7c3b-9d4e-2b6f8a1c3d5e",
    "source": "opra"
  },
  "pagination": {
    "count": 1,
    "has_more": false,
    "limit": 100,
    "next_cursor_id": null,
    "next_url": null
  }
}

Values are illustrative. Missing values are null, never 0.