Open Interest By Strike

Overview

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

POST/v1/options/tool/open-interest-by-strike
curl -X POST https://api.quantdata.us/v1/options/tool/open-interest-by-strike \
  -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.expirationDate is optional and narrows the rollup to a single expiration.

  • ticker (string, required): the underlying symbol, e.g. AAPL.
  • expirationDate (LocalDate, optional): when present, the per-strike rollup is restricted to this single expiration.

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

Restricting the rollup to one expiration

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

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 strike price (dollars) to its call / put open-interest pair. Keys are dollar strike prices as strings (e.g. "215.0") sorted ascending.

200 OK · application/json
{
  "data": {
    "210.0": { "callOpenInterest": 184201, "putOpenInterest": 92410 },
    "215.0": { "callOpenInterest": 220140, "putOpenInterest": 88010 },
    "220.0": { "callOpenInterest": 132045, "putOpenInterest": 75320 },
    "225.0": { "callOpenInterest": 56120, "putOpenInterest": 110205 },
    "230.0": { "callOpenInterest": 28840, "putOpenInterest": 162034 }
  }
}

Per-strike cell fields:

  • callOpenInterest (integer, contracts): total open interest across every call contract at this strike (or the single expiration 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