Indices · Basis and implied price
Indices basis snapshot
/v1/indices/basis/snapshotindicesBasisSnapshotThe live comparison of each index with the front month of its futures: the index value, the futures price (the mid of the best bid and ask when a quote under 10 seconds old exists, otherwise the last print under a minute old), fair value, implied index level, basis, premium in points and basis points, and state (index_above_implied, index_below_implied or at_fair; at_fair means within 0.25 index points, configurable). The cash index must have printed within the last minute: outside the cash session a row has available false, a reason (index_not_live, futures_stale, futures_unavailable, futures_not_entitled, rate_unavailable) and null numbers. Calculation as in /v1/indices/basis. Needs the futures and indices dataset releases.
Example request
curl -sS --get "https://api.ordermap.si/v1/indices/basis/snapshot" \
-H "Authorization: Bearer $ORDERMAP_API_KEY" \
--data-urlencode symbols=SPX,NDXconst params = new URLSearchParams({
symbols: "SPX,NDX",
});
const res = await fetch(`https://api.ordermap.si/v1/indices/basis/snapshot?${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 |
|---|---|---|
symbolsqueryrequired | array<string>comma-separated in one parameter1 to 10 itemseach at most 128 characterspattern ^[A-Za-z][A-Za-z0-9]{0,9}$ | Indices with a futures pair, comma separated, for example SPX,NDX. |
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>required25 fields insideavailablebooleanrequiredThe comparison could be computed now.basisnumber | nullrequiredFutures minus index, in index points.contractstring | nullrequiredFutures contract used.days_to_settlementnumber | nullrequiredDays to final settlement.dividend_yieldnumber | nullrequiredContinuous annual dividend yield used.fair_basisnumber | nullrequiredFair value minus index, in index points.fair_valuenumber | nullrequiredTheoretical futures price: index x e^(r-q)T.futures_asknumber | nullrequiredBest ask, when a fresh quote exists.futures_bidnumber | nullrequiredBest bid, when a fresh quote exists.futures_lastnumber | nullrequiredLast print, when a fresh one exists.futures_pricenumber | nullrequiredFutures price used.futures_price_typestring | nullrequiredmid: midpoint of the best bid and ask; last: last print.midlastnullfutures_timestampinteger | nullunix-msrequiredTime of the futures price. Unix epoch milliseconds (UTC).implied_index_pricenumber | nullrequiredIndex level implied by the futures price.index_minus_impliednumber | nullrequiredIndex minus implied index, in index points.index_pricenumber | nullrequiredLatest index value.index_timestampinteger | nullunix-msrequiredTime of the index value. Unix epoch milliseconds (UTC).premiumnumber | nullrequiredFutures minus fair value, in index points.premium_bpsnumber | nullrequiredPremium in basis points of the index.reasonstring | nullrequiredWhy it could not, when available is false.index_not_livefutures_stalefutures_unavailablefutures_not_entitledrate_unavailableinvalid_pricesnullrisk_free_ratenumber | nullrequiredContinuously compounded annual risk-free rate used.settlement_timeinteger | nullunix-msrequiredFinal settlement of the contract. Unix epoch milliseconds (UTC).statestring | nullrequiredWhere the index stands against the implied index.index_above_impliedindex_below_impliedat_fairnullsymbolstringrequiredIndex symbol.timestampintegerunix-msrequiredTime of the evaluation. Unix epoch milliseconds (UTC).
metaobjectrequiredMeta object
Example response
{
"data": [
{
"available": true,
"basis": 38.26,
"contract": "ESZ6",
"days_to_settlement": 63.27,
"dividend_yield": 0.013,
"fair_basis": 29.28,
"fair_value": 6023.4,
"futures_ask": 6032.5,
"futures_bid": 6032.25,
"futures_last": 6032.5,
"futures_price": 6032.375,
"futures_price_type": "mid",
"futures_timestamp": 1792159199900,
"implied_index_price": 6003.1,
"index_minus_implied": -8.98,
"index_price": 5994.12,
"index_timestamp": 1792159199000,
"premium": 8.98,
"premium_bps": 14.98,
"reason": null,
"risk_free_rate": 0.0412,
"settlement_time": 1797604200000,
"state": "index_below_implied",
"symbol": "SPX",
"timestamp": 1792159200000
}
],
"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.