API de dérivés crypto
Les données de dérivés crypto dans une seule API : open interest, taux de funding, liquidations, base et écarts entre places. BytNode agrège les places de perpétuels et de futures qu’il couvre et normalise leurs formats : vous comparez les marchés sans brancher chaque exchange ni retraiter ses données.
Le positionnement sur les futures : combien de capital est engagé, à quel coût, dans quel sens, et à quel prix par rapport au spot. Toutes ces métriques sont des composites, et la pondération utilisée est indiquée pour chacune.
#Données de dérivés crypto pour agents IA et LLM
« Le funding de BTC est-il positif ? », « Combien d’open interest ETH a-t-il pris aujourd’hui ? », « Quel côté a été liquidé dans l’heure ? » : un agent IA branché par MCP répond avec cette famille, pour une paire ou jusqu’à dix comparées, par l’outil get_pair_data.
{
"name": "get_pair_data",
"arguments": {
"symbol": ["BTCUSDT", "ETHUSDT"],
"fields": ["funding_next", "oi", "liquidations_cumulative"],
"timeframe": "1h"
}
}- Pour le LLM : un
rate_pctde funding est un pourcentage pour une fenêtre de huit heures, pas un taux annuel ;apr_pctl’annualise. Le citer comme un rendement annuel est le contresens classique. - Pour les développeurs : dans votre propre agent IA,
/v1/funding/rateet/v1/oifont deux outils simples pour le tool calling ; le serveur MCP les expose déjà, sous les mêmes noms et unités. - 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.
#Intérêt ouvert
Les 4 champs de cette route (d’après le contrat)
time | ISO 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. |
oi | base asset quantity (BTC for BTCUSDT) | Total open interest across venues, base asset units. On a bucketed row, the value at the END of the bucket (like a close); on `/v1/oi/change`, the latest measurement. |
sample_count | count | Number of source points in the bucket (one-minute points with data). For a state (basis, open interest) the value is the LAST of them — the bucket's close —; for a flow it is their total. |
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. |
L’intérêt ouvert total, additionné sur toutes les places, une ligne par intervalle clos de timeframe (obligatoire, 1m à 1d) : pour chaque place sa dernière valeur dans l’intervalle, comme une clôture. La valeur courante est /v1/oi.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
symbol | string | obligatoire | L’actif. |
timeframe | string | obligatoire | Taille de l’intervalle : 1m, 5m, 15m, 30m, 1h, 4h ou 1d. |
limit | integer | 100 | Nombre d’intervalles de timeframe, de 1 à 1000. |
| Champ | Type | Description |
|---|---|---|
time | string | Début de l’intervalle. |
oi | float | Intérêt ouvert additionné sur les places, en unités de l’actif de base, à la FIN du bucket (comme une clôture). La même grandeur, sous le même nom, que `oi` sur /v1/oi/change. |
Les 7 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Point-in-time value: the instant of the measurement; the change covers the minute before it. |
oi | base asset quantity (BTC for BTCUSDT) | Total open interest across venues, base asset units. On a bucketed row, the value at the END of the bucket (like a close); on `/v1/oi/change`, the latest measurement. |
previous_oi | base asset quantity (BTC for BTCUSDT) | Total open interest at the start of the window (`window_start_at`). |
oi_change | base asset quantity (BTC for BTCUSDT) | oi - previous_oi, base asset units. |
oi_change_pct | percent (58.5 = 58.5 %) | Relative open interest change, percent. |
window_start_at | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Start of the ROLLING window the value covers (inclusive). Only rolling-window values carry it, and their `time` is always the END of the window; a bucket row has no window fields (its span is the envelope's `step`). |
window_s | seconds | Length of that rolling window, in whole seconds: it runs from `window_start_at` to `time` (excluded). |
Les 7 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Start of the bucket of `timeframe`, the value aggregating the bucket's minutes; the row covers `time` to `time` + the envelope's `step` (excluded). |
oi | base asset quantity (BTC for BTCUSDT) | Total open interest across venues, base asset units. On a bucketed row, the value at the END of the bucket (like a close); on `/v1/oi/change`, the latest measurement. |
previous_oi | base asset quantity (BTC for BTCUSDT) | Total open interest at the start of the window (`window_start_at`). |
oi_change | base asset quantity (BTC for BTCUSDT) | oi - previous_oi, base asset units. |
oi_change_pct | percent (58.5 = 58.5 %) | Relative open interest change, percent. |
sample_count | count | Number of source points in the bucket (one-minute points with data). For a state (basis, open interest) the value is the LAST of them — the bucket's close —; for a flow it is their total. |
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. |
La variation de l’intérêt ouvert : le capital qui entre ou qui sort. Le pourcentage est recalculé à partir des totaux agrégés, pour rester cohérent avec la somme.
| Champ | Type | Description |
|---|---|---|
oi | float | Intérêt ouvert actuel, additionné sur les places (unités de l’actif de base). |
previous_oi | float | Le précédent. |
oi_change | float | La différence. |
oi_change_pct | float | null | La variation en pourcentage. |
time | string | Horodatage du calcul. |
window_start_at | string | Début de la fenêtre que couvre la valeur (inclus). |
window_s | integer | Durée de la fenêtre, en secondes : elle va de window_start_at à window_start_at + window_s. |
#Funding
Trois lectures du même phénomène : le dernier taux appliqué, le prochain estimé, et le total cumulé sur les dernières vingt-quatre heures. Tous sont des composites pondérés par l’intérêt ouvert (la place qui porte le plus de positions pèse le plus) et ramenés à une base de huit heures avant pondération, car certaines paires règlent toutes les quatre heures ou toutes les heures.
Les 6 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Start of the 8-hour funding period. The window is PAID by the settlement at its end: read `period_end_at` / `settled_at` for when it was settled. |
period_end_at | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | End of the 8-hour funding period (exclusive): the instant of the settlement that pays it. |
settled_at | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Instant of the last settlement counted in the window: `period_end_at` for a complete settled window; `null` for the window in progress (`?live=1`), which is not settled yet. |
rate_pct | percent (58.5 = 58.5 %) | Settled funding rate of the 8-hour period, in percent (0.01 = 0.01 % per 8 h), normalised to 8 h and open-interest weighted across venues. |
apr_pct | percent (58.5 = 58.5 %) | Annualised rate in percent. |
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. |
Les 6 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Start of the 8-hour funding period. The window is PAID by the settlement at its end: read `period_end_at` / `settled_at` for when it was settled. |
period_end_at | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | End of the 8-hour funding period (exclusive): the instant of the settlement that pays it. |
settled_at | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Instant of the last settlement counted in the window: `period_end_at` for a complete settled window; `null` for the window in progress (`?live=1`), which is not settled yet. |
rate_pct | percent (58.5 = 58.5 %) | Settled funding rate of the 8-hour period, in percent (0.01 = 0.01 % per 8 h), normalised to 8 h and open-interest weighted across venues. |
apr_pct | percent (58.5 = 58.5 %) | Annualised rate in percent. |
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. |
| Champ | Type | Description |
|---|---|---|
time | string | Début de la fenêtre de 8 h, alignée sur 00:00, 08:00 et 16:00 UTC. |
rate_pct | float | Le taux composite de la fenêtre, en pourcentage (équivalent 8 h). |
apr_pct | float | Le taux annualisé, en pourcentage : apr_pct = rate_pct × 1095, soit 1095 règlements de 8 h par an. 8.98 signifie 8,98 % par an. Sur la dernière valeur et sur chaque ligne d’historique. |
Les 4 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Point-in-time value: the instant of the next funding settlement the forecast is for. |
estimated_rate_pct | percent (58.5 = 58.5 %) | Venue forecast of the NEXT funding settlement, in percent per 8 h (0.01 = 0.01 %), normalised to 8 h, OI-weighted. |
apr_pct | percent (58.5 = 58.5 %) | Annualised rate in percent. |
is_past | `true` if the forecast settlement instant is already past (the next forecast is not published yet). |
| Champ | Type | Description |
|---|---|---|
time | string | Instant du prochain règlement que la prévision concerne. |
estimated_rate_pct | float | Le taux estimé, en pourcentage (équivalent 8 h). |
is_past | boolean | Vrai si ce règlement est déjà passé. |
apr_pct | float | Annualisé, en pourcentage. |
Les 6 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Point-in-time value over a rolling window: the END of the 24-hour window, i.e. the settlement that closes the last 8-hour period summed. The window starts at `window_start_at` and lasts `window_s`. |
window_start_at | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Start of the 24-hour window summed (inclusive). |
window_s | seconds | Length of the window, in seconds (86400 = 24 hours). |
rolling_24h_rate_pct | percent (58.5 = 58.5 %) | Sum of the last three settled 8-hour funding rates — a ROLLING 24-hour window — in percent. A row is published every 8 hours and covers 24: consecutive rows OVERLAP by 16 hours, so never add them up (sum `rate_pct` of `/v1/funding/rate/history` instead). |
apr_pct | percent (58.5 = 58.5 %) | Annualised rate in percent. |
sample_count | count | Number of 8-hour funding windows summed. |
Les 7 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | END of each 24-hour window (the settlement that closes its last 8-hour period). The window starts at `window_start_at` and lasts `window_s`. |
window_start_at | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Start of the 24-hour window summed (inclusive). |
window_s | seconds | Length of the window, in seconds (86400 = 24 hours). |
rolling_24h_rate_pct | percent (58.5 = 58.5 %) | Sum of the last three settled 8-hour funding rates — a ROLLING 24-hour window — in percent. A row is published every 8 hours and covers 24: consecutive rows OVERLAP by 16 hours, so never add them up (sum `rate_pct` of `/v1/funding/rate/history` instead). |
apr_pct | percent (58.5 = 58.5 %) | Annualised rate in percent. |
sample_count | count | Number of 8-hour funding windows summed. |
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. |
curl -H "X-API-KEY: $BYTNODE_API_KEY" \
"https://api.bytnode.com/v1/funding/cumulative?symbol=BTCUSDT"| Champ | Type | Description |
|---|---|---|
time | string | Fin de la fenêtre de 24 h : le règlement qui clôt la dernière fenêtre de 8 h sommée. |
window_start_at | string | Début de la fenêtre de 24 h sommée. |
window_s | integer | Durée de la fenêtre, en secondes (86400). |
rolling_24h_rate_pct | float | Somme des trois derniers taux 8 h réglés — une fenêtre GLISSANTE de 24 heures — en pourcentage. Une ligne toutes les 8 h, chacune couvrant 24 h : les lignes se chevauchent, ne les additionnez jamais (pour un total, sommez rate_pct de /v1/funding/rate/history). |
apr_pct | float | Annualisé en pourcentage, sur le nombre de fenêtres réellement additionnées, ce qui reste exact même quand l’une manque. |
sample_count | integer | Nombre de fenêtres de 8 h réellement additionnées, trois au plus. |
#Liquidations
Les 6 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Instant of the liquidation, as stated by the venue (milliseconds). |
side | `long` (a long position was liquidated: forced sell) or `short` (forced buy). | |
price | quote currency (USDT for BTCUSDT) | Price. |
quantity | base asset quantity (BTC for BTCUSDT) | Quantity traded or liquidated, in base asset units. |
value_usd | USD | Notional value: price × quantity, in the pair's quote currency (USDT for BTCUSDT), taken as USD. |
venue | Venue where the liquidation happened (liquidations name their venues). |
Les liquidations individuelles, toutes places confondues. La couverture est ici structurellement plus faible que sur les transactions : toutes les places ne publient pas de flux public de liquidations.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
symbol | string | obligatoire | L’actif. |
limit | integer | 100 | Nombre d’événements, de 1 à 10 000. |
min_usd | float | — | Filtre facultatif sur la valeur en dollars. |
| Champ | Type | Description |
|---|---|---|
time | string | Instant de la liquidation. |
side | string | long ou short : le côté de la position liquidée, pas celui de l’ordre. La convention est normalisée entre les places. |
price | float | Prix de liquidation. |
quantity | float | Taille en unités de l’actif de base. |
value_usd | float | Valeur en dollars. |
Les 7 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Point-in-time value over a rolling window: the END of the 5-minute window, aligned on the minute. |
long_usd | USD | Long positions liquidated, USD. |
short_usd | USD | Short positions liquidated, USD. |
total_usd | USD | Total, USD. |
venues | Venues whose liquidations are summed in the row, by name (empty when none in the row). Rows before the first individual liquidation are imported totals: their list is the venues those totals cover. | |
window_start_at | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Start of the ROLLING window the value covers (inclusive). Only rolling-window values carry it, and their `time` is always the END of the window; a bucket row has no window fields (its span is the envelope's `step`). |
window_s | seconds | Length of that rolling window, in whole seconds: it runs from `window_start_at` to `time` (excluded). |
Les 7 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Start of the bucket. The row covers the WHOLE bucket, from `time` to `time` + the envelope's `step` (excluded). |
long_usd | USD | Long positions liquidated, USD. |
short_usd | USD | Short positions liquidated, USD. |
total_usd | USD | Total, USD. |
sample_count | count | Number of source points in the bucket (one-minute points with data). For a state (basis, open interest) the value is the LAST of them — the bucket's close —; for a flow it is their total. |
venues | Venues whose liquidations are summed in the row, by name (empty when none in the row). Rows before the first individual liquidation are imported totals: their list is the venues those totals cover. | |
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. |
| Champ | Type | Description |
|---|---|---|
time | string | Horodatage du calcul. |
long_usd | float | Dollars de positions acheteuses liquidées. |
short_usd | float | Dollars de positions vendeuses liquidées. |
total_usd | float | Le total. |
window_start_at | string | Début de la fenêtre que couvre la valeur (inclus). |
window_s | integer | Durée de la fenêtre, en secondes : elle va de window_start_at à window_start_at + window_s. |
Les 9 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Start of the latest closed bucket of `timeframe` that had at least one liquidation — the first row of `/v1/liquidations/big-small-ratio/history` for the same `timeframe`. |
big_count | count | Liquidations of 100,000 USD or more. |
big_usd | USD | Notional of liquidations of 100,000 USD or more. |
small_count | count | Liquidations below 100,000 USD. |
small_usd | USD | Notional of liquidations below 100,000 USD. |
big_small_ratio | big / small | big_usd / small_usd: the notional of liquidations of 100,000 USD or more DIVIDED BY that of the smaller ones (8.2 = the big ones weigh 8.2 times the small ones: a quotient, not a share). `null` when small_usd is 0. |
venues | Venues whose liquidations are summed in the row, by name (empty when none in the row). Rows before the first individual liquidation are imported totals: their list is the venues those totals cover. | |
sample_count | count | Number of source points in the bucket (one-minute points with data). For a state (basis, open interest) the value is the LAST of them — the bucket's close —; for a flow it is their total. |
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. |
Les 9 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Start of the bucket of `timeframe`, the value aggregating the bucket's minutes; the row covers `time` to `time` + the envelope's `step` (excluded). |
big_count | count | Liquidations of 100,000 USD or more. |
big_usd | USD | Notional of liquidations of 100,000 USD or more. |
small_count | count | Liquidations below 100,000 USD. |
small_usd | USD | Notional of liquidations below 100,000 USD. |
big_small_ratio | big / small | big_usd / small_usd: the notional of liquidations of 100,000 USD or more DIVIDED BY that of the smaller ones (8.2 = the big ones weigh 8.2 times the small ones: a quotient, not a share). `null` when small_usd is 0. |
venues | Venues whose liquidations are summed in the row, by name (empty when none in the row). Rows before the first individual liquidation are imported totals: their list is the venues those totals cover. | |
sample_count | count | Minutes of the bucket that had at least one liquidation. |
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. |
Le rapport entre les grosses liquidations (au moins 100 000 $) et les petites. Il distingue une purge de gros comptes d’une cascade de petits porteurs.
| Champ | Type | Description |
|---|---|---|
big_count / big_usd | integer / float | Liquidations d’au moins 100 000 $. |
small_count / small_usd | integer / float | Celles en dessous. |
big_small_ratio | float | null | big_usd divisé par small_usd. null si le dénominateur est nul. |
time | string | Début du bucket (le dernier bucket clos de timeframe sur /v1/liquidations/big-small-ratio, qui exige timeframe comme /v1/cvd). |
sample_count | integer | Minutes du bucket qui ont eu au moins une liquidation. |
is_closed | boolean | true : le bucket est clos et ses valeurs sont définitives. |
#Base
Les 5 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Point-in-time value: the instant of the venue prices used (each venue's last futures and spot trades, at most 2 minutes old). |
basis_value | quote currency (USDT for BTCUSDT) | Futures price - spot price, in the quote currency (USDT for BTCUSDT), like the two prices. |
basis_pct | percent (58.5 = 58.5 %) | (futures - spot) / spot, in percent. Positive = contango. |
futures_price | quote currency (USDT for BTCUSDT) | Perpetual futures price, open-interest weighted across venues. |
spot_price | quote currency (USDT for BTCUSDT) | Spot price across venues at the instant of the row, paired with the futures price of the same instant. Not the latest trade price: that is the `price` of `/v1/price-change`, i.e. the close of `/v1/klines?live=1`. |
Les 7 champs de cette route (d’après le contrat)
time | ISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z) | Start of the bucket of `timeframe`; the value is the LAST one of the bucket's minutes. |
basis_value | quote currency (USDT for BTCUSDT) | Futures price - spot price, in the quote currency (USDT for BTCUSDT), like the two prices. |
basis_pct | percent (58.5 = 58.5 %) | (futures - spot) / spot, in percent. Positive = contango. |
futures_price | quote currency (USDT for BTCUSDT) | Perpetual futures price, open-interest weighted across venues. |
spot_price | quote currency (USDT for BTCUSDT) | Spot price across venues at the instant of the row, paired with the futures price of the same instant. Not the latest trade price: that is the `price` of `/v1/price-change`, i.e. the close of `/v1/klines?live=1`. |
sample_count | count | Number of source points in the bucket (one-minute points with data). For a state (basis, open interest) the value is the LAST of them — the bucket's close —; for a flow it is their total. |
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. |
L’écart entre le prix à terme et le prix spot, une moyenne pondérée par l’intérêt ouvert sur les places qui portent les deux marchés. Les deux prix sont pondérés de la même façon, ce qui garantit que basis_value = futures_price − spot_price reste vrai.
| Champ | Type | Description |
|---|---|---|
basis_value | float | L’écart, dans la devise de cotation (USDT pour BTCUSDT). |
basis_pct | float | L’écart en pourcentage : 0.059 signifie 0,059 %. |
futures_price | float | Prix futures composite. |
spot_price | float | Prix spot composite. |
time | string | Horodatage du calcul. |
Unité de temps et fenêtre de l’historique
timeframe est obligatoire : l’historique sert une fenêtre close par ligne (timeframe=1m pour une ligne par minute, alignée sur la minute). Sans since_ms ni until_ms, il sert les limit fenêtres closes les plus récentes ; avec une fenêtre explicite, c’est elle qui s’applique.
#Écarts entre places
Les 13 champs de cette route (d’après le contrat)
time | ISO 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. |
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. | |
ref_price | quote currency (USDT for BTCUSDT) | Reference price: the volume-weighted average price across venues over the bucket. Not the latest trade price: that is the `price` of `/v1/price-change`, i.e. the close of `/v1/klines?live=1`. |
weighting | How venues are combined: `oi` (open-interest weighted) or `volume` (volume weighted). | |
max_spread_bps | basis points (1 bp = 0.01 %) | Gap between the highest and the lowest venue price, relative to ref_price. |
high_venue | Venue with the highest price over the bucket. | |
high_price | quote currency (USDT for BTCUSDT) | Its volume-weighted price over the bucket. |
low_venue | Venue with the lowest price over the bucket. | |
low_price | quote currency (USDT for BTCUSDT) | Its volume-weighted price over the bucket. |
venues | Per-venue prices and premiums (`[{venue, price, premium_bps}]`). | |
venues.venue | Venue name (with the liquidations, the only data that names its venues). | |
venues.price | quote currency (USDT for BTCUSDT) | Volume-weighted price of the venue over the bucket. |
venues.premium_bps | basis points (1 bp = 0.01 %) | Venue price premium (positive) or discount (negative) versus ref_price. |
Les 13 champs de cette route (d’après le contrat)
time | ISO 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. |
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. | |
ref_price | quote currency (USDT for BTCUSDT) | Reference price: the volume-weighted average price across venues over the bucket. Not the latest trade price: that is the `price` of `/v1/price-change`, i.e. the close of `/v1/klines?live=1`. |
weighting | How venues are combined: `oi` (open-interest weighted) or `volume` (volume weighted). | |
max_spread_bps | basis points (1 bp = 0.01 %) | Gap between the highest and the lowest venue price, relative to ref_price. |
high_venue | Venue with the highest price over the bucket. | |
high_price | quote currency (USDT for BTCUSDT) | Its volume-weighted price over the bucket. |
low_venue | Venue with the lowest price over the bucket. | |
low_price | quote currency (USDT for BTCUSDT) | Its volume-weighted price over the bucket. |
venues | Per-venue prices and premiums (`[{venue, price, premium_bps}]`). | |
venues.venue | Venue name (with the liquidations, the only data that names its venues). | |
venues.price | quote currency (USDT for BTCUSDT) | Volume-weighted price of the venue over the bucket. |
venues.premium_bps | basis points (1 bp = 0.01 %) | Venue price premium (positive) or discount (negative) versus ref_price. |
La seule surface de BytNode qui nomme les places de marché, un écart n’ayant pas de sens sans elles. Le modèle est une prime par place : un prix de référence multi-places, puis l’écart de chaque place à cette référence. Toute paire se déduit côté client, par la différence de deux primes.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
symbol | string | obligatoire | L’actif. |
timeframe | string | obligatoire | 1m, 5m, 15m, 30m, 1h, 4h, 1d. |
live | boolean | false | Expose la fenêtre en cours. |
limit | integer | 100 | Sur l’historique, de 1 à 1000. |
since_ms / until_ms | integer | — | Sur l’historique : fenêtre datée, en millisecondes, appliquée avant limit. |
{
"status": "ok",
"server_time": "2026-10-14T09:06:22.870Z",
"data_type": "spread_interexchange",
"symbol": "BTCUSDT",
"timeframe": "1h",
"market": "futures",
"data": {
"time": "2026-10-14T08:00:00.000Z",
"is_closed": true,
"ref_price": 83706.7967743,
"weighting": "volume",
"max_spread_bps": 18.8831076757,
"high_venue": "venue_a",
"high_price": 83720.69106,
"low_venue": "venue_b",
"low_price": 83562.6266143,
"venues": [
{ "venue": "venue_a", "price": 83720.69106, "premium_bps": 1.65987545135 },
{ "venue": "venue_c", "price": 83715.3204619, "premium_bps": 1.01827903431 }
]
}
}| Champ | Type | Description |
|---|---|---|
ref_price | float | Prix de référence multi-places. |
weighting | string | oi (les places sont pondérées par leur open interest) ou volume ; le prix de référence est la moyenne pondérée des prix des places. |
max_spread_bps | float | L’amplitude entre la place la plus haute et la plus basse, en points de base. |
high_venue / low_venue | string | La place au prix le plus haut (le plus bas) sur le bucket, et ce prix. |
high_price / low_price | float | La place au prix le plus haut (le plus bas) sur le bucket, et ce prix. |
venues | array | Une entrée par place : venue, price, premium_bps. Triées par prime décroissante. |
is_closed | boolean | Faux uniquement avec live=1. |