Stocks · Dark pool, large prints and captured events
Stocks dark pool trades
/v1/stocks/dark-pool/tradesstocksDarkPoolTradesThe prints of one stock reported through a FINRA trade reporting facility (exchange id 4): dark pools, alternative trading systems and internalizers. The tape does not say which venue executed a trade; trf_id says which facility received the report (201 FINRA/NYSE TRF, 202 FINRA/Nasdaq TRF Carteret, 203 FINRA/Nasdaq TRF Chicago). Off-exchange reports can arrive up to ten seconds late. Same row shape, paging and filters as /v1/stocks/trades. Filters run while the platform scans the tape, within a per-request budget of up to four pages of 50,000 trades: when the budget is spent before limit matches are found the page is short, meta.coverage.scan_complete is false and pagination still carries a cursor_id to continue the scan; meta.coverage.scanned_through says how far the scan reached. A page is complete when scan_complete is true. meta.source is finra_trf.
Example request
curl -sS --get "https://api.ordermap.si/v1/stocks/dark-pool/trades" \
-H "Authorization: Bearer $ORDERMAP_API_KEY" \
--data-urlencode symbol=AAPLconst params = new URLSearchParams({
symbol: "AAPL",
});
const res = await fetch(`https://api.ordermap.si/v1/stocks/dark-pool/trades?${params}`, {
headers: { Authorization: `Bearer ${process.env.ORDERMAP_API_KEY}` },
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const { data, meta } = await res.json();
console.log(data, meta.coverage);
// Paginated: repeat with cursor_id set to pagination.next_cursor_id until it is null.Set ORDERMAP_API_KEY to your key. Replace the dates with a recent trading date.
Parameters
12 parameters, 1 required.
| Parameter | Type and limits | Description |
|---|---|---|
symbolqueryrequired | stringat most 11 characterspattern ^[A-Za-z]{1,6}(\.[A-Za-z0-9]{1,4})?$ | Ticker symbol, for example AAPL. |
start_queryoptional | integerunix-msmin 946684800000max 4102444800000 | Inclusive start of the window. Defaults to the start of the current exchange date. |
end_queryoptional | integerunix-msmin 946684800000max 4102444800000 | Exclusive end of the window. Defaults to the end of the exchange date of start_time. At most 31 days after start_time. |
datequeryoptional | stringdate | A whole exchange date (YYYY-MM-DD, 00:00 to 24:00 Eastern, extended hours included) instead of start_time and end_time. |
min_queryoptional | numbermin 0max 1000000000000 | Only trades of at least this many shares. |
min_queryoptional | numbermin 0max 1000000000000000 | Only trades of at least this dollar value (price times size). |
conditionsqueryoptional | array<integer>comma-separated in one parameter1 to 32 items | Only trades carrying any of these condition codes (comma-separated, at most 32). |
exclude_queryoptional | array<integer>comma-separated in one parameter1 to 32 items | Drop trades carrying any of these condition codes (comma-separated, at most 32). |
trfqueryoptional | array<integer>comma-separated in one parameter1 to 16 items | Only prints received by these trade reporting facility ids, for example 202,203 (comma-separated, at most 16). |
include_queryoptional | boolean | Include prints that were later corrected or cancelled, flagged in correction (default false). |
limitqueryoptional | integerdefault 1000min 1max 10000 | Maximum rows to return. |
cursor_queryoptional | stringat most 1024 characters | Opaque cursor returned as pagination.next_cursor_id; resumes the same query on the next page. |
Response
| Status | Meaning | Body |
|---|---|---|
200 | Successful response. | Schema below |
400 | Invalid, unknown or repeated parameters, or an invalid cursor. | Error object |
401 | Missing or invalid API key. | Error object |
403 | The plan, dataset release or account state does not allow this request. | Error object |
422 | The request is valid but no data exists for it. | Error object |
429 | Rate limit, burst limit or cooldown; wait Retry-After seconds.Retry-After | Error object |
500 | Internal error. | Error object |
503 | Data temporarily unavailable; retry after Retry-After seconds.Retry-After | Error object |
504 | The request timed out. | Error object |
Authenticated responses carry the X-RateLimit-* headers (see rate limits); 429 and 503 add Retry-After.
200 response body
dataarray<object>required16 fields insideconditionsarray<integer>requiredTrade condition codes; see /v1/stocks/conditions.correctioninteger | nullrequiredCorrection indicator (1, 8, 10 or 12) when the print was corrected or cancelled; null for a regular trade.exchangeintegerrequiredNumeric id of the reporting venue; see /v1/stocks/exchanges. 4 is a trade reporting facility (off-exchange).notionalnumberrequiredPrice times size, in dollars.off_exchangebooleanrequiredThe trade was reported through a FINRA trade reporting facility (exchange id 4), the way dark pool and internalized trades are.participant_timestampinteger | nullunix-msrequiredTime the exchange or facility stamped the trade. Unix epoch milliseconds (UTC).pricenumberrequiredTrade price.sequence_numberintegerrequiredConsolidated sequence number; increases within a trading day and breaks ties between trades in the same millisecond.sizenumberrequiredTrade size in shares, fractional shares included.symbolstringrequiredTicker symbol.tapeinteger | nullrequiredConsolidated tape: 1 NYSE listed, 2 NYSE American and Arca listed, 3 Nasdaq listed.timestampintegerunix-msrequiredTime the consolidated feed stamped the trade. Unix epoch milliseconds (UTC).timestamp_nsstringrequiredThe same time in nanoseconds, as a string because it exceeds 2^53; orders trades exactly.trade_idstringrequiredTrade id, unique per symbol, exchange and facility.trf_idinteger | nullrequiredTrade reporting facility that received an off-exchange report: 201 FINRA/NYSE TRF, 202 FINRA/Nasdaq TRF Carteret, 203 FINRA/Nasdaq TRF Chicago.trf_timestampinteger | nullunix-msrequiredTime the facility received the report. Unix epoch milliseconds (UTC).
metaobjectrequiredMeta objectpaginationobjectrequiredPagination object
Example response
{
"data": [
{
"conditions": [
12
],
"correction": null,
"exchange": 4,
"notional": 2892750,
"off_exchange": true,
"participant_timestamp": 1760659200120,
"price": 231.42,
"sequence_number": 1563,
"size": 12500,
"symbol": "AAPL",
"tape": 3,
"timestamp": 1760659200123,
"timestamp_ns": "1760659200123456789",
"trade_id": "52983525029461",
"trf_id": 202,
"trf_timestamp": 1760659200121
}
],
"meta": {
"as_of": 1760659200123,
"coverage": {
"complete": true
},
"delay_ms": 0,
"delayed": false,
"request_id": "0199f0c2-5a1e-7c3b-9d4e-2b6f8a1c3d5e",
"source": "sip"
},
"pagination": {
"count": 1,
"has_more": false,
"limit": 1000,
"next_cursor_id": null,
"next_url": null
}
}Values are illustrative. Missing values are null, never 0.