Données de marché

API de données de marché crypto

Les prix et volumes crypto en temps réel, dans une seule API : bougies OHLCV d’une minute à une semaine, variation de prix, transactions individuelles, bougies de transactions et gros ordres. Toutes les places sont déjà fusionnées et normalisées : inutile de brancher chaque exchange et de réconcilier leurs formats vous-même.

De la bougie au tick : ce que le marché a imprimé, avant toute interprétation. Volumes, transactions et ticks sont agrégés sur toutes les places.

#Données de marché crypto pour agents IA et LLM

Demandez à un agent IA branché sur BytNode « Comment BTC a-t-il bougé sur 24 heures ? », « Y a-t-il eu de gros ordres sur ETH ce matin ? » ou « Montre-moi les bougies horaires de SOL cette semaine » : il répond avec cette famille, par l’outil MCP get_pair_data, sans URL à construire.

MCP tools/call
L’appel d’outil MCP derrière la première question : 24 bougies horaires et la variation de prix de BTCUSDT.
{
  "name": "get_pair_data",
  "arguments": {
    "symbol": "BTCUSDT",
    "fields": ["klines", "price_change"],
    "timeframe": "1h",
    "limit": 24
  }
}
  • Pour le LLM : une bougie est datée par le début de sa fenêtre (time, UTC) — la bougie horaire de 14:00 couvre 14:00 à 15:00 —, et les lignes arrivent de la plus récente à la plus ancienne.
  • Pour les développeurs : vous construisez votre propre agent IA ? Exposez /v1/klines/history comme outil (tool calling) et le modèle va chercher les bougies seul, ou chargez les outils MCP et passez-vous d’adaptateur.
  • Où ça tourne : Claude, ChatGPT, Cursor et tout client MCP, y compris les frameworks d’agents qui parlent MCP, comme LangChain ou n8n.

Branchez votre agent IA avec le guide du serveur MCP, ou apprenez-lui BytNode avec les Agent Skills open source.

#Bougies OHLCV

GET/v1/klines/historydata_type · klines_historyRéférence complète
Les 18 champs de cette route (d’après le contrat)
timeISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z)Start of the bucket the row covers: a 1h bucket at 14:00 covers 14:00:00 to 14:59:59.999.
openquote currency (USDT for BTCUSDT)Opening price of the candle.
highquote currency (USDT for BTCUSDT)Highest price of the candle.
lowquote currency (USDT for BTCUSDT)Lowest price of the candle.
closequote currency (USDT for BTCUSDT)Closing price of the candle (last price for the open candle).
volumebase asset quantity (BTC for BTCUSDT)Traded volume over the row, base asset units (BTC for BTCUSDT, NOT dollars), aggregated across venues, over the market(s) the route covers: spot + perpetual futures on `/v1/klines` and `/v1/trades-kline`, the path's market alone on a `/spot` or `/futures` route (a name without a market suffix covers every market of its route; `volume_spot` / `volume_futures` restrict). `null` when a market is not available (never a partial sum).
buy_volumebase asset quantity (BTC for BTCUSDT)Aggressive (taker) buy volume, base asset units, aggregated across venues.
sell_volumebase asset quantity (BTC for BTCUSDT)Aggressive (taker) sell volume, base asset units, aggregated across venues.
is_volume_estimated`true` when some base-asset quantities of this row were ESTIMATED from USD amounts (history where a source reported amounts but not quantities): a buy or sell amount is converted at that source's own average price when its total quantity is known, otherwise at the candle's typical price (high + low + close) / 3. Every quantity a source measured is kept as is. `false` = all measured. `null` when the volume itself is `null` (not available).
volume_spotbase asset quantity (BTC for BTCUSDT)Volume traded on the SPOT market, summed across venues, base asset units. `null` while not available yet (never a partial sum).
buy_volume_spotbase asset quantity (BTC for BTCUSDT)Aggressive (taker) buy volume on the SPOT market, across venues.
sell_volume_spotbase asset quantity (BTC for BTCUSDT)Aggressive (taker) sell volume on the SPOT market, across venues.
is_volume_spot_estimated`true` when the spot quantities of this candle were ESTIMATED from USD amounts and the candle's typical price (high + low + close) / 3 (data written before quantities were recorded; mean error 0.04 % in 1m, 0.37 % in 1d); `false` = measured. `null` when the volume itself is `null` (not available).
volume_futuresbase asset quantity (BTC for BTCUSDT)Volume traded on PERPETUAL FUTURES, summed across venues, in base asset units. `null` when not available yet (never a partial sum).
buy_volume_futuresbase asset quantity (BTC for BTCUSDT)Aggressive (taker) buy volume on PERPETUAL FUTURES, across venues.
sell_volume_futuresbase asset quantity (BTC for BTCUSDT)Aggressive (taker) sell volume on PERPETUAL FUTURES, across venues.
is_volume_futures_estimated`true` when `volume_futures` was ESTIMATED from USD amounts and the candle's typical price; `false` = measured. `null` when the volume itself is `null` (not available).
is_closed`true` = the row is final; `false` = provisional: the latest bucket while it still settles (a few seconds after its end, e.g. a candle whose volumes are not final yet), or the period in progress with `?live=1` on the routes that take it. Exception, rare: when a venue delivers trades LATE (seconds to minutes, e.g. during a burst), a closed row built from trades (trade candles, candle volumes, CVD, buy/sell ratio, trades per second) is corrected afterwards to include them, usually within minutes and at most one hour later; the correction only adds the late trades.

Deux routes : /v1/klines rend la dernière bougie CLOSE (un objet ; ?live=1 pour la bougie en cours, is_closed: false), /v1/klines/history les bougies, de la plus récente à la plus ancienne (les paramètres ci-dessous). La taille de la bougie va dans timeframe, obligatoire : 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w. Absent ou hors liste : 422.

ParamètreTypeDéfautDescription
symbolstringobligatoireL’actif.
timeframestringobligatoireTaille de bougie : 1m, 5m, 15m, 30m, 1h, 4h, 1d ou 1w.
limitinteger100Nombre de bougies, de 1 à 1000.
since_ms / until_msinteger—Fenêtre datée, en millisecondes, appliquée avant limit.
curl
curl -H "X-API-KEY: $BYTNODE_API_KEY" \
  "https://api.bytnode.com/v1/klines/history?symbol=BTCUSDT&timeframe=1h&limit=100"
ChampTypeDescription
timestringDébut de la bougie, ISO 8601.
open, high, low, closefloatLes quatre prix.
volumefloatVolume de TOUS les marchés : spot plus futures perpétuels, toutes plateformes additionnées, en unités de l’actif de base (un nom sans suffixe de marché couvre tous les marchés). null si l’une des parts est inconnue ; sur un stablecoin, le volume spot.
buy_volume / sell_volumefloatVolume acheté et vendu au marché, tous marchés (spot + futures), en unités de l’actif de base. null si l’une des parts est inconnue.
is_volume_estimatedbooleanVrai quand le volume agrégé de la bougie a été reconstitué (historique ancien), faux quand il est mesuré.
volume_spotfloatVolume du marché spot, toutes plateformes additionnées, en unités de l'actif de base : buy_volume_spot + sell_volume_spot. null tant qu'il n'est pas définitif, ou s'il est inconnu.
buy_volume_spotfloatVolume exécuté en achat au marché sur le marché spot, toutes plateformes, en unités de l'actif de base.
sell_volume_spotfloatVolume exécuté en vente au marché sur le marché spot, toutes plateformes, en unités de l'actif de base.
is_volume_spot_estimatedbooleanVrai quand le volume agrégé de la bougie a été reconstitué (historique ancien), faux quand il est mesuré.
volume_futuresfloatVolume des futures perpétuels de la bougie, sommé sur les places, en unités de l’actif de base (null s’il est inconnu ; null sur un stablecoin, qui n’a pas de marché futures).
buy_volume_futures / sell_volume_futuresfloatVolume acheté et vendu au marché sur les futures perpétuels, toutes plateformes, en unités de l’actif de base.
is_closedbooleanSeules les bougies closes sont servies (jamais celle en cours). true dès que les volumes de la bougie sont définitifs, quelques secondes après sa clôture ; d’ici là ils peuvent valoir null.

#Variation de prix

GET/v1/price-changedata_type · price_changeRéférence complète
Les 11 champs de cette route (d’après le contrat)
timeISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z)Instant of the latest trade of the reference spot market (`price` is that trade's price, the close of `/v1/klines?live=1`); if it has not traded since the latest closed one-minute candle, the end of that candle (`price` = its close). Exception: USDTUSDC, which no spot candle source lists, gives the instant of its latest trade, `price` being the volume-weighted price of its last 90 seconds.
pricequote currency (USDT for BTCUSDT)Price.
changes_pctPrice change over each window, keyed by window (`1m` … `1w`), in percent.
changes_pct.1mpercentPrice change over the last 1m, in percent.
changes_pct.5mpercentPrice change over the last 5m, in percent.
changes_pct.15mpercentPrice change over the last 15m, in percent.
changes_pct.30mpercentPrice change over the last 30m, in percent.
changes_pct.1hpercentPrice change over the last 1h, in percent.
changes_pct.4hpercentPrice change over the last 4h, in percent.
changes_pct.1dpercentPrice change over the last 1d, in percent.
changes_pct.1wpercentPrice change over the last 1w, in percent.

La variation en pourcentage sur les huit unités de temps, calculée à la demande par rapport au prix d’il y a une minute, cinq minutes, une heure, une semaine. Une unité de temps dont l’historique manque vaut null, jamais une erreur.

Réponse
{
  "status": "ok",
  "server_time": "2026-10-10T08:51:08.454Z",
  "data_type": "price_change",
  "symbol": "BTCUSDT",
  "data": {
    "time": "2026-10-10T08:50:00.000Z",
    "price": 82818.72,
    "changes_pct": {
      "1m": 0.0201927489674, "5m": 0.0452759586592, "15m": -0.0102140384352,
      "30m": -0.0437873393277, "1h": 0.0500741326695, "4h": 0.18183489701,
      "1d": 0.240522875817, "1w": -2.15235074281
    }
  }
}

C’est l’une des rares routes servies pour les stablecoins : elle se replie alors sur les ticks spot.

#Transactions agrégées par seconde

GET/v1/trades-kline/futures/secondsdata_type · trades_kline_futures_secondsRéférence complète
Les 10 champs de cette route (d’après le contrat)
timeISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z)Start of the second the row covers.
volumebase asset quantity (BTC for BTCUSDT)Traded volume over the row, base asset units (BTC for BTCUSDT, NOT dollars), aggregated across venues, over the market(s) the route covers: spot + perpetual futures on `/v1/klines` and `/v1/trades-kline`, the path's market alone on a `/spot` or `/futures` route (a name without a market suffix covers every market of its route; `volume_spot` / `volume_futures` restrict). `null` when a market is not available (never a partial sum).
trade_countcountNumber of trades. `null` when the number is not known: history imported from an outside source carries the buy and sell volumes, not the trade count.
buy_volumebase asset quantity (BTC for BTCUSDT)Aggressive (taker) buy volume, base asset units, aggregated across venues.
sell_volumebase asset quantity (BTC for BTCUSDT)Aggressive (taker) sell volume, base asset units, aggregated across venues.
is_closed`true` = the row is final; `false` = provisional: the latest bucket while it still settles (a few seconds after its end, e.g. a candle whose volumes are not final yet), or the period in progress with `?live=1` on the routes that take it. Exception, rare: when a venue delivers trades LATE (seconds to minutes, e.g. during a burst), a closed row built from trades (trade candles, candle volumes, CVD, buy/sell ratio, trades per second) is corrected afterwards to include them, usually within minutes and at most one hour later; the correction only adds the late trades.
net_volumebase asset quantity (BTC for BTCUSDT)buy_volume - sell_volume over the row, base asset units. Positive = net buying.
avg_trade_sizebase asset quantity (BTC for BTCUSDT)Average trade size, base asset units (NOT dollars: multiply by the price for a notional).
trade_ratetrades per secondAverage number of trades per second over the bucket. `null` when `trade_count` is.
is_volume_estimated`true` when some base-asset quantities of this row were ESTIMATED from USD amounts (history where a source reported amounts but not quantities): a buy or sell amount is converted at that source's own average price when its total quantity is known, otherwise at the candle's typical price (high + low + close) / 3. Every quantity a source measured is kept as is. `false` = all measured. `null` when the volume itself is `null` (not available).

Une ligne par seconde, additionnée sur toutes les places. Le paramètre limit compte donc des secondes, pas des transactions.

ChampTypeDescription
timestringLa seconde concernée.
volumefloatVolume total, additionné sur les places.
trade_countintegerNombre de transactions, additionné sur les places.
buy_volumefloatVolume acheté au marché.
sell_volumefloatVolume vendu au marché.

La même répartition achat/vente par minute ou par bucket, pour les futures perpétuels, est le buy_volume / sell_volume de /v1/cvd/futures/history.

#Transactions individuelles et gros ordres

GET/v1/trades/spotdata_type · trades_spotRéférence complète
Les 6 champs de cette route (d’après le contrat)
timeISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z)Execution instant of the trade, as stated by the venue (milliseconds).
idOpaque, stable identifier of the trade (16 hex characters): the same trade always has the same `id`, so it can be used to deduplicate or resume. It reveals nothing about the venue.
sideTrades: `buy` or `sell` (aggressor side). Liquidations: `long` or `short` (the position liquidated).
pricequote currency (USDT for BTCUSDT)Price.
quantitybase asset quantity (BTC for BTCUSDT)Quantity traded or liquidated, in base asset units.
value_usdUSDNotional value: price × quantity, in the pair's quote currency (USDT for BTCUSDT), taken as USD.
GET/v1/trades/futuresdata_type · trades_futuresRéférence complète
Les 6 champs de cette route (d’après le contrat)
timeISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z)Execution instant of the trade, as stated by the venue (milliseconds).
idOpaque, stable identifier of the trade (16 hex characters): the same trade always has the same `id`, so it can be used to deduplicate or resume. It reveals nothing about the venue.
sideTrades: `buy` or `sell` (aggressor side). Liquidations: `long` or `short` (the position liquidated).
pricequote currency (USDT for BTCUSDT)Price.
quantitybase asset quantity (BTC for BTCUSDT)Quantity traded or liquidated, in base asset units.
value_usdUSDNotional value: price × quantity, in the pair's quote currency (USDT for BTCUSDT), taken as USD.

Les transactions individuelles (exécutions), une par ligne, toutes places confondues et sans étiquette de source — les mêmes, avec le même id, que les canaux WebSocket trades.spot et trades.futures. limit va de 1 à 10 000. Sans autre paramètre, vous obtenez les dernières transactions. Pour lire une plage de temps, ajoutez since_ms, until_ms et/ou order (asc ou desc) : une page couvre au plus 15 minutes, et la réponse porte next, l’URL de la page suivante, prête à appeler (null quand la plage est lue). En suivant next, chaque transaction est rendue une fois et une seule, dans l’ordre. Il en va de même pour /v1/trades/large, et pour /v1/trades-kline/futures/seconds par pages de limit secondes.

ChampTypeDescription
timestringHorodatage de la transaction.
sidestringbuy ou sell : le côté du preneur de liquidité.
pricefloatPrix d’exécution.
quantityfloatTaille, en unités de l’actif de base.
value_usdfloatValeur en dollars (prix × quantité).
GET/v1/trades/largedata_type · trades_largeRéférence complète
Les 6 champs de cette route (d’après le contrat)
timeISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z)Execution instant of the trade, as stated by the venue (milliseconds).
idOpaque, stable identifier of the trade (16 hex characters): the same trade always has the same `id`, so it can be used to deduplicate or resume. It reveals nothing about the venue.
sideTrades: `buy` or `sell` (aggressor side). Liquidations: `long` or `short` (the position liquidated).
pricequote currency (USDT for BTCUSDT)Price.
quantitybase asset quantity (BTC for BTCUSDT)Quantity traded or liquidated, in base asset units.
value_usdUSDNotional value: price × quantity, in the pair's quote currency (USDT for BTCUSDT), taken as USD.

Le même flux futures, filtré par taille : la lecture du tape, pour repérer les ordres qui comptent.

ParamètreTypeDéfautDescription
symbolstringobligatoireL’actif.
min_usdfloat100000Montant minimum en dollars. Plancher à 1000.
limitinteger100Nombre d’événements, de 1 à 10 000.
curl
# The last fifty orders above $250,000
curl -H "X-API-KEY: $BYTNODE_API_KEY" \
  "https://api.bytnode.com/v1/trades/large?symbol=BTCUSDT&min_usd=250000&limit=50"

#Bougies de transactions (trades kline)

GET/v1/trades-klinedata_type · trades_klineRéférence complète
Les 11 champs de cette route (d’après le contrat)
timeISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z)Start of the bucket the row covers: a 1h bucket at 14:00 covers 14:00:00 to 14:59:59.999.
trade_countcountNumber of trades. `null` when the number is not known: history imported from an outside source carries the buy and sell volumes, not the trade count.
avg_trade_sizebase asset quantity (BTC for BTCUSDT)Average trade size, base asset units (NOT dollars: multiply by the price for a notional).
volumebase asset quantity (BTC for BTCUSDT)Traded volume over the row, base asset units (BTC for BTCUSDT, NOT dollars), aggregated across venues, over the market(s) the route covers: spot + perpetual futures on `/v1/klines` and `/v1/trades-kline`, the path's market alone on a `/spot` or `/futures` route (a name without a market suffix covers every market of its route; `volume_spot` / `volume_futures` restrict). `null` when a market is not available (never a partial sum).
buy_volumebase asset quantity (BTC for BTCUSDT)Aggressive (taker) buy volume, base asset units, aggregated across venues.
sell_volumebase asset quantity (BTC for BTCUSDT)Aggressive (taker) sell volume, base asset units, aggregated across venues.
net_volumebase asset quantity (BTC for BTCUSDT)buy_volume - sell_volume over the row, base asset units. Positive = net buying.
buy_sell_coverage_ratiofraction (0.585 = 58.5 %)Share of the volume (in USD) whose buy/sell split is known. 1 = every trade is split. Below 1 on part of the history, where some sources did not report the aggressor side: `buy_volume` and `sell_volume` then cover that share only, so `buy_volume + sell_volume` < `volume`; `buy_ratio` and the CVD describe the covered share. `null` when the bucket has no volume.
trade_ratetrades per secondAverage number of trades per second over the bucket. `null` when `trade_count` is.
is_volume_estimated`true` when some base-asset quantities of this row were ESTIMATED from USD amounts (history where a source reported amounts but not quantities): a buy or sell amount is converted at that source's own average price when its total quantity is known, otherwise at the candle's typical price (high + low + close) / 3. Every quantity a source measured is kept as is. `false` = all measured. `null` when the volume itself is `null` (not available).
is_closed`true` = the row is final; `false` = provisional: the latest bucket while it still settles (a few seconds after its end, e.g. a candle whose volumes are not final yet), or the period in progress with `?live=1` on the routes that take it. Exception, rare: when a venue delivers trades LATE (seconds to minutes, e.g. during a burst), a closed row built from trades (trade candles, candle volumes, CVD, buy/sell ratio, trades per second) is corrected afterwards to include them, usually within minutes and at most one hour later; the correction only adds the late trades.
GET/v1/trades-kline/spotdata_type · trades_kline_spotRéférence complète
GET/v1/trades-kline/futuresdata_type · trades_kline_futuresRéférence complète
GET/v1/trades-kline/historydata_type · trades_kline_historyRéférence complète
Les 11 champs de cette route (d’après le contrat)
timeISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z)Start of the bucket the row covers: a 1h bucket at 14:00 covers 14:00:00 to 14:59:59.999.
trade_countcountNumber of trades. `null` when the number is not known: history imported from an outside source carries the buy and sell volumes, not the trade count.
avg_trade_sizebase asset quantity (BTC for BTCUSDT)Average trade size, base asset units (NOT dollars: multiply by the price for a notional).
volumebase asset quantity (BTC for BTCUSDT)Traded volume over the row, base asset units (BTC for BTCUSDT, NOT dollars), aggregated across venues, over the market(s) the route covers: spot + perpetual futures on `/v1/klines` and `/v1/trades-kline`, the path's market alone on a `/spot` or `/futures` route (a name without a market suffix covers every market of its route; `volume_spot` / `volume_futures` restrict). `null` when a market is not available (never a partial sum).
buy_volumebase asset quantity (BTC for BTCUSDT)Aggressive (taker) buy volume, base asset units, aggregated across venues.
sell_volumebase asset quantity (BTC for BTCUSDT)Aggressive (taker) sell volume, base asset units, aggregated across venues.
net_volumebase asset quantity (BTC for BTCUSDT)buy_volume - sell_volume over the row, base asset units. Positive = net buying.
buy_sell_coverage_ratiofraction (0.585 = 58.5 %)Share of the volume (in USD) whose buy/sell split is known. 1 = every trade is split. Below 1 on part of the history, where some sources did not report the aggressor side: `buy_volume` and `sell_volume` then cover that share only, so `buy_volume + sell_volume` < `volume`; `buy_ratio` and the CVD describe the covered share. `null` when the bucket has no volume.
trade_ratetrades per secondAverage number of trades per second over the bucket. `null` when `trade_count` is.
is_volume_estimated`true` when some base-asset quantities of this row were ESTIMATED from USD amounts (history where a source reported amounts but not quantities): a buy or sell amount is converted at that source's own average price when its total quantity is known, otherwise at the candle's typical price (high + low + close) / 3. Every quantity a source measured is kept as is. `false` = all measured. `null` when the volume itself is `null` (not available).
is_closed`true` = the row is final; `false` = provisional: the latest bucket while it still settles (a few seconds after its end, e.g. a candle whose volumes are not final yet), or the period in progress with `?live=1` on the routes that take it. Exception, rare: when a venue delivers trades LATE (seconds to minutes, e.g. during a burst), a closed row built from trades (trade candles, candle volumes, CVD, buy/sell ratio, trades per second) is corrected afterwards to include them, usually within minutes and at most one hour later; the correction only adds the late trades.
GET/v1/trades-kline/spot/historydata_type · trades_kline_spot_historyRéférence complète
GET/v1/trades-kline/futures/historydata_type · trades_kline_futures_historyRéférence complète

Des bougies construites sur les transactions plutôt que sur le prix — une « trades kline » : combien d’ordres sont passés, dans quel sens et pour quel montant, toujours agrégés sur toutes les places. Les transactions individuelles elles-mêmes sont /v1/trades/spot et /v1/trades/futures.

Chaque route a son historique : /v1/trades-kline/history, /v1/trades-kline/spot/history, /v1/trades-kline/futures/history.

ParamètreTypeDéfautDescription
symbolstringobligatoireL’actif.
timeframestringobligatoire1m, 5m, 15m, 30m, 1h, 4h, 1d. Absent ou invalide : 422.
livebooleanfalseSur les routes de dernière valeur uniquement : expose la bougie en formation.
limitinteger100Sur les routes /history, de 1 à 1000. Seules les bougies closes y sont servies.
since_ms / until_msinteger—Sur les routes /history : fenêtre datée, en millisecondes, appliquée avant limit.
curl
# The 5-minute trade candle in progress
curl -H "X-API-KEY: $BYTNODE_API_KEY" \
  "https://api.bytnode.com/v1/trades-kline?symbol=BTCUSDT&timeframe=5m&live=1"
ChampTypeDescription
timestringL’instant de la ligne (il remplace la clé d’origine, comme bucket) : un client générique lit une seule clé.
trade_countintegerNombre de transactions sur la fenêtre.
avg_trade_sizefloat | nullTaille moyenne d’une transaction, en unités de l’actif de base (BTC pour BTCUSDT), pas en dollars : multipliez par le prix pour obtenir un notionnel.
volumefloatVolume total, en unités de l’actif de base (BTC pour BTCUSDT) — pas en dollars.
buy_volume / sell_volumefloatVolume acheteur et vendeur, en unités de l’actif de base.
net_volumefloatVolume acheteur moins volume vendeur, en unités de l’actif de base. Positif = achat net.
trade_ratefloatTransactions par seconde : le nombre divisé par la durée de l’unité de temps, y compris sur une bougie en formation, pour que la définition reste la même.
is_volume_estimatedbooleanVrai quand le volume agrégé de la bougie a été reconstitué (historique ancien), faux quand il est mesuré.
is_closedbooleanFaux uniquement sur une bougie en formation.

Sur un stablecoin

/v1/trades-kline et /v1/trades-kline/spot restent alimentées, puisqu’un stablecoin a un marché spot. /v1/trades-kline/futures renvoie data: null avec unavailable: "not_applicable" : un stablecoin n’a pas de marché futures.