REST API

Price and volume

From the candle to the tick: what the market printed, before any interpretation. OHLCV candles come from a single price reference; everything else is aggregated across all venues.

#OHLCV candles

GET/v1/raw/klinesdata_type · raw_klines
GET/v1/raw/klines/{interval}data_type · raw_klines_<interval>

Minute candles for the first route, multi-timeframe for the second: 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w. An interval off the list returns 422.

ParameterTypeDefaultDescription
symbolstringrequiredThe asset.
limitinteger60 · 100Number of candles, from 1 to 1000. The default is 60 on the minute route, 100 on the multi-timeframe route.
curl
curl -H "X-API-KEY: $BYTNODE_KEY" \
  "https://api.bytnode.com/v1/raw/klines/1h?symbol=BTCUSDT&limit=100"
FieldTypeDescription
timestampstringStart of the candle, ISO 8601.
open, high, low, closefloatThe four prices.
volumefloatTotal volume, in units of the base asset.
taker_buyfloatVolume executed as a market buy.
taker_sellfloatVolume executed as a market sell.

#Price change

GET/v1/price-changedata_type · price_change

The percentage change over the eight timeframes, computed on demand against the price one minute, five minutes, one hour, one week ago. A timeframe whose history is missing is null, never an error.

Response
{
  "status": "ok",
  "data_type": "price_change",
  "data": {
    "symbol": "BTCUSDT",
    "price": 71420.83,
    "timestamp": "2026-08-29T11:38:00+00:00",
    "changes": {
      "1m": 0.02, "5m": -0.11, "15m": -0.31, "30m": -0.44,
      "1h": 0.15, "4h": 1.02, "1d": -2.31, "1w": 5.60
    }
  }
}

This is one of the few routes served for stablecoins: it then falls back on the spot ticks.

#Aggregated trades

GET/v1/raw/tradesdata_type · raw_trades

One row per second, summed across all venues. The limit parameter therefore counts seconds, not trades.

FieldTypeDescription
timestampstringThe second concerned.
total_volumefloatTotal volume, summed across venues.
trade_countintegerNumber of trades, summed across venues.
taker_buy_volfloatMarket buy volume.
taker_sell_volfloatMarket sell volume.
GET/v1/raw/taker-combineddata_type · raw_taker_combined

The same buy/sell split, but per minute: this is the directional-pressure measure at macro scale. limit counts minutes, from 1 to 1000.

#Ticks and large orders

GET/v1/raw/spot-ticksdata_type · raw_spot_ticks
GET/v1/raw/futures-ticksdata_type · raw_futures_ticks

Individual trades, one per row, all venues combined and with no source label. limit ranges from 1 to 10,000.

FieldTypeDescription
timestampstringTimestamp of the trade.
sidestringbuy or sell: the side of the liquidity taker.
pricefloatExecution price.
quantityfloatSize, in units of the base asset.
usd_valuefloatValue in dollars.
GET/v1/raw/trades/largedata_type · raw_trades_large

The same futures stream, filtered by size: tape reading, to spot the orders that matter.

ParameterTypeDefaultDescription
symbolstringrequiredThe asset.
min_usdfloat100000Minimum amount in dollars. Floor at 1000.
limitinteger50Number of events, from 1 to 1000.
curl
# The last fifty orders above $250,000
curl -H "X-API-KEY: $BYTNODE_KEY" \
  "https://api.bytnode.com/v1/raw/trades/large?symbol=BTCUSDT&min_usd=250000&limit=50"

#Trade candles

GET/v1/tradesdata_type · trades_candle_<tf>
GET/v1/trades/spotdata_type · trades_candle_spot_<tf>
GET/v1/trades/futuredata_type · trades_candle_future_<tf>

Candles built on trades rather than on price: they say how many orders went through, in which direction and for what amount. Always aggregated across all venues, so the exchange field is always combined.

Each route has its history: /v1/trades/history, /v1/trades/spot/history, /v1/trades/future/history.

ParameterTypeDefaultDescription
symbolstringrequiredThe asset.
timeframestringrequired1m, 5m, 15m, 30m, 1h, 4h, 1d. Missing or invalid: 422.
livebooleanfalseOn latest-value routes only: exposes the candle in formation.
limitinteger100On /history routes, from 1 to 1000. These histories do not accept a dated window.
curl
# The 5-minute trade candle in progress
curl -H "X-API-KEY: $BYTNODE_KEY" \
  "https://api.bytnode.com/v1/trades?symbol=BTCUSDT&timeframe=5m&live=1"
FieldTypeDescription
bucketstringStart of the candle, ISO 8601.
exchangestringAlways combined.
trades_countintegerNumber of trades over the window.
trades_count_buy / trades_count_sellintegerDirectional breakdown of the trade count.
trade_count_domintegerBuys minus sells, in number of trades.
trades_avgfloat | nullAverage amount in dollars per trade.
trade_avg_buy / trade_avg_sellfloat | nullAverage amount on the buy side and on the sell side.
trade_volumefloatTotal volume in dollars.
trade_volume_buy / trade_volume_sellfloatBuy and sell volume in dollars.
volume_deltafloatBuy volume minus sell volume, in dollars.
trade_ratefloatTrades per second: the count divided by the duration of the timeframe, including on a candle in formation, so that the definition stays the same.
is_closedbooleanFalse only on a candle in formation.

On a stablecoin

/v1/trades and /v1/trades/spot stay fed, since a stablecoin has a spot market. /v1/trades/future returns an empty list.