Options Recent Trades API - Raw Tape Rows - FlashAlpha Lab API
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

GET /v1/flow/options/{symbol}/recent
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
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
symbolstringUppercase underlying symbol
countintegerNumber of trades returned
totalAvailableintegerTrades available in the in-memory buffer
trades[]arrayRecent trade rows: ts, instrumentId, expiry, strike, right, price, size, side, isBlock, bid, ask

Errors

Status Description
403Requires Alpha plan or higher
502Upstream 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

  • Live time-and-sales widget for a watched symbol
  • Recent-flow sidebar in a trading dashboard
  • Sampling latest trades to feed downstream classifiers (toxic/sweep detection)
  • Quick visual check on whether a tape is buy- or sell-pressured right now

Ready to build?

Get your free API key and start pulling live options data in 30 seconds.