---
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`

## Request

- Base URL: `https://flow-api.skylit.ai`
- URL: `https://flow-api.skylit.ai/v1/dark-pool/trades`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/skylit/apis/flowseeker-skylit-public-api/docs/v1/dark-pool/trades/get.ts> (a function with typed inputs; its response is checked against the schema)

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.dev/skylit/apis/flowseeker-skylit-public-api.md) - [All operations](https://skmtc.dev/skylit/apis/flowseeker-skylit-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/skylit/apis/flowseeker-skylit-public-api/revisions/3280190b1b24?raw)
