NAV
English 繁體中文 中文

接口說明

反饋郵箱

Email: api@bg.exchange

請求地址

HTTP請求地址

HOST: https://api.bg.exchange/hk

WEBSOCKET請求地址

Response Status

HTTP/1.1 400

{
  "code":1087,
  "message":"查找不到數據"
}

HTTP/1.1 401

{
  "code":40001,
  "message":"ACCESS_KEY不能為空"
}

HTTP/1.1 500

{
  "code":500,
  "message":"Internal Server Error"
}
Status Code Meaning Example
200 Success Request
400 Bad Request -- The client should not repeat this request without modification. message string
401 Unauthorized -- Your API key is wrong, See 鑑權說明 message string
500 Internal Server Error -- We had a problem with our server. Try again later. message string

名詞解釋

名詞 示意
currency 幣種, 例如 BTC, USDT,HKD, USD
product 交易產品,例如 BTC_HKD

賬戶信息

GET 獲取所有賬戶餘額信息

獲取用戶所有的交易賬戶信息

限速:10次/s

限速規則:ApiKey

HTTP請求

GET HOST/v1/accounts

鑑權信息

私有信息的鑑權信息,請參考 鑑權說明

RESPONSE EXAMPLE

[
  {
    "available": "10.0001",
    "balance": "11.0001",
    "currency": "BTC",
    "hold": "1.0"
  }
]
參數名稱 參數說明 類型
available 可用額度 string
hold 凍結額度 string
balance 餘額,包含 可用額度為凍結額度之和 string
currency 資產名稱 string

GET 獲取單個賬戶餘額信息

獲取用戶指定的交易賬戶信息

限速:10次/s

限速規則:ApiKey

HTTP請求

GET HOST/v1/accounts/{currency}

鑑權信息

私有信息的鑑權信息,請參考 鑑權說明

參數名稱 參數說明 是否必須 數據類型
currency 資產名稱,例:BTC true string

RESPONSE EXAMPLE

{
  "available": "10.0001",
  "balance": "11.0001",
  "currency": "BTC",
  "hold": "1.0"
}
參數名稱 參數說明 類型
available 可用額度 string
hold 凍結額度 string
balance 餘額,包含 可用額度與凍結額度之和 string
currency 資產名稱 string

資金劃轉

POST 資金賬戶劃轉到交易賬戶

將資金從資金賬戶劃轉到指定的交易賬戶。

限速:10次/s

限速規則:ApiKey

HTTP請求

POST HOST/v1/deposits/account

鑑權信息

私有信息的鑑權信息,請參考 鑑權說明

REQUEST EXAMPLE

{
  "amount": 100,
  "currency": "HKD"
}
參數名稱 參數說明 是否必須 數據類型
amount 劃轉數量 true string
currency 劃轉資產名稱 true string

RESPONSE EXAMPLE

{
  "amount": 100,
  "currency": "HKD"
}
參數名稱 參數說明 類型
amount 劃轉數量 string
currency 劃轉資產名稱 string

POST 交易賬戶劃轉到資金賬戶

將資金從交易賬戶劃轉到資金賬戶,劃轉後,可以進行提現操作。

限速:10次/s

限速規則:ApiKey

HTTP請求

POST HOST/v1/withdrawals/account

鑑權信息

私有信息的鑑權信息,請參考 鑑權說明

REQUEST EXAMPLE

{
  "amount": 100,
  "currency": "HKD"
}
參數名稱 參數說明 是否必須 數據類型
amount 劃轉數量 true string
currency 劃轉資產名稱 true string

RESPONSE EXAMPLE

{
  "amount": 100,
  "currency": "HKD"
}
參數名稱 參數說明 類型
amount 劃轉數量 string
currency 劃轉資產名稱 string

產品

GET 獲取所有已知的交易產品

獲取所有的交易產品信息

限速:無

限速規則:無

HTTP請求

GET HOST/v1/products

RESPONSE EXAMPLE

[
  {
    "product": "ETH_USD",
    "base_currency": "ETH",
    "quote_currency": "USD",
    "display_name": "ETH_USD",
    "status": "on",
    "maker_fees_rate": "0.01",
    "taker_fees_rate": "0.02",
    "quote_precision": "5",
    "trade_precision": "8",
    "amount_precision": "6",
    "max_buy_price_rate": "1.000000",
    "max_sell_price_rate": "1.000000",
    "max_trade_usd_per_order": "",
    "min_trade_usd_per_order": "",
    "max_market_taker_trade_rate": "1.000000",
    "min_market_taker_trade_rate": "1.000000",
    "max_market_trade_usd_per_order": "",
    "min_market_trade_usd_per_order": ""
  }
]

product: 商品

base_currency: 基礎資產名

quote_currency : 計價資產名

display_name: 交易產品展示名,下單時,作為交易產品唯一標識

status : 交易產品狀態 - on: 已上線,該產品開放交易,可以正常下單交易。 - off: 已下線。該產品關閉一切交易,已經存在掛單的訂單,會被系統自動撤銷。 - pause: 交易暫停,該產品關閉一些交易,但已經存在的掛單,不會被取消

amount_precision: 交易貨幣數量單位精度

quote_precision: 計價貨幣數量單位精度

trade_precision: 交易貨幣價格單位精度

maker_fees_rate: 賣單方費率

taker_fees_rate: 買單方費率

max_buy_price_rate: 限價買入價不能高於最新價格的比率,超過比率,訂單下單失敗。

max_sell_price_rate: 限價賣單不可以低於最新價格的比率。超過比率,訂單下單失敗。

max_trade_usd_per_order: 限價每筆訂單最大下單金額。該金額會被折合成美元進行計算。

min_trade_usd_per_order: 限價每筆訂單最小下單金額。該金額會被折合成美元進行計算。

max_market_taker_trade_rate: 市價買入價不能高於最新價格的比率,超過比率,訂單下單失敗。

min_market_taker_trade_rate : 市價賣單不可以低於最新價格的比率。超過比率,訂單下單失敗。

max_market_trade_usd_per_order : 市價單筆最小下單金額。該金額會被折合成美元進行計算。

min_market_trade_usd_per_order : 市價單筆最小下單金額。該金額會被折合成美元進行計算。

參數名稱 參數說明 類型
product 商品 string
base_currency 基礎資產 string
quote_currency 計價資產名 string
display_name 顯示名稱 string
amount_precision 交易貨幣數量單位精度 string
quote_precision 計價貨幣數量單位精度 string
trade_precision 交易貨幣價格單位精度 string
maker_fees_rate 賣單方費率 string
taker_fees_rate 買單方費率 string
max_buy_price_rate 買入價格不能高於最新價(%) string
max_sell_price_rate 賣出價格不能低於最新價(%) string
max_trade_usd_per_order 單筆最大下單金額 string
min_trade_usd_per_order 單筆最小下單金額 string
max_market_taker_trade_rate 買單成交價格上限(%) string
min_market_taker_trade_rate 買單成交價格下限(%) string
max_market_trade_usd_per_order 單筆最大下單金額 string
min_market_trade_usd_per_order 單筆最小下單金額 string
status 狀態 string

GET 獲取單個產品詳情

獲取指定的交易產品信息

限速:無

限速規則:無

HTTP請求

GET HOST/v1/products/{product}

參數名稱 參數說明 是否必須 數據類型
product 商品,例:ETH_USD true string

RESPONSE EXAMPLE

[
  {
    "product": "ETH_USD",
    "base_currency": "ETH",
    "quote_currency": "USD",
    "display_name": "ETH_USD",
    "status": "on",
    "maker_fees_rate": "0.01",
    "taker_fees_rate": "0.02",
    "quote_precision": "5",
    "trade_precision": "8",
    "amount_precision": "6",
    "max_buy_price_rate": "1.000000",
    "max_sell_price_rate": "1.000000",
    "max_trade_usd_per_order": "",
    "min_trade_usd_per_order": "",
    "max_market_taker_trade_rate": "1.000000",
    "min_market_taker_trade_rate": "1.000000",
    "max_market_trade_usd_per_order": "",
    "min_market_trade_usd_per_order": ""
  }
]

product: 商品

base_currency: 基礎資產名

quote_currency : 計價資產名

display_name: 交易產品展示名,下單時,作為交易產品唯一標識

status : 交易產品狀態 - on: 已上線,該產品開放交易,可以正常下單交易。 - off: 已下線。該產品關閉一切交易,已經存在掛單的訂單,會被系統自動撤銷。 - pause: 交易暫停,該產品關閉一些交易,但已經存在的掛單,不會被取消

amount_precision: 交易貨幣數量單位精度

quote_precision: 計價貨幣數量單位精度

trade_precision: 交易貨幣價格單位精度

maker_fees_rate: 賣單方費率

taker_fees_rate: 買單方費率

max_buy_price_rate: 限價買入價不能高於最新價格的比率,超過比率,訂單下單失敗。

max_sell_price_rate: 限價賣單不可以低於最新價格的比率。超過比率,訂單下單失敗。

max_trade_usd_per_order: 限價每筆訂單最大下單金額。該金額會被折合成美元進行計算。

min_trade_usd_per_order: 限價每筆訂單最小下單金額。該金額會被折合成美元進行計算。

max_market_taker_trade_rate: 市價買入價不能高於最新價格的比率,超過比率,訂單下單失敗。

min_market_taker_trade_rate : 市價賣單不可以低於最新價格的比率。超過比率,訂單下單失敗。

max_market_trade_usd_per_order : 市價單筆最小下單金額。該金額會被折合成美元進行計算。

min_market_trade_usd_per_order : 市價單筆最小下單金額。該金額會被折合成美元進行計算。

參數名稱 參數說明 類型
product 商品 string
base_currency 基礎資產 string
quote_currency 計價資產名 string
display_name 顯示名稱 string
amount_precision 交易貨幣數量單位精度 string
quote_precision 計價貨幣數量單位精度 string
trade_precision 交易貨幣價格單位精度 string
maker_fees_rate 賣單方費率 string
taker_fees_rate 買單方費率 string
max_buy_price_rate 買入價格不能高於最新價(%) string
max_sell_price_rate 賣出價格不能低於最新價(%) string
max_trade_usd_per_order 單筆最大下單金額 string
min_trade_usd_per_order 單筆最小下單金額 string
max_market_taker_trade_rate 買單成交價格上限(%) string
min_market_taker_trade_rate 買單成交價格下限(%) string
max_market_trade_usd_per_order 單筆最大下單金額 string
min_market_trade_usd_per_order 單筆最小下單金額 string
status 狀態 string

幣種信息

GET 獲取所有已知貨幣

獲取所有幣種的信息列表

限速:無

限速規則:無

HTTP請求

GET HOST/v1/currencies

RESPONSE EXAMPLE

[
  {
    "currency": "ETH",
    "min_size": "0",
    "status": "on",
    "max_precision": "10",
    "type": "crypto",
    "deposit_status": "on",
    "withdraw_status": "on",
    "accuracy": "8",
    "details": [
      {
        "network_confirmations": "12",
        "sort_order": "3",
        "display_name": "ETH",
        "deposit_status": "on",
        "accuracy": "8",
        "withdraw_status": "on"
      }
    ]
  }
]

currency: 幣種名稱,可唯一標識幣種

accuracy: fiat存取款精度

max_precision : 最大精度。取之範圍在[18,-18]

min_size: 最小出入金數量

status: 幣種狀態

type: 貨幣類型,fiat 為法幣, crypto 為數字幣

details: 鏈信息,只有數字幣類型才會有此部分信息

deposit_status: fiat 存款狀態

withdraw_status: fiat 取款狀態

參數名稱 參數說明 類型
currency 幣種名稱 string
accuracy fiat存取款精度 string
max_precision 最大精度 string
min_size 最小出入金數量 string
status 幣種狀態 string
type 貨幣類型 string
details 鏈信息 string
deposit_status fiat 存款狀態 string
withdraw_status fiat 取款狀態 string

GET 獲取單個幣種信息

獲取指定幣種的信息

限速:無

限速規則:無

HTTP請求

GET HOST/v1/currencies/{currency}

參數名稱 參數說明 是否必須 數據類型
currency 幣種名稱,例:BTC true string

RESPONSE EXAMPLE

[
  {
    "currency": "ETH",
    "min_size": "0",
    "status": "on",
    "max_precision": "10",
    "type": "crypto",
    "deposit_status": "on",
    "withdraw_status": "on",
    "accuracy": "8",
    "details": [
      {
        "network_confirmations": "12",
        "display_name": "ETH",
        "accuracy": "8",
        "deposit_status": "on",
        "withdraw_status": "on"
      }
    ]
  }
]

currency: 幣種名稱,可唯一標識幣種

accuracy: fiat存取款精度

max_precision : 最大精度。取之範圍在[18,-18]

min_size: 最小出入金數量

status: 幣種狀態

type: 貨幣類型,fiat 為法幣, crypto 為數字幣

details: 鏈信息,只有數字幣類型才會有此部分信息

deposit_status: fiat 存款狀態

withdraw_status: fiat 取款狀態

參數名稱 參數說明 類型
currency 幣種名稱 string
accuracy fiat存取款精度 string
max_precision 最大精度 string
min_size 最小出入金數量 string
status 幣種狀態 string
type 貨幣類型 string
details 鏈信息 string
deposit_status fiat 存款狀態 string
withdraw_status fiat 取款狀態 string

交易和訂單

POST 創建新訂單

只有當您的賬戶有足夠的資金才能下單。

限速:10次/s

限速規則:ApiKey

HTTP請求

POST HOST/v1/orders

鑑權信息

私有信息的鑑權信息,請參考 鑑權說明

REQUEST EXAMPLE

{
  "product": "BTC_USDT",
  "side": "buy",
  "type": "limit",
  "stp": "dc",
  "price": "2.00",
  "size": "3.300000000000000000",
  "client_oid": "QZ_2020-jj"
}

common parameters

product: 必須是一個存在的商品。例如 BTC_USD。產品列表可以通過 products 獲得。

side: buy 買入, sell 賣出。

type: 訂單類型

client_oid: 可選,默認"0",用戶自定義訂單號,用於用戶管理自己的訂單。該ID非唯一,長度不多於32個字符的字符串類型,必須由大小寫字母A-Z/a-z、數字0-9、下劃線_、中劃線- 中的元素組成,不支持以外的特殊符號

stp: 即 self trade prevention。 BGE禁止用戶與自己成交的行為。用戶可以通過stp選項,指定當自成交場景出現時的訂單處理策略。

time_in_force: 可選,交易指令,目前支持 GTC。默認值為 GTC

limit order parameters

price: 商品價格

size: 買入或者賣出商品的數量

market order parameters

size: 期望交易數量。需要sidesell,代表以最新成交價進行賣出,期望最多賣出的商品數。

funds: 期望交易額度。需要sidebuy,代表以最新成交價進行買入,期望花費的最多資產額度。

參數名稱 參數說明 是否必須 數據類型
product 商品,例:ETH_USD true string
side buy/sell true string
type limit:限價單/market:市價單 true string
stp 自成交:dc:減少和取消(默認)co:取消最舊 cn:取消最新 cb:取消兩者 true string
time_in_force 交易指令,GTC false string
funds 想要使用的報價貨幣數量 false string
price 每個幣的價格 false string
size 買入或賣出的數量 false string
client_oid 用戶自定義訂單號 false string

RESPONSE EXAMPLE


{
  "order_id":129149436110880967,
  "client_oid":"Order_ower_1233"
}

order_id: BGE所生成的訂單號

client_oid: 用戶自定義訂單號

參數名稱 參數說明 類型
order_id BGE所生成的訂單號 string
client_oid 用戶自定義訂單號,默認"0" string

GET 根據系統訂單號查詢單個訂單

獲取指定訂單信息。

限速:10次/s

限速規則:ApiKey

HTTP請求

GET HOST/v1/orders/{order_id}

鑑權信息

私有信息的鑑權信息,請參考 鑑權說明

參數名稱 參數說明 是否必須 數據類型
order_id 訂單ID true string

RESPONSE EXAMPLE

{
  "filled_size": "0.000000000000000000",
  "filled_fees": "1.00",
  "filled_amount": "0.000000000000000000",
  "filled_average_price": "0",
  "created_at": "2021-12-14T03:19:15Z",
  "updated_at": "2022-01-04T06:57:34Z",
  "price": "2.00",
  "size": "3.300000000000000000",
  "product": "BTC_USDT",
  "order_id": "127738628653088481",
  "funds": "0.000000000000000000",
  "type": "limit",
  "side": "buy",
  "status": "7",
  "client_oid": "QZ_2020-jj"
}

status: 交易狀態,取值範圍0-7

參數名稱 參數說明 類型
filled_fees 成交費用 string
filled_size 成交金額 string
filled_amount 成交數量 string
filled_average_price 成交均價 string
funds 想要使用的報價貨幣數量 string
order_id 訂單編號 string
price 每單位基礎貨幣的價格 string
product 商品 string
side buy/sell string
size 買入/賣出的基礎貨幣數量 string
status 狀態 string
type limit:限價單/market:市價單 string
created_at 創建時間 string
updated_at 更新時間 string
client_oid 用戶自定義訂單號 string

GET 根據用戶自定義訂單號查詢單個訂單

當該自定義訂單對應多個系統訂單時,只返回最新系統訂單。

限速:10次/s

限速規則:ApiKey

HTTP請求

GET HOST/v1/orders/single/{client_oid}

鑑權信息

私有信息的鑑權信息,請參考 鑑權說明

參數名稱 參數說明 是否必須 數據類型
client_oid 用戶自定義訂單號 true string

client_oid: 當該自定義訂單對應多個系統訂單時,只返回最新系統訂單

RESPONSE EXAMPLE

{
  "filled_size": "0.000000000000000000",
  "filled_fees": "1.00",
  "filled_amount": "0.000000000000000000",
  "filled_average_price": "0",
  "created_at": "2021-12-14T03:19:15Z",
  "updated_at": "2022-01-04T06:57:34Z",
  "price": "2.00",
  "size": "3.300000000000000000",
  "product": "BTC_USDT",
  "order_id": "127738628653088481",
  "funds": "0.000000000000000000",
  "type": "limit",
  "side": "buy",
  "status": "7",
  "client_oid": "QZ_2020-jj"
}

status: 交易狀態,取值範圍0-7

參數名稱 參數說明 類型
filled_fees 成交費用 string
filled_size 成交金額 string
filled_amount 成交數量 string
filled_average_price 成交均價 string
funds 想要使用的報價貨幣數量 string
order_id 訂單編號 string
price 每單位基礎貨幣的價格 string
product 商品 string
side buy/sell string
size 買入/賣出的基礎貨幣數量 string
status 狀態 string
type limit:限價單/market:市價單 string
created_at 創建時間 string
updated_at 更新時間 string
client_oid 用戶自定義訂單號 string

GET 獲取交易明細

根據不同的查詢條件可獲得符合條件的交易明細

限速:10次/s

限速規則:ApiKey

HTTP請求

GET HOST/v1/fills

鑑權信息

私有信息的鑑權信息,請參考 鑑權說明

參數名稱 參數說明 是否必須 數據類型
after 用於分頁。將結束光標設置為after日期。 false integer(int64)
before 用於分頁。將開始光標設置為before日期 false integer(int64)
limit 限制返回的結果數,默認100,最大1000 false integer(int32)
product 商品id false string
order_id 訂單id false string
client_oid 用戶自定義訂單號 false string

RESPONSE EXAMPLE

[
  {
    "product": "BTC_USDT",
    "order_id": "12808732377541664481",
    "liquidity": "maker",
    "price": "19.560000000000000000",
    "size": "0.937686000000000000",
    "fee": "0",
    "created_at": "2022-01-04T10:17:03Z",
    "updated_at": "2022-01-04T10:17:03Z",
    "side": "sell"
  }
]
參數名稱 參數說明 類型
created_at 訂單創建時間 string
updated_at 訂單更新時間 string
fee 按當前填寫的金額支付的費用 string
liquidity 流動性:marker、taker string
order_id 訂單編號 string
price 每單位基礎貨幣的價格 string
product 產品編號 string
side buy/sell string
size 買入/賣出的基礎貨幣數量 string

GET 獲取當前的未完結訂單

獲取沒有成交的訂單

限速:10次/s

限速規則:ApiKey

HTTP請求

GET HOST/v1/orders

鑑權信息

私有信息的鑑權信息,請參考 鑑權說明

此接口可查詢單個訂單詳情,或根據商品的多個訂單

參數名稱 參數說明 是否必須 數據類型
after 用於分頁。將結束光標設置為after日期。 false integer(int64)
before 用於分頁。將開始光標設置為before日期 false integer(int64)
limit 限制返回的結果數,默認100,最大1000 false integer(int32)
order_id 訂單id false string
client_oid 用戶自定義訂單號 false string
product 商品id false string

RESPONSE EXAMPLE

[
  {
    "price": "19.560000000000000000",
    "size": "35.447206000000000000",
    "product": "BTC_USDT",
    "order_id": "128087977541664481",
    "funds": "592.668000000000000000",
    "type": "limit",
    "side": "sell",
    "status": "2"
  }
]

status: 交易狀態,取值範圍0-7

參數名稱 參數說明 類型
funds 想要使用的報價貨幣數量 string
order_id 訂單編號 string
price 每單位基礎貨幣的價格 string
product 產品編號 string
side buy/sell string
size 買入/賣出的基礎貨幣數量 string
status 狀態 string
type limit:限價單/market:市價單 string

DELETE 根據系統訂單號撤銷單個訂單

撤銷指定的未完成訂單

限速:10次/s

限速規則:ApiKey

HTTP請求

DELETE HOST/v1/orders/{order_id}

鑑權信息

私有信息的鑑權信息,請參考 鑑權說明

參數名稱 參數說明 是否必須 數據類型
order_id 訂單id true string

RESPONSE EXAMPLE

"1277087538632480481"
參數名稱 參數說明 數據類型
order_id 訂單id string

DELETE 根據用戶自定義訂單號撤銷單個訂單

可撤銷單個訂單,若自定義訂單對應多個系統訂單,撤銷最新一個訂單,撤銷申請成功,返回對應的系統訂單號

限速:10次/s

限速規則:ApiKey

HTTP請求

DELETE HOST/v1/orders/single/{client_oid}

鑑權信息

私有信息的鑑權信息,請參考 鑑權說明

參數名稱 參數說明 是否必須 數據類型
client_oid 用戶自定義訂單號 true string

RESPONSE EXAMPLE

"1277087538632480481"

即將被取消的訂單的ID列表

DELETE 根據商品取消所有訂單

此方法為異步方法,當用戶收到接口返回時,並不代表所有訂單已經取消成功。 BGE收到請求之後,會查詢用戶賬戶下對應商品ID的所有未成交訂單,並對這些訂單異步進行取消操作。 用戶可以通過/orders/{order_id} 查詢單個訂單的成交狀態。

限速:10次/s

限速規則:ApiKey

HTTP請求

DELETE HOST/v1/orders

product: 被撤銷的商品ID,例如 "BTC_USD"

參數名稱 參數說明 是否必須 數據類型
product 商品 true string

即將被取消的訂單的ID列表

公共數據V2

GET K線

獲取K線數據。 K線數據按請求的粒度分組返回,K線數據最多可獲取最近2,000條。

限速:無

限速規則:無

HTTP請求

GET HOST/public/v2/products/{product}/candles

參數名 必選 類型 說明
product true string 路徑參數 商品,如:ETH_USD
interval false string 時間粒度默認值1min 參考值:[1min,5min,15min,30min,60min,4hour,1day,1week,1mon] 具體請參考K線頻道訂閱
from true long 開始時間 ,請求此時間戳之後的數據(秒)
to true long 結束時間 ,請求次時間戳之前的數據(秒)
size false int 默認500 ,最大1000[1,1000]

REQUEST EXAMPLE


GET /public/v2/products/ETH_USDT/candles?interval=1min&from=1639584000&to=1639584000&size=100

RESPONSE EXAMPLE

{
  "code": 200,
  "data":
  [
    {
      "id": 1690952460,
      "open": "3.5334",
      "close": "3.5334",
      "high": "3.5334",
      "low": "3.5334",
      "vol": "0",
      "count": 0,
      "filled_size": "0"
    },
    {
      "id": 1690952520,
      "open": "3.5334",
      "close": "3.5334",
      "high": "3.5334",
      "low": "3.5334",
      "vol": "0",
      "count": 0,
      "filled_size": "0"
    }
  ],
  "message": "OK"
}

參數名 類型 說明
close string 這根K線期間末一筆成交價
high string 這根K線期間最高成交價
low string 這根K線期間最低成交價
open string 這根K線期間第一筆成交價
filled_size string 成交額
count int 這根k線期間的成交筆數
vol string 成交量
id long 唯一id

GET 訂單book

獲取訂單簿(Order-book)數據。 Order-book數據按價格從高到低排序,價格相同的按照時間優先排序。

限速:無

限速規則:無

HTTP請求

GET HOST/public/v2/products/{product}/orderbook

參數名 必選 類型 說明
product true string 路徑參數 商品,如:ETH_USD
interval false string 指標週期 默認值 0 有效取值範圍 0-11 請參考 深度頻道訂閱

REQUEST EXAMPLE


GET /public/v2/products/ETH_USDT/orderbook?interval=0

RESPONSE EXAMPLE

{
  "code": 200,
  "data":
  {
    "bids":
    [
      [
        "5",   //價格
        "3.6"  //數量
      ],
      [
        "3.5334",
        "3"
      ]
    ],
    "asks":
    [],
    "seq_id": 18867339
  },
  "message": "OK"
}

參數名 類型 說明
seq_id string 有序且唯一id
bids [] 買方
asks [] 賣方

GET 全部幣對24小時行情數據

獲取所有產品行情信息

限速:無

限速規則:無

HTTP請求

GET HOST/public/v2/products/overview/tickers

REQUEST EXAMPLE


GET /public/v2/products/overview/tickers

RESPONSE EXAMPLE

{
  "code": 200,
  "data":
  [
    {
      "id": 1691132221,
      "product": "BTC_USDT",
      "open": "7.13",
      "close": "3.2713",
      "high": "7.13",
      "low": "2.9313",
      "vol": "1979.89",
      "count": 0,
      "change": "-3.8587",
      "seq_id": 22757,
      "filled_size": "6916.093957",
      "change_percent": "-0.5412"
    }
  ],
  "message": "OK"
}
參數名 類型 說明
close int 24小時最新成交價格
high int 24小時內最高成交價
low int 24小時內最低成交價
open int 24小時前開始第一筆成交價格
filled_size string 24小時內成交額
vol string 24小時內成交量
change string 24小時價格變化
change_percent string 24小時價格變化(百分比)
seq_id long 唯一且有序id
count int 24小時成交筆數
product string 商品,例:ETH_USD
id long 唯一id

GET 單幣對24小時行情數據

獲取產品行情信息

限速:無

限速規則:無

HTTP請求

GET HOST/public/v2/products/{product}/ticker

參數名 必選 類型 說明
product true string 路徑參數 商品,如:ETH_USD

REQUEST EXAMPLE


GET /public/v2/products/ETH_USDT/ticker

RESPONSE EXAMPLE

{
  "code": 200,
  "data":
  {
    "id": 1691132024,
    "product": "ETH_USDT",
    "open": "7.13",
    "close": "3.2713",
    "high": "7.13",
    "low": "2.9313",
    "vol": "1979.89",
    "count": 0,
    "change": "-3.8587",
    "seq_id": 22757,
    "filled_size": "6916.093957",
    "change_percent": "-0.5412"
  },
  "message": "OK"
}
參數名 類型 說明
close int 24小時最新成交價格
high int 24小時內最高成交價
low int 24小時內最低成交價
open int 24小時前開始第一筆成交價格
filled_size string 24小時內成交額
vol string 24小時內成交量
change string 24小時價格變化
change_percent string 24小時價格變化(百分比)
seq_id long 唯一且有序id
count int 24小時成交筆數
product string 商品,例:ETH_USD
id long 唯一id

GET 單幣對實時成交數據

獲取產品的最新交易列表

限速:無

限速規則:無

HTTP請求

GET HOST/public/v2/products/{product}/trades

參數名 必選 類型 說明
product true string 路徑參數 商品,如:ETH_USD
size false int 每次請求的數量:默認值 500 最大值 1000

REQUEST EXAMPLE


GET /public/v2/products/ETH_USDT/trades?size=1

RESPONSE EXAMPLE

{
  "code": 200,
  "data":
  [
    {
      "vol": "0.1",
      "ts": 1691029846352,
      "price": "5",
      "direction": "sell",
      "id": 17078143
    }
  ],
  "message": "OK"
}
參數名 類型 說明
direction string 成交方向 buy / sell
price string 成交價格
vol string 成交量
id string 唯一id
ts long 成交時間戳

WEBSOCKET

歡迎使用BGE數字幣交易所 WebSocket 訂閱消息協議。該協議允許您通過 WebSocket 連接實時訂閱並接收市場數據、交易信息和其他相關信息。

希望該文檔能夠幫助您快速了解我們的數字幣交易所 WebSocket 訂閱消息協議。如果您有任何疑問或需要進一步的幫助,請隨時聯繫我們的技術支持團隊。祝您使用愉快!

WEBSOCKET 基本說明

WebSocket 是一種在單個 TCP 連接上進行全雙工通信的網絡協議,它提供了一種在客戶端和服務器之間進行實時數據傳輸的方式。通過使用 WebSocket,您可以實時地訂閱和接收來自數字幣交易所的實時市場數據和其他信息。

連接說明

在訂閱消息之前,您需要建立 WebSocket 連接。連接說明如下:

當訂閱公有頻道時,使用公有服務的地址;當訂閱私有頻道時,使用私有服務的地址

請根據您的需求選擇相應的服務地址連接到公有或私有頻道。

訂閱限制

每個連接1s 最多可以發送 50 條消息,否則強制關閉連接

為了保持連接的穩定性和公平性,我們對發送消息做了限制,每個連接每秒最多可以發送 50 條消息。如果您在 1 秒內發送超過 50 條消息,系統將強制關閉連接,請注意遵守此限制。

連接保持

我們會定時發送 ping消息,期待您返回 pong消息作為回應,如果超過 30s 沒有收到您的響應服務器會關閉連接

同時,需要注意以下情況:

網絡問題:如果出現網絡問題,系統會自動斷開連接。

連接超時:如果連接成功後 30 秒內未訂閱或訂閱後 30 秒內服務器未向用戶推送數據,系統會自動斷開連接。

為了確保連接的活躍性,我們會定時向客戶端發送 JSON 格式的 ping 消息:{"ping": timestamp}。您需要在收到 ping 消息後,及時發送 {"pong": timestamp} 文本消息,以表明連接處於活躍狀態。如果在 30 秒內沒有收到您的響應,我們將關閉連接,建議您進行以下操作:

  1. 每次接收到{"ping": timestamp}消息後,立即回復一個{"pong": timestamp}

  2. 期待一個文字字符串 {"ping": timestamp} 作為心跳消息。如果在 N 秒內未收到,請發出錯誤或重新連接。

  3. 您回复的pong消息中的時間戳應該使用收到的ping消息中的時間戳。

ping消息示例


{
    "ping": 1635065532000
}

pong消息示例


{
    "pong": 1635065532000
}

請求錯誤

不論私有頻道或公有頻道,當您發送的請求服務器處理失敗時,服務器將返回統一的錯誤消息,便於客戶端進行處理。

錯誤消息主要由兩部分組成:錯誤代碼和消息。代碼是通用的,但是消息可能會有所不同。

錯誤代碼和消息請參考:狀態碼對照表其他錯誤狀態碼對照表

錯誤消息響應參數說明

參數名 類型 說明
event string 用戶發送的事件名 事件列表
msg string 錯誤消息
code int 狀態碼 狀態碼對照表

常見錯誤碼說明

  1. 錯誤碼 400:通常需要檢查您提供的請求參數是否正確,或者是否有必填參數未填寫。

  2. 錯誤碼 401:通常需要確保您已收到成功登錄響應,未登錄進行私有頻道訂閱會出現此錯誤。

  3. 錯誤碼 500:通常是服務器內部錯誤,建議您稍後重試。

錯誤請求示例 1 此示例使用的請求結構是錯誤的,請根據您的實際請求參數進行替換。

{
    "event": "sub",
    "para": {
        "biz": "market",
        "type": "percent10",
        "product": "ETH_USDT"
    },
    "zip": true
}

錯誤請求響應示例 1

{
    "event": "sub",
    "code": "400",
    "msg": "Invalid request: {\"event\":\"sub\",\"para\":{\"biz\":\"market\",\"type\":\"percent10\",\"pairCode\":\"ETH_USDT\"},\"zip\":true}"
}

錯誤請求示例 2 此示例使用的access_key值為空,請確保必填參數已填寫。

{
  "event": "login",
  "params": {
    "type": "api",
    "access_key": "",
    "access_sign": "sign",
    "access_timestamp": 14000000000
  }
}

錯誤請求響應示例 2

{
  "event": "login",
  "code": 40001,
  "msg": "ACCESS_KEY不能為空"
}

WEBSOCKET公共頻道V2

序列號 seq_id 說明

  1. seq_id 是交易所行情的一個序列號,當用戶使用一個或多個 WebSocket 連接到同一個頻道時,除了實時成交數據外,都會收到相同序列號的數據推送,用戶需要自己處理重複數據,可以使用 seq_id 來構建消息序列,這將允許用戶檢測數據包丟失和消息的排序。

  2. seq_id 是一個單調遞增的數字,最小值為 0。

K線頻道

訂閱或者請求獲取K線(最新一根K線)數據的推送

K線圖間隔參數:

min -> 分鐘; hour -> 小時; day -> 天; week -> 週; mon -> 月

字段說明:

訂閱

請求示例

{
    "event": "sub",
    "biz": "market",
    "type": "candles",
    "product": "BTC_USDT",
    "interval": "15min",
    "zip": false
}

響應示例

{
    "biz": "market",
    "type": "candles",
    "ts": 1666851880448,
    "code": 200,
    "status": "OK",
    "event": "sub",
    "product": "BTC_USDT",
    "interval": "15min"
}

取消訂閱

請求示例

{
    "event": "unsub",
    "biz": "market",
    "type": "candles",
    "product": "BTC_USDT",
    "interval": "15min",
    "zip": false
}

響應示例

{
    "biz": "market",
    "type": "candles",
    "ts": 1666851880448,
    "code": 200,
    "status": "OK",
    "event": "unsub",
    "product": "BTC_USDT",
    "interval": "15min"
}

推送數據

推送數據示例

{
    "id": "1689144300",
    "biz": "market",
    "type": "candles",
    "data":
    {
        "id": 1689144300,
        "open": "3.7366",
        "close": "3.7366",
        "high": "3.7366",
        "low": "3.7366",
        "filled_size": "0",
        "vol": "0",
        "count": 0,
        "seq_id": 112588635
    },
    "product": "BTC_USDT",
    "interval": "15min"
}

請求數據

參數說明:

獲取指定範圍的K線數據請求示例

{
    "event": "req",
    "biz": "market",
    "type": "candles",
    "product": "BTC_USDT",
    "interval": "15min",
    "zip": false,
    "from": 1687561511,
    "to": 1688641511
}

獲取指定範圍的K線數據響應示例

{
    "biz": "market",
    "type": "candles",
    "product": "BTC_USDT",
    "ts": 1690252632272,
    "code": 200,
    "status": "OK",
    "data":
    [
        {
            "id": 1688398200,
            "open": "3.3706",
            "close": "3.3706",
            "high": "3.3706",
            "low": "3.3706",
            "filled_size": "0",
            "vol": "0",
            "count": 0
        },
        {
            "id": 1688399100,
            "open": "3.3706",
            "close": "3.3706",
            "high": "3.3706",
            "low": "3.3706",
            "filled_size": "0",
            "vol": "0",
            "count": 0
        }
    ],
    "event": "req",
    "interval": "15min"
}



成交頻道

訂閱獲取產品實時成交增量推送數據

獲取最近的成交數據,有成交數據就推送,每次推送可能包含多條成交數據。

字段說明:

訂閱

請求示例

{
    "event": "sub",
    "biz": "market",
    "type": "fills",
    "product": "BTC_USDT",
    "zip": false
}

響應示例

{
    "biz": "market",
    "type": "fills",
    "product": "BTC_USDT",
    "ts": 1690165577416,
    "code": 200,
    "status": "OK",
    "event": "sub"
}

取消訂閱

請求示例


{
    "event": "unsub",
    "biz": "market",
    "type": "fills",
    "product": "BTC_USDT",
    "zip": false
}

響應示例

{
    "biz": "market",
    "type": "fills",
    "ts": 1666851880448,
    "code": 200,
    "status": "OK",
    "event": "unsub",
    "product": "BTC_USDT"
}

推送數據

推送數據示例

{
    "id": "310529",
    "biz": "market",
    "type": "fills",
    "data":
    [
        {
            "vol": "0.79",
            "ts": 1689152279117,
            "price": "3.4134",
            "direction": "buy",
            "id": 310529000
        }
    ],
    "product": "BTC_USDT"
} 

深度頻道

訂閱獲取產品訂單薄增量推送數據

最快500毫秒推送一次,沒有觸發事件時也推送,盤口無數據 bids 和 asks可能為空數組

OrderBook訂閱interval參數:[當前檔位支持最大精度, 當前檔位支持最大深度]:

說明:interval=5,推送的bids裡的買方價格只能精確到小數點後一位,bids的數組大小最大是150

字段說明:

訂閱

請求示例

{
    "event": "sub",
    "biz": "market",
    "type": "orderbook",
    "product": "BTC_USDT",
    "interval": "0",
    "zip": false
}

響應示例

{
    "biz": "market",
    "type": "orderbook",
    "ts": 1666851880448,
    "code": 200,
    "status": "OK",
    "event": "sub",
    "product": "BTC_USDT",
    "interval": 0
}

取消訂閱

請求示例

{
    "event": "unsub",
    "biz": "market",
    "type": "orderbook",
    "product": "BTC_USDT",
    "interval": "0",
    "zip": false
}

響應示例

{
    "biz": "market",
    "type": "orderbook",
    "ts": 1666851880448,
    "code": 200,
    "status": "OK",
    "event": "unsub",
    "product": "BTC_USDT",
    "interval": 0
}

推送數據

推送數據示例


{
    "id": "1689143926",
    "biz": "market",
    "type": "orderbook",
    "data":
    {
        "seq_id":112588640,//有序且唯一id
        "bids":           //買方
        [
            [
                "3.7366", //價格
                "0.66"    //數量
            ],
            [
                "3.6866",
                "0.98"
            ],
            [
                "3.4666",
                "0.33"
            ],
            [
                "3.3766",
                "0.76"
            ],
            [
                "3.3666",
                "0.7"
            ],
            [
                "3.1966",
                "0.75"
            ],
            [
                "3.1766",
                "0.06"
            ],
            [
                "3.0666",
                "0.91"
            ],
            [
                "3.0266",
                "0.73"
            ]
        ],
        "asks":           //賣方
        [
            [
                "3.9966", //價格
                "0.9"     //數量
            ]
        ]
    },
    "product": "BTC_USDT",//交易對
    "interval": "0"
}



深度depth頻道

訂閱獲取產品深度圖增量推送數據

說明:買賣盤各拿平均價格的10%以內的最多200條,賣1價向上浮動10%內的委託,買1向下浮動10%以內的委託

最快500毫秒推送一次,沒有觸發事件時也推送,盤口無數據 bids 和 asks可能為空數組

字段說明:

訂閱

請求示例

{
    "event": "sub",
    "biz": "market",
    "type": "percent10",
    "product": "BTC_USDT",
    "zip": false
}

響應示例

{
    "biz": "market",
    "type": "percent10",
    "ts": 1666851880448,
    "code": 200,
    "status": "OK",
    "event": "sub",
    "product": "BTC_USDT"
}

取消訂閱

請求示例

{
    "event": "unsub",
    "biz": "market",
    "type": "percent10",
    "product": "BTC_USDT",
    "zip": false
}

響應示例

{
    "biz": "market",
    "type": "percent10",
    "product": "BTC_USDT",
    "ts": 1690193555943,
    "code": 200,
    "status": "OK",
    "event": "unsub"
}

推送數據

推送數據示例


{
    "id": "1689143539",     //消息唯一id
    "biz": "market",
    "seq_id": 112588640,     //有序且唯一id
    "type": "percent10",    //業務類型
    "data":
    {
        "bids":             //買方
        [
            [
                "3.8646667",//價格
                "0"         //數量
            ]
        ],
        "asks":             //賣方
        [
            [
                "3.8685333",//價格
                "0"         //數量
            ],
            [
                "3.8704666",
                "0"
            ]
        ],
        "seq_id": 112588640
    },
    "product": "BTC_USDT"
}


行情頻道

獲取產品24小時ticker增量推送數據

字段說明:

訂閱

請求示例

{
    "event": "sub",
    "biz": "market",
    "type": "ticker",
    "product": "BTC_USDT",
    "zip": false
}   

響應示例

{
    "biz": "market",
    "type": "ticker",
    "ts": 1666851880448,
    "code": 200,
    "status": "OK",
    "event": "sub",
    "product": "BTC_USDT"
}

取消訂閱

請求示例

{
    "event": "unsub",
    "biz": "market",
    "type": "ticker",
    "product": "BTC_USDT",
    "zip": false
}

響應示例

{
    "biz": "market",
    "type": "ticker",
    "ts": 1689946788754,
    "code": 200,
    "status": "OK",
    "event": "unsub",
    "product": "BTC_USDT"
}

推送數據

推送數據示例


{
    "id": "1689144487",
    "biz": "market",
    "type": "ticker",
    "product": "BTC_USDT",
    "data":
    [
        {
            "id": 1689144487,
            "seq_id": 112588640,
            "open": "3.7366",
            "close": "3.7366",
            "high": "3.7366",
            "low": "3.7366",
            "filled_size": "0",
            "vol": "0",
            "count": 0,
            "change": "0",
            "change_percent": "0"
        }
    ]
}

請求 指定交易對最新行情數據

獲取指定交易對最新行情數據請求示例

{
    "event": "req",
    "biz": "market",
    "type": "ticker",
    "product": "BTC_USDT",
    "zip": false
}

獲取指定交易對最新行情數據響應示例

{
    "biz": "market",
    "type": "ticker",
    "ts": 1689133337870,
    "code": 200,
    "status": "OK",
    "data":
    {
        "id": 1689133336,
        "seq_id": 112588640,
        "open": "3.7366",
        "close": "3.7366",
        "high": "3.7366",
        "low": "3.7366",
        "filled_size": "0",
        "vol": "0",
        "count": 0,
        "change": "0",
        "change_percent": "0"
    },
    "event": "req",
    "product": "BTC_USDT"
}

公共頻道Request字段說明

參數名 類型 必選 說明 參考值
event string 請求事件 事件
biz string 業務線 業務線
type string 業務類型 類型
product string 交易對 BTC_USDT
interval string 頻率 1min
zip bool 是否啟用gzip true,false

公共頻道Response字段說明

參數名 類型 必選 說明 參考值
event string 請求事件 事件
biz string 業務線 業務線
type string 業務類型 類型
product string 交易對 BTC_USDT
interval string 頻率 1min
code int 錯誤碼
status string 錯誤碼狀態 可忽略
ts long unix時間戳 可忽略
data json 業務數據 參考具體業務數據說明

公共頻道Event列表

Event 名稱 類型 說明
sub string 訂閱事件,由客戶端主動發起
unsub string 取消訂閱事件,由客戶端主動發起
req string 請求數據事件,由客戶端主動發起

公共頻道Biz列表

Biz 名稱 類型 說明
market string 現貨行情

公共頻道Type列表

Type 名稱 類型 說明
fills string 成交數據
candles string K線數據
orderbook string 訂單薄
ticker string 24小時ticker
percent10 string 深度depth

WEBSOCKET私有頻道V2

私有頻道 登錄認證

訂閱私有頻道前需要先進行登錄認證操作,只有認證過的用戶才可以訂閱用戶的資產信息以及訂單狀態變化信息。

注意:如果未進行登錄認證操作,訂閱私有頻道會返回錯誤信息

登錄請求示例

{
  "event": "login",
  "params": {
    "type": "api",
    "access_key": "de0535f81d51c998b7fbcf00f189f294",
    "access_sign": "sign",
    "access_timestamp": 14000000000
  }
}

登錄成功響應示例 狀態碼對照表

{
  "ts": 1690364037503,
  "code": 200,
  "status": "OK",
  "event": "login"
}

登錄失敗響應示例 請參考通用錯誤說明

登錄請求參數說明

參數名 必選 類型 說明
params.type string 認證方式:
api:apiKey認證;
params.access_key string 鑑權說明
params.access_sign string 鑑權說明
params.access_timestamp long 鑑權說明
event string 事件名 事件列表

登錄響應參數說明

參數名 類型 說明
event string 事件名 事件列表
status string 狀態信息 可忽略
code int 狀態碼 狀態碼對照表
ts long unix時間戳

私有頻道 資產

訂閱用戶的資產變更,有數據更新時才推送。目前只支持按照產品進行訂閱。

請求和響應的參數說明請參考通用請求參數說明通用響應參數說明

訂閱資產數據

訂閱請求示例

{
  "event": "sub",
  "biz": "exchange",
  "type": "assets",
  "product": "ETH_USDT",
  "zip": false
}

訂閱成功響應示例

{
  "biz": "exchange",
  "type": "assets",
  "product": "ETH_USDT",
  "ts": 1690357632710,
  "code": 200,
  "status": "OK",
  "event": "sub"
}

資產推送數據示例,本示例只是為了說明數據結構,實際推送數據中可能只包含一個幣種的資產信息


{
  "biz": "exchange",
  "type": "assets",
  "product": "ETH_USDT",
  "data":
  [
    {
      "currency": "USDT",
      "available": "999970.5238",
      "hold": "29.4762"
    },
    {
      "currency": "ETH",
      "available": "999970.5238",
      "hold": "29.4762"
    }
  ]
}

參數名 類型 說明
product string 產品名/交易對
$data.currency string 幣種名稱
$data.available string 可用數量
$data.hold string 凍結數量

請求用戶單個交易對資產數據

請求單個交易對資產數據示例

{
  "event": "req",
  "biz": "exchange",
  "type": "assets",
  "product": "BTC_USDT",
  "zip": false
}

請求單個交易對資產數據響應示例

{
  "biz": "exchange",
  "type": "assets",
  "product": "BTC_USDT",
  "ts": 1690357632710,
  "code": 200,
  "status": "OK",
  "event": "req",
  "data":
  [
    {
      "currency": "USDT",
      "available": "999970.5238",
      "hold": "29.4762"
    },
    {
      "currency": "BTC",
      "available": "999970.5238",
      "hold": "29.4762"
    }
  ]
}
參數名 類型 說明
product string 產品名/交易對
ts long unix時間戳
$data.currency string 幣種名稱
$data.available string 可用數量
$data.hold string 凍結數量

私有頻道 訂單

訂閱用戶訂單的狀態變化,有數據更新時才推送。目前支持所有交易對的訂單狀態變化訂閱。支持異步查詢用戶單個交易對當前委託訂單數據。

請求和響應的參數說明請參考通用請求參數說明通用響應參數說明

注意:訂單數據支持訂閱全量交易對,一次訂閱所有交易對訂單時請注意product參數使用all(忽略大小寫)

訂閱單交易對訂單數據

訂閱所有交易對的訂單數據

訂閱單交易對訂單請求示例

{
  "event": "sub",
  "biz": "exchange",
  "type": "orders",
  "product": "ETH_USDT",
  "zip": false
}

訂閱所有交易對訂單請求示例

{
  "event": "sub",
  "biz": "exchange",
  "type": "orders",
  "product": "all",
  "zip": false
}

訂閱單交易對訂單響應成功示例

{
  "biz": "exchange",
  "type": "orders",
  "product": "ETH_USDT",
  "ts": 1690363716709,
  "code": 200,
  "status": "OK",
  "event": "sub"
}

訂閱所有交易對訂單響應成功示例

{
  "biz": "exchange",
  "type": "orders",
  "product": "all",
  "ts": 1690363716709,
  "code": 200,
  "status": "OK",
  "event": "sub"
}

訂閱所有交易對訂單數據失敗響應示例 錯誤碼對照表

{
  "biz": "exchange",
  "type": "orders",
  "product": "all",
  "ts": 1690362052646,
  "code": 500,
  "status": "FAIL",
  "event": "sub"
}

訂閱單交易對推送訂單數據示例

{
  "biz": "exchange",
  "type": "orders",
  "product": "BTC_USDT",
  "data": [
    {
      "order_id": "179577241915696235",
      "product": "BTC_USDT",
      "side": "buy",
      "price": "3.53340000",
      "size": "1.00000000",
      "filled_amount": "0.00000000",
      "funds": "1.00000000",
      "filled_size": "0.00000000",
      "type": "limit",
      "status": "1",
      "client_oid": ""
    }
  ]
}

訂閱所有交易對推訂單送數據示例

{
  "biz": "exchange",
  "type": "orders",//注意此處和單交易對不同
  "product": "all",//注意此處和單交易對不同
  "data":
  [
    //....結構參考單交易對推送訂單數據示例
  ]
}

*請求單個交易對當前委託訂單數據,如果請求失敗,會返回失敗的響應。 *

請求用戶單個交易對當前委託訂單數據示例

{
  "event": "req",
  "biz": "exchange",
  "type": "orders",
  "product": "BTC_USDT",
  "zip": false
}

請求用戶單個交易對當前委託訂單數據成功的響應示例

{
  "biz": "exchange",
  "type": "orders",
  "product": "BTC_USDT",
  "ts": 1690375715106,
  "code": 200,
  "status": "OK",
  "data":
  [
    //....結構參考單交易對推送訂單數據示例
  ],
  "event": "req"
}
參數名稱 參數說明 類型
orders_id 訂單編號 string
product 商品 string
side buy/sell string
price 每單位基礎貨幣的價格 string
size 買入/賣出的基礎貨幣數量 string
filled_amount 成交數量 string
funds 想要使用的報價貨幣數量 string
filled_size 成交金額 string
type limit:限價單/market:市價單/ string
status 狀態 string
client_oid 默認"0",用戶自定義訂單號 string

status: 交易狀態,取值範圍0-7


私有頻道 通用請求參數說明

參數名 必選 類型 說明
biz string 訂閱模塊類型
type string 訂閱業務類型
product string 產品信息
event string 事件名 事件列表
zip bool 是否啟用gzip

私有頻道 通用響應參數說明

參數名 類型 必選 說明 參考值
event string 請求事件 事件
biz string 業務線 業務線
type string 業務類型 類型
product string 交易對 BTC_USDT
code number 錯誤碼
status string 錯誤碼狀態
ts long unix時間戳

私有頻道Event列表

Event 名稱 類型 說明
sub string 訂閱事件,由客戶端主動發起
login string 登錄事件,由客戶端主動發起
unsub string 取消訂閱事件,由客戶端主動發起
req string 請求事件,由客戶端主動發起

私有頻道Biz列表

Biz 名稱 類型 說明
exchange string 現貨交易

私有頻道Type列表

Type 名稱 類型 說明 是否支持全部交易對數據推送訂閱
assets string 資產變更
orders string 訂單狀態變更

鑑權信息

每個用戶最多可以創建50個APIKey;

請勿將您的APIKey透露給任何人,以免造成資產損失。建議為APIKey綁定IP地址,以提高您賬戶的安全性,多個IP地址用英文分割,最多支持10個IP地址,未綁定IP地址的API有效期只有180天;

請注意,將APIKey綁定在第三方平台,可能有安全隱患,請您謹慎操作;

訪問私有信息接口,需要在加入如下請求頭

Header Name Meaning
ACCESS-KEY 用戶在BGE平台創建的API KEY
ACCESS-SIGN 根據用戶創建的API KEY 對請求所作出的簽名信息,以驗證請求的合法性 ACCESS-SING生成算法
ACCESS-TIMESTAMP 請求時間,一般為當前時間戳 例:2022-01-08T07:19:56.339Z,或毫秒時間戳

ACCESS-SING生成算法

requestPath: 與文檔中給出的路徑相一致,例如 /v1/products

queryString: 請求參數列表,注:參數順序需要保持有序。見 備註

params: 當請求為 GET 或者 DELETE 或者為WEBSOCKET channel 進行認證時,填 ""

參數名 參數類型 說明
method string GET or POST or DELETE;計算ws sign時為""
secretKey string 用戶在BGE創建的API KEY名稱
requestPath string 請求路徑 ;計算ws sign時為""
queryString string 請求參數 ;計算ws sign時為""
params string 傳輸數據內容 ;計算ws sign時為""
timestamp string 當前時間戳 例:2022-01-08T07:19:56.339Z,或毫秒時間戳

計算http請求 sign

  String timestamp=OpenAPiUtils.createTimestamp();
  String sign=OpenAPiUtils.createSign(OpenAPiUtils.POST,
  "43767b4dec6e78e07c81f89af47018dc3ab57585721bf57a389f7637a9d0506b",
  "/v1/accounts",
  "",
  s,timestamp);

計算web socket 請求 sign

  String timestamp=OpenAPiUtils.createTimestamp();
  String sign=OpenAPiUtils.createSign("","43767b4dec6e78e07c81f89af47018dc3ab57585721bf57a389f7637a9d0506b","","","",timestamp);

sign 生成算法工具類

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.HmacUtils;

public class OpenAPiUtils {
  public static final String GET = "GET";
  public static final String POST = "POST";
  public static final String DELETE = "DELETE";
  public static final Gson gson = new Gson();

  public static String createTimestamp() {
    return Instant.now().toString();
  }

  /**
   * 獲取當前時間戳 例:2022-01-08T07:19:56.339Z
   * @return
   */
  public static String createTimestamp() {
    return Instant.now().toString();
  }

  /**
   * 計算簽名
   * @param method POST or GET or DELETE
   * @param secretKey 例:HKBGE-xxxxx
   * @param requestPath 例:/v1/orders
   * @param queryString 請求參數
   * @param body string GET時為空
   * @param timestamp 當前時間戳 例:2022-01-08T07:19:56.339Z
   * @return string
   */
  public static String createSign(String method, String secretKey, String requestPath, String queryString, String body, String timestamp) {
    String sign = "";
    method = method.toUpperCase();
    if (timestamp == null) {
      timestamp = Instant.now().toString();
    }
    if (method.equals("POST")) {
      sign = generate(timestamp, method, requestPath, queryString, body, secretKey, "HmacSHA256");
    }
    if (method.equals("GET") || method.equals("DELETE")) {
      sign = generate(timestamp, method, requestPath, queryString, "", secretKey, "HmacSHA256");
    }
    if ("".equalsIgnoreCase(method)) {
      sign = generate(timestamp, method, requestPath, queryString, "", secretKey, "HmacSHA256");
    }
    return sign;
  }

  public static String generate(final String timestamp, String method, final String requestPath,
                                String queryString, String body, final String secret, final String alg) {
    body = StringUtils.defaultIfBlank(body, StringUtils.EMPTY);
    queryString = StringUtils.isEmpty(queryString) ? "" : "?" + queryString;
    final String preHash = timestamp + method + requestPath + queryString + body;
    return encodeBase64(alg, secret, preHash);
  }

  public static String encodeBase64(final String alg, final String secret, final String data) {
    Validate.notNull(alg, "SignatureAlgorithm cannot be null.");
    Validate.notNull(data, "Signing Secret cannot be null.");
    switch (alg) {
      case "HmacMD5":
        return Base64.encodeBase64String(new HmacUtils("HmacMD5", secret).hmac(data));
      case "HmacSHA1":
        return Base64.encodeBase64String(new HmacUtils("HmacSHA1", secret).hmac(data));
      case "HmacSHA224":
        return Base64.encodeBase64String(new HmacUtils("HmacSHA224", secret).hmac(data));
      case "HmacSHA256":
        try {
          return Base64.encodeBase64String(new HmacUtils("HmacSHA256",
            secret.getBytes("UTF-8")).hmac(data.getBytes("UTF-8")));
        } catch (UnsupportedEncodingException e) {
          throw new RuntimeException(e.getMessage());
        }
      case "HmacSHA384":
        return Base64.encodeBase64String(new HmacUtils("HmacSHA384", secret).hmac(data));
      case "HmacSHA512":
        return Base64.encodeBase64String(new HmacUtils("HmacSHA512", secret).hmac(data));
      default:
        throw new IllegalArgumentException("The '" + alg.name() + "' algorithm cannot be used for signing.");
    }
  }

}

計算數據簽名時,參數的傳遞順序需要與簽名串順序一致,且queryString不以?開頭,不以&結尾 否則鑑權失敗。例如:給 GET "http://api.bg.exchange/hk/v1/demo?a=2&b=3" 計算簽名時,

將用戶在BGE生成的api key 與 sign 與 時間戳加入到 http請求頭中。

填充HTTP HEADERS

RequestBuilders.post("/openapi/exchange/BTC_USDT/orders")
                        .header("ACCESS-KEY", "HKBGE-6fc437d24902cce8635806b6d79921f2")
                        .header("ACCESS-SIGN", sign)
                        .header("ACCESS-TIMESTAMP", timestamp)
                        .characterEncoding("UTF-8")
                        .content(s.getBytes(StandardCharsets.UTF_8))
                        .contentType(MediaType.APPLICATION_JSON_VALUE)

數據字典

WEBSOCKET狀態碼對照表

錯誤碼 示意
200 成功
400 無效的請求
401 未登錄
500 系統錯誤,請稍後重試

用戶認證錯誤碼對照表

錯誤碼 示意
40001 ACCESS_KEY不能為空
40002 ACCESS_SIGN不能為空
40003 ACCESS_TIMESTAMP不能為空
40005 無效的ACCESS_TIMESTAMP
40006 無效的ACCESS_KEY
40008 請求時間戳過期
40010 API 校驗失敗
40012 無效的API用戶
40013 用戶已禁止
40014 用戶已凍結
40015 無效的IP請求
40016 API_KEY已過期

業務錯誤碼對照表

amount limit value 為產品所配置的交易金額/數量上下限,BGE 為保護市場穩定,根據市場實時行情限定了交易限製,具體數額會隨市場交易情況實時波動。

錯誤碼 示意
999 查詢的數據為空
1000 沒有登錄
1001 參數錯誤
1006 幣種信息不存在
1008 K線不存在
1009 行情不存在
1050 幣對不存在
1051 檔位深度不存在
1053 下單已阻斷
1054 小於最小下單數量
1055 金額小於余額
1056 大於最大下單數量
1057 市價單金額無效
1058 下單失敗
1059 訂單不存在
1060 撤單失敗
1061 訂單已撤銷
1062 訂單已成交
1063 撤單失敗
1099 幣種不存在
1029 轉出金額大於可轉金額
1049 用戶請求接口過於頻繁
1100 可用余額不足
1064 KYC驗證失敗
1065 您已被凍結,無法下單
1066 交易密碼失效
1067 價格,Price ≥ ${amount limit value}
1068 價格,Price ≤ ${amount limit value}
1069 交易額精度不正確
1070 數量精度不正確
1071 價格精度不正確
1072 下單數量不能小於等於0
1073 下單價格不能小於等於0
1074 賬戶余額不足
1075 數量,Amount ≥ ${amount limit value}
1076 數量,Amount ≤ ${amount limit value}
1077 金額,Total ≥ ${amount limit value}
1078 數量,Amount ≥ ${amount limit value}
1079 金額,Total ≤ ${amount limit value}
1080 數量,Amount ≤ ${amount limit value}
1081 市價單買單觸及最高成交限定價格,已自動撤單
1082 市價單賣單觸及最低成交限定價格,已自動撤單
1083 用戶數據獲取失敗
1084 無當前委托訂單
1085 超過最大委托數
1087 查找不到數據
1088 無法驗證用戶身份
1089 order_id或者product有一個不能為空
1090 client_oid已經存在
1091 client_oid不符合規則
1092 當前交易賬戶可用余額不足,是否自動將資金賬戶的${0}劃轉至交易賬戶,並發起下單
1093 資金賬戶余額不足
1094 劃轉失敗
1095 超過最大數量
1096 賬戶不存在
1097 系統超時
1098 系統繁忙