Stocks · Dark pool, large prints and captured events
Stocks LULD
/v1/stocks/luldstocksLuldEvery update of a stock's limit up-limit down price bands, with trading pauses and resumptions (indicators 17 and 18), newest first. Captured from the live stream from the moment it was enabled and kept for seven days: meta.coverage.captured_from is the oldest event available, and events from before it, or from while the stream was down, do not exist here.
Example request
curl -sS --get "https://api.ordermap.si/v1/stocks/luld" \
-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/luld?${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
6 parameters, none required.
| Parameter | Type and limits | Description |
|---|---|---|
symbolqueryoptional | stringat most 10 characterspattern ^[A-Za-z]{1,6}(\.[A-Za-z0-9]{1,4})?$ | Ticker symbol, for example JPM. Omit for every symbol. |
start_queryoptional | integerunix-msmin 946684800000max 4102444800000 | Start of the window, inclusive. Defaults to the start of the seven-day capture. |
end_queryoptional | integerunix-msmin 946684800000max 4102444800000 | End of the window, exclusive. Defaults to now. |
orderqueryoptional | stringascdescdefault desc | Newest first (desc, the default) or oldest first (asc) by event time. |
limitqueryoptional | integerdefault 1000min 1max 5000 | 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>required8 fields insideindicatorsarray<integer>requiredLULD indicator codes; 17 is a trading pause and 18 a reopening.lower_limit_pricenumber | nullrequiredLower price band.sequence_numberinteger | nullrequiredSequence number of the update.statestringrequiredband_update for a new band, halted for a trading pause, resumed after one.band_updatehaltedresumedsymbolstringrequiredTicker.tapeinteger | nullrequiredConsolidated tape.timestampintegerunix-msrequiredTime of the update. Unix epoch milliseconds (UTC).upper_limit_pricenumber | nullrequiredUpper price band.
metaobjectrequiredMeta objectpaginationobjectrequiredPagination object
Example response
{
"data": [
{
"indicators": [
15
],
"lower_limit_price": 219.85,
"sequence_number": 91,
"state": "band_update",
"symbol": "AAPL",
"tape": 3,
"timestamp": 1792161000123,
"upper_limit_price": 242.99
}
],
"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.