Lab API
Stocks Outliers
Stocks Flow Outliers API
Cross-symbol stock-flow outliers ranked by absolute net notional, same shape as the options-outliers payload.
Endpoint
Auth required (
X-Api-Key)
Rate Limited: Yes
Alpha plan+
Parameters
| Name | In | Required | Default | Description |
|---|---|---|---|---|
limit |
query | no | 20 | Rows returned, clamped to 1..200 |
minTrades |
query | no | 20 | Minimum trades for a symbol to qualify |
windowMinutes |
query | no | 240 | Lookback window, clamped to 1..10080 |
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/v1/flow/stocks/outliers?limit=20&minTrades=100&windowMinutes=240"
import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/flow/stocks/outliers",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"{data['qualified']} of {data['tracked']} symbols qualified")
const resp = await fetch(
"https://lab.flashalpha.com/v1/flow/stocks/outliers",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(data.qualified + " of " + data.tracked + " symbols qualified");
Response
{
"generatedUtc": "2026-05-12T18:42:10Z",
"windowMinutes": 240,
"tracked": 1840,
"qualified": 845,
"limit": 20,
"outliers": [
{
"symbol": "NVDA",
"tradeCount": 184200,
"buyVolume": 2845000,
"sellVolume": 1999800,
"midVolume": 84200,
"netVolume": 845200,
"imbalancePct": 0.42,
"skew": 1.42,
"notional": 5840000000,
"netNotional": 1015800000,
"biggestTrade": 250000,
"biggestTradeUtc": "2026-05-12T17:18:42Z",
"biggestAgeSec": 5008,
"lastVwap": 1202.18,
"lastTradeUtc": "2026-05-12T18:42:08Z",
"lastTradeAgeSec": 2
}
]
}
Key Response Fields
| Field | Type | Description |
|---|---|---|
generatedUtc | string | Generation timestamp |
windowMinutes | integer | Effective lookback window |
tracked | integer | Symbols scanned |
qualified | integer | Symbols that met filters |
limit | integer | Effective output limit |
outliers[] | array | Outlier rows (same shape as options outliers): symbol, tradeCount, buyVolume, sellVolume, midVolume, netVolume, imbalancePct, skew, notional, netNotional, biggestTrade, biggestTradeUtc, biggestAgeSec, lastVwap, lastTradeUtc, lastTradeAgeSec |
Errors
| Status | Description |
|---|---|
403 | Requires Alpha plan or higher |
502 | Upstream flow data source unavailable |
About
Same response shape as options outliers, applied to the equity universe. Use minTrades to filter out thin tape and limit to cap output size. Cached 30 seconds on the server.
Common Use Cases
- Scan for unusual equity activity - rank
outliers[]byskewand absolutenetNotionalto surface the most one-sided names across the universe - Quantify directional lean - read
imbalancePctand signednetVolumeto size how far buyers or sellers dominate each outlier's tape - Run a fresh big-print radar - filter on a low
biggestAgeSec(withbiggestTrade/biggestTradeUtc) to catch institutional prints that landed seconds ago - Filter out thin tape - raise
minTradesand checkqualifiedvstrackedto confirm enough symbols cleared the participation floor before trusting the ranking - Add execution and freshness context - pull
lastVwapfor slippage andlastTradeAgeSecto drop stale names from alerts - Generate pairs ideas - contrast
skewacross correlated tickers to find divergent flow for a relative-value setup
Related
Related reading
- Options flow API: recent trades, blocks & leaderboard - how to combine universe ranking and outlier detection on the options tape
Complementary endpoints
- Stocks Leaderboard - the net-notional top-N ranking that pairs with this skew/imbalance view
- Stocks Summary - drill into a single outlier's flow totals
- Stocks Recent - inspect the per-trade tape behind a flagged symbol
- Options Outliers - the matching outlier scan for the options tape (same response shape)
Ready to build?
Get your free API key and start pulling live options data in 30 seconds.