Contract Trade Side Statistics

Overview

Contract Trade Side Statistics returns one aggregate per (contract type, trade side) cell. The metric in each cell is selected by dataMode: PREMIUM, TRADE_COUNT, or VOLUME. Trade-side keys on the wire are ABOVE_ASK, ASK, MID_MARKET, BID, BELOW_BID; the short codes AA, A, M, B, BB are accepted as input aliases on filters but never appear in responses.

POST/v1/options/tool/contract-trade-side-statistics
curl -X POST https://api.quantdata.us/v1/options/tool/contract-trade-side-statistics \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "dataMode": "PREMIUM",
    "sessionDate": "2026-05-13",
    "filter": { "ticker": "AAPL" }
  }'

Required: dataMode

dataMode is required. Three values:

  • PREMIUM: each cell carries a premium field, in dollars.
  • TRADE_COUNT: each cell carries a tradeCount field.
  • VOLUME: each cell carries a volume field, in contracts.

The other two metric fields are omitted from the response; only the field for the selected dataMode is populated.

Volume mode across multiple tickers

Request · VOLUME mode
{
  "dataMode": "VOLUME",
  "sessionDate": "2026-05-13",
  "filter": { "tickers": ["AAPL", "NVDA"] }
}

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.

Response shape

data is a two-level map: contract type -> trade-side code -> aggregate. Combinations with no matching trades are omitted.

200 OK · PREMIUM mode response
{
  "data": {
    "CALL": {
      "ABOVE_ASK": { "premium": 5421330.50 },
      "ASK": { "premium": 7228974.25 },
      "MID_MARKET": { "premium": 1284105.10 },
      "BID": { "premium": 4928104.80 },
      "BELOW_BID": { "premium": 2120448.10 }
    },
    "PUT": {
      "ABOVE_ASK": { "premium": 3120448.10 },
      "ASK": { "premium": 4280102.80 },
      "MID_MARKET": { "premium": 920104.20 },
      "BID": { "premium": 3104550.90 },
      "BELOW_BID": { "premium": 1820330.50 }
    }
  }
}

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.

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