Exposure By Expiration

Overview

Exposure By Expiration returns Greek-weighted exposure rolled up by expiration date for one ticker at a snapshot in time. The response shape matches Exposure By Strike; the two endpoints differ in the underlying aggregation strategy, not the wire contract.

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

Required: ticker, greekMode, representationMode

Three fields are required.

  • filter.ticker: the single ticker to aggregate over.
  • greekMode: which Greek drives the exposure value. One of CHARM, DELTA, GAMMA, VANNA.
  • representationMode: the scale. One of PER_ONE_DOLLAR_MOVE, PER_ONE_PERCENT_MOVE, RAW.

Pinned to a specific snapshot, narrowed expiration range

Request · snapshotTime + filter
{
  "snapshotTime": "2026-05-13T16:30:00Z",
  "greekMode": "GAMMA",
  "representationMode": "RAW",
  "filter": {
    "ticker": "AAPL",
    "expirationDateRange": { "startDate": "2026-05-16", "endDate": "2026-06-20" }
  }
}

Selecting the snapshot

The endpoint supports two ways to pin the snapshot: sessionDate for the latest snapshot of a given session, or snapshotTime for a specific instant. The two are mutually exclusive; if both are omitted, the latest snapshot of the current session is returned.

Response shape

data is keyed by ticker. Each ticker entry has an exposureMap that walks expiration date -> strike (dollars) -> { callExposure?, putExposure? }, plus the underlying stockPrice.

200 OK · application/json
{
  "data": {
    "AAPL": {
      "exposureMap": {
        "2026-05-16": {
          "215.0": { "callExposure": 184201, "putExposure": -92410 },
          "220.0": { "callExposure": 221340, "putExposure": -110205 }
        },
        "2026-05-23": {
          "220.0": { "callExposure": 88010, "putExposure": -41200 }
        }
      },
      "stockPrice": 218.45
    }
  }
}

Both callExposure and putExposure are nullable per cell: if a leg has no exposure at the strike, the field is omitted entirely. Sign convention follows the requested Greek.

Filters

Convenience filter fields: ticker (required), expirationDates, expirationDateRange, strikePrices, strikePriceRange. The filterExpression DSL is also accepted and can be combined with filter; both are evaluated as AND.

See Field Reference for the type and allowed values of every filterable field, and Filter Expression for the full DSL grammar.

Where to go next