Skip to content

Futures · Order flow

Futures footprint

Footprint bars: volume by price inside each bar, with imbalances.
GET/v1/futures/footprintfuturesFootprint
On this page

Bars of a trading session built from prints, each with its price ladder of buy, sell and unknown volume, delta, point of control and value area, and buy/sell and stacked imbalances. Bars close by time, print count, volume or range (bar_type, target). Reads the live capture: a window it no longer holds answers 422 data_unavailable, and a window that would exceed 2,000 bars or 10,000 price rows is refused with 413 range_too_large (narrow the window or use larger bars or rows). meta.coverage.complete is false because a provider's completeness is never claimed.

Example request

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

14 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.
sessionqueryoptionalstringrthglobexgthcurbcombineddefault rthTrading session to read. rth is 09:30 to 16:00 Eastern Time; globex the full 18:00 to 17:00 session; gth the overnight window (20:15 to 09:25); curb 16:15 to 17:00; combined gth plus rth. Futures trade through the night, so every session is available on every plan.
datequeryoptionalstringdateTrading date (YYYY-MM-DD) of the session; default the current or most recent one.
start_timequeryoptionalintegerunix-msmin 946684800000max 4102444800000Narrow the session to start at or after this time.
end_timequeryoptionalintegerunix-msmin 946684800000max 4102444800000Narrow the session to end at or before this time.
bar_typequeryoptionalstringtimetrade_countvolumerangedefault timeWhat closes a bar: time (target seconds), trade_count (target prints), volume (target contracts; a print is never split) or range (target ticks between the bar's high and low).
targetqueryoptionalintegermin 1max 86400Bar size: seconds for time bars, prints for trade_count, contracts for volume, ticks for range. Default 60 seconds, 500 prints, 1,000 contracts, 10 ticks.
row_ticksqueryoptionalintegerdefault 1min 1max 1000Group prices into rows of this many ticks.
imbalance_modequeryoptionalstringhorizontaldiagonaldefault horizontalHow imbalances compare volumes: horizontal (buy against sell at the same price) or diagonal (buy against the sell one row below).
imbalance_ratioqueryoptionalnumberdefault 3min 1max 1000Ratio at which one side counts as an imbalance.
imbalance_minimumqueryoptionalintegerdefault 10min 0max 1000000000Smallest volume that can be an imbalance.
stacked_lengthqueryoptionalintegerdefault 3min 2max 100Consecutive imbalanced rows that make a stacked imbalance.
value_area_pctqueryoptionalnumberdefault 70min 1max 100Share of the volume the value area contains, in percent.

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>required25 fields inside
    • cellsarray<object>requiredVolume by price, lowest price first.14 fields inside
      • buy_imbalancebooleanrequiredBuy volume dominates by the imbalance rule.
      • buy_volumeintegerrequiredContracts traded at the ask (aggressive buys).
      • deltaintegerrequiredBuy minus sell contracts.
      • in_value_areabooleanrequiredThe row is inside the bar's value area.
      • is_pocbooleanrequiredThe row is the bar's point of control.
      • pricenumberrequiredPrice (lowest price of the row when grouped).
      • price_ticksstringrequiredPrice as an integer count of ticks, as a string.
      • sell_imbalancebooleanrequiredSell volume dominates by the imbalance rule.
      • sell_volumeintegerrequiredContracts traded at the bid (aggressive sells).
      • stacked_buy_imbalancebooleanrequiredThe row is part of a stacked buy imbalance.
      • stacked_sell_imbalancebooleanrequiredThe row is part of a stacked sell imbalance.
      • total_volumeintegerrequiredAll contracts at the row.
      • trade_countintegerrequiredPrints at the row.
      • unknown_volumeintegerrequiredContracts whose side is unknown.
    • closedbooleanrequiredThe bar has closed.
    • contractstringrequiredDated contract.
    • deltaintegerrequiredBuy minus sell contracts in the bar.
    • end_timeintegerunix-msrequiredEnd of the bar. Unix epoch milliseconds (UTC).
    • pocnumber | nullrequiredPoint of control: the price with the most volume in the bar.
    • start_timeintegerunix-msrequiredStart of the bar. Unix epoch milliseconds (UTC).
    • trade_countintegerrequiredPrints in the bar.
    • value_area_highnumber | nullrequiredUpper edge of the bar's value area.
    • value_area_lownumber | nullrequiredLower edge of the bar's value area.
    • volumeintegerrequiredContracts traded in the bar.
  • metaobjectrequiredMeta object

Example response

{
  "data": [
    {
      "cells": [
        {
          "buy_imbalance": false,
          "buy_volume": 612,
          "delta": -92,
          "in_value_area": true,
          "is_poc": true,
          "price": 6021.5,
          "price_ticks": "24086",
          "sell_imbalance": false,
          "sell_volume": 704,
          "stacked_buy_imbalance": false,
          "stacked_sell_imbalance": false,
          "total_volume": 1316,
          "trade_count": 301,
          "unknown_volume": 0
        }
      ],
      "closed": true,
      "contract": "ESZ6",
      "delta": -212,
      "end_time": 1792159260000,
      "poc": 6021.5,
      "start_time": 1792159200000,
      "trade_count": 1305,
      "value_area_high": 6022,
      "value_area_low": 6021,
      "volume": 4821
    }
  ],
  "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.