Versioning and migration
How the contract is numbered, how your code can tell that it moved, and every name retired since 2026-10-09 with what replaces it — generated from the contract itself, so this page cannot forget one.
#Version numbers
The URL prefix /v1 is the generation of the API. The contract version is the info.version of openapi.json, in semantic versioning: a minor increment adds (a route, a field, a parameter, an accepted value), a major increment removes, renames or changes a meaning. The current contract is 2.0.0.
Adding routes, fields or parameters is not a breaking change: write your client so that it ignores unknown fields. What counts as breaking, and the notice by plan before it takes effect, is on the Changelog.
#Detecting a change
- Every response carries the contract version in the
BytNode-Contract-Versionheader, andGET https://api.bytnode.com/incontract_version: compare it with the version your client was written for. - The contract lists every retired name with its replacement in
x-renamed, and the date each route, parameter and snapshot field was removed inx-removed-on: both are machine-readable. - A retired name never fails silently: the route answers
404, the parameter or snapshot field422, the WebSocket channel anop: error— each with a message that names the replacement and the date.
#Moving to contract 2.0.0
Contract 2.0.0 (2026-10-12) numbers the renamings published from 2026-10-09 to 2026-10-12 under 1.2.0. The tables below are read from the contract; the left column is the old name, the right one what to use now (— = removed without replacement).
Retired routes
| Old | Now | Removed on |
|---|---|---|
/v1/ls-ratio | — | 2026-10-01 |
/v1/ls-ratio/history | — | 2026-10-01 |
/v1/options/iv/history | /v1/options/iv/klines | 2026-10-11 |
/v1/orderbook/aggregated | /v1/orderbook | 2026-10-12 |
/v1/orderbook/aggregated/history | /v1/orderbook/history | 2026-10-12 |
/v1/raw/futures-ticks | /v1/trades/futures | 2026-10-11 |
/v1/raw/klines | /v1/klines?timeframe=1m | 2026-10-11 |
/v1/raw/klines/15m | /v1/klines?timeframe=15m | 2026-10-11 |
/v1/raw/klines/1d | /v1/klines?timeframe=1d | 2026-10-11 |
/v1/raw/klines/1h | /v1/klines?timeframe=1h | 2026-10-11 |
/v1/raw/klines/1m | /v1/klines?timeframe=1m | 2026-10-11 |
/v1/raw/klines/1w | /v1/klines?timeframe=1w | 2026-10-11 |
/v1/raw/klines/30m | /v1/klines?timeframe=30m | 2026-10-11 |
/v1/raw/klines/4h | /v1/klines?timeframe=4h | 2026-10-11 |
/v1/raw/klines/5m | /v1/klines?timeframe=5m | 2026-10-11 |
/v1/raw/liquidations | /v1/liquidations/events | 2026-10-11 |
/v1/raw/oi | /v1/oi/history?timeframe=1m | 2026-10-11 |
/v1/raw/orderbook | /v1/orderbook/futures?timeframe=1m | 2026-10-10 |
/v1/raw/spot-ticks | /v1/trades/spot | 2026-10-11 |
/v1/raw/taker-combined | /v1/cvd/futures/history | 2026-10-10 |
/v1/raw/taker-futures | /v1/cvd/futures/history | 2026-10-11 |
/v1/raw/trades | /v1/trades-kline/futures/seconds | 2026-10-11 |
/v1/raw/trades/large | /v1/trades/large | 2026-10-11 |
/v1/ticks/futures | /v1/trades/futures | 2026-10-12 |
/v1/ticks/large | /v1/trades/large | 2026-10-12 |
/v1/ticks/spot | /v1/trades/spot | 2026-10-12 |
/v1/trades | /v1/trades-kline | 2026-10-12 |
/v1/trades/future | /v1/trades-kline/futures | 2026-10-09 |
/v1/trades/future/history | /v1/trades-kline/futures/history | 2026-10-09 |
/v1/trades/futures/history | /v1/trades-kline/futures/history | 2026-10-12 |
/v1/trades/futures/seconds | /v1/trades-kline/futures/seconds | 2026-10-12 |
/v1/trades/history | /v1/trades-kline/history | 2026-10-12 |
/v1/trades/spot/history | /v1/trades-kline/spot/history | 2026-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 |
Retired parameters
| Old | Now | Removed on |
|---|---|---|
market | moved 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/orderbook | 2026-10-12 |
timePeriod | was removed on 2026-10-11: bound the history with since_ms / until_ms (epoch milliseconds) and limit, like every other history | 2026-10-11 |
Renamed snapshot fields
| Old | Now | Removed on |
|---|---|---|
funding_rate_8h | funding_rate | |
futures_ticks | trades_futures | 2026-10-11 |
global_market | global | 2026-10-12 |
heatmap | heatmap_clusters | |
klines_15m | klines@15m | 2026-10-11 |
klines_1d | klines@1d | 2026-10-11 |
klines_1h | klines@1h | 2026-10-11 |
klines_1m | klines@1m | 2026-10-11 |
klines_1w | klines@1w | 2026-10-11 |
klines_30m | klines@30m | 2026-10-11 |
klines_4h | klines@4h | 2026-10-11 |
klines_5m | klines@5m | 2026-10-11 |
liq_cumulative | liquidations_cumulative | |
liq_ratio | liquidations_ratio | |
liquidations | liquidations_events | 2026-10-11 |
net_liquidity | macro_net_liquidity | |
oi_snapshots | — | |
options | options_summary | |
orderbook_aggregated | orderbook | 2026-10-12 |
raw_trades | trades_kline_futures_seconds | 2026-10-11 |
spot_ticks | trades_spot | 2026-10-11 |
taker_futures | — | |
ticks_futures | trades_futures | 2026-10-12 |
ticks_spot | trades_spot | 2026-10-12 |
trade | trades_kline | |
trade_futures | trades_kline_futures | |
trade_size | trades_avg_size | |
trade_spot | trades_kline_spot | |
trades | trades_kline | 2026-10-12 |
trades_futures_seconds | trades_kline_futures_seconds | 2026-10-12 |
trades_raw | trades_kline_futures_seconds | |
vwap | — | |
vwap_window | — |
Renamed response fields
Response fields were renamed between 2026-10-09 and 2026-10-12, without one date per field. A field renamed on some routes only is listed with its route in x-renamed.fields_by_route.
| Old | Now |
|---|---|
active_cryptocurrencies | active_cryptocurrency_count |
age_seconds | age_s |
asks_qty | asks_quantity |
available_signals | available_signal_count |
avg_30d | active_addresses_sma_30d |
avg_7d | active_addresses_sma_7d |
avg_size | avg_trade_size |
bids_qty | bids_quantity |
call_coin | oi_call |
call_oi_usd | oi_call_usd |
congestion | label |
cumulative_rate_pct | rolling_24h_rate_pct |
delta_call_usd | oi_change_call_usd |
delta_put_usd | oi_change_put_usd |
delta_total_usd | oi_change_total_usd |
depth_start | history_start_date |
dist_down | dist_down_ratio |
dist_up | dist_up_ratio |
estimated_retarget | estimated_retarget_at |
eth_btc_ratio | eth_price_btc |
exchange_count | — |
expected_interval_seconds | expected_interval_s |
fdv | fdv_usd |
feeds_checked | feed_count |
feeds_in_error | error_feed_count |
feeds_stale | stale_feed_count |
filed | filed_date |
gas_ma30_gwei | gas_sma_30d_gwei |
gas_ma7_gwei | gas_sma_7d_gwei |
gold_7d_ago | gold_7d_ago_usd |
holdings_estimated | is_holdings_estimated |
imbalance | imbalance_ratio |
last_candle | last_candle_at |
market_cap | market_cap_usd |
max_age_seconds | max_age_s |
max_pain_strike | max_pain_strike_usd |
momentum_30d_pct | change_30d_pct |
momentum_7d_pct | change_7d_pct |
nav_per_share | nav_per_share_usd |
net_delta | net_volume |
oi_current | oi |
oi_total | oi |
pc_label | put_call_label |
pc_ratio | put_call_ratio |
pc_signal | put_call_label |
points | sample_count |
points_count | sample_count |
price_time | priced_at |
put_coin | oi_put |
put_oi_usd | oi_put_usd |
regime | label |
remaining_blocks | remaining_block_count |
remaining_time_ms | remaining_s |
revenue_per_difficulty_ma30_usd | revenue_per_difficulty_sma_30d_usd |
risk_on | is_risk_on |
risk_on_signals | risk_on_signal_count |
roc_pct | change_pct |
sources_active | — |
sp500_sma50 | sp500_sma_50d |
stale_venues | stale_venue_count |
strike | strike_usd |
taker_buy | buy_volume |
taker_buy_vol | buy_volume |
taker_buy_volume | buy_volume |
taker_sell | sell_volume |
taker_sell_vol | sell_volume |
taker_sell_volume | sell_volume |
threshold_seconds | threshold_s |
top_call_strike | top_call_strike_usd |
top_put_strike | top_put_strike_usd |
total_signals | signal_count |
total_volume | volume |
trade_volume | volume |
trade_volume_buy | buy_volume |
trade_volume_sell | sell_volume |
trades_avg | avg_trade_size |
trades_count | trade_count |
trend_30d_pct | defi_health_change_30d_pct |
underlying_price | underlying_price_usd |
usd_value | value_usd |
value_classification | label |
venue_count | — |
venues_expected | — |
volume_combined | volume |
volume_delta | net_volume |
volume_estimated | is_volume_estimated |
volume_futures_estimated | is_volume_futures_estimated |
volume_total | volume |
window_count | sample_count |
yield_curve_10y2y | yield_curve_10y2y_pp |
zone | label |
WebSocket
| Old | Now |
|---|---|
book.perp.<SYMBOL> | book.futures.<SYMBOL> |
spread_bps_avg | avg_spread_bps |
time (frame root) | server_time |
usd_value | value_usd |
Envelope and error body
| Old | Now | Removed on |
|---|---|---|
detail | error.message | 2026-10-11 |
timestamp | server_time | 2026-10-11 |
Time key of the rows
| Old | Now | Removed on |
|---|---|---|
bucket | time | 2026-10-09 |
timestamp | time | 2026-10-09 |