加密 API

39 個端點 · 通用 · 工具 · Alpha · 原始資料

最後更新 2026-10
Base URL
https://api.blave.org
認證
每個請求都要帶 api-key 與 secret-key 標頭
權限
API plan or Blave Agent plan
頻率限制
每組金鑰、每個 IP 各 5 分鐘 500 次

共通規則

所有加密貨幣的 get_alpha/get_exposure 端點共用:

  • period:K 棒週期,{n}min/{n}h/{n}d({n}m 會當成分鐘)。文件列出的值有 5min、15min、1h、4h、8h、1d;最小週期較粗的指標會在自己的區塊裡說明。沒帶 period 或無法解析時回 403 {"error": "period is required"}(unusual_movement 與 liquidation 回 400)。
  • start_date/end_date:YYYY-MM-DD(UTC)。end_date 預設今天;start_date 預設 end_date − 365 天。區間超過 365 天會默默截短(start_date 改成 end_date − 365 天)。格式錯誤的日期不會被驗證,最後會回 500,所以一律送 YYYY-MM-DD。
  • symbol:Binance 的 USDT-M 永續合約,例如 BTCUSDT;也接受 BTC、btc、BTC/USDT、BTC-USDT(只給幣名時會補上 USDT)。get_symbols 端點會列出有涵蓋的交易對。
  • 只回已收盤的 K 棒,還在形成中的最後一根會被丟掉。
  • 回應是 {"data": {"timestamp": [...], "alpha": [...], ...}}:平行陣列,每根 K 棒一個元素。timestamp 是 Unix 秒(UTC),也就是 K 棒的標籤。
  • 要抓超過 365 天的歷史,一年送一個請求再接起來。

stat 物件:區塊裡有列出它的指標才會回。它是一個邏輯斯迴歸模型,用該交易對過去一年的這個指標對未來 24h 的價格變動擬合而成:

欄位型別說明
up_probfloat給定最新指標值時,未來 24h 上漲的機率(0–1)
avg_up_returnfloat過去上漲時的平均 24h 報酬(小數,0.02 = +2%)
avg_down_returnfloat過去下跌時的平均 24h 報酬(小數,負值)
return_ratiofloat-avg_up_return / avg_down_return
exp_valuefloatup_prob × avg_up_return + (1 − up_prob) × avg_down_return
is_data_sufficientbool交易對的歷史不到一年時為 false,這時不要依賴其他欄位

沒有資料時,這個物件會退回 up_prob 0.5,其餘為零。

即時價格

GET/price
資料起始
只有快照(沒有歷史)
更新頻率
伺服器快取 5 秒

參數

名稱說明可用值預設
symbol
string · query必填
幣名或 USDT 交易對BTCUSDT 或 BTC(不分大小寫)

範例

Python
response = requests.get(f"{BASE_URL}/price", headers=headers, params={"symbol": "BTCUSDT"}, timeout=30)print(response.json())# {"symbol": "BTC", "price": 75838.2, "change_24h": -0.01739}

回應

一個扁平的物件。

欄位型別單位說明
symbolstring—不含 USDT 的幣名(例如 BTC,即使送的是 BTCUSDT)
pricefloatUSDT最新價格
change_24hfloat小數24h 漲跌,以小數表示(0.025 = +2.5%)

錯誤

狀態碼回應內容情況
400{"error": "symbol is required"}沒帶 symbol
404{"error": "symbol <SYMBOL> not found"}這個幣沒有價格

備註

  • 價格來源,依備援順序:Binance 的 USDT-M 永續合約 → Binance 現貨 → BingX 永續合約。
  • change_24h 通常與 price 來自同一個交易所,但兩者分開快取(各 5 秒),所以可能短暫不一致。

Alpha 總表

GET/alpha_table
資料起始
只有快照(每個交易對的最新值)
更新頻率
每 5 分鐘

參數

無。

範例

Python
response = requests.get(f"{BASE_URL}/alpha_table", headers=headers, timeout=60)body = response.json()row = body["data"]["0G"]   # one token out of the 716 keys this response carried# {"holder_concentration": {"-": 0.9267}, "holder_concentration_chg": {"15min": -0.0118, "1h": 0.0075, "24h": 0.4723, "3d": -0.1852, "30d": "", ...},#  "funding_rate": {"binance": 0.005, "bybit": 0.005, "okx": 0.005, "pionex": "", ...},#  "liquidation": {"15min": 0.0, "1h": -0.2665, "24h": -0.5637, "1min": "", ...},#  "market_cap": {"-": 42204386.29}, "market_cap_percentile": {"-": 56.55},#  "price": {"-": 0.1832}, "price_change": {"15min": -0.00215, "24h": -0.05792, ...},#  "statistics": {"up_prob": 0.4277, "exp_value": -0.00478, "is_data_sufficient": false, ...}, ...}# (shape captured from a live response; `""` marks insufficient data)

回應

{"data": {<TOKEN>: {...}}, "fields": [...], "note": {...}}.

data 以幣名為 key(BTC、1INCH…)。每個幣對應 指標名稱 → {param: value}(指標沒有參數時為 "-")。"" = 資料不足。除了指標之外還有:

Key說明
statisticsup_prob(未來 24h 上漲的機率)、exp_value(期望報酬)、avg_up_return、avg_down_return、return_ratio、is_data_sufficient
price{"-": 70000}:目前價格
price_change{"15min": ..., "1h": ..., "24h": ...}:漲跌 %
market_cap{"-": 1234567890}:美元市值
market_cap_percentile{"-": 85.3}:在所有上架幣種中的百分位
funding_rate{"binance": -0.01, ...}:各交易所
oi_imbalance{"-": 0.12}:OI 失衡(完整內容見 /oi_imbalance/get_overview_data)

fields:每個指標一筆,含 id、name(data 裡用的 key)、param(參數名稱或 null)、name_en、name_zh。

note:以指標 id 為 key,內容是一串數值區間 {min, max, note: {en, zh}, direction: {en, zh}, color, background_color},用來替數值貼標籤(例如 max: -3 → "Overly Bearish")。

錯誤

只有共用錯誤。

備註

  • 要做多幣篩選或排行,先用這個端點,一個請求就涵蓋所有交易對。
  • 使用 statistics 之前一律先檢查 statistics.is_data_sufficient。
  • 一律重新抓;不要重複使用先前的回應。

K 線

GET/kline
資料起始
2020-01-01,合約上架日較晚時從上架日起
更新頻率
每根 K 棒收盤後約一分鐘內

涵蓋範圍。所有代號以 USDT 結尾的 Binance USDⓈ-M 永續合約,2026 年 10 月時共 740 檔,包含代幣化股票、商品與其他 TradFi 的 USDT 永續合約。這 740 檔的完整 1 分鐘歷史都存在伺服器端,從 2020-01-01 或上架日開始。新上架的永續合約約在上架後 5–10 分鐘可以查詢。

未涵蓋:以 USDC、USD1、U 或 BTC 計價的合約(例如 BTCUSDC、ETHBTC)與季度交割合約,這些會回下方的 400 unknown symbol or no data 錯誤。已下架的合約不保證有資料:可能回還存著的歷史,也可能回同一個 400(2026 年 10 月以前下架的合約沒有 1min–4min 的歷史)。

參數

名稱說明可用值預設
symbol
string · query必填
Binance USDⓈ-M USDT 永續合約。只給幣名時會補上 USDT;只存在倍數前綴版本的幣名會對應到那個版本(PEPE → 1000PEPEUSDT)BTCUSDT;也接受 BTC、btc、BTC/USDT、BTC-USDT
period
string · query必填
K 棒週期。任何整數分鐘的週期都接受,不限於列出的例子{n}min/{n}h/{n}d,最小 1min(例如 1min、3min、15min、2h、1d、7d)。{n}m 會當成分鐘(15m = 15min)
start_date
string · query
起始日期(含當日)YYYY-MM-DD(UTC)end_date − 365 天(週期 ≥ 5min);end_date − 30 天(週期 < 5min)
end_date
string · query
結束日期(含當日,K 棒到該 UTC 日結束為止)YYYY-MM-DD(UTC)現在

每次請求的視窗:週期 ≥ 5min → 最多 365 天;更長的區間會默默截短(start_date 改成 end_date − 365 天,不報錯)。週期 < 5min → 最多 30 天;更長的區間回 400。

範例

Python
params = {"symbol": "BTCUSDT", "period": "1h", "start_date": "2026-10-01", "end_date": "2026-10-02"}response = requests.get(f"{BASE_URL}/kline", headers=headers, params=params, timeout=60)data = response.json()# [{"time": 1790812800.0, "open": 83576.8, "high": 83612.6, "low": 83370.0, "close": 83460.0, "volume": 3123.991}, ...]

回應

一個裸的 JSON 陣列(沒有包在 {"data": ...} 裡),依時間由舊到新。

欄位型別單位說明
timefloatUnix 秒(UTC)K 棒開盤時間
open / high / low / closefloat計價幣(USDT)價格
volumefloat | null基礎資產成交量;來源沒有該根 K 棒的成交量時為 null

錯誤

狀態碼回應內容情況
403{"error": "symbol is required"}沒帶 symbol
403{"error": "period is required"}沒帶 period或無法解析
400{"error": "minimum supported period is 1min"}period 小於一分鐘
400{"error": "periods below 5min must be a whole number of minutes"}e.g. 90s
400{"error": "date range exceeds max 30 days for periods below 5min"}週期 < 5min 且區間 > 30 天
400{"error": "invalid date format, expected YYYY-MM-DD"}start_date/end_date 格式錯誤
400{"error": "unknown symbol or no data: <symbol>"}交易對未涵蓋(見未涵蓋)或不是真實存在的合約,例如 BTCUSDC、ETHBTC、打錯字。<symbol> 會原樣帶回你送的值。這不是暫時性錯誤,不要重試

備註

  • 視窗完全落在已涵蓋合約的上架日之前時,回 200 與 [],不是錯誤。
  • 1min 回的每根 K 棒都已收盤。較長的週期在 end_date 是今天時,最後一根可能是未完成的 K 棒,它由目前已收盤的 K 棒組成(07:09 UTC 時,07:00 那根 1h K 棒只含 07:00–07:05);只要已收盤的 K 棒就把它丟掉。
  • 要抓超過一個視窗的歷史,一個視窗送一個請求再接起來(例如 3 年的 5min = 3 個請求;1 年的 1min = 13 個 ≤30 天的請求)。
  • 全部 740 檔 USDT 永續合約的完整 1 分鐘歷史都在磁碟上,所以大範圍的請求直接由已存資料回應,不會有第一次抓取很慢的情況。
  • 起始日適用於每個週期,包含 1min。
  • 最新一根已收盤的 1 分鐘 K 棒通常在下一分鐘內就拿得到;少數服務降級的情況下,最新的 K 棒可能延遲約 5–10 分鐘。
  • 伺服器快取:30 秒(1min)、300 秒(1h/4h/1d)、60 秒(其他週期);最新一根已收盤 K 棒還沒進來時只有 5 秒。

市場方向

GET/market_direction/get_alpha
資料起始
2024-12-27
更新頻率
每 5 分鐘

參數

沒有 symbol:alpha 是單一條全市場序列,不是每個幣一條。內部只用 BTCUSDT 來對齊 K 棒;它不會被回傳,也不影響 alpha。見加密貨幣指標共通規則。

名稱說明可用值預設
period
string · query必填
K 棒週期1h、4h、8h、1d(最小 1h)
start_date
string · query
起始日YYYY-MM-DDend_date − 365 天
end_date
string · query
結束日期YYYY-MM-DD今天

範例

Python
params = {"period": "1h", "start_date": "2026-09-13", "end_date": "2026-09-15"}response = requests.get(f"{BASE_URL}/market_direction/get_alpha", headers=headers, params=params, timeout=60)# {"data": {"alpha": [-0.5195979478976323, -0.5223392571665055, -0.5612490182062327, ...],#           "timestamp": [1789257600.0, 1789261200.0, 1789264800.0, ...]}}   # 72 bars

回應

{"data": {"timestamp": [...], "alpha": [...]}}。沒有 stat。

欄位型別說明
timestampfloat[]Unix 秒(UTC)
alphafloat[]市場方向值

錯誤

狀態碼回應內容情況
403{"error": "period is required"}沒帶 period 或無法解析

備註

  • 單一條全市場序列,沒有交易對維度;回得到的最早 1d K 棒是 2024-12-27。

篩選器已存條件

GET/screener/get_saved_conditions
資料起始
—
更新頻率
即時

參數

無。

範例

Python
response = requests.get(f"{BASE_URL}/screener/get_saved_conditions", headers=headers, timeout=30)conditions = response.json()["data"]

回應

{"data": {<condition_id>: {...}}},以條件 id 為 key(JSON 字串 key,例如 "12";回傳時當成整數 condition_id 送)。只有這個帳號自己的條件。

欄位型別說明
filtersobject[]條件的篩選項,全部以 AND 組合:indicator_id(int)、indicator_name({"en", "zh"})、param(字串;"-" = 指標的預設值)、operator_id(int)、operator_symbol(字串,例如 >)、value(門檻)
notestring你儲存這個條件時取的名稱
name_en / name_zhstring | null只有官方/社群條件才有值;你自己的條件會是空的或 null,請改讀 note
description_en / description_zhstring | null只有官方/社群條件才有值;可能是空的或 null

錯誤

狀態碼回應內容情況
403{"error": "unsupported api feature"}金鑰沒有綁定用戶帳號

備註

  • 每次請求都即時讀取帳號已儲存的條件。

篩選器結果

GET/screener/get_saved_condition_result
資料起始
快照(目前的 alpha 值)
更新頻率
每 5 分鐘

參數

名稱說明可用值預設
condition_id
int · query必填
要執行的條件get_saved_conditions 回的 id

範例

Python
response = requests.get(f"{BASE_URL}/screener/get_saved_condition_result", headers=headers,                        params={"condition_id": 12}, timeout=60)

回應

{"data": {"alpha_names": [...], "symbols": [...]}}.

欄位型別說明
alpha_namesobject[]每個不重複的篩選指標一筆,依篩選項順序:en/zh(顯示名稱,有參數時參數放在括號裡)、name(指標 key)、type、url;指標有定義時再加上 value_format、value_decimals、polarity
symbolsobject[]符合所有篩選項的幣
symbols[].symbolstring不含 USDT 的幣名(例如 BTC)
symbols[].idint幣的 id(未知時為 0)
symbols[].user_selectedbool這個幣在帳號的自選清單裡
symbols[].pricefloat最新價格,單位 USDT(與 /price 同一個來源;取不到時為 0)
symbols[].24h_chgfloat24h 漲跌,以小數表示(0.025 = +2.5%)
symbols[].alphasfloat[]這個幣在每個篩選指標上的值,與 alpha_names 平行
symbols[].alpha_notesobject[]每個指標一筆:indicator_id、color、direction、note(有規則命中時再加 background_color;沒有命中時 color 為 null,其餘為空字串)

錯誤

狀態碼回應內容情況
400{"error": "Missing parameter: condition_id is required."}缺少
400{"error": "Invalid parameter: condition_id must be an integer."}不是整數
404{"error": "Invalid condition_id: <id> not found for user."}不是這個帳號的條件
403{"error": "unsupported api feature"}金鑰沒有綁定用戶帳號

籌碼集中度幣種清單

GET/holder_concentration/get_symbols
資料起始
—
更新頻率
伺服器快取 10 分鐘

參數

無。

範例

Python
symbols = requests.get(f"{BASE_URL}/holder_concentration/get_symbols", headers=headers, timeout=30).json()["data"]

回應

{"data": ["BNBUSDT", "BTCUSDT", ...]},已排序。

錯誤

只有共用錯誤。

備註

  • 目前所有加密貨幣的 */get_symbols 端點都回同一份 Binance 的 USDT-M 交易對清單。
  • 清單取自最新的 Binance 的 USDT-M 未平倉量快照。

籌碼集中度

GET/holder_concentration/get_alpha
資料起始
2021-05-11(BTCUSDT)
更新頻率
每 5 分鐘

參數

見加密貨幣指標共通規則。

名稱說明可用值預設
symbol
string · query必填
商品代號e.g. BTCUSDT
period
string · query必填
K 棒週期5min, 15min, 1h, 4h, 8h, 1d
start_date
string · query
起始日YYYY-MM-DDend_date − 365 天
end_date
string · query
結束日期YYYY-MM-DD今天

範例

Python
params = {"symbol": "BTCUSDT", "period": "1h", "start_date": "2026-09-13", "end_date": "2026-09-15"}response = requests.get(f"{BASE_URL}/holder_concentration/get_alpha", headers=headers, params=params, timeout=60)# {"data": {"alpha": [-1.1931909718306861, -1.2035898186867282, -1.2037004015202886, ...],#           "timestamp": [1789257600.0, 1789261200.0, 1789264800.0, ...],#           "stat": {"up_prob": 0.509739818557561, "exp_value": -0.00051954905018229,#                    "avg_up_return": 0.015512131150026753, "avg_down_return": -0.017188220228787618,#                    "return_ratio": 0.9024861762037658, "is_data_sufficient": true}}}   # 72 bars

回應

{"data": {"timestamp": [...], "alpha": [...], "stat": {...}}}.

欄位型別說明
timestampfloat[]Unix 秒(UTC)
alphafloat[]多空帳戶比取對數後,相對 30 天平均的 Z-score,並反轉正負號;數值越高 = 籌碼越集中
statobject見 stat 物件

錯誤

狀態碼回應內容情況
403{"error": "symbol is required"} / {"error": "period is required"}缺少參數

備註

  • 只涵蓋 Binance,以 Binance 的全市場多空帳戶比為基礎。
  • 2021-05-11 是 BTCUSDT 的第一根 1d K 棒;其他交易對可能較晚開始。

資金費率

GET/funding_rate/get_alpha
資料起始
2025-09-30(BTCUSDT)
更新頻率
每 5 分鐘

參數

見加密貨幣指標共通規則。

名稱說明可用值預設
symbol
string · query必填
交易對(一律用 Binance 的寫法,不論哪個交易所)e.g. BTCUSDT
period
string · query必填
K 棒週期5min, 15min, 1h, 4h, 8h, 1d
exchange
string · query
要讀哪個交易所的永續合約資金費率;其他值回 400binance, okx, bingx, bybitbinance
start_date
string · query
起始日YYYY-MM-DDend_date − 365 天
end_date
string · query
結束日期YYYY-MM-DD今天

範例

Python
params = {"symbol": "BTCUSDT", "period": "1h", "start_date": "2026-09-13", "end_date": "2026-09-15"}response = requests.get(f"{BASE_URL}/funding_rate/get_alpha", headers=headers, params=params, timeout=60)# {"data": {"timestamp": [1789257600.0, 1789261200.0, 1789264800.0, ...],#           "alpha": [0.005064, 0.006165, 0.007765, ...],#           "close": [77239.5, 77285.5, 77263.9, ...],#           "stat": {"up_prob": 0.5009438427095587, "exp_value": -0.0008769555139270298,#                    "is_data_sufficient": false, ...}}}   # 72 bars

回應

{"data": {"timestamp": [...], "alpha": [...], "close": [...], "stat": {...}}}.

欄位型別單位說明
timestampfloat[]Unix 秒(UTC)K 棒標籤
alphafloat[]百分比資金費率 × 100(0.01 = 0.01%);正值 = 多方付給空方
closefloat[]USDT永續合約收盤價
statobject—見 stat 物件

錯誤

狀態碼回應內容情況
403{"error": "symbol is required"} / {"error": "period is required"}缺少參數
400{"error": "exchange must be one of binance, okx, bingx, bybit"}exchange 不在清單內

備註

  • 2025-09-30 是 BTCUSDT 的第一根 1d K 棒;其他交易對可能較晚開始,exchange=bybit 也較晚開始,請讀第一個時間戳。

市場情緒幣種清單

GET/market_sentiment/get_symbols
資料起始
—
更新頻率
伺服器快取 10 分鐘

參數

無。

範例

Python
symbols = requests.get(f"{BASE_URL}/market_sentiment/get_symbols", headers=headers, timeout=30).json()["data"]

回應

{"data": ["BNBUSDT", "BTCUSDT", ...]},已排序。

錯誤

只有共用錯誤。

備註

  • 清單取自最新的 Binance 的 USDT-M 未平倉量快照。

市場情緒

GET/market_sentiment/get_alpha
資料起始
2020-01-01(BTCUSDT)
更新頻率
每 5 分鐘

參數

見加密貨幣指標共通規則。

名稱說明可用值預設
symbol
string · query必填
商品代號e.g. BTCUSDT
period
string · query必填
K 棒週期5min, 15min, 1h, 4h, 8h, 1d
start_date
string · query
起始日YYYY-MM-DDend_date − 365 天
end_date
string · query
結束日期YYYY-MM-DD今天

範例

Python
params = {"symbol": "BTCUSDT", "period": "1h", "start_date": "2025-01-01", "end_date": "2025-03-01"}response = requests.get(f"{BASE_URL}/market_sentiment/get_alpha", headers=headers, params=params, timeout=60)

回應

{"data": {"timestamp": [...], "alpha": [...], "stat": {...}}}.

欄位型別說明
timestampfloat[]Unix 秒(UTC)
alphafloat[]市場情緒值
statobject見 stat 物件

錯誤

狀態碼回應內容情況
403{"error": "symbol is required"} / {"error": "period is required"}缺少參數

備註

  • 2020-01-01 是 BTCUSDT 的第一根 1d K 棒;其他交易對可能較晚開始。

資金稀缺

GET/capital_shortage/get_alpha
資料起始
2023-12-09
更新頻率
每 5 分鐘

參數

沒有 symbol;全市場。見加密貨幣指標共通規則。

名稱說明可用值預設
period
string · query必填
K 棒週期,5min 與 15min 都有資料5min, 15min, 1h, 4h, 8h, 1d
start_date
string · query
起始日YYYY-MM-DDend_date − 365 天
end_date
string · query
結束日期YYYY-MM-DD今天

範例

Python
params = {"period": "1h", "start_date": "2025-01-01", "end_date": "2025-03-01"}response = requests.get(f"{BASE_URL}/capital_shortage/get_alpha", headers=headers, params=params, timeout=60)

回應

{"data": {"timestamp": [...], "alpha": [...], "stat": {...}}}.

欄位型別說明
timestampfloat[]Unix 秒(UTC)
alphafloat[]資金稀缺值
statobject見 stat 物件(以 BTC 計算)

錯誤

狀態碼回應內容情況
403{"error": "period is required"}缺少參數

備註

  • 只涵蓋 Binance,全市場,取自 Binance 的 USDT 借貸年利率。
  • 單一條全市場序列,沒有交易對維度;第一根 1d K 棒是 2023-12-09。

板塊輪動歷史

GET/sector_rotation/get_history_data
資料起始
最近 365 天(每日)
更新頻率
約每小時

參數

無。

範例

Python
response = requests.get(f"{BASE_URL}/sector_rotation/get_history_data", headers=headers, timeout=60)# {"data": {"alpha": {"AI": {"data": [0.0, 0.04377017039444864, 0.04922749428543449, ...],#                           "name_en": "AI", "name_zh": "人工智能"},#                     "BNB Eco": {"data": [0.0, 0.008847752133756215, ...],#                                 "name_en": "BNB Eco", "name_zh": "BNB 生態"}, ...},#           "timestamp": [1757980800.0, 1758067200.0, 1758153600.0, ...]}}   # 51 sectors, 366 points

回應

{"data": {"alpha": {<sector>: {"data": [...], "name_en": ..., "name_zh": ...}}, "timestamp": [...]}}。timestamp 與 alpha 並列在 data 最上層,不在各板塊裡面;它是所有板塊序列共用的時間軸。

欄位型別說明
timestampfloat[]Unix 秒(UTC),每個點一個;觀察到的回應有 366 個每日點
alpha.<sector>.datafloat[]板塊序列,長度與順序同 timestamp(366);第一個元素是 0.0
alpha.<sector>.name_en / name_zhstring板塊顯示名稱

錯誤

只有共用錯誤。

備註

  • 序列是最近一年的每日視窗(366 個每日點),每個板塊都從 0.0 開始。沒有參數,而且每次重建只重算最近 365 天,所以沒有更長的歷史。
  • 由排程重建,每次重建間隔 50–60 分鐘;直接回排程的產出,沒有額外的伺服器快取。

板塊輪動熱圖

GET/sector_rotation/get_overview_data
資料起始
快照
更新頻率
約每小時

參數

無。

範例

Python
data = requests.get(f"{BASE_URL}/sector_rotation/get_overview_data", headers=headers, timeout=60).json()["data"]# {"AI": {"name_en": "AI", "name_zh": "人工智能",#         "data": {"1h": {"pct_change": 0.0076}, "8h": ..., "90d": ...},#         "symbols": {"0G": {"id": 38337, "data": {"1h": {"pct_change": 0.0061}, ...}}, ...}}, ...}

回應

{"data": {<sector>: {"name_en", "name_zh", "data", "symbols"}}}(約 48 個板塊)。

欄位說明
data{<timeframe>: {"pct_change": float}},涵蓋 1h、8h、24h、3d、7d、30d、90d;pct_change 是小數(0.0061 = +0.61%)
symbols{<token>: {"id": int, "data": {<timeframe>: {"pct_change": float}}}}:各幣明細

錯誤

只有共用錯誤。

備註

  • 由排程重建,每次重建間隔 50–60 分鐘;直接回排程的產出,沒有額外的伺服器快取。

OI 失衡

GET/oi_imbalance/get_overview_data
資料起始
快照
更新頻率
每 5 分鐘

參數

無。

範例

Python
data = requests.get(f"{BASE_URL}/oi_imbalance/get_overview_data", headers=headers, timeout=60).json()["data"]# [{"token": "TSLA", "token_id": 39618, "token_price": 313.33, "token_chg": 0.031,#   "market_cap": 40415.98, "oi_total": 59916616.78, "alpha": 1482.5}, ...]

回應

{"data": [...]},依 alpha 由大到小排序。

欄位型別單位說明
tokenstring—幣名
token_idint—Blave 的幣 id
token_pricefloat美元價格
token_chgfloat小數價格漲跌
market_capfloat美元市值
oi_totalfloat美元Binance/OKX/BingX 三家加總的合約未平倉量
alphafloat比率oi_total / market_cap:數值高 = 未平倉量相對規模過於擁擠(有軋倉/波動風險)

錯誤

只有共用錯誤。

備註

  • /alpha_table 的 oi_imbalance 只帶最終的 alpha;這個端點才有完整表格。
  • 伺服器快取:5 分鐘。

巨鯨警報幣種清單

GET/whale_hunter/get_symbols
資料起始
—
更新頻率
伺服器快取 10 分鐘

參數

無。

範例

Python
symbols = requests.get(f"{BASE_URL}/whale_hunter/get_symbols", headers=headers, timeout=30).json()["data"]

回應

{"data": ["BNBUSDT", "BTCUSDT", ...]},已排序。

錯誤

只有共用錯誤。

備註

  • 清單取自最新的 Binance 的 USDT-M 未平倉量快照。

巨鯨警報

GET/whale_hunter/get_alpha
資料起始
2021-12-01(BTCUSDT)
更新頻率
每 5 分鐘

參數

見加密貨幣指標共通規則。

名稱說明可用值預設
symbol
string · query必填
商品代號e.g. BTCUSDT
period
string · query必填
K 棒週期5min, 15min, 1h, 4h, 8h, 1d
timeframe
string · query
加總資金流的滾動視窗15min, 1h, 4h, 8h, 24h, 3d24h
score_type
string · query
未平倉量變化或成交量score_oi, score_volumescore_oi
start_date
string · query
起始日YYYY-MM-DDend_date − 365 天
end_date
string · query
結束日期YYYY-MM-DD今天

範例

Python
params = {"symbol": "BTCUSDT", "period": "1h", "timeframe": "24h", "score_type": "score_oi"}response = requests.get(f"{BASE_URL}/whale_hunter/get_alpha", headers=headers, params=params, timeout=60)

回應

{"data": {"timestamp": [...], "alpha": [...], "stat": {...}}}.

欄位型別說明
timestampfloat[]Unix 秒(UTC)
alphafloat[]依 timeframe 加總的未平倉量變化(或成交量),相對 30 天平均的 Z-score
statobject見 stat 物件

錯誤

狀態碼回應內容情況
403{"error": "symbol is required"} / {"error": "period is required"}缺少參數
403{"error": "Invalid score_type"}不允許的 score_type

備註

  • 只涵蓋 Binance:USDT-M 永續合約的未平倉量與成交量。
  • 伺服器端不驗證 timeframe。試過一個清單外的值 2h,回了 200 且有資料。這只是單一次觀察,不能證明任何 {n}h 都能用。除非你自己驗證過要用的值,否則請用清單內的值。
  • 2021-12-01 是 BTCUSDT 的第一根 1d K 棒;其他交易對可能較晚開始。

多空力道幣種清單

GET/taker_intensity/get_symbols
資料起始
—
更新頻率
伺服器快取 10 分鐘

參數

無。

範例

Python
symbols = requests.get(f"{BASE_URL}/taker_intensity/get_symbols", headers=headers, timeout=30).json()["data"]

回應

{"data": ["BNBUSDT", "BTCUSDT", ...]},已排序。

錯誤

只有共用錯誤。

備註

  • 清單取自最新的 Binance 的 USDT-M 未平倉量快照。

多空力道

GET/taker_intensity/get_alpha
資料起始
2020-01-01(BTCUSDT)
更新頻率
每 5 分鐘

參數

見加密貨幣指標共通規則。

名稱說明可用值預設
symbol
string · query必填
商品代號e.g. BTCUSDT
period
string · query必填
K 棒週期5min, 15min, 1h, 4h, 8h, 1d
timeframe
string · query
滾動視窗15min, 1h, 4h, 8h, 24h, 3d24h
start_date
string · query
起始日YYYY-MM-DDend_date − 365 天
end_date
string · query
結束日期YYYY-MM-DD今天

範例

Python
params = {"symbol": "BTCUSDT", "period": "1h", "timeframe": "24h", "start_date": "2025-01-01", "end_date": "2025-03-01"}response = requests.get(f"{BASE_URL}/taker_intensity/get_alpha", headers=headers, params=params, timeout=60)

回應

{"data": {"timestamp": [...], "alpha": [...], "stat": {...}}}.

欄位型別說明
timestampfloat[]Unix 秒(UTC)
alphafloat[]依 timeframe 加總的(主動買 − 主動賣)成交量,相對 30 天平均的 Z-score;正值 = 淨買入
statobject見 stat 物件

錯誤

狀態碼回應內容情況
403{"error": "symbol is required"} / {"error": "period is required"}缺少參數

備註

  • 只涵蓋 Binance:USDT-M 永續合約的主動買/賣成交量。
  • 2020-01-01 是 BTCUSDT 的第一根 1d K 棒;其他交易對可能較晚開始。

異常漲跌幣種清單

GET/unusual_movement/get_symbols
資料起始
—
更新頻率
伺服器快取 10 分鐘

參數

無。

範例

Python
symbols = requests.get(f"{BASE_URL}/unusual_movement/get_symbols", headers=headers, timeout=30).json()["data"]

回應

{"data": ["BNBUSDT", "BTCUSDT", ...]},已排序。

錯誤

只有共用錯誤。

備註

  • 清單取自最新的 Binance 的 USDT-M 未平倉量快照。

異常漲跌

GET/unusual_movement/get_alpha
資料起始
2020-01-02(BTCUSDT)
更新頻率
每 5 分鐘

參數

見加密貨幣指標共通規則。

名稱說明可用值預設
symbol
string · query必填
商品代號e.g. BTCUSDT
period
string · query必填
K 棒週期5min, 15min, 1h, 4h, 8h, 1d
timeframe
string · query
衡量漲跌幅的視窗15min, 1h, 4h, 8h, 24h, 3d, 7d24h
start_date
string · query
起始日YYYY-MM-DDend_date − 365 天
end_date
string · query
結束日期YYYY-MM-DD今天

範例

Python
params = {"symbol": "BTCUSDT", "period": "1h", "timeframe": "24h"}response = requests.get(f"{BASE_URL}/unusual_movement/get_alpha", headers=headers, params=params, timeout=60)

回應

{"data": {"timestamp": [...], "alpha": [...], "close": [...], "stat": {...}}}.

欄位型別說明
timestampfloat[]Unix 秒(UTC)
alphafloat[]timeframe 內的報酬,除以換算到該視窗的 365 天波動率;|alpha| 大 = 離群值
closefloat[]收盤價(USDT)
statobject見 stat 物件

錯誤

狀態碼回應內容情況
400{"error": "symbol is required"} / {"error": "period is required"}缺少參數
500伺服器錯誤timeframe 不在允許的清單內

備註

  • 只涵蓋 Binance:USDT-M 永續合約的價格。
  • 2020-01-02 是 BTCUSDT 的第一根 1d K 棒;其他交易對可能較晚開始。

擠壓動能幣種清單

GET/squeeze_momentum/get_symbols
資料起始
—
更新頻率
伺服器快取 10 分鐘

參數

無。

範例

Python
symbols = requests.get(f"{BASE_URL}/squeeze_momentum/get_symbols", headers=headers, timeout=30).json()["data"]

回應

{"data": ["BNBUSDT", "BTCUSDT", ...]},已排序。

錯誤

只有共用錯誤。

備註

  • 清單取自最新的 Binance 的 USDT-M 未平倉量快照。

擠壓動能

GET/squeeze_momentum/get_alpha
資料起始
2020-02-09(BTCUSDT)
更新頻率
日 K

參數

沒有 period;固定為 1d。見加密貨幣指標共通規則。

名稱說明可用值預設
symbol
string · query必填
商品代號e.g. BTCUSDT
start_date
string · query
起始日YYYY-MM-DDend_date − 365 天
end_date
string · query
結束日期YYYY-MM-DD今天

範例

Python
params = {"symbol": "BTCUSDT", "start_date": "2025-01-01", "end_date": "2025-03-01"}response = requests.get(f"{BASE_URL}/squeeze_momentum/get_alpha", headers=headers, params=params, timeout=60)# {"data": {"alpha": [-0.2256, ...], "scolor": ["black", ...], "timestamp": [...], "stat": {...}}}

回應

{"data": {"timestamp": [...], "alpha": [...], "scolor": [...], "stat": {...}}}.

欄位型別說明
timestampfloat[]Unix 秒(UTC),每日
alphafloat[]動能值
scolorstring[]black = 擠壓中(布林通道在肯特納通道之內),grey = 擠壓結束
statobject見 stat 物件

錯誤

狀態碼回應內容情況
403{"error": "symbol is required"}缺少參數

備註

  • 只涵蓋 Binance:USDT-M 永續合約的價格。
  • 序列有補值:BTCUSDT 從 2020-01-01 就有資料列,但 alpha 在 2020-02-09 之前都是 0.0。請求的起點早於資料起始日時會回這些補值列,它們是填充,不是訊號。請丟掉開頭的零,或從資料起始日開始。
  • 2020-02-09 是 BTCUSDT 第一個非零的 alpha;其他交易對可能較晚開始。

Blave 頂尖交易員曝險

GET/blave_top_trader/get_exposure
資料起始
2025-03-03
更新頻率
每 5 分鐘

參數

沒有 symbol:alpha 是單一條全市場序列,不是每個幣一條。內部只用 BTCUSDT 來對齊 K 棒;它不會被回傳,也不影響 alpha。見加密貨幣指標共通規則。

名稱說明可用值預設
period
string · query必填
K 棒週期1h, 4h, 8h, 1d
start_date
string · query
起始日YYYY-MM-DDend_date − 365 天
end_date
string · query
結束日期YYYY-MM-DD今天

範例

Python
params = {"period": "1h", "start_date": "2025-05-01", "end_date": "2025-07-01"}response = requests.get(f"{BASE_URL}/blave_top_trader/get_exposure", headers=headers, params=params, timeout=60)# {"data": {"alpha": [34.32, 40.52, ...], "timestamp": [1747130400.0, ...]}}

回應

{"data": {"timestamp": [...], "alpha": [...]}}。沒有 stat。

欄位型別說明
timestampfloat[]Unix 秒(UTC)
alphafloat[]Blave 頂尖交易員(帳戶資產前 10%)的淨曝險:每位交易員的淨名目部位 ÷ 自身資產,取這些交易員的中位數,再 ×100(正值 = 淨多)。這是原始比率,不是 z-score

錯誤

狀態碼回應內容情況
403{"error": "period is required"}缺少參數

備註

  • 單一條全市場序列,涵蓋這些交易員持有的所有幣;沒有交易對維度。

爆倉幣種清單

GET/liquidation/get_symbols
資料起始
—
更新頻率
伺服器快取 10 分鐘

參數

無。

範例

Python
symbols = requests.get(f"{BASE_URL}/liquidation/get_symbols", headers=headers, timeout=30).json()["data"]

回應

{"data": ["BNBUSDT", "BTCUSDT", ...]},已排序。

錯誤

只有共用錯誤。

備註

  • 清單取自最新的 Binance 的 USDT-M 未平倉量快照。

爆倉指標

GET/liquidation/get_alpha
資料起始
BTC/ETH 為 2023-01-01;其他交易對可能較晚開始
更新頻率
每 5 分鐘

參數

見加密貨幣指標共通規則。

名稱說明可用值預設
symbol
string · query必填
商品代號e.g. BTCUSDT
period
string · query必填
K 棒週期5min, 15min, 1h, 4h, 8h, 1d
timeframe
string · query
滾動視窗15min, 1h, 4h, 8h, 24h, 3d24h
start_date
string · query
起始日YYYY-MM-DDend_date − 365 天
end_date
string · query
結束日期YYYY-MM-DD今天

範例

Python
params = {"symbol": "BTCUSDT", "period": "1h", "timeframe": "24h"}response = requests.get(f"{BASE_URL}/liquidation/get_alpha", headers=headers, params=params, timeout=60)

回應

{"data": {"timestamp": [...], "alpha": [...], "stat": {...}}}.

欄位型別說明
timestampfloat[]Unix 秒(UTC)
alphafloat[](空單 − 多單爆倉量,以幣計)依 timeframe 加總 ÷ 其 30 天滾動標準差;不減平均。> 0 = 空單爆倉多於多單,< 0 = 多單較多
statobject見 stat 物件

錯誤

狀態碼回應內容情況
400{"error": "symbol is required"} / {"error": "period is required"}缺少參數

備註

  • 序列有補值:BTCUSDT 從 2020-01-01 就有資料列,但 alpha 在 2023-01-01 之前都是 0.0。請求的起點早於資料起始日時會回這些補值列,它們是填充,不是訊號。請丟掉開頭的零,或從資料起始日開始。BTC/ETH 以外的交易對更晚才轉為非零,所以要逐一檢查。

爆倉地圖

GET/liquidation/get_map
資料起始
快照
更新頻率
伺服器快取 5 秒

參數

名稱說明可用值預設
symbol
string · query必填
商品代號e.g. BTCUSDT
price_max
float · query
價格軸上限價格伺服器決定的範圍
price_min
float · query
價格軸下限價格伺服器決定的範圍

範例

Python
response = requests.get(f"{BASE_URL}/liquidation/get_map", headers=headers, params={"symbol": "BTCUSDT"}, timeout=60)# {"data": {"price": 77554.1, "labels": [54287.9, ...], "oi_value": [57693.86, ...],#           "cumsum": [1543109619.0, ...], "liquidation": {"24h": {"buy_liq": [...], "sell_liq": [...]}}}}

回應

{"data": {"price", "labels", "oi_value", "cumsum", "liquidation"}}.

欄位型別單位說明
pricefloatUSDT目前價格
labelsfloat[]USDT200 個價格區間
oi_valuefloat[]美元Binance 未平倉量分配到各區間的估計值(模型估計,不是真實部位)
cumsumfloat[]美元跨區間累計的爆倉曝險
liquidationobject美元{"24h": {"buy_liq": [...], "sell_liq": [...]}}:各區間最近 24 小時 Binance 實際的強制平倉單,各自除以固定的 0.3(假設的 Binance 市佔):buy_liq = 空單爆倉,sell_liq = 多單爆倉

錯誤

狀態碼回應內容情況
400{"error": "symbol is required"}缺少參數

爆倉地圖變化

GET/liquidation/get_map_change
資料起始
最近 24 小時
更新頻率
每次請求時計算

參數

名稱說明可用值預設
symbol
string · query必填
商品代號e.g. BTCUSDT
price_max
float · query
價格軸上限價格伺服器決定的範圍
price_min
float · query
價格軸下限價格伺服器決定的範圍

範例

Python
response = requests.get(f"{BASE_URL}/liquidation/get_map_change", headers=headers, params={"symbol": "BTCUSDT"}, timeout=60)# {"data": {"price": 77554.1, "labels": [54287.9, ...], "hist_0_1h": [0.0, ...], "hist_1_8h": [...], "hist_8_24h": [...]}}

回應

{"data": {"price", "labels", "hist_0_1h", "hist_1_8h", "hist_8_24h"}}.

欄位型別單位說明
pricefloatUSDT目前價格
labelsfloat[]USDT200 個價格區間(下緣)
hist_0_1hfloat[]美元各區間最近 0–1 小時新增的估計爆倉曝險:模型地圖快照之間的正向差值,不是實際爆倉
hist_1_8hfloat[]美元最近 1–8 小時
hist_8_24hfloat[]美元最近 8–24 小時

錯誤

狀態碼回應內容情況
400{"error": "symbol is required"}缺少參數

備註

  • 每次請求都會重建目前的地圖(伺服器快取 5 秒),並與約 1 小時、8 小時、24 小時前存下的地圖快照比較。每個交易對每 30 分鐘存一次快照,每次請求地圖時也會存。

每幣爆倉

GET/liquidation/get_coin
資料起始
快照(最近 24 小時)
更新頻率
每 5 分鐘

單一幣種在 Blave 收集的所有交易所資料源上的強制平倉:四個滾動視窗與各交易所的拆分、一條 24 點的每小時序列,以及各資料源的涵蓋說明。這是真實的爆倉流量(如同 get_alpha 的輸入),不是 get_map 背後的模型估計。

參數

名稱說明可用值預設
symbol
string · query必填
幣種。計價幣後綴會被去掉;回應的 symbol 是正規化後的幣名BTC、BTCUSDT、btc、BTC-USDT-SWAP、BTC_USDT(≤ 32 個字元)

範例

回應

{"data": {"symbol", "rank", "updated_at", "windows", "exchanges", "detail_complete", "series"}}.

欄位型別單位說明
symbolstring—正規化後的幣名,例如 BTC
rankint / null—依跨交易所 24 小時總額排序,在前 50 名幣種中的名次;不在前 50 名或沒有事件時為 null
updated_atstring / nullISO 8601(UTC)所用最新一個 5 分鐘區段的時間
windowsobject—key 是字串 "1"、"4"、"12"、"24"(小時)。每個都是結束在最新 5 分鐘區段的滾動視窗,欄位如下
windows.<h>.total_liq_usd / long_liq_usd / short_liq_usdfloat美元跨交易所加總;long = 多單被爆倉(價格下跌),short = 空單被爆倉(價格上漲)
windows.<h>.long_pct / short_pctfloat / null比率 0–1佔視窗總額的比例;視窗總額為 0 時為 null
windows.<h>.covered_hoursfloath視窗內實際有區段的小時數(收集程式剛重啟後會 < h)
windows.<h>.by_exchangeobject美元{exchange: {total_liq_usd, long_liq_usd, short_liq_usd}}。視窗內沒有事件的交易所沒有 key;要分辨「資料源正常、這個幣沒動靜」與「資料源不存在」,請讀 exchanges[]
exchanges[]object[]—每個資料源一列(目前六個,沒有事件也會出現),依 24 小時總額由大到小排序,其次依名單順序
exchanges[].exchangestring—binance, bybit, gate, okx, htx, bitfinex
exchanges[].listedbool / null—該交易所是否有這個幣的 USDT 本位永續合約;抓不到合約清單時為 null(Bitfinex 一律為 null)
exchanges[].last_event_atstring / nullISO 8601(UTC)該資料源最新出現的區段(任何幣);從未出現過時為 null
exchanges[].price_basisstring—換算美元所用的價格:trade_avg、bankruptcy、unverified
exchanges[].coveragestring—資料源完整度:full、full_unstated、sampled_1s、aggregated_1s、sampled_undisclosed
exchanges[].time_basisstring—event:依事件本身的時間戳分區段
detail_completebool—這個幣可能被排除在完整的逐區段明細清單之外時為 false(資料源每個 5 分鐘區段只留前 100 名幣種):這時 windows 可能少算。前 50 名的幣幾乎都是 true
series.bucket_secondsints一律為 3600
series.pointsobject[]—一律 24 筆,由舊到新,對齊整點;最後一筆是目前這個小時到 updated_at 為止(快照每 5 分鐘重建,所以可能比請求晚幾分鐘)。每筆為 {ts, long_liq_usd, short_liq_usd};沒有事件的小時是 0,不會缺漏

windows["24"] 與交易所矩陣用的是同一個滾動視窗,所以同一個幣在那邊顯示的 24 小時數字相同。series 對齊整點,所以 Σ points ≠ windows["24"] 是設計如此:總額取自 windows,時間分布取自 series。

錯誤

狀態碼回應內容情況
400{"error": "symbol is required"}沒帶 symbol、空白、超過 32 個字元,或去掉計價幣後綴後什麼都不剩(例如 symbol=USDT)
404{"error": "<SYMBOL> is not a collected symbol"}沒有交易所上架這個幣,最近 24 小時也沒有資料源回報它;這是答案,不是暫時性錯誤
503{"error": "liquidation data unavailable"}上游區段沒有回應,稍後重試;絕不要當成「0 筆爆倉」

備註

  • 涵蓋 Binance、Bybit、Gate.io、OKX、HTX 與 Bitfinex 的爆倉資料源。
  • 只有快照:沒有 start_date/end_date,也沒有 24 小時以前的資料。要歷史請用 get_alpha(正規化的多空失衡,不是美元金額)。
  • 交易對的處理方式與其他爆倉端點不同:get_alpha/get_map 需要 Binance 永續合約的寫法(BTCUSDT);這裡 BTC 與 BTCUSDT 是同一個幣。
  • 伺服器快取:5 分鐘。
  • 美元名目金額在收集當下換算,所以各交易所可以加總。

爆倉矩陣

GET/liquidation/get_exchanges
資料起始
滾動視窗,對齊 5 分鐘(預設最近 24 小時)
更新頻率
每 5 分鐘

全市場的強制平倉,依交易所彙總,並提供 幣種 × 交易所 矩陣,是 /liquidation/get_coin 的全市場版本。兩者用同一個對齊 5 分鐘的滾動視窗,所以同一個幣的 24 小時總額在兩邊是同一個數字。

參數

名稱說明可用值預設
hours
int · query
視窗長度。超出範圍 → 400(不會截短);非整數的值會默默退回預設值1–16824
top_n
int · query
要個別列出幾個幣;其餘歸到 others。範圍/非整數的規則同 hours1–5010

範例

回應

{"data": {"exchanges", "coins", "others", "total", "buckets", "covered_hours", "window_hours", "window_start", "window_end", "updated_at"}}.

欄位型別單位說明
exchanges[]object[]—每個資料源一列,依總額由大到小排序:exchange、total_liq_usd、long_liq_usd、short_liq_usd、long_pct、short_pct、events、last_event_at。每個資料源一律列出:金額為 null = 視窗內沒有收到該資料源的資料(排在最後),0.0 = 有連線但沒有爆倉
exchanges[].price_basis / .coverage / .time_basisstring—該列的可比性:trade_avg/bankruptcy/unverified;full、full_unstated、sampled_1s、aggregated_1s、sampled_undisclosed;event。轉載數字時要一併保留,抽樣的資料源不等於完整的資料源
coins[]object[]—依跨交易所總額排的前 top_n 名:token、token_id(交易對沒有幣 id 時為 0)、total_liq_usd、long_liq_usd、short_liq_usd、by_exchange{name: {total/long/short_liq_usd}}。by_exchange 是稀疏的,該幣沒有資料的資料源沒有 key;當該資料源在 exchanges[] 的總額不是 null 時,把它讀成 0
othersobject—被 top_n 截掉的全部,欄位相同再加 coin_count,所以 coins[] + others 加回來等於各交易所的總額
totalobject美元/比率total_liq_usd, long_liq_usd, short_liq_usd, long_pct, short_pct
covered_hoursfloath視窗內實際有區段的小時數(收集程式剛重啟後會 < hours)
bucketsint—彙總的 5 分鐘區段數
window_hours / window_start / window_endint / string小時/ISO 8601(UTC)伺服器實際採用的視窗
updated_atstringISO 8601(UTC)所用的最新區段

long_liq_usd = 多單被爆倉(價格下跌);short_liq_usd = 空單被爆倉(價格上漲)。

錯誤

狀態碼回應內容情況
400{"error": "hours must be between 1 and 168"} / {"error": "top_n must be between 1 and 50"}參數超出範圍

備註

  • 涵蓋 Binance、Bybit、Gate.io、OKX、HTX 與 Bitfinex 的爆倉資料源。
  • 完全沒有資料(資料源中斷,或資料來源連不上)時仍回 200,結構相同,所有金額為 null、buckets: 0,絕不會是一整張零的表。使用數字前先檢查 total.total_liq_usd。
  • 只有總額,沒有時間序列。單一幣種的每小時走勢用 /liquidation/get_coin;正規化的長歷史訊號用 /liquidation/get_alpha。
  • 視窗是滾動的,不是日曆日,而且與 /liquidation/get_coin 的 windows["24"] 是同一個視窗。
  • 伺服器快取:5 分鐘。
  • 美元名目金額在收集當下換算,所以各交易所可以加總。

多空比總表

GET/long_short_ratio/get_table
資料起始
快照(最新橫斷面)
更新頻率
5 分鐘區段

目前所有收集的幣種 × 所有多空比來源。十個來源:Binance、OKX 與 Gate.io 各公布三種(所有帳戶、頂尖交易員帳戶、頂尖交易員部位),Bybit 只公布帳戶。資料列依 Binance 未平倉名目金額排序。只列出對應得到 Blave 幣種清單的幣;用 API 金鑰拿到的是完整表格(full: true),匿名的 Studio 版本只有其 30 個幣白名單的列。

參數

無。

範例

開始收集的時間(第一個存下的區段,2026-09-22 以 BTC 量測)

來源 key開始收集日
binance_account2021-05-11
binance_top_account / binance_top_position2026-08-22
okx_account / okx_top_account / okx_top_position2025-02-18
gate_account / gate_top_account / gate_top_position2026-08-12
bybit_account2026-08-12

每個來源的收集時間現在都已超過這個資料集提供的 7 天,所以沒有任何來源會限制查詢;只有在被告知某個來源「沒有歷史」時,這些日期才有意義。

回應

{"data": {"coins", "sources", "summary", "tokens_shown", "tokens_total", "full", "updated_at"}}.

欄位型別單位說明
coins[]object[]—每個幣一列:token、token_id,加上每個來源 key 一個值
coins[].<source key>float / null比率多方帳戶(或部位)÷ 空方。null = 該交易所沒有這個幣的這種資料。多方佔比 = r / (1 + r),API 不會預先算好
sources[]object[]—十個資料源,依欄位順序。請讀這個欄位,絕不要寫死 key 清單
sources[].keystring—<exchange>_<type>,例如 binance_top_position,也就是 coins[] 裡用的 key
sources[].exchange / .typestring—binance / okx / gate / bybit; account / top_account / top_position
sources[].last_atstringISO 8601(UTC)該資料源最新的一筆取樣
sources[].stalebool—該資料源最新的取樣已超過 1 小時(以現在為準)。最上層的 updated_at 是最新的那個來源,不代表任何單一來源的狀況;判斷某個來源要看它自己的 last_at/stale
summary.binance_tokens / .binance_long_majorityint—有 Binance 帳戶比的幣數/其中高於 1 的幣數。以整張表計算,不是只算回傳的列
tokens_shown / tokens_totalint—回傳的列數/表格的總列數。用 API 金鑰時兩者相等
fullbool—用 API 金鑰時為 true;匿名的 Studio 版本為 false
updated_atstringISO 8601(UTC)所有來源中最新的區段

「頂尖交易員」在每個交易所是不同的母體,不要跨交易所比較水準。

交易所誰算頂尖交易員(官方原文)
Binance"the top 20% users with the highest margin balance"
OKX"the top 5% of traders with the largest open position value"
Gate.io從未公布,文件只列了欄位名稱

所以 binance_top_account 高於 okx_top_account,並不能說明哪個交易所的大戶比較偏多。請改拿每個來源跟它自己的歷史比。

錯誤

狀態碼回應內容情況
503{"error": "long short ratio data unavailable"}沒有新的快照,稍後重試;絕不要當成市場是空的

備註

  • 這是橫斷面,不是歷史。要序列請用 /long_short_ratio/get_coin(7 天);這個資料集沒有長歷史端點。
  • 粒度是 5 分鐘,但每個來源各有自己的公布時間,不要寫成「每 5 分鐘更新」。
  • 快照是每個來源已公布的最新區段;Gate.io 與 OKX 的區段大約晚 10 分鐘到。

每幣多空比

GET/long_short_ratio/get_coin
資料起始
最近 7 天,每小時一點,加上最新的 5 分鐘點
更新頻率
5 分鐘區段

單一幣種、全部十個來源:每個來源最新的 5 分鐘值、每個來源一條 7 天的每小時序列,以及同一時間軸上的 Binance 永續合約收盤價。

參數

名稱說明可用值預設
symbol
string · query必填
幣種。計價幣後綴會被去掉;回應的 symbol 是正規化後的幣名BTC、BTCUSDT、btc(≤ 32 個字元)

範例

回應

{"data": {"latest", "series", "sources", "symbol", "token_id", "updated_at"}}.

欄位型別單位說明
latest.<source key>object / null—{value, ts}:該來源最新的 5 分鐘取樣;來源沒有上架這個幣時為 null
series.bucket_seconds / .daysints / d3600 / 7
series.timestampint[]epoch 秒168 格,由舊到新,每小時一格
series.<source key>float[] / null比率每小時的最後一筆取樣;該小時沒有取樣時為 null。來源沒有上架這個幣時,整個欄位是單一個 null(不是陣列)
series.pricefloat[] / null美元同一時間軸上的 Binance 永續合約收盤價。這個幣沒有 Binance 永續合約時是單一個 null(price_symbol/price_multiplier 也是 null)
series.price_symbol / .price_multiplierstring / int—價格取自哪個永續合約,以及它的合約乘數(1000PEPEUSDT → 1000;price ÷ price_multiplier = 每顆幣的價格)
series.provisional_fromint / nullepoch 秒第一個還可能變動的格子(來源最晚約 10 分鐘後才定案);沒有任何來源有資料時為 null
sources[]object[]—完整名單,欄位同表格端點,再加 listed
sources[].listedbool—false = 該交易所沒有這個幣的這種資料;它的 latest 與 series 項目為 null
symbol / token_id / updated_at——同表格端點

錯誤

狀態碼回應內容情況
400{"error": "symbol is required"}沒帶 symbol、空白、超過 32 個字元,或去掉計價幣後綴後什麼都不剩
404{"error": "<SYMBOL> is not a collected symbol"}沒有任何來源收集這個幣;這是答案,不是暫時性錯誤
503{"error": "long short ratio data unavailable"}有上架的來源讀取失敗。null 只會代表「該交易所沒有上架」

備註

  • 涵蓋 Binance、OKX、Gate.io 與 Bybit 的多空比資料源。
  • /long_short_ratio/get_table 關於跨交易所「頂尖交易員」的注意事項在這裡同樣適用。
  • 7 天就是這個端點提供的全部歷史;沒有 start_date/end_date。
  • 關於本頁原始資料端點各個範例裡的「匿名的 Studio 版本」:Studio 頁面(/studio/charts/...)不帶金鑰就能從同一支產生程式拿到相同的內容,這些範例就是從那裡擷取的。它們不能取代 API 金鑰端點:表格只留 30 個幣(full: false),Studio 白名單以外的幣會回 403 {"error_code": "ERR001", ..., "anon_whitelist": [...]} 而不是資料。這裡記載的 API 金鑰端點沒有白名單,也不裁列。
  • Gate.io 與 OKX 的區段大約晚 10 分鐘到。

未平倉量總表

GET/oi_imbalance/get_table
資料起始
快照(最新橫斷面)
更新頻率
約每 15 分鐘

所有收集的幣種 × 五個交易所,以美元名目金額計。口徑:只算 USDT 本位永續合約、美元名目金額、單邊。回報雙邊的交易所會除以二(exchanges[].side_factor,Gate.io = 0.5)。因為每個值都已經是美元名目金額,帶倍數的合約(1000PEPE 這類)跨交易所可以直接相加,不必重新換算。

參數

無。

範例

開始收集的時間(第一個存下的區段,2026-09-22 以 BTC 量測)

交易所開始收集日
binance2021-12-01
bingx2025-04-15
gate2026-08-12
okx2026-09-21
bybit2026-09-21

n_full_7d 之所以是 5 個中的 3 個,以及 OKX 與 Bybit 的 chg_24h 在 2026-09-22 仍是 null,原因都在這兩家;請讀 exchanges[].since/full_7d,不要看這些會過時的日期。

回應

{"data": {"coins", "exchanges", "total", "summary", "tokens_shown", "tokens_total", "full", "updated_at"}}.

欄位型別單位說明
coins[].token / .token_idstring / int—幣種
coins[].oi_totalfloat美元五個交易所加總
coins[].chg_1h / .chg_4h / .chg_24hfloat / null小數以小數表示的變化(0.0675 = +6.75 %)。每個視窗只算在該視窗起點有基準值的交易所,分子與分母用同一組交易所;都沒有時為 null
coins[].market_capfloat / null美元市值;沒有可用的市值時為 null
coins[].oi_mcapfloat / null比率oi_total ÷ market_cap;這個幣沒有市值時為 null
coins[].by_exchangeobject—{exchange: {oi, chg_1h, chg_4h, chg_24h}},每個交易所一個 key;該交易所沒有上架這個幣時為 null。單一視窗為 null 代表該交易所在那麼久以前沒有基準值,也就是資料源比視窗還年輕
exchanges[]object[]—binance、okx、bingx、bybit、gate:全市場的 oi、side_factor、since、full_7d、last_at、stale
exchanges[].since / .full_7dstring / bool日期資料源的歷史不到 7 天時(full_7d: false)是它的第一天,否則為 null/true。在這張表上僅供參考(表格沒有 7 天視窗);在 /oi_imbalance/get_coin 上,這種資料源沒有 7 d 基準值,不會計入 series.total
totalobject—全市場的 oi、chg_1h/4h/24h、n_exchanges、n_full_7d
summary.oi_mcap_leader / _valuestring / float—未平倉量前 100 名的幣種中,未平倉量 ÷ 市值最高的值
tokens_shown / tokens_total / full / updated_at——同多空比表格

與 OI 失衡指標不是同一個數字。/oi_imbalance/get_overview_data(以及篩選條件與警報背後的 oi_imbalance alpha)是三個交易所的彙總:Binance + OKX + BingX。這張表則是五個交易所,口徑如上。兩個 oi_total 的值不同,所以在其中一個上調出來的門檻不能直接套到另一個。

錯誤

狀態碼回應內容情況
503{"error": "open interest data unavailable"}排程沒有新的結果(缺少或已超過一小時),絕不會是一整張零的表

備註

  • 上面範例中 OKX/Bybit 的 chg_24h: null 是年輕資料源規則造成的,不是市場資料有缺:這兩家從 2026-09-21 才開始收集,所以當時還沒有 24 h 的基準值。
  • 這是橫斷面,不是歷史。單一幣種最近 7 天(每小時、全部五個交易所)用 /oi_imbalance/get_coin;單一幣種在單一交易所、足夠回測的長歷史用 /oi_imbalance/get_history。
  • 快照帶 1 h/4 h/24 h 的變化。它由排程約每 15 分鐘從 5 分鐘的來源區段重建;Gate.io 與 OKX 的區段大約晚 10 分鐘到。

每幣未平倉量

GET/oi_imbalance/get_coin
資料起始
最近 7 天,每小時一點,加上目前的值
更新頻率
5 分鐘區段

單一幣種在各交易所的未平倉量,口徑與表格相同:目前的值與佔比、四個變化視窗與各自計入的交易所,以及一條 7 天的每小時總量線。

參數

symbol,與 /long_short_ratio/get_coin 完全相同。

範例

回應

{"data": {"exchanges", "windows", "series", "oi_total", "market_cap", "oi_mcap", "oi_mcap_rank", "tokens_total", "symbol", "token_id", "updated_at"}}.

欄位型別單位說明
exchanges[]object[]—完整的五個交易所名單:key、oi(美元)、share(佔 oi_total 的比例)、chg_1h/4h/24h/7d、side_factor、listed、since、full_7d、last_at、stale
exchanges[].listedbool—false = 該交易所沒有上架這個幣;它的值為 null
oi_total / market_cap / oi_mcapfloat美元/比率同表格端點
oi_mcap_rank / tokens_totalint / null—在表格排程最近一輪中依 oi_mcap 排的名次;該排程沒有新的結果時為 null
windows.<1h|4h|24h|7d>.chg / .chg_usdfloat / null小數/美元計入的交易所合計的變化
windows.<w>.exchangesstring[]—該視窗計入了哪些交易所:年輕的資料源不會出現,所以 24 h/7 d 計入的交易所可能比 1 h 少
series.timestampint[]epoch 秒168 個每小時的格子,由舊到新
series.totalfloat[] / null美元每格的未平倉總量,這條線只含 series.total_exchanges(也就是 full_7d 的資料源),所以水準不能與 oi_total 比較。其中任何一個交易所在該小時沒有取樣時,該格為 null;這個幣沒有任何交易所是 full_7d 時,整個欄位為 null
series.total_exchangesstring[]—這條線加總了哪些交易所
series.price / .price_symbol / .price_multiplier / .provisional_from——同 /long_short_ratio/get_coin

錯誤

400/404/503 與 /long_short_ratio/get_coin 完全相同,503 時回 {"error": "open interest data unavailable"}。

備註

  • 涵蓋 Binance、OKX、BingX、Bybit 與 Gate.io 的未平倉量。
  • windows["1h"]["exchanges"] 有五筆而 windows["24h"] 只有三筆,是年輕資料源規則造成的,不是資料缺漏;比較不同視窗前請先讀這個清單。
  • /oi_imbalance/get_table 關於 OI 失衡的注意事項同樣適用於這個 oi_total。
  • 只有七天。要更長的序列來回測,請用 /oi_imbalance/get_history(單一交易所,單位是幣而不是美元,口徑與 oi_total 不同)。
  • Gate.io 與 OKX 的區段大約晚 10 分鐘到。

未平倉量歷史

GET/oi_imbalance/get_history
資料起始
binance 2021-12-01;bybit 2025-08-21;gate 2026-03-28
更新頻率
5 分鐘區段

單一幣種在單一交易所的未平倉量,是可以拿來回測的時間序列,口徑與 Studio 儀表板的未平倉量卡片相同。alpha 是單邊未平倉量,單位是幣,不是美元。帶倍數的合約會換算回幣數(1000PEPE 回的是 PEPE 的顆數)。每個區段取該週期的最後一筆讀數;未平倉量是存量,絕不加總。

參數

名稱說明可用值預設
symbol
string · query必填
幣種,規則同 /oi_imbalance/get_coinBTC, BTCUSDT, btc
period
string · query必填
區段大小。1w 回 400(不支援這個單位);1m 會當成 1min,因為小於 5min 所以回 400{n}min/{n}h/{n}d,最小 5min(例如 5min、1h、4h、1d)
start_date
string · query
起始日期(含當日)YYYY-MM-DD(UTC)end_date − 365 天
end_date
string · query
結束日(含當日)YYYY-MM-DD(UTC)今天
oi_exchange
string · query
要讀哪個交易所的未平倉量binance、bybit、gate(不分大小寫)binance

每次請求的視窗:最多 365 天;更長的區間會默默截短(start_date 改成 end_date − 365 天,不報錯),與 /kline 相同。

範例

回應

{"data": {"timestamp", "alpha", "close", "exchanges"}},平行陣列,由舊到新。

欄位型別單位說明
timestampfloat[]Unix 秒(UTC)區段起點
alphafloat[]幣oi_exchange 上的單邊未平倉量,取區段的最後一筆讀數
closefloat[]USDTBinance 的 USDT-M 永續合約價格,以合約單位計,所以 1000PEPE 是每 1000 顆幣的價格
exchangesstring[]—實際讀取的交易所,例如 ["binance"]

帶倍數的合約,alpha × close 不是美元未平倉量。這時 close 是每個合約單位的價格(1000PEPE 是每 1000 顆幣),而 alpha 的單位是單顆幣,要先把 close 除以倍數。BTC 這類不帶倍數的合約,alpha × close ≈ 美元未平倉量。

Gate.io:一律送 start_date ≥ 2026-03-28,預設視窗(end_date − 365 天)的起點早於 Gate 的歷史,會回 400。

與 /oi_imbalance/get_table/get_coin 不是同一個數字(那是五個交易所加總、美元),也不是 OI 失衡指標(/oi_imbalance/get_overview_data)。

錯誤

狀態碼回應內容情況
400{"error": "symbol is required"} / {"error": "period is required"}沒帶(這裡回 400,不是指標端點的 403)
400{"error": "period must be at least 5min, in min / h / d units"}period 小於 5min(包含被當成 1min 的 1m),或單位不是 min/h/d(1w)
400{"error": "invalid date format, expected YYYY-MM-DD"}start_date/end_date 格式錯誤
400{"error": "start_date must not be after end_date"}start_date > end_date
400{"error": "oi_exchange must be one of binance, bybit, gate"}oi_exchange 不在清單內
400{"error": "no <exchange> open interest for <TOKEN> at start_date; this exchange's history may start later — try a later start_date"}視窗的起點早於該交易所的歷史(見資料起始)。不帶 start_date 時,oi_exchange=gate 一定會遇到這個錯誤,直到它的歷史超過 365 天為止(≈ 2027-03);Gate 請一律送 start_date ≥ 2026-03-28
404{"error": "<TOKEN> is not a collected symbol on <exchange>"}該交易所沒有上架這個幣、這個幣沒有 Binance 永續合約,或已下架;這是答案,不是暫時性錯誤
503{"error": "<exchange> open interest data unavailable for <TOKEN>"}目前讀不到資料,請重試

備註

  • 涵蓋 Binance、Bybit 與 Gate.io 的未平倉量;close 是 Binance 的 USDT-M 永續合約價格。
  • 200 加空陣列代表該視窗內沒有區段(例如幣在那之後才上架),不要把它快取成永久的「沒有資料」。
  • end_date 是今天時,最後一個區段在週期結束前會持續變動。
  • 要抓超過 365 天的歷史,一年送一個請求再接起來。
  • 解析度是 5 分鐘。每個交易所的序列從資料起始日開始,幣在該交易所的上架日較晚時從上架日開始。只含目前上架中的合約。

主動買賣淨額總表

GET/taker_intensity/get_cvd_table
資料起始
快照(滾動 1 h/4 h/24 h 視窗)
更新頻率
約每 15 分鐘

各幣種的主動(市價單)買進與賣出成交額,以美元計,涵蓋三個交易所:Binance 取自 5 分鐘 K 線的主動買入計價幣成交額(賣出 = 該根 K 棒的總額減去它),OKX 取自它的美元主動成交量,Gate.io 取自主動成交張數 × 同一列的乘數與標記價格。只含永續合約,不含現貨,而且是由 5 分鐘 K 棒彙總,不是由逐筆成交彙總。用的是各交易所自己回報的成交額;絕不會拿成交量去乘從別的交易所借來的價格。

參數

無。

範例

Python
data = requests.get(f"{BASE_URL}/taker_intensity/get_cvd_table", headers=headers, timeout=30).json()["data"]buying = sorted((c for c in data["coins"] if c["net_24h"] is not None), key=lambda c: -c["net_24h"])[:10]print(data["total"]["net_24h"], [(c["token"], c["net_24h"]) for c in buying])# Live capture 2026-09-22 (abridged with ...; anonymous studio twin, same inner shape):# {"coins": [{"token": "BTC", "token_id": 1, "buy_24h": 24607245298.03, "sell_24h": 23128502231.73,#             "net_1h": -212647361.27, "net_4h": -207128163.51, "net_24h": 1478743066.31,#             "by_exchange": {"binance": {"buy_24h": 12663681424.94, "sell_24h": 12135756153.44,#                                         "net_1h": -191133129.94, "net_4h": -217337267.5, "net_24h": 527925271.5},#                             "gate": {...}, "okx": {...}}}, ...],#  "exchanges": [{"key": "binance", "buy_24h": 34978603608.55, "sell_24h": 35112588381.38,#                 "net_24h": -133984772.74, "last_at": "2026-09-22T05:25:00+00:00", "stale": false}, ... 3 rows],#  "total": {"buy_24h": 63543431942.93, "sell_24h": 62491177680.21, "net_24h": 1052254262.8},#  "tokens_shown": 30, "tokens_total": 591, "full": false, "updated_at": "2026-09-22T05:25:00+00:00"}

開始收集的時間(第一個存下的區段,2026-09-22 以 BTC 量測)

交易所來源欄位開始收集日
binance5 分鐘 kline(主動買成交額)2020-01-01
gatecontract_stats2026-08-12
okxtaker_volume_usd2026-09-21

OKX 另外受限於交易所只保留 5 天的資料,所以在該日期之後一週內都是 full_7d: false。這張表不帶 since/full_7d(表格沒有 7 天視窗);請從 /taker_intensity/get_cvd_coin 的 exchanges[] 逐幣讀取,不要看這些日期。

回應

{"data": {"coins", "exchanges", "total", "tokens_shown", "tokens_total", "full", "updated_at"}}.

欄位型別單位說明
coins[].token / .token_idstring / int—幣種
coins[].buy_24h / .sell_24hfloat / null美元滾動 24 h 內的主動買進/賣出成交額,加總該幣所有未過期的交易所;全部過期時為 null
coins[].net_1h / .net_4h / .net_24hfloat / null美元各滾動視窗內的 buy − sell(null 規則相同)
coins[].by_exchangeobject—{exchange: {buy_24h, sell_24h, net_1h, net_4h, net_24h}},每個交易所一個 key;該交易所沒有上架這個幣,或它在該交易所的資料已過期時為 null
exchanges[]object[]—binance、okx、gate:全市場的 buy_24h、sell_24h、net_24h、last_at、stale
exchanges[].stalebool—該資料源的最後一根 K 棒已超過一小時:它的視窗會回 null,而且不計入總額,以免貢獻一個實際涵蓋時間不足卻沒有標示的加總
totalobject美元全市場的 buy_24h、sell_24h、net_24h,只算資料夠新的交易所
tokens_shown / tokens_total / full / updated_at——同其他原始資料表格

錯誤

狀態碼回應內容情況
503{"error": "cvd data unavailable"}排程沒有新的結果,絕不會回零

備註

  • 與 taker_intensity alpha(/taker_intensity/get_alpha)不同,後者是正規化、類似 z-score 的訊號,有多年歷史。這裡是當下的原始美元成交額。
  • 視窗是滾動的,結束在最後一根已收盤的 5 分鐘 K 棒,所以 net_24h 不是日曆日。
  • 由排程約每 15 分鐘從 5 分鐘的來源區段重建;Gate.io 與 OKX 的區段大約晚 10 分鐘到。

每幣主動買賣淨額

GET/taker_intensity/get_cvd_coin
資料起始
最近 7 天,每小時一點,加上滾動視窗
更新頻率
5 分鐘區段

單一幣種在各交易所的主動買進/賣出/淨額(口徑與表格相同),加上 7 天的每小時淨額與其累計值,也就是 CVD 線本身。

參數

symbol,與 /long_short_ratio/get_coin 完全相同。

範例

回應

{"data": {"exchanges", "windows", "series", "symbol", "token_id", "updated_at"}}.

欄位型別單位說明
windows.<1h|4h|24h|7d>object美元{buy, sell, net},加總資料夠新的交易所
exchanges[]object[]—完整名單:key、listed、windows(同樣四個,每個交易所各一組)、since、full_7d、last_at、stale
exchanges[].full_7dbool—false = 這個幣在該交易所的歷史不到 7 天:它的 7 d 視窗為 null,而且不計入 7 d 總額,也不計入序列。OKX 只保留 5 天,所以在資料源開始後一週內都是 false
series.timestampint[]epoch 秒168 個每小時的格子,由舊到新
series.netfloat[]美元每個整點小時的主動淨流量,加總 series.exchanges;該小時沒有資料時為 null。series.exchanges 是空的時候,每格都是 null,cvd 會持平在 0,這時這條線不帶任何資訊
series.cvdfloat[]美元net 的累計值;cvd[0] = 0,這條線看的是形狀,不是絕對水準
series.exchangesstring[]—這條線加總了哪些交易所
series.price / .price_symbol / .price_multiplier / .provisional_from——同 /long_short_ratio/get_coin

錯誤

400/404/503 與 /long_short_ratio/get_coin 完全相同,503 時回 {"error": "cvd data unavailable"}。

備註

  • 涵蓋 Binance、OKX 與 Gate.io 的主動成交流量。
  • series.exchanges 比 exchanges[] 短是 full_7d 規則造成的;請拿序列跟它自己比,不要跟 windows["24h"] 比,後者計入的交易所比較多。
  • cvd[0] = 0 是定義如此:只有斜率與轉折點帶有資訊。
  • Gate.io 與 OKX 的區段大約晚 10 分鐘到。

CME 比特幣/以太幣期貨持倉報告

GET/cme_cot/get_latest
資料起始
只有最新一期報告
更新頻率
每週,週五美東時間 15:30

四個 CME 加密貨幣期貨各自最新一週的 CFTC 資料列,加上每種資產把標準合約與微型合約以幣數加總的結果。結構同 /cme_cot/get_history 的一列,但沒有 price。

參數

無。

範例

Python
data = requests.get(f"{BASE_URL}/cme_cot/get_latest", headers=headers, timeout=60).json()["data"]btc = next(c for c in data["contracts"] if c["key"] == "btc")# Live capture 2026-10-07 (abridged):# {"key": "btc", "name": "Bitcoin Futures (CME)", "cftc_code": "133741", "coin": "BTC", "coin_per_contract": 5,#  "latest": {"date": "2026-09-29", "open_interest": 19596, "open_interest_change": -2719,#             "tff": {"leveraged_funds": {"long": 4980, "short": 11836, "spread": 538, "net": -6856,#                                         "long_change": 235, "short_change": -862, "spread_change": -2187, "net_change": 1097},#                     "asset_manager": {"long": 5069, "short": 1483, "spread": 297, "net": 3586, ...}, ...},#             "legacy": {"non_commercial": {...}, "commercial": {...}, "nonreportable": {...}}}}# data["source_updated"] == "Fri, 02 Oct 2026 19:30:08 GMT", data["stale"] == False

回應

{"data": {"contracts": [...], "combined": [...], "report", "units", "source", "source_updated", "fetched_at", "stale"}}

欄位說明
contracts[]每個合約一筆:key(btc、micro_btc、eth、micro_eth)、name、cftc_code、coin、coin_per_contract(5/0.1/50/0.1)、latest(一列資料,見 get_history;合約沒有資料列時為 null)
combined[]btc_combined、eth_combined:name、coin、components、units、micro_since、note、latest(合併後的一列,單位是幣)
reportfutures_only
unitscontracts[].latest 部位的單位:口數(× coin_per_contract 換算成幣數)
sourceCFTC 的資料來源標示,公布任何數字時都要一併顯示
source_updatedCFTC 最後一次更新資料集的時間
fetched_atBlave 抓取的時間(UTC)
staletrue = 連不上 CFTC,回的是最後一份已存的資料

錯誤

狀態碼回應內容情況
503{"error": "CFTC data unavailable. Please retry shortly."}連不上 CFTC,也沒有已存的資料

備註

  • 要歷史請用 /cme_cot/get_history。
  • 部位以週二為準(週二是美國假日時為週一),由 CFTC 在該週週五美東時間 15:30 公布;週三到週五遇到聯邦假日時,公布日順延到下一個營業日,政府停擺則會延後數週。
  • 伺服器快取:1 小時。

CME 比特幣/以太幣期貨持倉報告歷史

GET/cme_cot/get_history
資料起始
2018-04-10(btc);其他合約較晚
更新頻率
每週,週五美東時間 15:30

單一合約依交易人類別區分的每週部位。資料列的日期是報告日,也就是部位的基準日,通常是週二(週二是美國假日時為週一)。資料是之後才公開的:通常是該週週五美東時間 15:30;週三到週五遇到聯邦假日時,公布日順延到下一個營業日,政府停擺則會延後數週(2018-12-24 … 2019-02-26 的報告在 2019-02-01 … 03-05 才出來;2025-09-30 … 2026-01-20 的報告在 2025-11-19 … 2026-01-23 才出來,見 CFTC Releases 7864-19 與 9138-25)。回測不得在資料列公布之前就使用它。

參數

名稱說明可用值預設
contract
string · query
單一合約的單位是口數;*_combined = 標準合約 + 微型合約,以幣數加總btc、micro_btc、eth、micro_eth、btc_combined、eth_combined(不分大小寫)btc
start_date
string · query
起始報告日(含當日)。不帶 = 只回最近一年;要完整歷史請帶一個夠早的日期(例如 2018-01-01)YYYY-MM-DD今天(UTC)− 365 天
end_date
string · query
結束報告日(含當日)YYYY-MM-DD最新

範例

回應

{"data": {"contract": {...}, "rows": [...], "price_source", "report", "units", "source", "source_updated", "fetched_at", "stale"}},資料列由舊到新。

contract:key、name、coin,以及 cftc_code + coin_per_contract(單一合約)或 components + micro_since + note(合併合約)。

每一列:

欄位型別說明
datestring報告日,通常是週二,週二是美國假日時為週一
open_interest / open_interest_changenumber未平倉總量與其週變化
tffobject分組:dealer、asset_manager、leveraged_funds、other_reportables、nonreportable
legacyobject | null分組:non_commercial、commercial、nonreportable;CFTC 該週沒有 Legacy 資料列時為 null
pricefloat | null報告日當天 Binance 現貨 BTCUSDT/ETHUSDT 的 UTC 日收盤價;取不到時為 null
includedstring[]只有合併合約才有:這一列加總了哪些合約(micro_since 之前為 ["btc"])

每個分組:long、short、spread(nonreportable/commercial 沒有)、net(= long − short),以及 long_change、short_change、spread_change、net_change。單位:單一合約為口數,合併合約為幣數。*_change 欄位是 CFTC 自己公布的週變化,不是列與列相減;CFTC 會跳過某些週(例如政府停擺),所以絕不要自己對資料列做差分。

錯誤

狀態碼回應內容情況
400{"error": "contract must be one of btc, micro_btc, eth, micro_eth, btc_combined, eth_combined"}未知的合約
400{"error": "Invalid start_date, expected YYYY-MM-DD"}(或 end_date)/{"error": "start_date must not be after end_date"}日期不對/區間顛倒
503{"error": "CFTC data unavailable. Please retry shortly."}連不上 CFTC,也沒有已存的資料

備註

  • *_combined 在 micro_since 有斷點:微型合約加入的那一週,總量會跳升,而且該週的 *_change 包含微型合約的整個初始部位。合併合約的回測請從 micro_since 之後開始,或改用單一的 btc/eth 合約。
  • 完整的 BTC 歷史約 440 列週資料(約 0.5 MB),一個請求就拿完,不分頁。
  • 授權:CFTC 的資料屬於公有領域,但 CFTC 要求註明出處,顯示任何數字時請把 source 放在旁邊。未經 CFTC 背書。
  • 各合約的起始日:btc 2018-04-10、micro_btc 2021-05-04、eth 2021-04-06、micro_eth 2021-12-14。CME 自家的 BTC 期貨是從 2018-04-10 起才納入 COT,不是從 2017-12 上市時開始。
  • 伺服器快取:1 小時。
  • price 是 Binance 現貨的 UTC 日收盤價。