---
title: "GET /options/vX/open-interest/underlying"
method: GET
path: "/options/vX/open-interest/underlying"
tags: ["us_options"]
---

# GET /options/vX/open-interest/underlying

`GET /options/vX/open-interest/underlying`

## Request

- Base URL: `https://api.massive.com`
- URL: `https://api.massive.com/options/vX/open-interest/underlying`
- Auth: API key in query parameter `apiKey`

Daily open interest for US options rolled up across each underlying's whole chain, as reported by OPRA, with the call and put split.

## Query parameters

- `underlying_ticker` string
- `underlying_ticker.any_of` string
- `underlying_ticker.gt` string
- `underlying_ticker.gte` string
- `underlying_ticker.lt` string
- `underlying_ticker.lte` string
- `date` string
- `date.gt` string
- `date.gte` string
- `date.lt` string
- `date.lte` string
- `open_interest` integer
- `open_interest.gt` integer
- `open_interest.gte` integer
- `open_interest.lt` integer
- `open_interest.lte` integer
- `limit` integer
- `sort` string

## Response `200`

A list of results.

- object
  - `next_url` string: If present, this value can be used to fetch the next page.
  - `request_id` string, required: A request id assigned by the server.
  - `results` object[], required: The results for this request.
    - `date` string, date, required: The trading date the open interest applies to (formatted as YYYY-MM-DD).
    - `open_interest` integer: Total open interest across every contract on the underlying.
    - `open_interest_calls` integer, required: Total open interest across the underlying's call contracts.
    - `open_interest_change` integer: The change in total open interest from the previous trading day (open_interest - previous_open_interest). Null when previous_open_interest is null.
    - `open_interest_change_calls` integer: The change in call open interest from the previous trading day, including call contracts that have since expired. Null when previous_open_interest is null.
    - `open_interest_change_puts` integer: The change in put open interest from the previous trading day, including put contracts that have since expired. Null when previous_open_interest is null.
    - `open_interest_puts` integer, required: Total open interest across the underlying's put contracts.
    - `previous_open_interest` integer: Total open interest on the underlying on the previous trading day, including contracts that have since expired. Null if the underlying had no open interest reported that day.
    - `underlying_ticker` string: The ticker of the underlying (e.g., SPX). Totals cover every root on the underlying, so weekly roots (SPXW) and roots adjusted after a corporate action (AMCR1) are included.
  - `status` 'OK', required: The status of this request's response.

## Other responses

- `400`: An error message.

## Changes

- **2026-11-03** `efa0c51f70d1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/massive/apis/polygon-api/changes/options/vX/open-interest/underlying/get.md)

---

[API](https://skmtc.dev/massive/apis/polygon-api.md) - [All operations](https://skmtc.dev/massive/apis/polygon-api/llms.txt) - [OpenAPI document](https://skmtc.dev/massive/apis/polygon-api/revisions/efa0c51f70d1?raw)
