Futures · Products and sessions
Futures contracts
/v1/futures/contractsfuturesContractsThe front month and the other dated contracts the platform knows for a root, with the contract month. For equity-index futures settlement_time is the final settlement instant: 09:30 Eastern Time on the third Friday of the contract month (the preceding business day when that is a configured holiday). The front month is resolved by the data feed; it is the contract every route returns when you give a root without a contract. Only contracts the platform captures carry live and retained data.
Example request
curl -sS --get "https://api.ordermap.si/v1/futures/contracts" \
-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/contracts?${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
1 parameter, 1 required.
| Parameter | Type and limits | Description |
|---|---|---|
symbolqueryrequired | stringat most 3 characterspattern ^[A-Za-z0-9]{1,3}$ | Futures product root, for example ES. |
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>required7 fields insidecontractstringrequiredDated contract, for example ESZ6.contract_monthstringrequiredContract month, YYYY-MM.exchangestringrequiredListing exchange.cmecbotnymexcomexis_frontbooleanrequiredThe contract is the current front month.month_codestringrequiredFutures month code letter.settlement_timeinteger | nullunix-msrequiredFinal settlement (equity-index futures only). Unix epoch milliseconds (UTC).symbolstringrequiredProduct root.
metaobjectrequiredMeta object
Example response
{
"data": [
{
"contract": "ESZ6",
"contract_month": "2026-12",
"exchange": "cme",
"is_front": true,
"month_code": "Z",
"settlement_time": 1797604200000,
"symbol": "ES"
}
],
"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.