Contract Statistics
Overview
Contract Statistics returns a call vs put rollup of total premium, trade count, and contract volume for the requested window. Two entries in the response: one keyed by CALL, one by PUT. Contract types with no matching trades are omitted.
curl -X POST https://api.quantdata.us/v1/options/tool/contract-statistics \ -H "Authorization: Bearer <YOUR_API_KEY>" \ -H "Content-Type: application/json" \ -d '{}'
Selecting the time window
The endpoint accepts sessionDate, timeRange, or neither. The two are mutually exclusive; if both are omitted, the most recent trading session is used.
{ "sessionDate": "2026-05-13", "filter": { "ticker": "AAPL", "moneyTypes": ["ATM", "ITM"] } }
Response shape
data is a map keyed by CALL or PUT. Each entry is an aggregate over every trade that matched the filter.
{ "data": { "CALL": { "premium": 18420330.50, "tradeCount": 28472, "volume": 61208 }, "PUT": { "premium": 10283745.25, "tradeCount": 15319, "volume": 31441 } } }
Filters
Convenience filter fields cover the full options trade inventory: tickers, sectors, industries, contractTypes, moneyTypes, strikePrices, strikePriceRange, expirationDates, expirationDateRange, tradeSideCodes, tradeTypes, sentimentTypes, exchanges, premiumRange, volumeRange, and more. All are optional. The filterExpression DSL is also accepted and can be combined with filter; both are evaluated as AND.
{ "sessionDate": "2026-05-13", "filterExpression": { "conjunction": "AND", "filters": [ { "field": "ticker", "operation": "=", "values": ["AAPL", "NVDA"] }, { "field": "premium", "operation": ">=", "value": 100000 } ] } }