Equity Prints

Overview

Equity Prints returns the trade-by-trade equity tape across both lit and dark venues. Each row is one print. Rows are paginated with cursor semantics, and every projectable field is returned by default. Use this when you need per-print visibility into how an equity is trading; for aggregated dark-venue activity over time, see Dark Flow.

POST/v1/equities/tool/equity-prints
curl -X POST https://api.quantdata.us/v1/equities/tool/equity-prints \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "sessionDate": "2026-05-13",
    "filter": { "ticker": "AAPL" }
  }'

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.

Pagination and sort

Equity Prints uses cursor pagination. size sets the page size (default 50, range 1-100). sort picks the order (default tradeTime DESCENDING). Pass the previous response's nextSearchAfter back as searchAfter to get the next page. See Pagination for the full walk-through.

Subsequent page · cursor + explicit sort

Request · size + sort + searchAfter
{
  "sessionDate": "2026-05-13",
  "filter": { "ticker": "AAPL" },
  "size": 50,
  "sort": { "field": "tradeTime", "direction": "DESCENDING" },
  "searchAfter": ["1747137600000", "5e0f1a2b"]
}

sort.field accepts any filterable field on the print row; direction is ASCENDING or DESCENDING. When the result set is empty or the final page has been served, nextSearchAfter is omitted from the response. Equity Prints does not return a statistics block: this is a pure tape endpoint.

To narrow the tape to one venue category:

Request · dark pool prints only
{
  "sessionDate": "2026-05-13",
  "filter": {
    "ticker": "AAPL",
    "equityPrintTypes": ["DARK_POOL"]
  }
}

Projection

includes is a whitelist of fields to keep on each row; excludes is a blacklist. The two are mutually exclusive. Omitted fields are dropped from the JSON entirely. See Projection for the full contract.

Includes · keep just the columns you need

Request · includes
{
  "sessionDate": "2026-05-13",
  "filter": { "ticker": "AAPL" },
  "includes": ["ID", "TICKER", "PRICE", "SIZE", "PRINT_TYPE", "TRADE_TIME"]
}

Response shape

data is an ordered array of rows. nextSearchAfter is the cursor for the next page (or omitted when none).

200 OK · application/json
{
  "data": [
    {
      "id": "5e0f1a2b",
      "ticker": "AAPL",
      "price": 213.45,
      "size": 250,
      "notionalValue": 53362.50,
      "printType": "DARK_POOL",
      "tradeSide": "MID_MARKET",
      "askPrice": 213.46,
      "askSize": 800,
      "bidPrice": 213.43,
      "bidSize": 1100,
      "isDelayedPrint": false,
      "tradeTime": 1747137612000
    }
  ],
  "nextSearchAfter": ["1747137612000", "5e0f1a2b"]
}

Per-row fields (every field is nullable for projection):

  • Identity: id, ticker.
  • Pricing: price, askPrice, bidPrice.
  • Sizing: size (shares), askSize, bidSize, notionalValue (in dollars).
  • Classification: printType (DARK_POOL or LIT_POOL), tradeSide (ABOVE_ASK, ASK, MID_MARKET, BID, BELOW_BID), isDelayedPrint.
  • Time: tradeTime (epoch-millisecond Long).

Filters

Convenience filter fields: tickers, equityPrintTypes (aliases: equityPrintType, printType, printTypes, type, types), tradeSideCodes, priceRange, sizeRange, askPriceRange, askSizeRange, bidPriceRange, bidSizeRange, notionalValueRange, isDelayedPrint. 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