Max Pain Over Time

Overview

Max Pain Over Time returns the max-pain strike for each option expiration on a single trading session. The "over time" dimension is expiration date, not intra-session time: you get one max-pain strike per expiration in the chain.

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

Required: ticker

filter.tickeris the only required field. The endpoint walks every expiration in the ticker's chain for the selected session.

  • ticker (string): the underlying symbol, e.g. AAPL.

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

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 in the chain to its max-pain strike. Keys are ISO dates sorted ascending. Values are dollar strike prices.

200 OK · application/json
{
  "data": {
    "2026-05-16": 220.0,
    "2026-05-23": 220.0,
    "2026-05-30": 222.5,
    "2026-06-20": 225.0,
    "2026-09-19": 230.0
  }
}

When no open-interest data exists for the ticker on the selected session, data is an empty object. That is not an error. The endpoint only throws ValidationFailure when the request itself is malformed.

Where to go next