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 系统繁忙