Positioning
Volume heatmap
Returns per-strike aggregated trading volume in USD, split by call and put. One row per strike per timestamp. Aggregated from all active options at each strike across all expirations. Use for volume concentration heatmaps, identifying strikes with unusual activity, and spotting where large orders are landing. Complements GEX strikes (which shows gamma exposure) with actual trading activity.
/v1/positioning/volumeproQuery Parameters
coinstringrequiredUnderlying asset. Required.
BTCETHSOLfromstringoptionalStart UTC (ISO 8601). Default: latest snapshot.
2026-03-08T00:00:00ZtostringoptionalEnd UTC (ISO 8601). Default: now.
2026-03-09T00:00:00ZlimitintegeroptionalMax rows returned. Default 500, max 5000.
200Response Schema
Fields marked pro require a Pro subscription. Fields marked alpha require Alpha.
| Field | Type | Tier | Description |
|---|---|---|---|
timestamp | datetime | pro | Snapshot time in UTC. Aligned to 10-minute boundary. |
coin | string | pro | Underlying asset. |
strike | float | pro | Strike price. All options at this strike (across all expirations) are aggregated. |
underlying_price | float | pro | Spot price at snapshot time. |
total_volume_usd | float | pro | Total volume (call + put) in USD at this strike. |
call_volume_usd | float | pro | Aggregated call trading volume in USD at this strike. |
put_volume_usd | float | pro | Aggregated put trading volume in USD at this strike. |
Suggested Calculations
Not included in the API response. Compute these client-side from the fields above. Formulas and context provided.
volume_concentration_pctfloatclient-sideWhere is all the action? Find the hotspot strikes.expandWhere is all the action? Find the hotspot strikes.
Divide each strike's total_volume_usd by the sum across all strikes, multiply by 100. This gives you the percentage of total market activity at each price level. A single strike with > 20 pct of total volume is a hotspot. In crypto options, volume clusters around round numbers ($80K, $90K, $100K) and near the current spot price. Strikes far from spot with high concentration = someone is making a directional bet.
total_volume_usdVolume concentration per strike
0 to 100. Above 20 = hotspot.strike_moneynessfloatclient-sideHow far is each strike from the current price?expandHow far is each strike from the current price?
Moneyness = (strike - underlying_price) / underlying_price * 100. Positive = above spot (out-of-the-money calls, in-the-money puts). Negative = below spot (out-of-the-money puts, in-the-money calls). Zero = at-the-money. This is the most basic options concept: how far from spot are people trading? Volume clustered near 0 pct = hedging. Volume at +20 pct = upside speculation. Volume at -20 pct = crash protection.
strikeunderlying_priceMoneyness as percentage of spot
-100 to +100+. 0 = at-the-money.volume_skew_by_moneynessstringclient-sideIs the market positioning for upside or downside?expandIs the market positioning for upside or downside?
Sum total_volume_usd for strikes above spot vs below spot. If above > below, the market is positioning for upside (bullish). If below > above, the market is buying downside protection (bearish or hedging). The ratio tells you where the money is going before price moves. This is a cruder but faster version of the put/call ratio: it works without needing the call/put split to see which side of spot is active.
total_volume_usdstrikeunderlying_priceactive_strikes_breadthintegerclient-sideIs activity spread across many strikes or concentrated in a few?expandIs activity spread across many strikes or concentrated in a few?
Count the number of strikes where total_volume_usd > 0. High count = broad market participation, many expirations active. Low count = concentrated, few strikes dominate. If volume is in 3 strikes out of 40, the market is making a very specific bet. If it is spread across 25 strikes, activity is routine hedging. Combine with volume_concentration_pct: few active strikes + high concentration = conviction trade.
total_volume_usdcall_put_volume_ratiofloatclient-sideDirectional volume sentiment at each strikeexpandDirectional volume sentiment at each strike
Call volume / put volume at a strike. Above 1 = more call activity (bullish flow). Below 1 = more put activity (bearish flow). Compare across strikes: call-heavy volume above spot + put-heavy volume below spot = classic bullish positioning (upside speculation + downside hedging). The reverse pattern = bearish setup.
call_volume_usdput_volume_usdCall/put volume ratio
0 to unbounded. 1.0 = balanced.put_wall_detectionstringclient-sideFind the put wall: where is the heaviest downside protection?expandFind the put wall: where is the heaviest downside protection?
Sort strikes below spot by put_volume_usd descending. The strike with the highest put volume is the "put wall": the level where participants have the most downside protection. If spot approaches this strike, expect support (dealers hedging those puts buy the underlying). The put wall often aligns with the GEX magnetic strike.
put_volume_usdstrikeunderlying_priceOr use the pre-computed endpointalpha
Magnetic strike and put/call wall analysis at /v1/gex/pinning (Alpha).
volume_gex_overlaystringclient-sideOverlay volume concentration with GEX structureexpandOverlay volume concentration with GEX structure
High volume at the GEX magnetic strike reinforces the pinning signal (active hedging). High volume at strikes outside the pinning zone suggests positioning for a breakout. The combination of "where is gamma?" (from /v1/gex/strikes) and "where is activity?" (from this endpoint) produces the most complete positioning picture.
Or use the pre-computed endpointalpha
GEX per strike at /v1/gex/strikes. Magnetic strike and pinning zones at /v1/gex/pinning.