---
title: "Paginated off-exchange (TRF) prints"
method: GET
path: "/v1/dark-pool/trades"
tags: ["Dark Pool"]
---

# Paginated off-exchange (TRF) prints

`GET /v1/dark-pool/trades`

Server-side filtered dark-pool prints from the off-exchange tape
(FINRA TRF, publisher FINN/FINC). Defaults to **today (ET)** with a
**$1,000,000** minimum notional (the blocks-by-default rule); pass
`min_notional=0` for the full firehose. The trade-date span is capped
at **31 days** per request — page with `limit`/`offset` or narrow the
range for more. Prints carry **no side, BBO, or greeks**. Pagination
state (`limit`, `offset`, `count`, `hasMore`) is returned in `meta`.

## Query parameters

- `tickers` string
- `date` string, date
- `date_start` string, date
- `date_end` string, date
- `time_start` string
- `time_end` string
- `min_notional` number, double
- `max_notional` number, double
- `min_size` integer
- `max_size` integer
- `min_price` number, double
- `max_price` number, double
- `sectors` string
- `industries` string
- `venue` 'FINN' | 'FINC'
- `limit` integer
- `offset` integer
- `order` 'asc' | 'desc'

## Response `200`

Paginated dark-pool prints for the requested filters.

- DarkPoolTradesSuccess
  - `data` DarkPoolPrint[], required
    - `timestamp` string, date-time, required — Trade time, ISO-8601 UTC (millisecond precision).
    - `ticker` string, required — Underlying (dotted equity symbol, e.g. `BRK.B`).
    - `price` number, double, required
    - `size` integer, required — Shares.
    - `notional` number, double, required — `price × size` (USD).
    - `venue` 'FINN' | 'FINC', required — FINRA TRF reporting venue.
    - `sector` string, required — GICS sector of the underlying.
    - `industry` string, required — GICS industry of the underlying.
  - `meta` DarkPoolTradesMeta, required
    - `timestamp` string, date-time, required — Server-side timestamp the response was generated at.
    - `requestId` string, required — Short opaque ID for log correlation.
    - `limit` integer, required — Page size applied (after clamping to 1..=5000).
    - `offset` integer, required — Row offset applied.
    - `count` integer, required — Number of prints returned in this page.
    - `hasMore` boolean, required — `true` when the page is full (`count == limit`), so more rows may exist. Offset-based heuristic, not an exact total.

## Other responses

- `400` — Request validation failed.
- `401` — Missing or invalid API key.
- `402` — The account's shared Skylit credit balance is lower than this route's cost. Top up to continue. Carries `X-Credits-Remaining: 0`.
- `403` — API key revoked/expired, monthly quota exceeded, or the account's API access is suspended (`account_suspended`).
- `429` — Per-minute rate limit exceeded.
- `503` — Underlying data source temporarily unavailable, or the credit balance could not be verified (`credit_check_failed`). Safe to retry.

---

[API](https://skmtc.net/skylit/apis/flowseeker-skylit-public-api.md) · [All operations](https://skmtc.net/skylit/apis/flowseeker-skylit-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skylit/flowseeker-skylit-public-api/revisions/3280190b1b24/schema)
