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

Trades

Option trades

Returns executed option trades from Deribit's public trade tape. Each row is one trade with the aggressor direction (buy = lifted ask, sell = hit bid), implied volatility at execution, USD-normalized value, size classification (MICRO through WHALE), combo and block trade flags for institutional flow detection, liquidation markers for capitulation events, and execution slippage. This is the raw signal that feeds our taker-flow corrected GEX and ORIA fingerprint systems. Direction is THE key field missing from order book snapshots.

GET/v1/trades/optionsproalpha

Query Parameters

coinstringrequired

Underlying asset. Required.

e.g.BTCETHSOL
directionstringoptional

Filter: buy or sell.

e.g.buysell
size_bucketstringoptional

Filter: WHALE, LARGE, MEDIUM, SMALL, MICRO.

e.g.WHALELARGE
instrument_idintegeroptional

Filter by instrument_id (integer PK).

e.g.4812
blocks_onlybooleanoptional

Only block (institutional) trades.

e.g.true
combos_onlybooleanoptional

Only combo (spread/straddle) legs.

e.g.true
fromstringoptional

Start UTC (ISO 8601). Default: last 24h.

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

End UTC (ISO 8601). Default: now.

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

Max rows returned. Default 100, max 5000.

e.g.500

Response Schema

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

FieldTypeTierDescription
trade_idstringproGlobally unique trade identifier from Deribit.
trade_seqintegeralphaSequential trade number within currency. Useful for ordering within batch and detecting data gaps.
coinstringproUnderlying asset (BTC, ETH, SOL, XRP, AVAX, TRX).
instrument_idintegerproInternal instrument PK. Join with /v1/instruments/options.
instrument_namestringproDeribit canonical name, e.g. BTC-28MAR26-80000-C.
trade_timestampdatetimeproActual execution time from Deribit (millisecond precision). Use for trade velocity and sub-10min analysis.
cycle_timestampdatetimeproORIA cycle timestamp (aligned to 10-min grid). Use for joining with ORIA pipeline tables and partition pruning.
directionstringproTrade aggressor: buy = buyer lifted the ask, sell = seller hit the bid. THE key signal for directional analysis. Not available from order book snapshots.
amountfloatproNumber of contracts traded (native crypto units).
pricefloatproExecution price (in base currency for inverse, USD for linear).
ivfloatproImplied volatility at time of trade. Key for IV momentum analysis: rising IV on buy = chase flow.
index_pricefloatproSpot price at time of trade.
mark_pricefloatproMark (theoretical fair) price at trade time. For execution quality analysis.
tick_directionintegeralphaPrice tick direction: 0=down, 1=up, 2=unchanged-down, 3=unchanged-up.
liquidationstringalphaLiquidation flag: NULL (normal trade), M (maker liquidated), T (taker liquidated), MT (both). Clusters of liquidations = capitulation event.
block_trade_idstringalphaNon-null = institutional block trade negotiated OTC and settled on Deribit. More reliable whale signal than size alone.
combo_idstringalphaCombo definition name (e.g. BTC-CALL-SPREAD-25JAN). Encodes the strategy structure. The most underappreciated field in Deribit public data.
combo_trade_idstringalphaLinks legs of the same combo execution. GROUP BY combo_trade_id to reconstruct multi-leg trades.
is_combo_legbooleanalphaTRUE if this trade is a combo leg. Exclude from directional analysis (opposing legs cancel). Count combos as 1 event for velocity.
trade_value_usdfloatproTrade value normalized to USD
See detail ↓
trade_size_bucketstringproSize classification: WHALE through MICRO
See detail ↓
execution_slippage_pctfloatalphaExecution quality: premium or discount vs mark price
See detail ↓

Derived Fields

FieldTypeTiercollapse all
trade_value_usdfloatprocollapse

Trade value normalized to USD

USD value of the trade: amount * index_price * contract_size. Contract multipliers vary by coin: BTC=1, ETH=1, SOL=10, AVAX=100, XRP=1000, TRX=10000. Computed at insert time by the Lambda. Required for cross-coin volume comparison and USD-based whale thresholds.

USD normalization

trade_value_usd=amount×index_price×contract_size\text{trade\_value\_usd} = \text{amount} \times \text{index\_price} \times \text{contract\_size}
trade_size_bucketstringprocollapse

Size classification: WHALE through MICRO

USD-based trade size classification. WHALE: >= $250K (institutional). LARGE: >= $50K (significant). MEDIUM: >= $10K (active trader). SMALL: >= $1K (retail). MICRO: < $1K (noise). Generated column in PostgreSQL. These thresholds feed into ORIA fingerprint generation.

USD-based size thresholds

bucket={WHALEif $250KLARGEif $50KMEDIUMif $10KSMALLif $1KMICROotherwise\text{bucket} = \begin{cases} \text{WHALE} & \text{if } \geq \$250\text{K} \\ \text{LARGE} & \text{if } \geq \$50\text{K} \\ \text{MEDIUM} & \text{if } \geq \$10\text{K} \\ \text{SMALL} & \text{if } \geq \$1\text{K} \\ \text{MICRO} & \text{otherwise} \end{cases}
RangeWHALE, LARGE, MEDIUM, SMALL, MICRO
execution_slippage_pctfloatalphacollapse

Execution quality: premium or discount vs mark price

How far the execution price deviated from the theoretical fair value. Positive = paid premium over mark (aggressive buyer, urgent entry). Negative = got discount (desperate seller, forced exit). Large negative slippage during liquidation events is a capitulation signal.

Execution slippage

slippage=pricemark_pricemark_price\text{slippage} = \frac{\text{price} - \text{mark\_price}}{\text{mark\_price}}
RangeTypically -0.05 to +0.05. Extremes during liquidation cascades.

Suggested Calculations

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

FieldTypeInputsexpand all
simple_buy_sell_countstringclient-sideThe simplest signal: are there more buys or sells?expand

The simplest signal: are there more buys or sells?

Count trades where direction = buy vs direction = sell. More buys = someone is lifting asks (aggressive demand). More sells = someone is hitting bids (aggressive supply). This is the most basic tape reading technique. It works because Deribit labels the aggressor, not just the trade side. In a balanced market, the count is roughly 50/50. Sustained imbalance above 60/40 precedes moves.

Inputsdirection
trade_count_per_minutefloatclient-sideHow active is the options market right now?expand

How active is the options market right now?

Count trades per minute over your time window. Crypto options are much less liquid than spot: 5-10 trades per minute is normal for BTC options, 1-2 for altcoins. Sudden acceleration to 30+ trades per minute means something is happening (news, liquidation cascade, large order being executed in clips). Compare to your historical baseline.

Inputstrade_timestamp
instrument_concentrationstringclient-sideWhich specific options are getting all the attention?expand

Which specific options are getting all the attention?

Group trades by instrument_name, sum amounts. If 80 pct of activity is in one strike/expiry, the market is making a very specific bet. The instrument name encodes strike and expiry (e.g. BTC-28MAR26-90000-C = BTC $90K call expiring Mar 28). Parse it to understand what people are betting on.

Inputsinstrument_nameamount
buy_pressure_ratiofloatclient-sideDirectional sentiment weighted by USD volumeexpand

Directional sentiment weighted by USD volume

Sum buy USD volume / total USD volume. Above 0.65 = AGGRESSIVE_BUYING. Below 0.35 = AGGRESSIVE_SELLING. Between 0.45 and 0.55 = NEUTRAL. Dollar-weighting matters because one $500K whale buy cancels out fifty $1K retail sells. The raw trade count gives equal weight to a $100 trade and a $500K trade.

Inputsdirectiontrade_value_usd

Dollar-weighted buy pressure

buy_pressure=buytrade_value_usdtrade_value_usd\text{buy\_pressure} = \frac{\sum_{\text{buy}} \text{trade\_value\_usd}}{\sum \text{trade\_value\_usd}}
Range0 to 1. Above 0.65 = aggressive buying. Below 0.35 = aggressive selling.
iv_on_trade_analysisstringclient-sideAre buyers paying up for vol or getting it cheap?expand

Are buyers paying up for vol or getting it cheap?

Compare average IV on buy trades vs sell trades. If buy-side IV is higher, buyers are chasing (willing to pay premium IV). If sell-side IV is higher, sellers are capitulating at poor prices. The spread between buy-IV and sell-IV is a microstructure signal for vol direction.

Inputsivdirectiontrade_value_usd
whale_flow_directionstringclient-sideAre whales buying or selling? Institutional flow direction.expand

Are whales buying or selling? Institutional flow direction.

Filter to WHALE + LARGE buckets and block trades, then compute buy pressure. Institutional flow direction often diverges from retail (the "smart money" signal). Combine with combo_id parsing to detect specific strategies (bull call spreads, protective puts, risk reversals).

Inputstrade_size_bucketblock_trade_iddirectiontrade_value_usd

Or use the pre-computed endpointalpha

Pre-computed with combo strategy parsing, block/screen split, flow migration, and short-vol crowding detection at /v1/flow/intelligence (coming soon).

liquidation_detectionstringclient-sideDetect forced liquidation cascadesexpand

Detect forced liquidation cascades

Filter for liquidation IS NOT NULL trades. Large slippage on liquidation trades = desperate exit. Clusters of 3+ liquidations within 10 minutes = cascade event. This is the purest capitulation signal in crypto options: someone was forced out, not choosing to exit.

Inputsliquidationtrade_value_usdexecution_slippage_pct