Lab API
Options Summary
Options Flow Summary API
Option trade-flow totals across all contracts for an underlying: contracts with trades, total trades, buy/sell/mid/net contract volume, biggest single trade, and last trade timestamp.
Endpoint
Auth required (
X-Api-Key)
Rate Limited: Yes
Alpha plan+
Parameters
| Name | In | Required | Default | Description |
|---|---|---|---|---|
symbol |
path | yes | - | Underlying symbol |
expiry |
query | no | - | Filter to a single expiration cycle, YYYY-MM-DD. Aggregates only contracts on that expiry. |
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/v1/flow/options/SPY/summary"
import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/flow/options/SPY/summary",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"Net volume: {data['netVolume']:,}")
const resp = await fetch(
"https://lab.flashalpha.com/v1/flow/options/SPY/summary",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log("Net volume: " + data.netVolume.toLocaleString());
Response
{
"symbol": "SPY",
"contractsWithTrades": 1820,
"totalTrades": 482310,
"buyVolume": 1245200,
"sellVolume": 1118450,
"midVolume": 84720,
"netVolume": 126750,
"biggestSingleTrade": 4800,
"lastTradeUtc": "2026-05-12T18:42:09.812Z"
}
Key Response Fields
| Field | Type | Description |
|---|---|---|
symbol | string | Uppercase underlying symbol |
contractsWithTrades | integer | Option contracts with at least one buffered trade |
totalTrades | integer | Total buffered option trades |
buyVolume | integer | Buy-classified contract volume |
sellVolume | integer | Sell-classified contract volume |
midVolume | integer | Mid/unknown-side contract volume |
netVolume | integer | buyVolume - sellVolume |
biggestSingleTrade | integer | Largest single option trade size |
lastTradeUtc | string/null | Latest trade timestamp |
Errors
| Status | Description |
|---|---|
403 | Requires Alpha plan or higher |
502 | Upstream flow data source unavailable |
About
Returns aggregated option trade-flow totals across every contract on the underlying. Volumes are in contract units. netVolume is the signed buy-minus-sell directional pressure and is the headline number most flow dashboards anchor on.
Common Use Cases
- Headline directional pressure - surface signed
netVolume(buyVolume - sellVolume) as the lead number on a per-symbol flow dashboard - Rank a watchlist by flow - sort names by absolute
netVolumeortotalTradesto spot where today's option activity is concentrated - Detect stale or quiet tapes - compare
lastTradeUtcagainst now to flag symbols that have gone inactive before trusting the totals - Measure conviction with the buy/sell split - weigh
buyVolumeversussellVolume(and discountmidVolume) to judge how one-sided the tape really is - Spot outsized single tickets - scale
biggestSingleTradeagainst typical size to know whether one block is skewing the aggregate - Gauge breadth of participation - read
contractsWithTradesto tell broad-based flow from activity crowded into a handful of strikes
Related
Related reading
- Options flow API: recent trades, blocks & leaderboard - how the raw tape endpoints fit together end to end
Complementary endpoints
- Options Recent - drill from the aggregate into the individual prints behind it
- Options Blocks - see the large prints driving
biggestSingleTrade - Options Leaderboard - rank the most-active contracts inside the totals
- Flow Signals - scored unusual-activity layer built on this flow
Ready to build?
Get your free API key and start pulling live options data in 30 seconds.