Options · Order flow
Options flow strike activity
/v1/options/flow/strike-activityoptionsFlowStrikeActivityPremium bought at the ask, sold at the bid and executed elsewhere (inside or outside the spread, or unclassified), volume and trade count at each strike, with the net premium for calls and puts. This view is built from the platform's execution ledger of the SPX and SPXW roots; it classifies only prints exactly at the bid or ask, so use /v1/options/flow/by-strike for the full aggressor breakdown and for other underlyings.
Example request
curl -sS --get "https://api.ordermap.si/v1/options/flow/strike-activity" \
-H "Authorization: Bearer $ORDERMAP_API_KEY" \
--data-urlencode underlying_symbol=SPXWconst params = new URLSearchParams({
underlying_symbol: "SPXW",
});
const res = await fetch(`https://api.ordermap.si/v1/options/flow/strike-activity?${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
7 parameters, 1 required.
| Parameter | Type and limits | Description |
|---|---|---|
underlying_queryrequired | stringat most 8 characterspattern ^[A-Za-z][A-Za-z0-9.]{0,7}$ | SPX or SPXW (this view covers those roots only). |
datequeryoptional | stringdate | Trading date (YYYY-MM-DD). Default: the current session. |
start_queryoptional | integerunix-msmin 946684800000max 4102444800000 | Start of the window (inclusive). |
end_queryoptional | integerunix-msmin 946684800000max 4102444800000 | End of the window (exclusive). |
min_queryoptional | numbermin 0max 1000000000000 | Minimum premium in US dollars of a print. |
contract_queryoptional | stringcallput | Calls or puts. Omit for both. |
date_queryoptional | stringdate | Only contracts expiring on this date. |
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>required12 fields insidecall_ask_premiumnumberrequiredCall premium executed at the ask.call_bid_premiumnumberrequiredCall premium executed at the bid.call_premiumnumberrequiredCall premium in US dollars.net_call_premiumnumberrequiredCall ask premium minus bid premium.net_put_premiumnumberrequiredPut ask premium minus bid premium.put_ask_premiumnumberrequiredPut premium executed at the ask.put_bid_premiumnumberrequiredPut premium executed at the bid.put_premiumnumberrequiredPut premium in US dollars.strikenumberrequiredStrike in dollars.tradesintegerrequiredPrints.unclassified_premiumnumberrequiredPremium executed inside or outside the spread, or without a quote.volumeintegerrequiredContracts traded.
metaobjectrequiredMeta object
Example response
{
"data": [
{
"call_ask_premium": 840000,
"call_bid_premium": 520000,
"call_premium": 2100000,
"net_call_premium": 320000,
"net_put_premium": -20000,
"put_ask_premium": 90000,
"put_bid_premium": 110000,
"put_premium": 320000,
"strike": 6050,
"trades": 212,
"unclassified_premium": 860000,
"volume": 5000
}
],
"meta": {
"as_of": 1760659200123,
"coverage": {
"complete": true
},
"delay_ms": 0,
"delayed": false,
"request_id": "0199f0c2-5a1e-7c3b-9d4e-2b6f8a1c3d5e",
"source": "opra"
}
}Values are illustrative. Missing values are null, never 0.