Lab API
Options Recent
Options Recent Trades API
Recent option trades across all contracts for an underlying, newest first. Each row carries timestamp, contract instrument id, expiry, strike, right, price, size, side, block flag, and the prevailing bid/ask.
Endpoint
Auth required (
X-Api-Key)
Rate Limited: Yes
Alpha plan+
Parameters
| Name | In | Required | Default | Description |
|---|---|---|---|---|
symbol |
path | yes | - | Underlying symbol |
limit |
query | no | 50 | Number of trades, clamped to 1..500 |
expiry |
query | no | - | Filter to a single expiration cycle, YYYY-MM-DD. Omit to include all expiries. |
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/v1/flow/options/SPY/recent?limit=10"
import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/flow/options/SPY/recent",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"{data['count']} of {data['totalAvailable']} buffered trades")
const resp = await fetch(
"https://lab.flashalpha.com/v1/flow/options/SPY/recent",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(data.count + " of " + data.totalAvailable + " buffered trades");
Response
{
"symbol": "SPY",
"count": 3,
"totalAvailable": 482,
"trades": [
{
"ts": "2026-05-12T18:42:09.812Z",
"instrumentId": 12345678,
"expiry": "2026-05-15",
"strike": 600.0,
"right": "C",
"price": 1.85,
"size": 250,
"side": "buy",
"isBlock": true,
"bid": 1.83,
"ask": 1.86
},
{
"ts": "2026-05-12T18:42:08.441Z",
"instrumentId": 12345701,
"expiry": "2026-05-15",
"strike": 595.0,
"right": "P",
"price": 0.72,
"size": 12,
"side": "sell",
"isBlock": false,
"bid": 0.71,
"ask": 0.73
},
{
"ts": "2026-05-12T18:42:07.205Z",
"instrumentId": 12345689,
"expiry": "2026-05-15",
"strike": 597.0,
"right": "C",
"price": 1.20,
"size": 5,
"side": "mid",
"isBlock": false,
"bid": 1.19,
"ask": 1.21
}
]
}
Key Response Fields
| Field | Type | Description |
|---|---|---|
symbol | string | Uppercase underlying symbol |
count | integer | Number of trades returned |
totalAvailable | integer | Trades available in the in-memory buffer |
trades[] | array | Recent trade rows: ts, instrumentId, expiry, strike, right, price, size, side, isBlock, bid, ask |
Errors
| Status | Description |
|---|---|
403 | Requires Alpha plan or higher |
502 | Upstream flow data source unavailable |
About
Returns the most recent option trades for an underlying across all of its contracts in a single stream, newest first. Trades come from the in-memory buffer fed by the ingest service, and totalAvailable reports how deep that buffer currently is. Useful for a live time-and-sales feed or for sampling the most recent activity on a name.
Common Use Cases
- Render a live time-and-sales feed - stream the newest
trades[]rows (ts,strike,right,price,size) into a tape widget for a watched symbol - Read buy/sell pressure at a glance - tally
side(buyvssellvsmid) across recent prints to judge whether the tape is aggressively bid or offered right now - Flag institutional prints - filter
isBlock=truerows to surface large single-ticket trades the moment they cross - Classify aggressor side from quotes - compare
priceagainstbid/askto confirm whether a fill lifted the offer or hit the bid for sweep/toxic-flow detection - Gauge tape depth - watch
totalAvailableversuscountto see how active a name is and how far back the in-memory buffer reaches - Feed downstream classifiers - sample the latest trades by
instrumentIdandexpiryto seed real-time sweep, repeat-hitter, or unusual-activity models
Related
Related reading
- Options flow API: recent trades, blocks & leaderboard - how the raw tape endpoints fit together end to end
- Flow Signals API: scoring unusual options activity - turn raw prints into a ranked unusual-activity score
Complementary endpoints
- Options Blocks - isolate only the large block and sweep prints from the same tape
- Options Summary - aggregate the tape into call/put and buy/sell totals
- Options Leaderboard - rank the most-active contracts behind these prints
- Flow Signals - scored unusual-activity layer built on this raw flow
Ready to build?
Get your free API key and start pulling live options data in 30 seconds.