Skip to content

Stocks · Prices, tape and indicators

Stocks trades

Consolidated trades of a stock, oldest first.
On this page

Every consolidated trade of one stock in a window, ascending by exchange time with the sequence number as the tie-break, resumed with cursor_id. Timestamps are milliseconds with the exact nanosecond order key in timestamp_ns. Prints that were corrected or cancelled are excluded unless include_corrections=true. 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.delayed is true when the data is 15 minutes delayed; meta.source is sip.

Example request

curl -sS --get "https://api.ordermap.si/v1/stocks/trades" \
  -H "Authorization: Bearer $ORDERMAP_API_KEY" \
  --data-urlencode symbol=AAPL

Set ORDERMAP_API_KEY to your key. Replace the dates with a recent trading date.

Parameters

14 parameters, 1 required.

ParameterType and limitsDescription
symbolqueryrequiredstringat most 11 characterspattern ^[A-Za-z]{1,6}(\.[A-Za-z0-9]{1,4})?$Ticker symbol, for example AAPL.
start_timequeryoptionalintegerunix-msmin 946684800000max 4102444800000Inclusive start of the window. Defaults to the start of the current exchange date.
end_timequeryoptionalintegerunix-msmin 946684800000max 4102444800000Exclusive end of the window. Defaults to the end of the exchange date of start_time. At most 31 days after start_time.
datequeryoptionalstringdateA whole exchange date (YYYY-MM-DD, 00:00 to 24:00 Eastern, extended hours included) instead of start_time and end_time.
exchangequeryoptionalarray<integer>comma-separated in one parameter1 to 32 itemsOnly trades reported by these exchange ids (comma-separated, at most 32); see /v1/stocks/exchanges.
off_exchangequeryoptionalbooleantrue keeps only off-exchange (dark pool) prints, false only lit venues.
min_sizequeryoptionalnumbermin 0max 1000000000000Only trades of at least this many shares.
min_notionalqueryoptionalnumbermin 0max 1000000000000000Only trades of at least this dollar value (price times size).
conditionsqueryoptionalarray<integer>comma-separated in one parameter1 to 32 itemsOnly trades carrying any of these condition codes (comma-separated, at most 32).
exclude_conditionsqueryoptionalarray<integer>comma-separated in one parameter1 to 32 itemsDrop trades carrying any of these condition codes (comma-separated, at most 32).
trfqueryoptionalarray<integer>comma-separated in one parameter1 to 16 itemsOnly prints received by these trade reporting facility ids, for example 202,203 (comma-separated, at most 16).
include_correctionsqueryoptionalbooleanInclude prints that were later corrected or cancelled, flagged in correction (default false).
limitqueryoptionalintegerdefault 1000min 1max 10000Maximum rows to return.
cursor_idqueryoptionalstringat most 1024 charactersOpaque cursor returned as pagination.next_cursor_id; resumes the same query on the next page.

Response

StatusMeaningBody
200Successful response.Schema below
400Invalid, unknown or repeated parameters, or an invalid cursor.Error object
401Missing or invalid API key.Error object
403The plan, dataset release or account state does not allow this request.Error object
422The request is valid but no data exists for it.Error object
429Rate limit, burst limit or cooldown; wait Retry-After seconds.Retry-AfterError object
500Internal error.Error object
503Data temporarily unavailable; retry after Retry-After seconds.Retry-AfterError object
504The 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 inside
    • conditionsarray<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 object
  • paginationobjectrequiredPagination 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.