Stocks · Prices, tape and indicators
Stocks quotes
Consolidated NBBO quotes of a stock, oldest first.
GET
/v1/stocks/quotesstocksQuotesEvery change of the national best bid and offer in a window, ascending by exchange time with the sequence number as the tie-break, resumed with cursor_id. A side with no quote is null. Quotes exist for exchanges only; off-exchange facilities do not quote. meta.delayed is true when the data is 15 minutes delayed.
Example request
curl -sS --get "https://api.ordermap.si/v1/stocks/quotes" \
-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/quotes?${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, 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. |
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>required15 fields insideask_exchangeinteger | nullrequiredExchange id quoting the ask.ask_pricenumber | nullrequiredBest ask.ask_sizenumber | nullrequiredAsk size.bid_exchangeinteger | nullrequiredExchange id quoting the bid.bid_pricenumber | nullrequiredBest bid.bid_sizenumber | nullrequiredBid size.conditionsarray<integer>requiredQuote condition codes; see /v1/stocks/conditions.indicatorsarray<integer>requiredIndicator codes.participant_timestampinteger | nullunix-msrequiredTime the exchange stamped the quote. Unix epoch milliseconds (UTC).sequence_numberintegerrequiredConsolidated sequence number.symbolstringrequiredTicker symbol.tapeinteger | nullrequiredConsolidated tape.timestampintegerunix-msrequiredTime the consolidated feed stamped the quote. Unix epoch milliseconds (UTC).timestamp_nsstringrequiredThe same time in nanoseconds, as a string.trf_timestampinteger | nullunix-msrequiredFacility time. Unix epoch milliseconds (UTC).
metaobjectrequiredMeta objectpaginationobjectrequiredPagination object
Example response
{
"data": [
{
"ask_exchange": 11,
"ask_price": 231.43,
"ask_size": 200,
"bid_exchange": 12,
"bid_price": 231.41,
"bid_size": 300,
"conditions": [
1
],
"indicators": [
602
],
"participant_timestamp": 1760659200120,
"sequence_number": 98211,
"symbol": "AAPL",
"tape": 3,
"timestamp": 1760659200123,
"timestamp_ns": "1760659200123456789",
"trf_timestamp": null
}
],
"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.