A VIX futures request to Massive's futures endpoints, such as a contract list for product code VX or bars for a ticker like VXZ6, returns HTTP 200 with an empty results array. That empty answer is the coverage boundary, not a ticker format or plan problem. Two nearby things are covered: the VIX index itself, as I:VIX on the Indices endpoints, and futures that a CME Group exchange lists on a benchmark traded elsewhere, such as the NYMEX Brent crude contract BZ.
Applies to
- Plans: every Futures plan. The individual plans are Basic, Starter, Developer and Advanced, and the Business plans are named for the same four exchanges: CME, CBOT, NYMEX and COMEX.
- Endpoints: /futures/v1/products, /futures/v1/contracts, /futures/v1/aggs/{ticker} and /futures/v1/exchanges; /v3/reference/tickers for I:VIX.
- Asset classes: futures, plus indices for the VIX index.
Which exchanges Massive's futures data covers
Massive's futures data covers four exchanges, all part of CME Group. Futures products and contracts record the exchange they trade on in a trading_venue field, as a market identifier code (MIC), and these four codes are the only exchanges that field names:
| Exchange | trading_venue | Example products |
|---|---|---|
| CME (Chicago Mercantile Exchange) | XCME | E-mini S&P 500 ES, Nikkei Stock Average NKD |
| CBOT (Chicago Board of Trade) | XCBT | Corn ZC, wheat ZW, Treasury note ZN |
| NYMEX (New York Mercantile Exchange) | XNYM | Crude oil CL, natural gas NG, Brent crude BZ |
| COMEX | XCEC | Gold GC, silver SI, copper HG |
Futures from any other exchange are not in Massive's futures data on any plan. That includes the Cboe Futures Exchange (CFE), where VIX futures (VX) trade, and ICE, Eurex, SGX and the other exchanges outside CME Group.
How to check whether a futures product is covered
A futures product is covered when /futures/v1/products returns it. Ask for several product codes at once with product_code.any_of. The call below is pinned to outright (single) products on one date, so a code missing from its results was not a product on that date; drop date and type to search every date and product type:
curl -X GET "https://api.massive.com/futures/v1/products?product_code.any_of=BZ,ES,VX&type=single&date=2026-10-19&apiKey=YOUR_API_KEY"
Response
{
"status": "OK",
"results": [
{
"name": "Brent Crude Oil Last Day Financial Futures",
"product_code": "BZ",
"trading_venue": "XNYM"
},
{
"name": "E-mini Standard and Poor's 500 Stock Price Index Futures",
"product_code": "ES",
"trading_venue": "XCME"
}
]
}
BZ and ES come back with their exchanges, NYMEX and CME, and VX does not come back at all, because VIX futures are not a Massive futures product.
Listing the contracts for VX gives the same answer, an empty list rather than an error:
curl -X GET "https://api.massive.com/futures/v1/contracts?product_code=VX&apiKey=YOUR_API_KEY"
Response
{
"status": "OK",
"results": []
}
An empty results array with "status": "OK" means the product is not in Massive's futures data, so no ticker spelling and no Futures plan will return contracts for it.
Why the futures exchanges endpoint lists more venues
The futures exchanges endpoint, /futures/v1/exchanges, lists more venues than the four that carry data, among them MIAX Futures, Korea Exchange, Bursa Malaysia and BrokerTec. A venue on that list does not mean its contracts are covered: no product on /futures/v1/products and no contract on /futures/v1/contracts names a venue other than the four in the table above. Read futures coverage from the products endpoint, not from the exchanges list.
Where to find the VIX index
The VIX index, the Cboe Volatility Index, is I:VIX on Massive's Indices endpoints. I:VIX is the index value rather than a futures contract, so it has no expiry months, and its values come from the Indices endpoints, such as /v2/aggs/ticker/I:VIX/range/1/day/{from}/{to}:
curl -X GET "https://api.massive.com/v3/reference/tickers/I:VIX?apiKey=YOUR_API_KEY"
Response
{
"results": {
"ticker": "I:VIX",
"name": "Cboe Volatility Index",
"market": "indices",
"active": true
},
"status": "OK"
}
"market": "indices" places I:VIX with the indices, not the futures. Which Indices plans include it is covered in Are all indices available through the basic subscription tier?
Brent and other benchmarks listed by CME Group
A benchmark associated with another exchange is in Massive's futures data only when one of the four CME Group exchanges lists its own contract on it. NYMEX lists Brent Crude Oil Last Day Financial futures as product BZ, a cash-settled contract with its own monthly tickers such as BZZ6, so Brent crude is covered through NYMEX even though the ICE Brent contract is not.
Why this happens
Massive's futures data comes directly from exchange feeds, and the Futures overview names the exchanges as CME, CBOT, COMEX and NYMEX. VIX futures were introduced on the Cboe Futures Exchange and are listed there (Cboe: VIX futures), a separate exchange outside CME Group, so they fall outside that coverage. ICE and Eurex are separate exchanges in the same way.
If you see an error
{"status": "OK", "results": []} for a VIX futures request means the product is not in Massive's futures data. Changing VXV2026 to the one-digit-year form VXV6 does not help, and neither does a different Futures plan. Use I:VIX for the index instead.
An empty result for a covered product such as ES or CL is usually a wrong month or year code. List the product's contracts as of today, for example /futures/v1/contracts?product_code=ES&date=2026-10-19 with today's date, to see the exact tickers. Without date the list holds one row per contract per day, so its first page is one ticker repeated.

