API

Versions et migration

Comment le contrat est numéroté, comment votre code peut savoir qu’il a bougé, et chaque nom retiré depuis le 2026-10-09 avec ce qui le remplace — généré depuis le contrat lui-même, pour que cette page ne puisse en oublier aucun.

#Les numéros de version

Le préfixe /v1 des URL est la génération de l’API. La version du contrat est le info.version d’openapi.json, en versionnage sémantique : une version mineure ajoute (une route, un champ, un paramètre, une valeur acceptée), une version majeure retire, renomme ou change un sens. Le contrat courant est 2.0.0.

Ajouter des routes, des champs ou des paramètres n’est pas un changement cassant : écrivez votre client pour qu’il ignore les champs inconnus. Ce qui est cassant, et le préavis par offre avant qu’il ne s’applique, sont sur le Journal des changements.

#Détecter un changement

  • Chaque réponse porte la version du contrat dans l’en-tête BytNode-Contract-Version, et GET https://api.bytnode.com/ dans contract_version : comparez-la à la version pour laquelle votre client a été écrit.
  • Le contrat liste chaque nom retiré avec son remplaçant dans x-renamed, et la date de retrait de chaque route, paramètre et champ du snapshot dans x-removed-on : les deux se lisent par programme.
  • Un nom retiré n’échoue jamais en silence : la route répond 404, le paramètre ou le champ du snapshot 422, le canal WebSocket une op: error — chacun avec un message qui nomme le remplaçant et la date.

#Passer au contrat 2.0.0

Le contrat 2.0.0 (2026-10-12) numérote les renommages publiés du 2026-10-09 au 2026-10-12 sous 1.2.0. Les tables ci-dessous sont lues dans le contrat ; la colonne de gauche est l’ancien nom, celle de droite ce qu’il faut utiliser (— = retiré sans remplaçant).

Routes retirées

AncienMaintenantRetiré le
/v1/ls-ratio—2026-10-01
/v1/ls-ratio/history—2026-10-01
/v1/options/iv/history/v1/options/iv/klines2026-10-11
/v1/orderbook/aggregated/v1/orderbook2026-10-12
/v1/orderbook/aggregated/history/v1/orderbook/history2026-10-12
/v1/raw/futures-ticks/v1/trades/futures2026-10-11
/v1/raw/klines/v1/klines?timeframe=1m2026-10-11
/v1/raw/klines/15m/v1/klines?timeframe=15m2026-10-11
/v1/raw/klines/1d/v1/klines?timeframe=1d2026-10-11
/v1/raw/klines/1h/v1/klines?timeframe=1h2026-10-11
/v1/raw/klines/1m/v1/klines?timeframe=1m2026-10-11
/v1/raw/klines/1w/v1/klines?timeframe=1w2026-10-11
/v1/raw/klines/30m/v1/klines?timeframe=30m2026-10-11
/v1/raw/klines/4h/v1/klines?timeframe=4h2026-10-11
/v1/raw/klines/5m/v1/klines?timeframe=5m2026-10-11
/v1/raw/liquidations/v1/liquidations/events2026-10-11
/v1/raw/oi/v1/oi/history?timeframe=1m2026-10-11
/v1/raw/orderbook/v1/orderbook/futures?timeframe=1m2026-10-10
/v1/raw/spot-ticks/v1/trades/spot2026-10-11
/v1/raw/taker-combined/v1/cvd/futures/history2026-10-10
/v1/raw/taker-futures/v1/cvd/futures/history2026-10-11
/v1/raw/trades/v1/trades-kline/futures/seconds2026-10-11
/v1/raw/trades/large/v1/trades/large2026-10-11
/v1/ticks/futures/v1/trades/futures2026-10-12
/v1/ticks/large/v1/trades/large2026-10-12
/v1/ticks/spot/v1/trades/spot2026-10-12
/v1/trades/v1/trades-kline2026-10-12
/v1/trades/future/v1/trades-kline/futures2026-10-09
/v1/trades/future/history/v1/trades-kline/futures/history2026-10-09
/v1/trades/futures/history/v1/trades-kline/futures/history2026-10-12
/v1/trades/futures/seconds/v1/trades-kline/futures/seconds2026-10-12
/v1/trades/history/v1/trades-kline/history2026-10-12
/v1/trades/spot/history/v1/trades-kline/spot/history2026-10-12
/v1/vwap—2026-10-11
/v1/vwap/history—2026-10-11
/v1/vwap/window—2026-10-11
/v1/vwap/window/history—2026-10-11

Paramètres retirés

AncienMaintenantRetiré le
marketmoved to the path on 2026-10-12: /v1/cvd/spot, /v1/cvd/futures, and /v1/cvd (no suffix) for all markets combined; the same for /v1/buysell/ratio, /v1/trades/avg-size and /v1/orderbook2026-10-12
timePeriodwas removed on 2026-10-11: bound the history with since_ms / until_ms (epoch milliseconds) and limit, like every other history2026-10-11

Champs du snapshot renommés

AncienMaintenantRetiré le
funding_rate_8hfunding_rate
futures_tickstrades_futures2026-10-11
global_marketglobal2026-10-12
heatmapheatmap_clusters
klines_15mklines@15m2026-10-11
klines_1dklines@1d2026-10-11
klines_1hklines@1h2026-10-11
klines_1mklines@1m2026-10-11
klines_1wklines@1w2026-10-11
klines_30mklines@30m2026-10-11
klines_4hklines@4h2026-10-11
klines_5mklines@5m2026-10-11
liq_cumulativeliquidations_cumulative
liq_ratioliquidations_ratio
liquidationsliquidations_events2026-10-11
net_liquiditymacro_net_liquidity
oi_snapshots—
optionsoptions_summary
orderbook_aggregatedorderbook2026-10-12
raw_tradestrades_kline_futures_seconds2026-10-11
spot_tickstrades_spot2026-10-11
taker_futures—
ticks_futurestrades_futures2026-10-12
ticks_spottrades_spot2026-10-12
tradetrades_kline
trade_futurestrades_kline_futures
trade_sizetrades_avg_size
trade_spottrades_kline_spot
tradestrades_kline2026-10-12
trades_futures_secondstrades_kline_futures_seconds2026-10-12
trades_rawtrades_kline_futures_seconds
vwap—
vwap_window—

Champs de réponse renommés

Les champs de réponse ont été renommés entre le 2026-10-09 et le 2026-10-12, sans date par champ. Un champ renommé sur certaines routes seulement est listé avec sa route dans x-renamed.fields_by_route.

AncienMaintenant
active_cryptocurrenciesactive_cryptocurrency_count
age_secondsage_s
asks_qtyasks_quantity
available_signalsavailable_signal_count
avg_30dactive_addresses_sma_30d
avg_7dactive_addresses_sma_7d
avg_sizeavg_trade_size
bids_qtybids_quantity
call_coinoi_call
call_oi_usdoi_call_usd
congestionlabel
cumulative_rate_pctrolling_24h_rate_pct
delta_call_usdoi_change_call_usd
delta_put_usdoi_change_put_usd
delta_total_usdoi_change_total_usd
depth_starthistory_start_date
dist_downdist_down_ratio
dist_updist_up_ratio
estimated_retargetestimated_retarget_at
eth_btc_ratioeth_price_btc
exchange_count—
expected_interval_secondsexpected_interval_s
fdvfdv_usd
feeds_checkedfeed_count
feeds_in_errorerror_feed_count
feeds_stalestale_feed_count
filedfiled_date
gas_ma30_gweigas_sma_30d_gwei
gas_ma7_gweigas_sma_7d_gwei
gold_7d_agogold_7d_ago_usd
holdings_estimatedis_holdings_estimated
imbalanceimbalance_ratio
last_candlelast_candle_at
market_capmarket_cap_usd
max_age_secondsmax_age_s
max_pain_strikemax_pain_strike_usd
momentum_30d_pctchange_30d_pct
momentum_7d_pctchange_7d_pct
nav_per_sharenav_per_share_usd
net_deltanet_volume
oi_currentoi
oi_totaloi
pc_labelput_call_label
pc_ratioput_call_ratio
pc_signalput_call_label
pointssample_count
points_countsample_count
price_timepriced_at
put_coinoi_put
put_oi_usdoi_put_usd
regimelabel
remaining_blocksremaining_block_count
remaining_time_msremaining_s
revenue_per_difficulty_ma30_usdrevenue_per_difficulty_sma_30d_usd
risk_onis_risk_on
risk_on_signalsrisk_on_signal_count
roc_pctchange_pct
sources_active—
sp500_sma50sp500_sma_50d
stale_venuesstale_venue_count
strikestrike_usd
taker_buybuy_volume
taker_buy_volbuy_volume
taker_buy_volumebuy_volume
taker_sellsell_volume
taker_sell_volsell_volume
taker_sell_volumesell_volume
threshold_secondsthreshold_s
top_call_striketop_call_strike_usd
top_put_striketop_put_strike_usd
total_signalssignal_count
total_volumevolume
trade_volumevolume
trade_volume_buybuy_volume
trade_volume_sellsell_volume
trades_avgavg_trade_size
trades_counttrade_count
trend_30d_pctdefi_health_change_30d_pct
underlying_priceunderlying_price_usd
usd_valuevalue_usd
value_classificationlabel
venue_count—
venues_expected—
volume_combinedvolume
volume_deltanet_volume
volume_estimatedis_volume_estimated
volume_futures_estimatedis_volume_futures_estimated
volume_totalvolume
window_countsample_count
yield_curve_10y2yyield_curve_10y2y_pp
zonelabel

WebSocket

AncienMaintenant
book.perp.<SYMBOL>book.futures.<SYMBOL>
spread_bps_avgavg_spread_bps
time (frame root)server_time
usd_valuevalue_usd

Enveloppe et corps d’erreur

AncienMaintenantRetiré le
detailerror.message2026-10-11
timestampserver_time2026-10-11

Clé d’instant des lignes

AncienMaintenantRetiré le
buckettime2026-10-09
timestamptime2026-10-09