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.
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.
{ "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.
{ "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 } } }
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.