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

Trades

Futures trades

Returns executed futures and perpetual trades from Deribit's public trade tape. Each row is one trade with the aggressor direction, USD-normalized value, size classification, contract type (perpetual vs dated future), liquidation markers for cascade detection, block trade flags for institutional flow, and execution slippage. Mirrors the options trades endpoint for cross-instrument analysis. Liquidation data from this table feeds the GEX pipeline cascade detection (currently DORMANT on Deribit due to portfolio margin, retained for future Binance/Bybit integration).

GET/v1/trades/futuresproalpha

Query Parameters

coinstringrequired

Underlying asset. Required.

e.g.BTCETHSOL
directionstringoptional

Filter: buy or sell.

e.g.buysell
contract_typestringoptional

Filter: perpetual or future.

e.g.perpetualfuture
size_bucketstringoptional

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

e.g.WHALE
instrument_idstringoptional

Filter by instrument_id (TEXT, e.g. BTC-PERPETUAL).

e.g.BTC-PERPETUAL
blocks_onlybooleanoptional

Only block (institutional) trades.

e.g.true
liquidations_onlybooleanoptional

Only liquidation trades (M/T/MT).

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. For ordering and gap detection.
coinstringproUnderlying asset (BTC, ETH, SOL, XRP, AVAX, TRX).
instrument_idstringproInstrument identifier (TEXT, e.g. BTC-PERPETUAL, SOL_USDC-28MAR26). Same as instrument_name for futures.
instrument_namestringproDeribit instrument name. Identical to instrument_id for futures (kept for API consistency with options trades).
trade_timestampdatetimeproActual execution time from Deribit (millisecond precision).
cycle_timestampdatetimeproORIA cycle timestamp (aligned to 10-min grid).
directionstringproTrade aggressor: buy = buyer lifted the ask, sell = seller hit the bid.
amountfloatproNumber of contracts. Inverse futures (BTC, ETH): amount is in USD. Linear futures (SOL, XRP, AVAX, TRX): amount is in coin units.
pricefloatproExecution price.
index_pricefloatproSpot index price at time of trade.
mark_pricefloatproMark 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), M (maker liquidated), T (taker liquidated), MT (both). Feeds GEX pipeline cascade detection. Rare on Deribit (portfolio margin) but critical signal when it occurs.
block_trade_idstringalphaNon-null = institutional block trade. Reliable whale signal.
contract_typestringproperpetual or future. BTC/ETH have both (inverse + USDC perpetuals, 8 dated futures). SOL/XRP/AVAX/TRX are perpetual-only.
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
See detail ↓

Derived Fields

FieldTypeTiercollapse all
trade_value_usdfloatprocollapse

Trade value normalized to USD

For inverse futures (BTC, ETH): the amount field is already in USD, so trade_value_usd = amount. For linear/USDC futures (SOL, XRP, AVAX, TRX): amount * index_price * contract_size. This asymmetry is a Deribit convention that our pipeline normalizes away.

USD normalization (inverse vs linear)

trade_value_usd={amountinverse (BTC, ETH)amount×index_price×contract_sizelinear (SOL, XRP, ...)\text{trade\_value\_usd} = \begin{cases} \text{amount} & \text{inverse (BTC, ETH)} \\ \text{amount} \times \text{index\_price} \times \text{contract\_size} & \text{linear (SOL, XRP, ...)} \end{cases}
trade_size_bucketstringprocollapse

Size classification: WHALE through MICRO

Same USD thresholds as options trades. WHALE: >= $250K. LARGE: >= $50K. MEDIUM: >= $10K. SMALL: >= $1K. MICRO: < $1K. Generated column in PostgreSQL.

USD-based size thresholds (same as options)

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

How far the execution deviated from fair value. Positive = paid premium (aggressive buyer). Negative = got discount (desperate seller). In futures, large negative slippage during liquidation events is the clearest capitulation signal.

Execution slippage

slippage=pricemark_pricemark_price\text{slippage} = \frac{\text{price} - \text{mark\_price}}{\text{mark\_price}}
RangeTypically -0.02 to +0.02. Perpetuals tighter than dated futures.

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-sideAre more traders buying or selling futures?expand

Are more traders buying or selling futures?

Count buys vs sells. In futures, this is even more important than in options because futures are pure directional bets (no optionality). A sustained 65/35 buy/sell split on BTC perpetuals means leveraged longs are entering aggressively. Count-based is the simpler signal; USD-weighted is more accurate but this catches the big moves.

Inputsdirection
perp_activity_monitorstringclient-sideWhen is the perpetual market most active?expand

When is the perpetual market most active?

Filter to contract_type = perpetual, group by hour. Crypto futures trade 24/7 but activity peaks during US market hours (14:00-21:00 UTC) and Asian hours (01:00-08:00 UTC). Knowing the activity rhythm helps you distinguish "normal Tuesday afternoon" from "something is happening." A spike at an unusual hour is a signal.

Inputstrade_timestampcontract_type
price_vs_index_spreadfloatclient-sideIs the futures price above or below spot? The basis tells you sentiment.expand

Is the futures price above or below spot? The basis tells you sentiment.

For perpetuals: price - index_price = the basis. Positive basis = futures premium (bullish, longs pay funding). Negative = futures discount (bearish, shorts pay funding). For dated futures: a larger positive basis implies higher implied funding rate / carry. This is fundamental to futures trading and available entirely at Pro tier.

Inputspriceindex_pricecontract_type

Futures basis (spot premium/discount)

basis=priceindex_price\text{basis} = \text{price} - \text{index\_price}
perp_vs_futures_flowstringclient-sideAre perpetual and dated futures flows agreeing?expand

Are perpetual and dated futures flows agreeing?

Compute buy pressure separately for perpetuals and dated futures. Divergence is a signal: aggressive perp buying + dated futures selling = short-term bullish, longer-term hedging. Requires filtering by contract_type and computing buy_pressure per group.

Inputscontract_typedirectiontrade_value_usd

Perpetual vs dated flow divergence

Δflow=buy_pressureperpbuy_pressuredated\Delta_{\text{flow}} = \text{buy\_pressure}_{\text{perp}} - \text{buy\_pressure}_{\text{dated}}
Range-1 to +1. Positive = perps more bullish than dated. Negative = opposite.
funding_rate_trade_alignmentfloatclient-sideIs trade flow consistent with the funding rate direction?expand

Is trade flow consistent with the funding rate direction?

Compare buy pressure from this endpoint with the funding rate from /v1/marketdata/futures. Positive funding (longs pay shorts) combined with aggressive buying = crowded long. Positive funding + aggressive selling = smart money fading the crowd.

Inputsdirectiontrade_value_usd

Or use the pre-computed endpointalpha

Funding rate available at /v1/marketdata/futures in the funding_rate and funding_8h fields.

liquidation_cluster_detectionbooleanclient-sideDetect cascading liquidation eventsexpand

Detect cascading liquidation events

Filter to liquidation IS NOT NULL trades, aggregate count and USD volume in rolling 1h windows. Clusters of 5+ liquidations or $100K+ liquidation volume in one hour = capitulation event. Combine with gamma regime from /v1/gex/pinning: liquidations in negative gamma territory cascade (dealers amplify), in positive gamma territory they are absorbed.

Inputsliquidationtrade_value_usdtrade_timestamp

Or use the pre-computed endpointalpha

Pre-computed liquidation cluster detection (currently DORMANT) at /v1/gex/pinning. Will activate with Binance/Bybit integration.