Knowledge Base/Does Massive support options data for index contracts?

Does Massive support options data for index contracts?

Yes. Index options are covered by the Options subscription, and every options endpoint accepts them. The snapshot endpoints need the prefixed index, as in I:SPX, to return Greeks, while the reference endpoints only accept the bare symbol, as in SPX.

The only thing that behaves differently from an equity option is the underlying symbol, and it differs between two endpoint families rather than being one rule. The snapshot endpoints return the same contracts for I:SPX and SPX, but only the prefixed form returns Greeks and implied volatility, while the reference endpoints accept only the bare form and answer the prefixed one with an empty list rather than an error.

Applies to

  • Plans: an Options subscription. Indices subscriptions cover index values, not index options.
  • Endpoints: /v3/snapshot/options/{underlyingAsset}, /v3/reference/options/contracts, /v3/trades/{optionsTicker}, /v3/quotes/{optionsTicker} and /v2/aggs/ticker/{optionsTicker}.
  • Asset classes: index options such as SPX, SPXW, NDX, VIX and RUT.

How to query an index option chain

Ask the snapshot endpoint for the chain, with the index prefixed:

curl -X GET "https://api.massive.com/v3/snapshot/options/I:SPX?limit=1&apiKey=YOUR_API_KEY"

Response

{
  "results": [
    {
      "details": { "ticker": "O:SPXW260911C02800000", "contract_type": "call",
                   "expiration_date": "2026-09-11", "strike_price": 2800 },
      "underlying_asset": { "ticker": "I:SPX" },
      "open_interest": 0
    }
  ],
  "status": "OK"
}

The chain comes back in symbol order and the near-dated contracts roll off as they expire, so the particular contract you see first will not be the one above.

Then ask the reference endpoint for contract definitions, with the bare symbol:

curl -X GET "https://api.massive.com/v3/reference/options/contracts?underlying_ticker=SPX&limit=1&apiKey=YOUR_API_KEY"

Response

{
  "results": [{ "ticker": "O:SPX260918C00200000" }],
  "status": "OK"
}

Once you hold a contract ticker such as O:SPXW260915C07600000, every other options endpoint takes it directly, with no prefix rules to think about.

Which form of the symbol to use where

The two endpoint families differ, and neither answers the wrong form with an error: the reference one returns an empty list, and the snapshot returns contracts with no Greeks:

Endpoint familyUnderlying formExample
Snapshot and chainPrefixed. SPX returns the same contracts with an empty greeks object and no implied volatilityI:SPX
Reference contractsBare only. The prefixed form returns nothingSPX
Trades, quotes, aggregatesThe contract ticker itselfO:SPXW260915C07600000

Why index options need a different prefix

Index options need a different prefix because the underlying is not a security you can trade. SPX on its own is not a ticker Massive can price, so the index namespace uses I: to keep index values apart from equities, and the snapshot endpoints resolve the underlying by looking it up. The reference endpoints are indexing a text field on the contract instead, and the contract records the underlying as the bare root symbol, so they need it in that form.

The same reasoning is why an ETF option needs no prefix at all. SPY is a stock, so underlying_ticker=SPY works on both families, and that is often the simplest way to get index-like options exposure without the prefix rules.

If you see an error

"status": "OK" with an empty results array from /v3/reference/options/contracts is usually the prefixed form. Drop the I:. From the snapshot, an empty list is not the prefix, because the bare form returns the same contracts: look at your filters, or at whether the underlying has a chain at all.

Snapshot contracts that all have an empty greeks object and no implied_volatility are what the bare symbol returns. Ask for /v3/snapshot/options/I:SPX rather than /v3/snapshot/options/SPX.

{"status":"NOT_AUTHORIZED"} means your plan lacks Options. An Indices subscription covers index values and does not include options on those indices.

A contract ticker that returns no trades is usually a strike with no volume rather than missing data. Confirm with the chain snapshot, which reports open_interest.

Related


Was this article helpful?

Modernizing Wall St.

Reimagining financial market data for the 21st century.

Schedule a demo

Talk with our market data experts

Recommended

Can't find the answer you're looking for? Contact our team.
  • Title
    Are all indices available through the basic subscription tier?
    Data Coverage Category

    Data Coverage

    Indices Category

    Indices

    Description
    No, and the ones it withholds are the famous ones: SPX, DJI, RUT and VIX all need a paid Indices tier. Basic still reaches more than 10,000 of the 13,000-odd indices Massive publishes, and NDX and the Nasdaq Composite are among them.
  • Title
    Does Massive offer dark pool data?
    Data Coverage Category

    Data Coverage

    Stocks Category

    Stocks

    Description
    Yes. Off-exchange prints, which include dark pool executions, arrive on the ordinary trades feed and are identified by an exchange ID of 4. There is no separate dark pool endpoint, and no way to tell which individual venue a print came from.
  • Title
    Does Massive offer pre-market and after-hours data?
    FAQ Category

    FAQ

    Stocks Category

    Stocks

    Description
    Yes. Every extended-hours trade and quote is published, from 04:00 to 20:00 Eastern. There is no session parameter, so you select a session with timestamps, and expect far fewer aggregate bars outside regular hours because many extended-hours trades are odd lots that cannot set a price.