市场数据

加密衍生品 API

一个 API 获取加密衍生品数据:持仓量、资金费率、爆仓、基差与交易所间价差。BytNode 聚合其覆盖的永续与期货交易所并统一格式,无需逐个对接交易所或重新处理数据,即可横向比较各市场。

期货仓位:投入了多少资金、成本几何、方向如何,以及相对现货的价格。所有这些指标都是综合值,每个指标都注明了所用的加权方式。

#面向 AI 智能体与 LLM 的加密衍生品数据

“BTC 资金费率是正的吗?”“ETH 今天增加了多少持仓量?”“过去一小时哪一方被爆仓?”:通过 MCP 接入的 AI 智能体用本数据族作答,可查一个交易对或比较最多十个,使用 get_pair_data 工具。

MCP tools/call
一次 MCP 调用获取 BTC 与 ETH 的资金费率、持仓量与爆仓:每个键以 交易对/字段 的形式返回。
{
  "name": "get_pair_data",
  "arguments": {
    "symbol": ["BTCUSDT", "ETHUSDT"],
    "fields": ["funding_next", "oi", "liquidations_cumulative"],
    "timeframe": "1h"
  }
}
  • 给 LLM 的提示:资金费率的 rate_pct 是一个 8 小时窗口的百分比,不是年化利率;apr_pct 才是年化值。把它当作年化收益引用是常见误读。
  • 给开发者:在你自己的 AI 智能体中,/v1/funding/rate 和 /v1/oi 可作为两个简单的 tool calling 工具;MCP 服务器已用相同的名称和单位提供它们。
  • 适用环境:Claude、ChatGPT、Cursor 及任何 MCP 客户端,包括支持 MCP 的 AI 智能体框架,如 LangChain 或 n8n。

通过 MCP 服务器指南接入你的 AI 智能体,或用开源的 Agent Skills 教它使用 BytNode。

#持仓量

GET/v1/oi/historydata_type · oi_history完整参考
此接口的全部 4 个字段(取自接口契约)
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.
oibase 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_countcountNumber 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.

所有交易所合计的总持仓量,每个已关闭的 timeframe 区间一行(必填,1m 至 1d):取每个交易所在该区间的最后一个值,类似收盘值。当前值见 /v1/oi。

参数类型默认值说明
symbolstring必填资产。
timeframestring必填区间大小:1m、5m、15m、30m、1h、4h 或 1d。
limitinteger100timeframe 区间的数量,1 到 1000。
字段类型说明
timestring区间起始时间。
oifloat跨交易所汇总的持仓量,以基础资产为单位,取 bucket 结束时的值(类似收盘价)。与 /v1/oi/change 中的 `oi` 是同一指标、同一名称。
GET/v1/oi/changedata_type · oi_change完整参考
此接口的全部 7 个字段(取自接口契约)
timeISO 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.
oibase 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_oibase asset quantity (BTC for BTCUSDT)Total open interest at the start of the window (`window_start_at`).
oi_changebase asset quantity (BTC for BTCUSDT)oi - previous_oi, base asset units.
oi_change_pctpercent (58.5 = 58.5 %)Relative open interest change, percent.
window_start_atISO 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_ssecondsLength of that rolling window, in whole seconds: it runs from `window_start_at` to `time` (excluded).
GET/v1/oi/change/historydata_type · oi_change_history完整参考
此接口的全部 7 个字段(取自接口契约)
timeISO 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).
oibase 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_oibase asset quantity (BTC for BTCUSDT)Total open interest at the start of the window (`window_start_at`).
oi_changebase asset quantity (BTC for BTCUSDT)oi - previous_oi, base asset units.
oi_change_pctpercent (58.5 = 58.5 %)Relative open interest change, percent.
sample_countcountNumber 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.

持仓量的变化:资金的流入或流出。百分比基于聚合总量重新计算,以与总和保持一致。

字段类型说明
oifloat当前持仓量,跨交易所汇总(基础资产单位)。
previous_oifloat上一个值。
oi_changefloat差值。
oi_change_pctfloat | null百分比变化。
timestring计算时间戳。
window_start_atstring该值所覆盖窗口的起始时间(含)。
window_sinteger窗口长度(秒):从 window_start_at 到 window_start_at + window_s。

#资金费率

同一现象的三种读法:最近一次适用的费率、下一次预估费率,以及最近二十四小时的累计值。都是按持仓量加权的综合值(持仓最多的交易所权重最大),并在加权前统一换算为八小时基准,因为有些交易对每四小时或每小时结算一次。

GET/v1/funding/ratedata_type · funding_rate完整参考
此接口的全部 6 个字段(取自接口契约)
timeISO 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_atISO 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_atISO 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_pctpercent (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_pctpercent (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.
GET/v1/funding/rate/historydata_type · funding_rate_history完整参考
此接口的全部 6 个字段(取自接口契约)
timeISO 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_atISO 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_atISO 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_pctpercent (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_pctpercent (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.
字段类型说明
timestring8 小时窗口的起点,对齐到 UTC 00:00、08:00 和 16:00。
rate_pctfloat该窗口的综合费率,以百分比表示(8 小时等值)。
apr_pctfloat年化费率,以百分比表示:apr_pct = rate_pct × 1095,即每年 1095 次 8 小时结算。8.98 表示每年 8.98%。最新值和每一行历史中都有此字段。
GET/v1/funding/nextdata_type · funding_next完整参考
此接口的全部 4 个字段(取自接口契约)
timeISO 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_pctpercent (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_pctpercent (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).
字段类型说明
timestring该预估所对应的下一次结算时刻。
estimated_rate_pctfloat预估费率,以百分比表示(8 小时等值)。
is_pastboolean该次结算已过去时为真。
apr_pctfloat年化值,以百分比表示。
GET/v1/funding/cumulativedata_type · funding_cumulative完整参考
此接口的全部 6 个字段(取自接口契约)
timeISO 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_atISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z)Start of the 24-hour window summed (inclusive).
window_ssecondsLength of the window, in seconds (86400 = 24 hours).
rolling_24h_rate_pctpercent (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_pctpercent (58.5 = 58.5 %)Annualised rate in percent.
sample_countcountNumber of 8-hour funding windows summed.
GET/v1/funding/cumulative/historydata_type · funding_cumulative_history完整参考
此接口的全部 7 个字段(取自接口契约)
timeISO 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_atISO 8601 UTC, milliseconds (2026-09-28T14:00:00.000Z)Start of the 24-hour window summed (inclusive).
window_ssecondsLength of the window, in seconds (86400 = 24 hours).
rolling_24h_rate_pctpercent (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_pctpercent (58.5 = 58.5 %)Annualised rate in percent.
sample_countcountNumber 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
curl -H "X-API-KEY: $BYTNODE_API_KEY" \
  "https://api.bytnode.com/v1/funding/cumulative?symbol=BTCUSDT"
字段类型说明
timestring24 小时窗口的结束时刻:即结束所累加的最后一个 8 小时窗口的那次结算。
window_start_atstring所累加的 24 小时窗口的起始时刻。
window_sinteger窗口长度,单位为秒(86400)。
rolling_24h_rate_pctfloat最近三个已结算 8 小时费率之和——一个滚动的 24 小时窗口——以百分比表示。每 8 小时一行,每行覆盖 24 小时:相邻行相互重叠,切勿相加(如需总和,请对 /v1/funding/rate/history 的 rate_pct 求和)。
apr_pctfloat按实际累加的窗口数年化,以百分比表示,即使缺少某个窗口也依然准确。
sample_countinteger实际累加的 8 小时窗口数,最多三个。

#爆仓

GET/v1/liquidations/eventsdata_type · liquidations_events完整参考
此接口的全部 6 个字段(取自接口契约)
timeISO 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).
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.
venueVenue where the liquidation happened (liquidations name their venues).

逐笔爆仓,所有交易所合并。此处的覆盖面在结构上低于成交:并非所有交易所都发布公开的爆仓数据流。

参数类型默认值说明
symbolstring必填资产。
limitinteger100事件数量,1 到 10 000。
min_usdfloat—按美元价值的可选过滤。
字段类型说明
timestring爆仓发生的时刻。
sidestringlong 或 short:被强平仓位的方向,而非订单方向。该约定已在各交易所间统一。
pricefloat强平价格。
quantityfloat以基础资产计的数量。
value_usdfloat美元价值。
GET/v1/liquidations/cumulativedata_type · liquidations_cumulative完整参考
此接口的全部 7 个字段(取自接口契约)
timeISO 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_usdUSDLong positions liquidated, USD.
short_usdUSDShort positions liquidated, USD.
total_usdUSDTotal, USD.
venuesVenues 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_atISO 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_ssecondsLength of that rolling window, in whole seconds: it runs from `window_start_at` to `time` (excluded).
GET/v1/liquidations/cumulative/historydata_type · liquidations_cumulative_history完整参考
此接口的全部 7 个字段(取自接口契约)
timeISO 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_usdUSDLong positions liquidated, USD.
short_usdUSDShort positions liquidated, USD.
total_usdUSDTotal, USD.
sample_countcountNumber 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.
venuesVenues 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.
字段类型说明
timestring计算时间戳。
long_usdfloat被强平的多头仓位金额(美元)。
short_usdfloat被强平的空头仓位金额(美元)。
total_usdfloat合计。
window_start_atstring该值所覆盖窗口的起始时间(含)。
window_sinteger窗口长度(秒):从 window_start_at 到 window_start_at + window_s。
GET/v1/liquidations/big-small-ratiodata_type · liquidations_big_small_ratio完整参考
此接口的全部 9 个字段(取自接口契约)
timeISO 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_countcountLiquidations of 100,000 USD or more.
big_usdUSDNotional of liquidations of 100,000 USD or more.
small_countcountLiquidations below 100,000 USD.
small_usdUSDNotional of liquidations below 100,000 USD.
big_small_ratiobig / smallbig_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.
venuesVenues 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_countcountNumber 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.
GET/v1/liquidations/big-small-ratio/historydata_type · liquidations_big_small_ratio_history完整参考
此接口的全部 9 个字段(取自接口契约)
timeISO 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_countcountLiquidations of 100,000 USD or more.
big_usdUSDNotional of liquidations of 100,000 USD or more.
small_countcountLiquidations below 100,000 USD.
small_usdUSDNotional of liquidations below 100,000 USD.
big_small_ratiobig / smallbig_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.
venuesVenues 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_countcountMinutes 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.

大额爆仓(至少 10 万美元)与小额爆仓之比。它能区分大户出清与小户连环爆仓。

字段类型说明
big_count / big_usdinteger / float至少 10 万美元的爆仓。
small_count / small_usdinteger / float低于该金额的爆仓。
big_small_ratiofloat | nullbig_usd 除以 small_usd。分母为零时为 null。
timestring分桶的起始时间(在 /v1/liquidations/big-small-ratio 上为 timeframe 最近一个已收盘的分桶;该路由像 /v1/cvd 一样必须提供 timeframe)。
sample_countinteger该分桶中至少发生过一次爆仓的分钟数。
is_closedbooleantrue:该分桶已收盘,其数值为最终值。

#基差

GET/v1/basisdata_type · basis完整参考
此接口的全部 5 个字段(取自接口契约)
timeISO 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_valuequote currency (USDT for BTCUSDT)Futures price - spot price, in the quote currency (USDT for BTCUSDT), like the two prices.
basis_pctpercent (58.5 = 58.5 %)(futures - spot) / spot, in percent. Positive = contango.
futures_pricequote currency (USDT for BTCUSDT)Perpetual futures price, open-interest weighted across venues.
spot_pricequote 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`.
GET/v1/basis/historydata_type · basis_history完整参考
此接口的全部 7 个字段(取自接口契约)
timeISO 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_valuequote currency (USDT for BTCUSDT)Futures price - spot price, in the quote currency (USDT for BTCUSDT), like the two prices.
basis_pctpercent (58.5 = 58.5 %)(futures - spot) / spot, in percent. Positive = contango.
futures_pricequote currency (USDT for BTCUSDT)Perpetual futures price, open-interest weighted across venues.
spot_pricequote 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_countcountNumber 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.

期货价格与现货价格之差,在同时拥有两个市场的交易所间按持仓量加权平均。两个价格采用相同的加权方式,从而保证 basis_value = futures_price − spot_price 始终成立。

字段类型说明
basis_valuefloat差值,以计价货币表示(BTCUSDT 为 USDT)。
basis_pctfloat以百分比计的差值:0.059 表示 0.059%。
futures_pricefloat综合期货价格。
spot_pricefloat综合现货价格。
timestring计算时间戳。

历史接口的周期与时间窗口

timeframe 为必填:历史接口每行返回一个已收盘的窗口(timeframe=1m 即逐分钟一行,按整分钟对齐)。不带 since_ms 或 until_ms 时,返回最近的 limit 个已收盘窗口;指定了明确窗口时,以该窗口为准。

#交易所间价差

GET/v1/spread/interexchangedata_type · spread_interexchange完整参考
此接口的全部 13 个字段(取自接口契约)
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.
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_pricequote 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`.
weightingHow venues are combined: `oi` (open-interest weighted) or `volume` (volume weighted).
max_spread_bpsbasis points (1 bp = 0.01 %)Gap between the highest and the lowest venue price, relative to ref_price.
high_venueVenue with the highest price over the bucket.
high_pricequote currency (USDT for BTCUSDT)Its volume-weighted price over the bucket.
low_venueVenue with the lowest price over the bucket.
low_pricequote currency (USDT for BTCUSDT)Its volume-weighted price over the bucket.
venuesPer-venue prices and premiums (`[{venue, price, premium_bps}]`).
venues.venueVenue name (with the liquidations, the only data that names its venues).
venues.pricequote currency (USDT for BTCUSDT)Volume-weighted price of the venue over the bucket.
venues.premium_bpsbasis points (1 bp = 0.01 %)Venue price premium (positive) or discount (negative) versus ref_price.
GET/v1/spread/interexchange/historydata_type · spread_interexchange_history完整参考
此接口的全部 13 个字段(取自接口契约)
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.
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_pricequote 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`.
weightingHow venues are combined: `oi` (open-interest weighted) or `volume` (volume weighted).
max_spread_bpsbasis points (1 bp = 0.01 %)Gap between the highest and the lowest venue price, relative to ref_price.
high_venueVenue with the highest price over the bucket.
high_pricequote currency (USDT for BTCUSDT)Its volume-weighted price over the bucket.
low_venueVenue with the lowest price over the bucket.
low_pricequote currency (USDT for BTCUSDT)Its volume-weighted price over the bucket.
venuesPer-venue prices and premiums (`[{venue, price, premium_bps}]`).
venues.venueVenue name (with the liquidations, the only data that names its venues).
venues.pricequote currency (USDT for BTCUSDT)Volume-weighted price of the venue over the bucket.
venues.premium_bpsbasis points (1 bp = 0.01 %)Venue price premium (positive) or discount (negative) versus ref_price.

BytNode 中唯一标明交易所的部分,因为价差离开交易所就没有意义。模型是各交易所溢价:先取多交易所基准价,再计算每个交易所相对该基准的差距。任意两个交易所之间的价差可在客户端由两个溢价相减得出。

参数类型默认值说明
symbolstring必填资产。
timeframestring必填1m、5m、15m、30m、1h、4h、1d。
livebooleanfalse返回进行中的窗口。
limitinteger100历史接口上为 1 到 1000。
since_ms / until_msinteger—用于历史接口:带日期的时间窗口,以毫秒为单位,在 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 }
    ]
  }
}
字段类型说明
ref_pricefloat多交易所基准价。
weightingstringoi(按各交易所持仓量加权)或 volume;参考价格为各交易所价格的加权平均。
max_spread_bpsfloat最高与最低交易所之间的幅度,以基点表示。
high_venue / low_venuestring该分桶内价格最高(最低)的交易所,以及该价格。
high_price / low_pricefloat该分桶内价格最高(最低)的交易所,以及该价格。
venuesarray每个交易所一个条目:venue、price、premium_bps。按溢价从高到低排序。
is_closedboolean仅在 live=1 时为假。