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.

POST/v1/options/tool/contract-statistics
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.

Single-session, narrowed to a ticker and moneyness

Request · filter
{
  "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.

200 OK · application/json
{
  "data": {
    "CALL": {
      "premium": 18420330.50,
      "tradeCount": 28472,
      "volume": 61208
    },
    "PUT": {
      "premium": 10283745.25,
      "tradeCount": 15319,
      "volume": 31441
    }
  }
}

Per-leg fields:

  • premium: total premium across all trades for the leg, in dollars.
  • tradeCount: number of trades that contributed.
  • volume: total contract count across those trades.

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.

Filter expression · minimum premium threshold

Request · filterExpression
{
  "sessionDate": "2026-05-13",
  "filterExpression": {
    "conjunction": "AND",
    "filters": [
      { "field": "ticker", "operation": "=", "values": ["AAPL", "NVDA"] },
      { "field": "premium", "operation": ">=", "value": 100000 }
    ]
  }
}

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