CayøLargo
← Back to siteAPI ReferencePricingChangelog
v1.0Swagger ↗

GEX

GEX pinning

Returns derived pinning intelligence per coin per near-term expiration. One row per (timestamp, coin, expiry) for expirations within 72 hours. Contains top 3 magnetic strikes, pinning zones, breakout levels with acceleration factors, Stability/Persistence/Confidence scores built from 9 proprietary strike-surface Greeks, max pain comparison, pin score (uncalibrated), magnet tracking, vol surface confirmation from fixed-strike IV momentum, GEX-skew cross-system bridge reading ORIA intelligence, gamma flip level with regime classification, and scenario detection with trade structure recommendations. 87 columns across 3 intelligence layers. No public platform offers anything comparable for crypto derivatives.

GET/v1/gex/pinningproalpha

Query Parameters

coinstringrequired

Underlying asset. Required.

e.g.BTCETHSOL
expirationstringoptional

Filter to specific expiration (ISO 8601).

e.g.2026-03-14T08:00:00Z
fromstringoptional

Start of time range, UTC. Default: latest snapshot.

e.g.2026-03-08T00:00:00Z
tostringoptional

End of time range, UTC. Default: now.

e.g.2026-03-09T00:00:00Z
limitintegeroptional

Max rows returned. Default 500, max 5000.

e.g.100

Response Schema

Fields marked pro require a Pro subscription. Fields marked alpha require Alpha.

FieldTypeTierDescription
timestampdatetimeproSnapshot time in UTC. Aligned to 10-minute boundary.
coinstringproUnderlying asset (BTC, ETH, SOL, XRP, AVAX, TRX).
expiration_timestampdatetimeproOption expiration time in UTC. Only expirations within 72 hours.
hours_to_expiryfloatproHours to expiration (decimal). Always <= 72 (pinning territory).
underlying_pricefloatproSpot price at snapshot time.
expiry_typestringproExpiry classification: DAILY, WEEKLY, MONTHLY, or QUARTERLY.
magnetic_strike_1floatproStrongest magnetic strike (highest |net_gex_usd|). The primary price magnet.
magnetic_strike_1_gex_usdfloatproNet GEX in USD at the magnetic strike. Positive = pinning. Negative = trending.
magnetic_strike_1_concentration_pctfloatproConcentration: this strike as pct of total |GEX|. Above 30 = strong, above 50 = dominant.
magnetic_strike_1_distance_pctfloatproDistance from current spot to magnetic strike as pct.
magnetic_strike_2floatproSecond strongest strike.
magnetic_strike_2_gex_usdfloatproNet GEX at second strike.
magnetic_strike_2_concentration_pctfloatproConcentration at second strike.
magnetic_strike_3floatproThird strongest strike.
magnetic_strike_3_gex_usdfloatproNet GEX at third strike.
magnetic_strike_3_concentration_pctfloatproConcentration at third strike.
magnet_dominancestringproDOMINANT (top > 2x second), CONTESTED (1.3-2x), or DISPERSED (< 1.3x). DOMINANT = strong pinning expected. CONTESTED = price may oscillate between magnets.
prev_magnetic_strikefloatalphaMagnetic strike from previous snapshot. Used to detect magnet shifts.
magnet_changedbooleanalphaTRUE if the magnetic strike shifted since previous snapshot. Alert trigger.
max_pain_strikefloatproMax pain strike (OI-weighted, argmin of total intrinsic value). The industry-standard reference. Our magnetic strike is the improvement.
max_pain_distance_pctfloatproDistance from spot to max pain as pct.
pinning_zone_lowerfloatproLower bound of the contiguous pinning zone around the magnetic strike.
pinning_zone_upperfloatproUpper bound of pinning zone.
pinning_zone_width_pctfloatproZone width as pct of spot. Narrow zone = sharp pin. Wide zone = diffuse pin.
price_in_pinning_zonebooleanproTRUE if current spot is inside the pinning zone.
upper_breakout_levelfloatproFirst strike above pinning zone where GEX drops off. If price clears this, pinning collapses.
upper_breakout_surface_vannafloatalphaSurface vanna at upper breakout. High value = breakout accelerates (vol spike feeds itself).
upper_breakout_lightningfloatalphaLightning (3rd strike derivative) at upper breakout. High value = chaotic price behavior beyond this level.
lower_breakout_levelfloatproFirst strike below pinning zone.
lower_breakout_surface_vannafloatalphaSurface vanna at lower breakout.
lower_breakout_lightningfloatalphaLightning at lower breakout.
zero_gamma_levelfloatproPrice where aggregate net GEX crosses zero. Above = positive gamma (stabilizing). Below = negative gamma (destabilizing).
price_above_zero_gammabooleanalphaTRUE if spot is above zero gamma level (positive gamma territory, dealer hedging dampens moves).
magnet_iv_currentfloatalphaCurrent IV (pct) at the magnetic strike. From gex_strikes.avg_iv_pct.
magnet_iv_change_2hfloatalphaIV change at magnetic strike over 2 hours (vol points). Negative = IV fading = wall holding.
magnet_iv_change_6hfloatalphaIV change at magnetic strike over 6 hours.
magnet_call_iv_change_2hfloatalphaCall-only IV change at magnet over 2h. Isolates directional flow (institutions chasing breakout vs fading).
upper_breakout_iv_change_2hfloatalphaIV change at upper breakout strike over 2h. Rising = demand for breakout protection.
lower_breakout_iv_change_2hfloatalphaIV change at lower breakout strike over 2h. Rising = demand for crash insurance.
skew_expiry_bucketstringalphaORIA expiry bucket matched (always DTE_7 for pinning territory). NULL if skew data unavailable.
skew_risk_reversal_currentfloatalphaCurrent 25-delta risk reversal from ORIA cohort_iv_skew. Negative = bearish (put premium). Positive = bullish (call premium).
skew_rr_change_2hfloatalphaRisk reversal change over 2 hours (vol points). Becoming less negative during rally = SKEW_CONFIRMS_RALLY.
skew_velocity_regimestringalphaSkew velocity from ORIA: RAPID_STEEPENING, RAPID_FLATTENING, etc. Triggers SKEW_REGIME_SHIFT override.
skew_smile_asymmetryfloatalphaSmile asymmetry from ORIA. Positive = steeper put wing (crash fear). Negative = steeper call wing (FOMO).
skew_data_availablebooleanalphaFALSE if ORIA cohort_iv_skew has no data for this coin/bucket. Common for SOL, XRP, AVAX, TRX. All other skew_ columns NULL when FALSE.
gamma_flip_levelfloatalphaInterpolated strike where cumulative GEX crosses zero. The boundary between positive and negative gamma territory.
gamma_flip_distance_pctfloatalpha(spot - flip) / spot * 100. Positive = spot in positive gamma. Negative = spot in negative gamma.
opt_liquidation_count_1hintegeralphaOption liquidation count in 1h window. DORMANT (always 0): Deribit portfolio margin produces near-zero liquidation events.
opt_liquidation_usd_1hfloatalphaOption liquidation USD volume in 1h. DORMANT (always 0).
opt_liquidation_clusterbooleanalphaOption liquidation cluster detected. DORMANT (always FALSE).
fut_liquidation_count_1hintegeralphaFutures liquidation count in 1h. DORMANT (always 0).
fut_liquidation_usd_1hfloatalphaFutures liquidation USD volume in 1h. DORMANT (always 0).
fut_liquidation_clusterbooleanalphaFutures liquidation cluster detected. DORMANT (always FALSE).
liquidation_cascade_activebooleanalphaTRUE when negative gamma + liquidation cluster. DORMANT (always FALSE). Retained for future Binance/Bybit feed.
magnet_times_testedintegeralphaCount of spot touches within 0.5 pct of magnet in 24h. NULL until fully implemented.
magnet_first_testbooleanalphaTRUE if magnet has never been tested. Untested magnets have stronger pull. NULL until implemented.
magnet_untested_premiumfloatalphaScore boost for untested magnets. NULL until implemented.
call_wall_strikefloatalphaHighest positive GEX strike above spot. Resistance ceiling. NULL until implemented.
call_wall_gex_usdfloatalphaGEX at call wall strike. NULL until implemented.
put_wall_strikefloatalphaHighest positive GEX strike below spot. Support floor. NULL until implemented.
put_wall_gex_usdfloatalphaGEX at put wall strike. NULL until implemented.
stability_scoreintegeralphaWill this magnet survive a vol shock? (0-100)
See detail ↓
stability_component_surface_vannafloatalphaSurface vanna ratio component of Stability Score
See detail ↓
stability_component_flarefloatalphaFlare ratio component of Stability Score
See detail ↓
stability_component_halofloatalphaHalo ratio component of Stability Score
See detail ↓
persistence_scoreintegeralphaHow long will this magnet hold before time decay kills it? (0-100)
See detail ↓
persistence_component_surface_charmfloatalphaSurface charm ratio component of Persistence Score
See detail ↓
persistence_component_dropletfloatalphaDroplet ratio component of Persistence Score
See detail ↓
projected_half_life_hoursfloatalphaEstimated hours until the magnet loses half its gamma concentration
See detail ↓
prediction_confidenceintegeralphaOverall data quality and prediction reliability (0-100)
See detail ↓
aurora_levelfloatalphaMeta-stability: how fast is the entire surface dynamics evolving?
See detail ↓
pin_probabilityfloatalphaPin Score: composite pinning likelihood (0-100, UNCALIBRATED)
See detail ↓
magnet_iv_momentumstringalphaIV regime at the magnetic strike
See detail ↓
price_approach_directionstringalphaHow is price moving relative to the magnet?
See detail ↓
vol_surface_confirmationstringalphaIs the vol surface confirming or denying the GEX structure?
See detail ↓
vol_confirmation_scoreintegeralphaNumeric score of vol surface confirmation (0-100)
See detail ↓
skew_confirmationstringalphaDoes the broad skew surface confirm or deny the GEX narrative?
See detail ↓
gamma_regimestringproAre dealers stabilizing or amplifying price right now?
See detail ↓
coinbase_scenariostringalphaScenario classification combining regime, structure, and flow
See detail ↓
recommended_structurestringalphaSuggested options structure for the detected scenario
See detail ↓
scenario_confidencefloatalphaConfidence in scenario classification (0-100)
See detail ↓

Derived Fields

FieldTypeTiercollapse all
stability_scoreintegeralphacollapse

Will this magnet survive a vol shock? (0-100)

Measures how resilient the magnetic strike is to implied volatility changes. Proprietary weighted composite of multiple strike-surface Greek ratios. 100 = pure structural pinning, vol-proof. 0 = entirely vol-dependent, any IV spike destroys it. Below 30 = unreliable magnet. Above 70 = high-quality signal.

Range0-100. 100 = fortress. 0 = glass.
stability_component_surface_vannafloatalphacollapse

Surface vanna ratio component of Stability Score

Ratio of surface vanna exposure to dual gamma exposure at the magnetic strike. Low ratio = curvature dominates = stable. Primary component of Stability Score.

Range0 to 1.
stability_component_flarefloatalphacollapse

Flare ratio component of Stability Score

Ratio of flare exposure to dual gamma exposure. Captures how a vol spike reshapes curvature at this strike. Secondary component of Stability Score.

Range0 to 1.
stability_component_halofloatalphacollapse

Halo ratio component of Stability Score

Ratio of halo exposure to dual gamma exposure. Captures spot-vol-strike coupling. Tertiary component of Stability Score.

Range0 to 1.
persistence_scoreintegeralphacollapse

How long will this magnet hold before time decay kills it? (0-100)

Measures how fast gamma at the magnetic strike decays with time. Proprietary weighted composite of time-decay sensitivity ratios with a dimensional correction for cross-coin comparability. 100 = ANCHORED, magnet strengthens into expiry. 50 = MODERATE, may shift in 6-12h. 0 = FLEETING, may shift next snapshot.

Range0-100. 100 = anchored. 0 = fleeting.
persistence_component_surface_charmfloatalphacollapse

Surface charm ratio component of Persistence Score

Ratio of surface charm exposure to dimensionally-corrected dual gamma at the magnetic strike. Primary component of Persistence Score.

Range0 to 1.
persistence_component_dropletfloatalphacollapse

Droplet ratio component of Persistence Score

Ratio of droplet exposure to dimensionally-corrected dual gamma. Captures acceleration of vol-sensitivity decay over time. Secondary component of Persistence Score.

Range0 to 1.
projected_half_life_hoursfloatalphacollapse

Estimated hours until the magnet loses half its gamma concentration

Rough linear extrapolation based on the persistence score and hours to expiry. Not a precise forecast: actual decay is nonlinear. Use as a shelf-life indicator: if half life < 4h, the signal is time-critical.

Range0 to hours_to_expiry.
prediction_confidenceintegeralphacollapse

Overall data quality and prediction reliability (0-100)

Composite of aurora level (meta-stability from 4th-order Greek), average reliability score across contributing instruments, and gamma concentration. High aurora = surface evolving fast = lower confidence. High reliability + high concentration = higher confidence.

Range0-100.
aurora_levelfloatalphacollapse

Meta-stability: how fast is the entire surface dynamics evolving?

Aggregated aurora (4th-order cross-derivative coupling spot, vol, strike, time) at the magnetic strike. High aurora means all predictions have shorter shelf life. Input to prediction_confidence.

pin_probabilityfloatalphacollapse

Pin Score: composite pinning likelihood (0-100, UNCALIBRATED)

Proprietary sigmoid-based composite score reflecting how strongly conditions favor pinning at expiry. Inputs: distance to magnet, gamma concentration, time to expiry, stability score, persistence score. Present as "Pin Score: XX/100". Not a calibrated probability. Will be upgraded to calibrated probability via logistic regression after 100+ outcome events.

Range0-100. Above 70 = strong pinning conditions. Below 30 = weak.
magnet_iv_momentumstringalphacollapse

IV regime at the magnetic strike

Classification of how implied volatility at the magnetic strike is evolving over the past 2 hours. SURGING: institutions chasing breakout, strong upward IV pressure. CRUSHING: nobody paying for protection, IV collapsing. RISING/FADING: moderate directional pressure. FLAT: stable. NULL for first 2-6 hours after an expiry enters the 72h window (no lookback history). Threshold values are proprietary and subject to periodic recalibration.

RangeSURGING, RISING, FLAT, FADING, CRUSHING
price_approach_directionstringalphacollapse

How is price moving relative to the magnet?

APPROACHING_FROM_BELOW: price below magnet and rising. APPROACHING_FROM_ABOVE: price above and falling. AT_MAGNET: within a proprietary distance threshold. MOVING_AWAY: diverging from magnet. NULL when magnet just changed (stale context).

RangeAPPROACHING_FROM_BELOW, APPROACHING_FROM_ABOVE, AT_MAGNET, MOVING_AWAY
vol_surface_confirmationstringalphacollapse

Is the vol surface confirming or denying the GEX structure?

Combines price approach direction with IV momentum to produce a confirmation verdict. STRONG_RESISTANCE: approaching + IV crushing = wall holds, fade the move. BREAKOUT_PRESSURE: approaching + IV surging = wall may break. PINNING_CONFIRMED: at magnet + IV flat = classic pin. PINNING_UNSTABLE: at magnet + IV rising = breakout imminent. This is the difference between a map and a weather report.

RangeSTRONG_RESISTANCE, RESISTANCE, BREAKOUT_PRESSURE, STRONG_SUPPORT, SUPPORT, BREAKDOWN_PRESSURE, PINNING_CONFIRMED, PINNING_UNSTABLE, PINNING_REINFORCED, DETACHED

ORIA uses this to

Candidate feature for Pin Score logistic regression after calibration against 100+ outcomes.

vol_confirmation_scoreintegeralphacollapse

Numeric score of vol surface confirmation (0-100)

Numeric mapping of vol_surface_confirmation to a 0-100 scale. Above 50 = vol surface confirms GEX wall/pin. Below 50 = vol surface disconfirms. 50 = neutral/detached. Exact mapping values are proprietary.

Range0-100. Above 50 = confirms. Below 50 = disconfirms.
skew_confirmationstringalphacollapse

Does the broad skew surface confirm or deny the GEX narrative?

Cross-reads ORIA risk reversal dynamics with spot direction. SKEW_CONFIRMS_RALLY: RR rising + spot rising = options market agrees with rally. SKEW_DENIES_RALLY: RR flat/falling + spot rising = options market skeptical. SKEW_REGIME_SHIFT: rapid steepening/flattening overrides all other signals. The fourth layer of the confirmation matrix.

RangeSKEW_CONFIRMS_RALLY, SKEW_DENIES_RALLY, SKEW_CONFIRMS_SELLOFF, SKEW_DENIES_SELLOFF, SKEW_REGIME_SHIFT, SKEW_NEUTRAL

ORIA uses this to

Reads ORIA cohort_iv_skew risk_reversal_25d_pct and skew_velocity_regime. The GEX-ORIA cross-system bridge.

gamma_regimestringprocollapse

Are dealers stabilizing or amplifying price right now?

Regime classification based on spot position relative to gamma flip level. POSITIVE_GAMMA: spot above flip, dealers buy dips and sell rips (stabilizing, pinning). NEGATIVE_GAMMA: spot below flip, dealers sell dips and buy rips (destabilizing, trending). NEAR_FLIP: close to flip level (transition zone, highly volatile). NO_FLIP: cumulative GEX never crosses zero. This is arguably more important than the exact GEX at any single strike.

RangePOSITIVE_GAMMA, NEGATIVE_GAMMA, NEAR_FLIP, NO_FLIP
coinbase_scenariostringalphacollapse

Scenario classification combining regime, structure, and flow

Combines gamma regime, wall positioning, vol surface confirmation, and flow data into a scenario label per the Coinbase GEX framework. 5 active scenarios: REJECTION_AT_RESISTANCE, BREAKOUT_CONTINUATION, REGIME_SHIFT_DOWN, PINNING_RANGE, GAMMA_TRANSITION. NULL when gamma_regime not available. CASCADE_REVERSAL removed in v3.6 (liquidation dormant on Deribit).

RangeREJECTION_AT_RESISTANCE, BREAKOUT_CONTINUATION, REGIME_SHIFT_DOWN, PINNING_RANGE, GAMMA_TRANSITION
scenario_confidencefloatalphacollapse

Confidence in scenario classification (0-100)

How strongly the data supports the detected scenario. Based on gamma regime clarity, vol confirmation alignment, and data completeness. Low confidence = multiple scenarios plausible.

Range0-100.

Suggested Calculations

Not included in the API response. Compute these client-side from the fields above. Formulas and context provided.

FieldTypeInputsexpand all
magnet_convergence_ratefloatclient-sideWill price reach the magnet before expiry?expand

Will price reach the magnet before expiry?

Divide distance_pct by hours_to_expiry. This tells you how fast spot needs to move (pct per hour) to converge to the magnetic strike by expiry. If BTC needs to move 0.5 pct in 24 hours, that is normal drift. If it needs 2 pct in 3 hours, it needs a catalyst. Low convergence rate + price_in_pinning_zone = high probability pin.

Inputsmagnetic_strike_1_distance_pcthours_to_expiry

Pct per hour needed

convergence_rate=distance_pcthours_to_expiry\text{convergence\_rate} = \frac{|\text{distance\_pct}|}{\text{hours\_to\_expiry}}
Range0 to ~1. Below 0.05 = easy convergence. Above 0.2 = needs catalyst.
magnet_vs_max_pain_deltafloatclient-sideDo gamma and OI agree on where price should settle?expand

Do gamma and OI agree on where price should settle?

Compare our magnetic_strike_1 (gamma-weighted) with max_pain_strike (OI-weighted). Small delta = high confidence, both methods agree. Large delta = investigate why they diverge. Our magnetic strike is the better predictor because it accounts for gamma concentration (how sharply dealers need to hedge), not just raw open interest. But when both agree, conviction doubles.

Inputsmagnetic_strike_1max_pain_strikeunderlying_price

Distance as pct of spot

delta=magnetic_strikemax_painunderlying_price×100\text{delta} = \frac{|\text{magnetic\_strike} - \text{max\_pain}|}{\text{underlying\_price}} \times 100
Range0 to ~10. Below 1 = strong agreement. Above 5 = significant divergence.
simple_pin_checkstringclient-sideThe 3-question pinning checklist for beginnersexpand

The 3-question pinning checklist for beginners

Ask three questions: (1) Is price_in_pinning_zone TRUE? (2) Is distance to magnet < 1 pct? (3) Is hours_to_expiry < 24? If all three are yes, pinning conditions are active: the market is likely to stay near the magnetic strike until expiry. This is the simplest useful output from the pinning intelligence. Pro adds the structural context (zone width, breakout levels). Alpha adds confidence scoring.

Inputsmagnetic_strike_1underlying_priceprice_in_pinning_zonehours_to_expiry
breakout_risk_assessmentstringclient-sideHow close is price to breaking out of the pinning zone?expand

How close is price to breaking out of the pinning zone?

Compute distance to upper and lower breakout levels. Narrow pinning zone (width < 1 pct) = fragile pin, small move breaks it. Wide zone (> 3 pct) = robust pin. If price is closer to a breakout level than to the magnet, the pin is at risk. Combine with gamma_regime: breakout in negative gamma territory cascades.

Inputsupper_breakout_levellower_breakout_levelunderlying_pricepinning_zone_width_pct
four_layer_confirmationstringclient-sideThe 4-Layer Confirmation Matrix: maximum conviction signalexpand

The 4-Layer Confirmation Matrix: maximum conviction signal

Combine all four intelligence layers to produce a conviction reading. Layer 1 (GEX Structure): stability/persistence scores. Layer 2 (IV Momentum): is vol at the magnet rising or falling? Layer 3 (Vol Cross-Read): does the price-IV relationship confirm? Layer 4 (Skew): does the broad options surface agree? All four aligned = maximum conviction. Conflicting layers = reduce size or wait.

Inputsstability_scoremagnet_iv_momentumvol_surface_confirmationskew_confirmation
hit_rate_analysisfloatclient-sideHistorical accuracy of pinning predictionsexpand

Historical accuracy of pinning predictions

Track how often the magnetic strike was within 2 pct of settlement price. Requires collecting outcomes over time. This is the credibility foundation of the entire GEX system.

Or use the pre-computed endpointalpha

Pre-computed at /v1/gex/outcomes with outcome_accuracy classification (HIT_EXACT, HIT_CLOSE, HIT_ZONE, MISS_NEAR, MISS_FAR) across 4 lookback windows.