Dealer Premium API
Full-tape Net Dealer Premium roll-up over a configurable window, summing each side of the customer-flow tape weighted by VWAP per minute bucket.
Endpoint
X-Api-Key)
Rate Limited: Yes
Alpha plan+
Parameters
| Name | In | Required | Default | Description |
|---|---|---|---|---|
symbol |
path | yes | - | Underlying symbol |
windowMinutes |
query | no | 240 | Clamped to [1, 10080] |
expiry |
query | no | all | Filter to a single expiry, yyyy-MM-dd |
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/v1/flow/options/SPY/dealer-premium?windowMinutes=240"
import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/flow/options/SPY/dealer-premium",
headers={"X-Api-Key": "YOUR_API_KEY"},
params={"windowMinutes": 240}
)
data = resp.json()
print(f"Net dealer premium: {data['net_dealer_premium']:,.0f}")
const resp = await fetch(
"https://lab.flashalpha.com/v1/flow/options/SPY/dealer-premium?windowMinutes=240",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log("Net dealer premium: " + data.net_dealer_premium.toLocaleString());
Response
{
"symbol": "SPY",
"as_of": "2026-05-30T15:30:00Z",
"window_minutes": 240,
"expiry": null,
"dealer_buy_premium": 12450000.0,
"dealer_write_premium": 18200000.0,
"net_dealer_premium": -5750000.0,
"total_premium": 30650000.0,
"trade_count": 18420,
"bucket_count": 240
}
Key Response Fields
| Field | Description |
|---|---|
dealer_buy_premium | Σ (sellVolume × vwap × 100) across minute buckets - dealer is the BUYER when customer hits the bid. |
dealer_write_premium | Σ (buyVolume × vwap × 100) - dealer is the WRITER when customer lifts the ask. |
net_dealer_premium | dealer_buy_premium − dealer_write_premium. Positive ⇒ dealers net long premium in the window. |
total_premium | dealer_buy_premium + dealer_write_premium - total directional premium traded (excludes mid prints). |
trade_count | Sum of tradeCount across buckets. |
bucket_count | Number of minute buckets that fed the aggregate. |
Errors
| Status | Description |
|---|---|
400 invalid_expiry | Bad expiry format. |
502 upstream_unavailable | Flow ingest didn't respond. |
502 upstream_invalid | Flow ingest response couldn't be parsed. |
About
Net Dealer Premium aggregates the full customer-flow tape over a configurable window, weighting each side by per-minute VWAP. Dealer-buy premium accrues when customers hit the bid; dealer-write premium accrues when customers lift the ask. The signed difference, net_dealer_premium, indicates whether dealers are net long or net short premium across the window.
This is distinct from /v1/flow/signals/{symbol}/summary, which only rolls up block-sized signal prints. Per-bucket premium uses the bucket's VWAP, a minute-resolution approximation; for trade-by-trade exact premium, drive from /v1/flow/options/{symbol}/recent.
Common Use Cases
- Read the sign of
net_dealer_premium- positive flags dealers net long premium (likely to dampen moves), negative flags dealers net short (likely to chase), driving whether you fade or follow the tape - Compare
dealer_buy_premiumversusdealer_write_premiumto see which side of customer flow dominates and infer the dealer hedging bias that will hit the underlying - Track intraday shifts by re-polling with a rolling
windowMinutes- a flip innet_dealer_premiumthrough zero marks a regime change to act on - Isolate a single
expiryto study dealer positioning around a key date such as an earnings or OPEX print - Rank flow intensity across names by
total_premiumto focus attention on the symbols with the most directional dealer activity - Sanity-check coverage with
bucket_countandtrade_count- thin buckets mean the aggregate is noisy and the read should be discounted
Related
Related reading
- Effective open interest: live GEX from flow - how signed customer flow feeds dealer exposure estimates
- Vol-of-vol, convexity, and charm dealer flow - reading dealer premium alongside higher-order flow signals
Complementary endpoints
- Dealer Risk - pairs premium flow with the dealer's net Greek exposure
- Flow Live Bundle - the full real-time tape these premiums aggregate from
- Charm Exposure (CHEX) - how dealer positioning decays into expiry
Ready to build?
Get your free API key and start pulling live options data in 30 seconds.