Skip to content

Futures · Bars, trades and book

Futures bars

OHLCV bars of a futures contract, one minute to one day.
On this page

Bars from one-minute history coarsened to 1m, 2m, 3m, 5m, 10m, 15m, 30m, 1h, or built per trading session for 1d (a daily bar covers the Globex session that starts at 18:00 Eastern Time the evening before its trading_date; a request returns the sessions that overlap the range, at most 22 per page). start_time is inclusive and end_time exclusive on bar starts; end_time defaults to now and start_time to 24 hours before it (30 days for 1d, or your plan's history depth when shorter). Bars are available for the most recent 90 days. A bar is complete once all of its minutes have been received; the last bar of a live range is still forming. History for a range is loaded on first use: the route answers 503 data_pending with Retry-After and succeeds when you retry. Page with cursor_id; the contract resolved on the first page is kept for the following pages.

Example request

curl -sS --get "https://api.ordermap.si/v1/futures/bars" \
  -H "Authorization: Bearer $ORDERMAP_API_KEY" \
  --data-urlencode symbol=ES

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

Parameters

7 parameters, none required.

ParameterType and limitsDescription
symbolqueryoptionalstringat most 3 characterspattern ^[A-Za-z0-9]{1,3}$Futures product root, for example ES, NQ, CL or GC. Without contract the current front month is used and returned in the response.
contractqueryoptionalstringat most 6 characterspattern ^[A-Za-z0-9]{1,3}[FGHJKMNQUVXZfghjkmnquvxz][0-9]{1,2}$Exact dated contract: root, month code and year, for example ESZ6 (December 2026). Two-digit years are accepted and returned in the one-digit form (ESZ26 is ESZ6). Only the front month and the contracts listed by /v1/futures/contracts are served.
intervalqueryoptionalstring1m2m3m5m10m15m30m1h1ddefault 1mBar size.
start_timequeryoptionalintegerunix-msmin 946684800000max 4102444800000First bar start to return (inclusive).
end_timequeryoptionalintegerunix-msmin 946684800000max 4102444800000End of the range (exclusive).
limitqueryoptionalintegerdefault 1000min 1max 5000Maximum 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>required9 fields inside
    • closenumberrequiredClose.
    • completebooleanrequiredEvery minute of the bar has been received.
    • contractstringrequiredDated contract.
    • highnumberrequiredHigh.
    • lownumberrequiredLow.
    • opennumberrequiredOpen.
    • start_timeintegerunix-msrequiredStart of the bar. Unix epoch milliseconds (UTC).
    • trading_datestring | nulldaterequiredTrading date of a daily bar; null for intraday bars.
    • volumeinteger | nullrequiredContracts traded.
  • metaobjectrequiredMeta object
  • paginationobjectrequiredPagination object

Example response

{
  "data": [
    {
      "close": 6021.5,
      "complete": true,
      "contract": "ESZ6",
      "high": 6022,
      "low": 6019.75,
      "open": 6020.25,
      "start_time": 1792159200000,
      "trading_date": null,
      "volume": 4821
    }
  ],
  "meta": {
    "as_of": 1760659200123,
    "coverage": {
      "complete": true
    },
    "delay_ms": 0,
    "delayed": false,
    "request_id": "0199f0c2-5a1e-7c3b-9d4e-2b6f8a1c3d5e",
    "source": "cme"
  },
  "pagination": {
    "count": 1,
    "has_more": false,
    "limit": 1000,
    "next_cursor_id": null,
    "next_url": null
  }
}

Values are illustrative. Missing values are null, never 0.