Futures · Bars, trades and book
Futures liquidity
/v1/futures/liquidityfuturesLiquidityA summary of the displayed book: best bid and ask, mid, spread in price and ticks, the size at the touch, the displayed size within ticks of the touch on each side, and imbalance = (bid size - ask size) / (bid size + ask size) over that depth, between -1 and 1. Totals cover every displayed level. The summary describes displayed anonymous size only; it does not infer hidden orders.
Example request
curl -sS --get "https://api.ordermap.si/v1/futures/liquidity" \
-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/liquidity?${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
3 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. |
ticksqueryoptional | integerdefault 10min 1max 200 | Depth around the touch, in ticks, for the within-depth sizes and the imbalance. |
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
dataobjectrequiredDisplayed liquidity of one contract.19 fields insideask_levelsintegerrequiredDisplayed ask levels.ask_size_totalintegerrequiredDisplayed ask size over every level.ask_size_touchinteger | nullrequiredDisplayed size at the best ask.ask_size_withinintegerrequiredDisplayed ask size within ticks of the best ask.best_asknumber | nullrequiredBest ask.best_bidnumber | nullrequiredBest bid.bid_levelsintegerrequiredDisplayed bid levels.bid_size_totalintegerrequiredDisplayed bid size over every level.bid_size_touchinteger | nullrequiredDisplayed size at the best bid.bid_size_withinintegerrequiredDisplayed bid size within ticks of the best bid.contractstringrequiredDated contract.imbalancenumber | nullrequired(bid size - ask size) / (bid size + ask size) within ticks, from -1 to 1.midnumber | nullrequiredMidpoint of the best bid and ask.spreadnumber | nullrequiredBest ask minus best bid.spread_ticksinteger | nullrequiredSpread in ticks.symbolstringrequiredProduct root.ticksintegerrequiredDepth used for the within-depth sizes, in ticks.timestampinteger | nullunix-msrequiredTime of the book. Unix epoch milliseconds (UTC).validbooleanrequiredThe book is synchronized.
metaobjectrequiredMeta object
Example response
{
"data": {
"ask_levels": 655,
"ask_size_total": 40377,
"ask_size_touch": 96,
"ask_size_within": 1984,
"best_ask": 6021.5,
"best_bid": 6021.25,
"bid_levels": 640,
"bid_size_total": 41820,
"bid_size_touch": 118,
"bid_size_within": 2210,
"contract": "ESZ6",
"imbalance": 0.0539,
"mid": 6021.375,
"spread": 0.25,
"spread_ticks": 1,
"symbol": "ES",
"ticks": 10,
"timestamp": 1792159200123,
"valid": true
},
"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.