Lab API
Stocks History
Stocks Flow Minute History API
Minute stock-flow buckets, newest first. Each bucket carries buy/sell/mid/net share volume, trade count, biggest trade, VWAP, and OHLC.
Endpoint
Auth required (
X-Api-Key)
Rate Limited: Yes
Alpha plan+
Parameters
| Name | In | Required | Default | Description |
|---|---|---|---|---|
symbol |
path | yes | - | Stock symbol |
minutes |
query | no | 60 | Window size, clamped to 1..10080 |
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/v1/flow/stocks/SPY/history?minutes=120"
import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/flow/stocks/SPY/history",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"{data['count']} buckets over {data['minutes']} minutes")
const resp = await fetch(
"https://lab.flashalpha.com/v1/flow/stocks/SPY/history",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(data.count + " buckets over " + data.minutes + " minutes");
Response
{
"symbol": "SPY",
"minutes": 120,
"count": 3,
"buckets": [
{
"ts": "2026-05-12T18:42:00Z",
"buyVolume": 245000,
"sellVolume": 218400,
"midVolume": 12450,
"netVolume": 26600,
"tradeCount": 8420,
"biggestTrade": 50000,
"vwap": 597.48,
"open": 597.32,
"close": 597.51,
"high": 597.58,
"low": 597.30
},
{
"ts": "2026-05-12T18:41:00Z",
"buyVolume": 220150,
"sellVolume": 232800,
"midVolume": 10220,
"netVolume": -12650,
"tradeCount": 7850,
"biggestTrade": 35000,
"vwap": 597.31,
"open": 597.18,
"close": 597.32,
"high": 597.40,
"low": 597.15
},
{
"ts": "2026-05-12T18:40:00Z",
"buyVolume": 198400,
"sellVolume": 195200,
"midVolume": 9420,
"netVolume": 3200,
"tradeCount": 7102,
"biggestTrade": 28000,
"vwap": 597.16,
"open": 597.05,
"close": 597.18,
"high": 597.22,
"low": 597.02
}
]
}
Key Response Fields
| Field | Type | Description |
|---|---|---|
symbol | string | Uppercase stock symbol |
minutes | integer | Requested/effective minute window |
count | integer | Number of buckets returned |
buckets[] | array | Minute buckets: ts, buyVolume, sellVolume, midVolume, netVolume, tradeCount, biggestTrade, vwap, open, close, high, low |
Errors
| Status | Description |
|---|---|
403 | Requires Alpha plan or higher |
502 | Upstream flow data source unavailable |
About
Minute-aggregated equity trade-flow buckets, newest first. Includes full minute OHLC so this stream can also act as a 1-minute candle feed with flow attribution baked in. Window is clamped to one week.
Common Use Cases
- Draw minute candles with a flow overlay - plot each bucket's
open/high/low/closeas a candle and shade bybuyVolumevssellVolumefor flow-attributed bars in one call - Track VWAP deviation - measure each bucket's
closeagainst itsvwapto build a rolling mean-reversion signal - Scan for volume spikes - flag buckets where
tradeCountorbiggestTradejumps above a rolling baseline to catch sudden participation - Chart cumulative imbalance - sum
netVolumeacross buckets for a session-long accumulation/distribution line - Feed a backtest - replay 1-minute equity flow buckets (window clamped to one week) alongside option flow for joint signal research
- Discount mid-heavy minutes - weigh
netVolumeagainstmidVolumeto avoid over-reading bars where most volume crossed at the mid
Related
Related reading
- Real-time options data: polling vs streaming - how often to poll a newest-first minute series for a live feed
Complementary endpoints
- Stocks Bars - multi-resolution OHLCV bars (oldest-first) for live chart consumers
- Stocks Cumulative - the running net-volume path over the same window
- Stocks Recent - the per-trade tape these minute buckets aggregate
- Options History - the matching minute-flow buckets for the options tape
Ready to build?
Get your free API key and start pulling live options data in 30 seconds.