Skip to main content

Dark Pool Data API: Off-Exchange Prints, Flow and Levels

Quant Data's dark pool data API: Equity Prints, Dark Flow and Dark Pool Levels for US stocks and ETFs, with real SPY data and Python code.

Written by Andrew Hiesinger

Yes: the Quant Data API returns dark pool (off-exchange) data for US stocks and ETFs through three endpoints: Equity Prints for the trade-by-trade tape, Dark Flow for off-exchange notional through a session, and Dark Pool Levels for off-exchange prints aggregated by price level over a date range. The data is exchange-licensed, all three reach back at least a year (Equity Prints and Dark Pool Levels to January 2, 2025), and one key at $149.99 a month or $1,499.99 a year covers all 30 REST endpoints, options flow included.

Checked November 10, 2026. The SPY responses below were requested that day, for the November 9 session and for the 10 sessions from October 27 to November 9, 2026. Times are Eastern (ET).

Key takeaways

  • A whole day in one request. Dark Flow returned $15.55 billion of SPY off-exchange notional for November 9, 2026, across 288,692 prints, in 15-minute buckets.

  • The largest prints. Sorted by notional, Equity Prints returned that day’s largest SPY dark pool print: 1,000,000 shares at $752.67 at 4:18:40 PM.

  • Levels over a date range you pick. From October 27 to November 9, the largest SPY level was $766.43, with $10.09 billion across 850 prints.

  • The session runs past the close. On November 9, $4.42 billion of SPY’s off-exchange notional, 28.4%, traded after the 4:00 PM close.


What is dark pool data?

A dark pool is a private trading venue where orders are not shown to the public before they trade: nobody outside sees the size or the price until the trade is done. They are often used to trade big blocks of stock without showing the whole size ahead of time.

The trades themselves are not secret. Each one is reported after it executes and shows up as a print: a ticker, a price, a share count and a time. Dark pool data is those prints, one at a time or added up. The Quant Data API docs pair the two terms, “off-exchange (dark pool)”, and so does this page. More background: What are Dark Pool prints?


Which endpoints return dark pool data?

The Quant Data API has three equities endpoints for dark pool data, each a POST to https://api.quantdata.us with a JSON body.

Endpoint

What it returns (docs wording)

Main inputs

Use it for

Equity Prints, /v1/equities/tool/equity-prints

"Trade-by-trade tape across lit and dark venues": one row per print, with printType DARK_POOL or LIT_POOL

ticker, sessionDate or timeRange, equityPrintTypes, size and notional ranges, sort, includes

A day’s largest prints, or every dark print above a size

Dark Flow, /v1/equities/tool/dark-flow

"Off-exchange notional and trade count over time": notionalValue, size, tradeCount and stockPrice per time bucket

ticker, sessionDate or timeRange, aggregationPeriod

Off-exchange activity through a session or across days

Dark Pool Levels, /v1/equities/tool/dark-pool-levels

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”

ticker, sessionDateRange (startDate required)

Where off-exchange dollars traded, by price, over days or weeks


A real example: SPY dark pool data through November 9, 2026

Dark Flow: off-exchange notional through the session

Send this body to https://api.quantdata.us/v1/equities/tool/dark-flow with your key as a Bearer token in the Authorization header:

{
"sessionDate": "2026-11-09",
"aggregationPeriod": "15m",
"filter": {"ticker": "SPY"}
}

The response held 64 buckets, one every 15 minutes from 4:00 AM to 7:45 PM, each keyed by its start time in epoch milliseconds. They add up to $15,545,635,380 in off-exchange notional, 20,719,777 shares and 288,692 prints. The regular session, 9:30 AM to 4:00 PM, carried $10.97 billion of it, or 70.5%.

Bar chart of SPY off-exchange notional in 15-minute buckets on November 9, 2026, with SPY's price above it, from the Quant Data Dark Flow endpoint

SPY off-exchange notional in 15-minute buckets on November 9, 2026 (Dark Flow). Most of the dollars traded between 9:30 AM and 4:00 PM, yet the tallest bar is the 4:00 PM bucket, just after the close. Data: Quant Data API, requested November 10, 2026.

The largest bucket by notional started at 4:00 PM, after the close: $2.77 billion in 508 prints, against $1.76 billion in 23,369 prints in the 15 minutes before it. That is about $5.5 million a print, against about $75,000. Here is that bucket as the API returned it:

"1794258000000": {
"notionalValue": 2773383017.69,
"size": 3684818,
"stockPrice": 753.01,
"tradeCount": 508
}

Dark Pool Levels: SPY from October 27 to November 9, 2026

POST this body to /v1/equities/tool/dark-pool-levels with the same header:

{
"sessionDateRange": {"startDate": "2026-10-27", "endDate": "2026-11-09"},
"filter": {"ticker": "SPY"}
}

One response, with no paging, returned 4,788 price levels holding $168.64 billion in off-exchange notional over the 10 sessions. The five largest:

SPY dark pool levels, October 27 to November 9, 2026 (five largest by notional)

Price

Notional

Shares

Prints

$766.43

$10.09 billion

13,162,402

850

$769.55

$6.86 billion

8,908,982

1,756

$755.62

$5.58 billion

7,380,424

1,193

$754.51

$5.35 billion

7,092,416

1,550

$733.00

$3.33 billion

4,542,819

507

Those five held 18.5% of the range’s notional. The response also carries latestStockPrice, the latest available price for the ticker at request time: $753.02.

Horizontal bar chart of the 10 largest SPY dark pool levels by notional from October 27 to November 9, 2026, from the Quant Data Dark Pool Levels endpoint

The 10 largest SPY dark pool levels from October 27 to November 9, 2026 (Dark Pool Levels), ordered by price rather than by size, with the response’s latestStockPrice drawn as a dashed line. Data: Quant Data API, requested November 10, 2026.

Equity Prints: the two largest SPY dark pool prints

POST this body to /v1/equities/tool/equity-prints with the same header:

{
"sessionDate": "2026-11-09",
"size": 2,
"sort": {"field": "NOTIONAL_VALUE", "direction": "DESCENDING"},
"filter": {"ticker": "SPY", "equityPrintTypes": ["DARK_POOL"]},
"includes": ["TICKER", "PRICE", "SIZE", "NOTIONAL_VALUE", "PRINT_TYPE", "TRADE_TIME"]
}

Time (ET)

Price

Shares

Notional

printType

4:18:40 PM

$752.67

1,000,000

$752,670,000

DARK_POOL

4:13:44 PM

$752.66

668,000

$502,776,880

DARK_POOL

Both printed after the 4:00 PM close, and they line up with the chart: the 1,000,000-share print is most of the 4:15 PM bucket’s $767.1 million. The includes list trims each row to six fields; leave it out to get every field.


How do I get dark pool levels in Python?

Get a key (steps in the Quant Data API overview) and set it as QD_API_KEY: export QD_API_KEY="<your key>" on macOS or Linux, $env:QD_API_KEY = "<your key>" in Windows PowerShell. This script (pip install requests) asks for the same range as the table above and prints the five largest levels:

import os

import requests

API_KEY = os.environ["QD_API_KEY"]

resp = requests.post(
"https://api.quantdata.us/v1/equities/tool/dark-pool-levels",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"sessionDateRange": {"startDate": "2026-10-27", "endDate": "2026-11-09"},
"filter": {"ticker": "SPY"},
},
timeout=60,
)
if not resp.ok:
raise SystemExit(f"{resp.status_code}: {resp.text}")
levels = resp.json()["data"] # price level -> notionalValue, size, tradeCount

print(len(levels), "price levels")
top = sorted(levels.items(), key=lambda kv: kv[1]["notionalValue"], reverse=True)
for price, cell in top[:5]:
print(f"${float(price):,.2f} ${cell['notionalValue']:,.0f} "
f"{cell['size']:,} shares {cell['tradeCount']:,} prints")

Real output, requested November 10, 2026:

4788 price levels
$766.43 $10,088,059,765 13,162,402 shares 850 prints
$769.55 $6,855,907,098 8,908,982 shares 1,756 prints
$755.62 $5,576,795,983 7,380,424 shares 1,193 prints
$754.51 $5,351,298,796 7,092,416 shares 1,550 prints
$733.00 $3,329,886,327 4,542,819 shares 507 prints

For Dark Flow or Equity Prints, change the path and the body; the key, the header and the error check stay the same.


How far back does the data go, and what are the limits?

  • History. Checked November 10, 2026: Equity Prints and Dark Pool Levels returned SPY data for January 2, 2025, and Dark Flow returned SPY data for November 10, 2025, one year back.

  • Empty is not always an error. For a date with nothing to return, Dark Flow answered HTTP 200 with an empty data object, so check for that as well as the status code. Dark Pool Levels instead answers HTTP 422 (data-unavailable) when the ticker has no stock price over the range (Errors).

  • Paging. Equity Prints returns 50 rows a page unless you set size, up to 100; pass each nextSearchAfter back as searchAfter (Pagination). Dark Flow and Dark Pool Levels returned their whole window in one response above.

  • Rate limit. 240 requests a minute plus a burst cap of 20 a second, per user, shared by every endpoint and by MCP tool calls. Over the limit you get HTTP 429 with a Retry-After header (Rate Limiting).


Using one key for options flow and dark pool data

One Quant Data API key and one rate limit cover the dark pool endpoints and the options endpoints: consolidated and unconsolidated options flow (Options Flow API), gamma exposure (Gamma Exposure (GEX) API), open interest and implied volatility. A script can pull SPY’s dark pool prints and its options flow for the same session with two requests and one key. The Quant Data MCP server at https://api.quantdata.us/mcp carries 31 tools, the three dark pool endpoints among them, so an AI client connected with your key can call them when you ask in plain English (MCP Server docs).


Why use Quant Data for dark pool data?

The Quant Data API serves exchange-licensed data, the same data behind the Quant Data dashboards, from a company with six years delivering licensed options data and 20,000+ members in our community.

  • Three ways to read off-exchange activity. Print by print with Equity Prints, by time with Dark Flow and by price with Dark Pool Levels, all on one key.

  • Checkable before you buy. Every endpoint’s fields and an example request are in the public API docs, and every response on this page is a real one, with its date.


What does the Quant Data API plan include?

One plan covers every endpoint, dark pool and options alike:

Quant Data API plan

Price

$149.99 a month or $1,499.99 a year

Endpoints and tools

30 REST endpoints across options, equities and news; 31 MCP tools

Requests

240 a minute plus 20 a second, per user, shared by REST and MCP; no monthly quota

History

Equity Prints and Dark Pool Levels from January 2, 2025; Dark Flow at least one year (checked November 10, 2026)

Who can use it

Personal use only. Not for external redistribution.

Prices as of November 10, 2026; current plans are on quantdata.us/api.


FAQ

Is there a dark pool data API?

Yes. The Quant Data API has three dark pool endpoints for US stocks and ETFs: Equity Prints (one row per print), Dark Flow (off-exchange notional by time bucket) and Dark Pool Levels (off-exchange prints added up by price over a date range).

What is a dark pool print?

A dark pool print is the public record of one trade that executed in a dark pool or elsewhere off an exchange: the ticker, price, share count and time, reported after the trade. In the Quant Data API, each one is an Equity Prints row with printType DARK_POOL.

What is the difference between Dark Flow and Dark Pool Levels?

Dark Flow adds up off-exchange prints by time, bucket by bucket. Dark Pool Levels adds them up by price over a date range. Use Dark Flow to see when the off-exchange dollars traded and Dark Pool Levels to see at what prices. For the dashboard tool of the same name, see What are Dark Pool Levels?

How far back does Quant Data’s dark pool data go?

Checked November 10, 2026: back to January 2, 2025 for Equity Prints and Dark Pool Levels, and at least one year, to November 10, 2025, for Dark Flow.

Can I get dark pool data and options flow with the same API key?

Yes. One Quant Data API key covers all 30 REST endpoints, including Equity Prints, Dark Flow, Dark Pool Levels and both options flow endpoints, under one rate limit of 240 requests a minute. For the flow side, see Options Flow API: Consolidated and Unconsolidated Flow Data.

Can I use the dark pool data with Claude or other AI tools?

Yes. The three endpoints are tools on the Quant Data MCP server at https://api.quantdata.us/mcp under the names qd_get_equity_prints, qd_get_dark_flow and qd_get_dark_pool_levels. Connect an MCP client with your API key; setup for Claude Code and other clients is in the MCP Server docs.

How much does the dark pool data API cost?

The Quant Data API costs $149.99 a month or $1,499.99 a year, for every endpoint over REST and MCP.

Is Quant Data’s dark pool data licensed?

Yes. The Quant Data API serves exchange-licensed data, the same data behind the Quant Data dashboards. The plan is for personal use and not for external redistribution.


I have not signed up for the Quant Data API. How do I?

If you want dark pool data in your own code or AI client, click here to see the API plan and get your API key. Click on Learn More if you would like to learn more about what we offer.


Would you like further assistance?

If you have any questions or need further assistance, please don’t hesitate to reach out to the Quant Data team at support@quantdata.us or via our live chat located on the bottom right-hand corner of your screen. We are available on our live chat between 9:30 AM and 5:00 PM (eastern time), Monday through Friday.

Did this answer your question?