Open Interest By Expiration

Overview

Open Interest By Expiration returns the per-expiration call and put open-interest snapshot for one ticker on a single trading session.

POST/v1/options/tool/open-interest-by-expiration
curl -X POST https://api.quantdata.us/v1/options/tool/open-interest-by-expiration \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "sessionDate": "2026-05-13",
    "filter": { "ticker": "AAPL" }
  }'

Required: ticker

filter.ticker is the only required field. filter.strikePrice is optional and narrows the rollup to a single strike.

  • ticker (string, required): the underlying symbol, e.g. AAPL.
  • strikePrice (double, dollars, optional): when present, the per-expiration rollup is restricted to this single strike. Must be positive.

No other request fields are accepted. filterExpression, snapshotTime, timeRange, aggregationPeriod, projection, and pagination do not apply to this endpoint.

Restricting the rollup to one strike

Request · with strikePrice
{
  "sessionDate": "2026-05-13",
  "filter": {
    "ticker": "AAPL",
    "strikePrice": 215.0
  }
}

Selecting the session

sessionDate is optional and selects the trading session to evaluate. If omitted, the most recent session is used.

Open-interest data lags the session start, so before the market opens on any given day, the latest available session is yesterday's session. Pass sessionDate explicitly when you want a specific date.

Response shape

data maps each expiration date to its call / put open-interest pair. Keys are ISO dates sorted ascending.

200 OK · application/json
{
  "data": {
    "2026-05-16": { "callOpenInterest": 184201, "putOpenInterest": 92410 },
    "2026-05-23": { "callOpenInterest": 88010, "putOpenInterest": 41200 },
    "2026-05-30": { "callOpenInterest": 56120, "putOpenInterest": 28840 },
    "2026-06-20": { "callOpenInterest": 132045, "putOpenInterest": 75320 },
    "2026-09-19": { "callOpenInterest": 65210, "putOpenInterest": 49018 }
  }
}

Per-expiration cell fields:

  • callOpenInterest (integer, contracts): total open interest across every call contract at this expiration (or the single strike if one was supplied).
  • putOpenInterest (integer, contracts): the same on the put side.

The endpoint throws ValidationFailure when the request is malformed.

Where to go next