Skip to content

Futures · Bars, trades and book

Futures quotes

Retained best bid and ask samples of a futures contract.
On this page

The retained top of book in time order. timestamp is the time the quote was captured. One request reads at most 24 hours (default: the last hour) and history is retained for the current and the previous trading session only; a start_time before that is refused with 422 data_unavailable naming the floor. Invalid samples written when the feed disconnected are not returned. Page with cursor_id.

Example request

curl -sS --get "https://api.ordermap.si/v1/futures/quotes" \
  -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

6 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.
start_timequeryoptionalintegerunix-msmin 946684800000max 4102444800000Start of the window (inclusive).
end_timequeryoptionalintegerunix-msmin 946684800000max 4102444800000End of the window (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>required7 fields inside
    • ask_pricenumberrequiredBest ask.
    • ask_sizeintegerrequiredSize at the best ask.
    • bid_pricenumberrequiredBest bid.
    • bid_sizeintegerrequiredSize at the best bid.
    • contractstringrequiredDated contract.
    • idstringrequiredStable identifier of the sample; unique within a contract.
    • timestampintegerunix-msrequiredTime the quote was captured. Unix epoch milliseconds (UTC).
  • metaobjectrequiredMeta object
  • paginationobjectrequiredPagination object

Example response

{
  "data": [
    {
      "ask_price": 6021.5,
      "ask_size": 96,
      "bid_price": 6021.25,
      "bid_size": 118,
      "contract": "ESZ6",
      "id": "1792159200125000000",
      "timestamp": 1792159200125
    }
  ],
  "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.