- Live API Reference
- Trade Flow Data
- Stocks
- Trade Summary
Stocks Flow Summary API
Stock trade-flow totals for a symbol: total trades, buy/sell/mid/net share volume, biggest single trade, and last trade timestamp.
Endpoint
X-Api-Key)
Rate Limited: Yes
Plan: Alpha+
Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
symbol |
path | string | required | - | Stock symbol |
Request
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/v1/flow/stocks/SPY/summary"import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/flow/stocks/SPY/summary",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
resp.raise_for_status()
data = resp.json()
print(f"Net share volume: {data['netVolume']:,}")const resp = await fetch(
"https://lab.flashalpha.com/v1/flow/stocks/SPY/summary",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const data = await resp.json();
console.log("Net share volume: " + data.netVolume.toLocaleString());Try it live
Runs on live market data and uses 1 request from your daily quota.
Response
{
"symbol": "SPY",
"totalTrades": 1161962,
"buyVolume": 25528959,
"sellVolume": 20487729,
"midVolume": 26936130,
"netVolume": 5041230,
"biggestSingleTrade": 2200000,
"lastTradeUtc": "2026-10-30T13:46:04.6240669Z",
"endpoint_version": "2026.09.30",
"data_as_of": {
"node": "fa4",
"equity_feed": "2026-10-30T13:46:04.46Z",
"equity_options_feed": "2026-10-30T13:46:03Z",
"index_feed": "2026-10-30T13:46:03.107Z",
"index_options_feed": "2026-10-30T13:46:03Z",
"futures_feed": "2026-10-30T13:45:53.139Z",
"futures_options_feed": "2026-10-30T13:45:49.971Z",
"flow_feed": "2026-10-30T13:45:00Z",
"oi_feed": "2026-10-29T20:00:00Z",
"macro_feed": "2026-10-29T21:00:20Z"
}
}Sending request…
See this endpoint on live data
Send this exact request and the real response shows up here, right next to the example.
Response Fields
| Field | Type | Description |
|---|---|---|
symbol | string | Uppercase stock symbol |
totalTrades | integer | Total buffered stock trades |
buyVolume | integer | Buy-classified share volume |
sellVolume | integer | Sell-classified share volume |
midVolume | integer | Mid/unknown-side share volume |
netVolume | integer | buyVolume - sellVolume |
biggestSingleTrade | integer | Largest single stock trade size |
lastTradeUtc | string/null | Latest trade timestamp; omitted when no stock trade buffer exists |
endpoint_version, data_as_of | string, object | Response envelope, see Response envelope. |
Errors
| Status | Error | When |
|---|---|---|
401 | - | Missing or invalid X-Api-Key. The body is empty; check the status code before parsing JSON. |
403 | tier_restricted | Your plan is below Alpha. The body includes current_plan and required_plan. |
429 | Quota exceeded | Daily quota used up. Retry-After gives the seconds until the reset at 00:00 UTC. Rejected requests (including 403) count toward the quota. |
502 | - | Upstream flow data source unavailable. |
About
Aggregated stock-flow totals across the in-memory buffer for a symbol. Volumes are in shares. netVolume is the headline directional pressure indicator for the equity tape.
Common Use Cases
- Headline buy/sell pressure - surface
buyVolumevssellVolumeand the signednetVolumeas the directional-pressure tile on an equity-tape dashboard - Rank a watchlist - sort tickers by absolute
netVolumeto push the most one-sided names to the top of a scanner - Spot block-driven tape - compare
biggestSingleTradeto typical lot size to flag when a single institutional print is moving the totals - Measure conviction vs noise - weigh
netVolumeagainstmidVolumeto discount sessions where most flow crossed at the mid with no clear aggressor - Gate on tape freshness - check
lastTradeUtc(and its null case) to confirm the name is actively trading before acting on the totals - Normalize across names - divide
netVolumebytotalTradesfor a per-trade imbalance that compares thin and heavy tapes on the same scale
Related
Related reading
- Build a dealer-positioning / flow monitor - wire these net-volume totals into a multi-symbol flow dashboard
- Options flow API: recent trades, blocks & leaderboard - the parallel summary-and-tape workflow on the options side
Complementary endpoints
- Stocks Recent - drill from the totals into the underlying per-trade tape
- Stocks Leaderboard - the same net-notional ranking across the whole equity universe
- Stocks Cumulative - watch how
netVolumeaccumulates minute-by-minute - Options Summary - the matching aggregated flow totals for the options tape
Unlock DEX, VEX and CHEX with Basic
Everything in Free, plus:
- DEX, VEX and CHEX exposure
- Full max pain
- ETF & index symbols SPY, QQQ, SPX, VIX
Go full-chain with Growth
Everything in Basic, plus:
- Full-chain GEX Every expiration
- 0DTE analytics
- Exposure summary & AI narrative
- CME futures & live screener
Add history and vol surfaces with Alpha
Everything in Growth, plus:
- Historical API replay Since 2017
- SVI vol surfaces
- VRP analytics
- Greeks surfaces Vanna, charm, volga and speed grids