Skip to content

Futures · Order flow

Futures session profile

Volume profile of the whole current trading session (POC, VAH, VAL).
On this page

The full Globex session (18:00 Eastern Time the evening before the trading date to 17:00) built from the canonical record of prints: volume by price row, the point of control and the value area (70 % of the volume). It describes the current trading session only; date, when given, must be that session's trading date or the request answers 422 data_unavailable. While the profile is being rebuilt after a restart the route answers 503 data_pending with Retry-After. Rows are grouped automatically when the session spans more than 10,000 price rows (row_ticks in the response).

Example request

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

4 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.
datequeryoptionalstringdateTrading date (YYYY-MM-DD); must be the current session's trading date.
row_ticksqueryoptionalintegermin 1max 1000Group prices into rows of this many ticks; omit for automatic grouping.

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

  • dataobjectrequiredThe volume profile of a trading session.23 fields inside
    • contractstringrequiredDated contract.
    • end_timeintegerunix-msrequiredEnd of the session. Unix epoch milliseconds (UTC).
    • levelsarray<object>requiredVolume by price, lowest price first.10 fields inside
      • buy_volumeintegerrequiredAggressive buy contracts.
      • deltaintegerrequiredBuy minus sell contracts.
      • in_value_areabooleanrequiredThe row is inside the value area.
      • is_pocbooleanrequiredThe row is the point of control.
      • pricenumberrequiredPrice (lowest price of the row when grouped).
      • price_ticksstringrequiredPrice as an integer count of ticks, as a string.
      • sell_volumeintegerrequiredAggressive sell contracts.
      • total_volumeintegerrequiredAll contracts at the row.
      • trade_countintegerrequiredPrints at the row.
      • unknown_volumeintegerrequiredContracts whose side is unknown.
    • pocnumber | nullrequiredPoint of control: the price with the most volume (the lowest on a tie).
    • row_ticksintegerrequiredTicks per price row.
    • start_timeintegerunix-msrequiredStart of the session. Unix epoch milliseconds (UTC).
    • tick_sizenumberrequiredMinimum price increment.
    • total_volumeintegerrequiredContracts in the profile.
    • trading_datestringdaterequiredTrading date of the session.
    • value_area_highnumber | nullrequiredUpper edge of the value area.
    • value_area_lownumber | nullrequiredLower edge of the value area.
    • value_area_pctnumberrequiredShare of the volume the value area is built to contain, in percent.
    • value_area_volumeintegerrequiredContracts inside the value area.
  • metaobjectrequiredMeta object

Example response

{
  "data": {
    "contract": "ESZ6",
    "end_time": 1792184400000,
    "levels": [
      {
        "buy_volume": 18120,
        "delta": -920,
        "in_value_area": true,
        "is_poc": true,
        "price": 6021.5,
        "price_ticks": "24086",
        "sell_volume": 19040,
        "total_volume": 37160,
        "trade_count": 9010,
        "unknown_volume": 0
      }
    ],
    "poc": 6021.5,
    "row_ticks": 1,
    "start_time": 1792101600000,
    "tick_size": 0.25,
    "total_volume": 1281930,
    "trading_date": "2026-10-16",
    "value_area_high": 6027,
    "value_area_low": 6014.25,
    "value_area_pct": 70,
    "value_area_volume": 897400
  },
  "meta": {
    "as_of": 1760659200123,
    "coverage": {
      "complete": true
    },
    "delay_ms": 0,
    "delayed": false,
    "request_id": "0199f0c2-5a1e-7c3b-9d4e-2b6f8a1c3d5e",
    "source": "cme"
  }
}

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