Skip to content

Futures · Order flow

Futures flow

Large and aggressive futures prints with notional value.
On this page

Retained prints of at least min_size contracts (default 50) whose aggressor side is known (buy or sell); ask for side=unknown to include prints without a determined side. Each row adds notional, the US dollar value of the print (price x size x point value). The window, retention floor and paging are those of /v1/futures/trades: at most 24 hours per request, the current and previous trading session only.

Example request

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

8 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).
min_sizequeryoptionalintegerdefault 50min 1max 1000000Smallest print to report, in contracts.
sidequeryoptionalarray<string>comma-separated in one parameterbuysellunknown1 to 3 itemsAggressor sides to report. Default: buy and sell.
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>required8 fields inside
    • contractstringrequiredDated contract.
    • idstringrequiredStable identifier of the print; unique within a contract.
    • notionalnumberrequiredUS dollar value of the print: price x size x point value.
    • pricenumberrequiredPrice.
    • price_ticksstringrequiredPrice as an integer count of ticks, as a string (it can exceed 2^53 for fine-tick products).
    • sidestringrequiredAggressor side; unknown when it could not be determined.buysellunknown
    • sizeintegerrequiredContracts.
    • timestampintegerunix-msrequiredTime of the print. Unix epoch milliseconds (UTC).
  • metaobjectrequiredMeta object
  • paginationobjectrequiredPagination object

Example response

{
  "data": [
    {
      "contract": "ESZ6",
      "id": "9f2c1d0e8a7b6c5d4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8c7d6e5f4a3b2c1d",
      "notional": 36129000,
      "price": 6021.5,
      "price_ticks": "24086",
      "side": "sell",
      "size": 120,
      "timestamp": 1792159200123
    }
  ],
  "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.