Dark Pool Levels

Overview

Dark Pool Levels returns off-exchange print activity for one ticker, aggregated by price level over a date range. Each level carries the total notional, share count, and trade count of dark-venue prints at that price.

POST/v1/equities/tool/dark-pool-levels
curl -X POST https://api.quantdata.us/v1/equities/tool/dark-pool-levels \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "sessionDateRange": {
      "startDate": "2026-05-06",
      "endDate": "2026-05-13"
    },
    "filter": { "ticker": "AAPL" }
  }'

Required: ticker and sessionDateRange

filter.ticker and the top-level sessionDateRange are required. The endpoint scopes to one ticker over the inclusive date range you supply.

  • ticker (string): the underlying symbol, e.g. AAPL.
  • sessionDateRange (object): startDate is required; endDate is optional. Both endpoints are inclusive.

No other request fields are accepted. filterExpression, aggregationPeriod, projection, and pagination do not apply to this endpoint. There is no sessionDate, timeRange, or snapshotTime: sessionDateRange is the only time selector.

Selecting the date range

startDate is required. endDate may be omitted, in which case it defaults to tomorrow in New York time. That lets you pass just a startDate to get every session from that date forward through today.

Open-ended range · startDate only

Request · open-ended date range
{
  "sessionDateRange": { "startDate": "2026-05-06" },
  "filter": { "ticker": "AAPL" }
}

Response shape

data walks price level (dollars) -> level statistics. Keys are dollar price levels as strings (e.g. "215.00") sorted ascending. latestStockPrice is the latest available price for the ticker at request time.

200 OK · application/json
{
  "latestStockPrice": 218.42,
  "data": {
    "210.00": { "notionalValue": 4820100.0, "size": 22950, "tradeCount": 184 },
    "212.50": { "notionalValue": 6132040.0, "size": 28851, "tradeCount": 220 },
    "215.00": { "notionalValue": 18420100.0, "size": 85675, "tradeCount": 612 },
    "217.50": { "notionalValue": 11320400.0, "size": 52050, "tradeCount": 401 },
    "220.00": { "notionalValue": 8124030.0, "size": 36927, "tradeCount": 312 }
  }
}

Per-level cell fields:

  • notionalValue (double, dollars): the total notional traded at this price level over the date range.
  • size (long, shares): the total share count traded at this price level over the date range.
  • tradeCount (integer): the count of distinct prints at this price level over the date range.

Where errors come from

Malformed input surfaces as ValidationFailure (400). LevelsUnavailable (the dark-pool levels query failing upstream) surfaces as a 500; treat it as transient and retry. StockPriceNotFound (no stock price for the ticker over the requested range) is an expected no-data outcome and surfaces as 422 · data-unavailable with a detail naming the ticker; retrying it unchanged will not help.

Where to go next