Futures · Order flow
Futures delta bars
Buy, sell and net volume per bar.
GET
/v1/futures/delta-barsfuturesDeltaBarsOne row per footprint bar with its buy, sell and unknown volume, delta (buy minus sell) and the running cumulative delta from the first returned bar. Derived from the same prints and limits as /v1/futures/footprint (live capture; at most 2,000 bars).
Example request
curl -sS --get "https://api.ordermap.si/v1/futures/delta-bars" \
-H "Authorization: Bearer $ORDERMAP_API_KEY" \
--data-urlencode symbol=ESconst params = new URLSearchParams({
symbol: "ES",
});
const res = await fetch(`https://api.ordermap.si/v1/futures/delta-bars?${params}`, {
headers: { Authorization: `Bearer ${process.env.ORDERMAP_API_KEY}` },
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const { data, meta } = await res.json();
console.log(data, meta.coverage);Set ORDERMAP_API_KEY to your key. Replace the dates with a recent trading date.
Parameters
8 parameters, none required.
| Parameter | Type and limits | Description |
|---|---|---|
symbolqueryoptional | stringat 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. |
contractqueryoptional | stringat 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. |
sessionqueryoptional | stringrthglobexgthcurbcombineddefault rth | Trading 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. |
datequeryoptional | stringdate | Trading date (YYYY-MM-DD) of the session; default the current or most recent one. |
start_queryoptional | integerunix-msmin 946684800000max 4102444800000 | Narrow the session to start at or after this time. |
end_queryoptional | integerunix-msmin 946684800000max 4102444800000 | Narrow the session to end at or before this time. |
bar_queryoptional | stringtimetrade_countvolumerangedefault time | What 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). |
targetqueryoptional | integermin 1max 86400 | Bar 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. |
Response
| Status | Meaning | Body |
|---|---|---|
200 | Successful response. | Schema below |
400 | Invalid, unknown or repeated parameters, or an invalid cursor. | Error object |
401 | Missing or invalid API key. | Error object |
403 | The plan, dataset release or account state does not allow this request. | Error object |
422 | The request is valid but no data exists for it. | Error object |
429 | Rate limit, burst limit or cooldown; wait Retry-After seconds.Retry-After | Error object |
500 | Internal error. | Error object |
503 | Data temporarily unavailable; retry after Retry-After seconds.Retry-After | Error object |
504 | The 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>required11 fields insidebuy_volumeintegerrequiredAggressive buy contracts.closedbooleanrequiredThe bar has closed.contractstringrequiredDated contract.cumulative_deltaintegerrequiredRunning total of delta from the first returned bar.deltaintegerrequiredBuy minus sell contracts.end_timeintegerunix-msrequiredEnd of the bar. Unix epoch milliseconds (UTC).sell_volumeintegerrequiredAggressive sell contracts.start_timeintegerunix-msrequiredStart of the bar. Unix epoch milliseconds (UTC).trade_countintegerrequiredPrints in the bar.unknown_volumeintegerrequiredContracts whose side is unknown.volumeintegerrequiredContracts traded in the bar.
metaobjectrequiredMeta object
Example response
{
"data": [
{
"buy_volume": 2305,
"closed": true,
"contract": "ESZ6",
"cumulative_delta": 1631,
"delta": -211,
"end_time": 1792159260000,
"sell_volume": 2516,
"start_time": 1792159200000,
"trade_count": 1305,
"unknown_volume": 0,
"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.