交易所整合

Bitget Reality API 8/11 開放:1/sec/UID 接 webhook

2026-09-07·7 分鐘閱讀

Bitget Reality API 在 8 月 11 日悄悄變天:changelog 把 Reality Order 的下單/撤單 endpoint 從白名單改成全用戶開放。任何 UTA(Unified Trading Account)帳戶都能程式化下 rToken 代幣化美股的單,這件事現在真的不難。

沒有人先跟你講的是:同一則 changelog 底下藏了一行「default rate limit: 1/sec/UID」。webhook——也就是 TradingView 把 alert 自動轉發到你伺服器的那條通道——一有並發訊號,第 2 筆就會撞 429,訊號會安靜地被丟掉。

這篇不評論 rToken 適不適合買(那是投資判斷,本文不做),也不比較誰家的代幣化股票更好——目前只有 Bitget 開這條 API。我們只講兩件事:changelog 這行字到底改了什麼、以及 1/sec/UID 這個門檻對 webhook 自動化系統的實際影響。

先講結論
Reality Order 的預設限速是 1/sec/UID,也就是每個 UTA 帳戶(一個 UID)每秒只能送 1 筆 place-reality-order 請求給 Bitget。不是每支 API key 各 1 次、也不是每個 IP 各 1 次。共用同一個 UTA 帳戶的多條策略同時觸發,第 2 條起會被 Bitget 端擋回 429。要 30/sec/UID 得回頭聯絡 BD 申請。

Bitget Reality API 的 changelog 這一條到底寫了什麼

Bitget UTA API 的 changelog 頁面 2026-08-11 這一條標題是「Place/Cancel Reality Order: Now open to all users」。改動的兩個 endpoint 是 /api/v3/trade/place-reality-order/api/v3/trade/cancel-reality-order。內文的關鍵句只有兩行。

第一行:「These endpoints no longer require whitelist access.」——這兩支 endpoint 不再需要白名單。第二行:「Default rate limit: 1/sec/UID; whitelisted users: 30/sec/UID (users can contact your BD/RM to apply).」——預設限速是 1/sec/UID,白名單用戶 30/sec/UID,要申請請聯絡 BD 或客戶經理。

1/sec
預設 rate limit(per UID)
30/sec
申請白名單後可到的上限
2 支
這次拿掉白名單的 endpoint 數
endpoint 說明頁還沒同步更新
Reality Order 的兩支 endpoint 說明頁——/api-doc/uta/trade/Place-Reality-Order 與對稱的 Cancel-Reality-Order——到查證當下仍寫著「Rate limit: 10/sec/UID」「only available for whitelisted UIDs, please contact BD if needed」,跟 changelog 對不起來。Reality Trading Guide 本身已同步 changelog,落差只在這兩支 endpoint 的 spec 頁。以 changelog 為準——它是變更當下唯一有日期戳的文件。同一份 API doc 內不同頁面說法不一致,本身就是提醒:交易所文件是分散維護的,不要只看單一頁面。

rToken 是什麼、能交易哪些

Reality 是 Bitget 生態系裡的 RWA(real-world assets,真實世界資產)發行平台,第一階段主要做的是代幣化美股與 ETF。Bitget Academy 的原文寫「Each rToken is linked to a corresponding underlying asset, such as a publicly traded U.S. stock or ETF」——rToken 代表對某支美股或 ETF 的「economic exposure」(經濟敞口),不是股東權利。

命名規則是原本的美股代號前面加 r,例如 rAAPLUSDT(Apple)、rMUUSDT(Micron)。/api/v3/market/instruments 每筆 instrument 的回應都有 isReality 欄位(值是 "yes""no")——它是 response 欄位、不是 query 參數,抓整份清單回來後自己在 client 端篩 isReality === "yes"。名單會隨 Bitget 上下架調整,本文不列固定清單。

拿掉白名單的只有 place 跟 cancel,其他都還鎖著

endpoint8/11 起白名單狀態備註
place-reality-order(REST)全用戶開放1/sec/UID,白名單 30/sec
cancel-reality-order(REST)全用戶開放同上
Reality OrderBook(REST 深度)仍需白名單沒白名單抓不到即時深度
Reality Fills(平台成交回報)仍需白名單只能自己記錄下單結果
Reality Orderbook 頻道(WebSocket)仍需白名單即時深度也是白名單
下單/撤單(WebSocket)不支援只能走 REST
Modify Order、batch place/cancel不支援要改單就是先 cancel 再 place
下單開了,深度沒開
市場資料層還是白名單。沒白名單抓不到即時 order book 深度,也拿不到平台級成交回報——你只能自己從下單 response 記錄成交價量。這條 API 目前比較像是給「策略決定好方向、只是要一條下單管道」的用途;要做 market-making、latency arbitrage、或需要看深度做動態掛單,這條路目前還不夠。

1/sec/UID 這條門檻的意思

rate limit 這件事每個交易所都有,Bitget 這條的計算單位是 UID。不是每支 API key 各 1 次、不是每個 IP 各 1 次,也不是每個 symbol 各 1 次——同一個 UTA 帳戶產生的所有 place-reality-order 請求,全部共用這 1/sec 的預算。

對 webhook 自動化的實際後果:假設你有 3 條 Pine 策略跑在 1 分鐘 K 棒上,某根 K 棒收線時同時觸發,三筆 place-reality-order 幾乎同時到達 Bitget 端。第 1 筆會成功,第 2 與第 3 筆會拿到 429 錯誤,訊號就這樣消失。這種錯不會吵——log 裡就一行 429,你的策略以為單下出去了,實際上什麼都沒發生。

訊號進來後該怎麼分流

1
並發訊號有沒有本地 rate limiter 攔?
沒有直接送 Bitget,第 2 條起會拿到 429
有(token bucket 每秒補 1)訊號依序送出,延遲 1~3 秒但不會漏
2
拿到 429 之後怎麼辦?
當作單下失敗策略以為進場了,實際沒進——最糟情況
等 1 秒重送,最多 3 次大多能救回,仍失敗就明確 log 出來
3
多策略要更高 throughput 怎麼辦?
都共用同一個 UID就是 1/sec 上限,或去申請白名單 30/sec
拆成多個 UTA sub-account各 sub-account 有自己的 UID,各自 1/sec 計算

你在自己的 webhook 端該做什麼

  • webhook 收到訊號後先過本地 token bucket(容量 1、每秒補 1)再丟給 Bitget,寧可讓策略延遲 1 秒也不要讓訊號被 Bitget 端擋回 429
  • Bitget 回 429 時等 1 秒後重送,最多 3 次;仍失敗就明確 log 出來——這是 webhook 系統的常態,不是要修的 bug
  • 多策略共用同一個 UTA key 時,把「策略 ID」寫進 Bitget 的 clientOid 欄位,事後對帳才分得清楚是哪條策略的單
  • 不要讓多個 K 週期同時觸發同一支策略;真的無法避免,考慮拆到不同 UTA sub-account 各自跑
本地 rate limiter 比靠 Bitget 端擋更好
被 Bitget 擋回是 429 錯誤,你的策略拿到的是「失敗」,不是「延遲」。本地排隊拿到的是「延遲 1~3 秒」,訊號還會執行——對 K 棒收線觸發的策略幾乎沒差,但避免了「訊號安靜地被丟掉」這件事。這是這個站反覆講的原則:錯誤不會吵,它會安靜地壞掉;能在本地擋下的 race condition 就不要留給遠端。

Reality Order 的下單欄位長什麼樣

json
{
          "category": "SPOT",
          "symbol": "rAAPLUSDT",
          "side": "buy",
          "orderType": "limit",
          "qty": "1",
          "price": "180.50",
          "clientOid": "strategy-42-signal-001"
        }
欄位必填說明
category選填SPOT(預設)或 MARGIN
symbol必填Reality 專用符號,格式 r + 美股代號 + USDT
side必填buy / sell
orderType必填limit / market
qty必填market buy 用 quote coin,limitmarket sell 用 base coin
price有條件orderType=limit 時必填
clientOid選填自訂訂單 ID,對帳強烈建議填

Place Reality Order 請求欄位(來源:Bitget API doc /api-doc/uta/trade/Place-Reality-Order,查證日期 2026 年 8 月)

Reality 走 Reality 專用 endpoint,不與一般 UTA 共用
一般 UTA 的 place-order endpoint 不吃 Reality 的 symbol。你如果照一般 UTA spot 的下單邏輯、只是把 symbol 換成 rAAPLUSDT,會被拒絕。Reality Order 必須走 /api/v3/trade/place-reality-order、Cancel 走 /api/v3/trade/cancel-reality-order,路由完全獨立。

TVSBot 目前的位置

先講清楚:TVSBot 目前的 7 家交易所整合裡,Bitget 是有的,但範圍只到 spot 與 perpetual futures——Reality Order 還沒接。Reality 是這個月才拿掉白名單的 endpoint,我們也還沒把它排進更新。這篇的目的不是宣布 Reality 是 TVSBot 現有功能,是把這個新 API 的機制講清楚,因為讀者裡有些人會自己接。

對於已經用 TVSBot 接 Bitget spot/perp 的讀者,rate limit 這件事我們在 webhook 收訊端有做:收到 alert 之後同 token 60 秒內最多 60 條、同 IP 30 秒 30 條(backend/app/services/rate_limit.py)。這是收訊端的 throttle,跟 Bitget 端的 1/sec/UID 是兩層獨立的限速。要手動接 Reality 的話,Bitget 那層的 rate limit 還是要自己在下單模組處理。

誠實的一段:我們沒有實測 Reality 的成交行為

這篇描述的是 API 白紙黑字的部分:changelog 原文、endpoint 的 spec、rate limit 的官方數字。但實際下 rToken 單的成交深度、滑點、非美股交易時段的行為,我們沒有實測。Reality 是新產品,代幣化美股在亞洲時段的流動性通常較差,這幾件事只能你自己下小單試——文件不會告訴你當下的 order book 長什麼樣子。

常見問題

Bitget 官方那個 30/sec/UID 白名單怎麼申請?
changelog 原文只寫「users can contact your BD/RM to apply」(可以聯絡你的商務或客戶經理申請)——頁面上沒有表單。我們沒有實際申請過的經驗可以分享,只能貼原文。
1/sec/UID 是硬性上限嗎?短時間內可以累積 credit 嗎?
官方 doc 只寫「default rate limit: 1/sec/UID」,沒有寫是 token bucket 還是 fixed window。穩妥的假設是 fixed window——每一秒一個名額,用不完不會累積。要更精細的答案需要實測,本文查證時沒做。
如果我有 2 個 UTA sub-account,各自算 1/sec 嗎?
rate limit 的計算單位是 UID。sub-account 是不同的 UID,理論上各自獨立計算 1/sec——這是我們從「per UID」四個字推出來的結論,不是 Bitget 官方寫的一句話。實際上線前建議先開一單試看看 response header 的 rate limit 資訊。
TVSBot 什麼時候會支援 Reality Order?
沒有時間表可以承諾。Bitget 這條 API 是 8/11 才對所有用戶開放,我們也還在觀察需求。如果你有具體的 use case 想告訴我們,寫信給 support 或到 Discord 講一聲——需求集中的方向我們會排前面。

Get started

想把今天學到的東西自動化跑起來?

把 TradingView 的訊號接進 Bitget spot/perp 交給 TVSBot——用你自己的 API key,先 dry-run,帳戶層級風控自己設。Reality Order 目前要自己接,這篇的機制對你的下單模組也適用。

免費開始使用