接口说明
反馈邮箱
Email: api@bg.exchange
请求地址
HTTP请求地址
HOST: https://api.bg.exchange/hk
WEBSOCKET请求地址
WebSocket私有频道(DEPRECATED):wss://ws.bg.exchange
WebSocket公共频道(DEPRECATED):wss://ws.bg.exchange/ws
- WebSocket公共频道V2:
wss://ws.bg.exchange/v2/ws
- WebSocket私有频道V2:
wss://ws.bg.exchange/v2/ws
Response Status
{
"code":1087,
"message":"查找不到数据"
}
{
"code":40001,
"message":"ACCESS_KEY不能为空"
}
{
"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
鉴权信息
私有信息的鉴权信息,请参考 鉴权说明
[
{
"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 |
{
"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/accounttrue
鉴权信息
私有信息的鉴权信息,请参考 鉴权说明
{
"amount": 100,
"currency": "HKD"
}
参数名称 | 参数说明 | 是否必须 | 数据类型 |
---|---|---|---|
amount | 划转数量 | true | string |
currency | 划转资产名称 | true | string |
{
"amount": 100,
"currency": "HKD"
}
参数名称 | 参数说明 | 类型 |
---|---|---|
amount | 划转数量 | string |
currency | 划转资产名称 | string |
POST 交易账户划转到资金账户
将资金从交易账户划转到资金账户,划转后,可以进行提现操作。
限速:10次/s
限速规则:ApiKey
HTTP请求
POST HOST/v1/withdrawals/accounttrue
鉴权信息
私有信息的鉴权信息,请参考 鉴权说明
REQUEST EXAMPLE
{
"amount": 100,
"currency": "HKD"
}
参数名称 | 参数说明 | 是否必须 | 数据类型 |
---|---|---|---|
amount | 划转数量 | true | string |
currency | 划转资产名称 | true | string |
{
"amount": 100,
"currency": "HKD"
}
参数名称 | 参数说明 | 类型 |
---|---|---|
amount | 划转数量 | string |
currency | 划转资产名称 | string |
产品
GET 获取所有已知的交易产品
获取所有的交易产品信息
限速:无
限速规则:无
HTTP请求
GET HOST/v1/products
[
{
"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 |
[
{
"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 |
公共数据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] |
GET /public/v2/products/ETH_USDT/candles?interval=1min&from=1639584000&to=1639584000&size=100
{
"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 请参考 深度频道订阅 |
GET /public/v2/products/ETH_USDT/orderbook?interval=0
{
"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
GET /public/v2/products/overview/tickers
{
"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 |
GET /public/v2/products/ETH_USDT/ticker
{
"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 |
GET /public/v2/products/ETH_USDT/trades?size=1
{
"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 | 成交时间戳 |
币种信息
GET 获取所有已知货币
获取所有币种的信息列表
限速:无
限速规则:无
HTTP请求
GET HOST/v1/currencies
[
{
"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]
max_precision >= 0
时,代表币种精度在小数点后 max_precision 位;max_precision < 0
时,代表币种精度为整数,且精度为 10 的 abs(max_precision) 次方位
min_size
: 最小出入金数量
status
: 币种状态
type
: 货币类型,fiat
为法币, crypto
为数字币
details
: 链信息,只有数字币类型才会有此部分信息
deposit_status
: fiat 存款状态
withdraw_status
: fiat 取款状态
dispaly_name
: 显示名称network_confirmations
: 最低网络确认次数currency
: 币种名称,可唯一标识币种accuracy
: crypto存取款精度deposit_status
: crypto 存款状态withdraw_status
: crypto 取款状态
参数名称 | 参数说明 | 类型 |
---|---|---|
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 |
[
{
"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]
max_precision >= 0
时,代表币种精度在小数点后 max_precision 位;max_precision < 0
时,代表币种精度为整数,且精度为 10 的 abs(max_precision) 次方位
min_size
: 最小出入金数量
status
: 币种状态
type
: 货币类型,fiat
为法币, crypto
为数字币
details
: 链信息,只有数字币类型才会有此部分信息
deposit_status
: fiat 存款状态
withdraw_status
: fiat 取款状态
dispaly_name
: 显示名称network_confirmations
: 最低网络确认次数currency
: 币种名称accuracy
: crypto存取款精度deposit_status
: crypto 存款状态withdraw_status
: crypto 取款状态
参数名称 | 参数说明 | 类型 |
---|---|---|
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
鉴权信息
私有信息的鉴权信息,请参考 鉴权说明
{
"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
: 订单类型
limit
: 限价订单market
: 市价订单
client_oid
: 可选,默认"0",用户自定义订单号,用于用户管理自己的订单。该ID非唯一,长度不多于32个字符的字符串类型,必须由大小写字母A-Z/a-z、数字0-9、下划线_、中划线- 中的元素组成,不支持以外的特殊符号
stp
: 即 self trade prevention
。BGE禁止用户与自己成交的行为。用户可以通过stp
选项,指定当自成交场景出现时的订单处理策略。
dc
: 即decrease and cancel
(default)。当撮合发生相同用户订单匹配时,数量多的一方将被执行decrease
指令,数量少的一方将被执行cancel
指令。decrease 或者 或者cancel 的数量为两个订单发生自成交匹配的最小值。co
: 即cancle oldest
, 当撮合发生相同用户订单匹配时,挂单较早的订单会被执行cancle
指令。新订单将被继续执行正常交易撮合流程。cn
: 即cancle newest
, 当撮合发生相同用户订单匹配时,最新订单会被执行cancle
指令,较早的挂单依然停留在订单簿,执行正常的交易撮合流程。cb
: 即cancle both
,当撮合发生相同用户订单匹配时,发生匹配的两个订单,均会被执行cancle
指令。
time_in_force
: 可选,交易指令,目前支持 GTC
。默认值为 GTC
limit order parameters
price
: 商品价格
size
: 买入或者卖出商品的数量
market order parameters
size
: 期望交易数量。需要side
为 sell
,代表以最新成交价进行卖出,期望最多卖出的商品数。
funds
: 期望交易额度。需要side
为 buy
,代表以最新成交价进行买入,期望花费的最多资产额度。
参数名称 | 参数说明 | 是否必须 | 数据类型 |
---|---|---|---|
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 |
{
"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 |
{
"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
- 0: 已经收到订单
- 1: 已经提交订单
- 2: 订单部分成交
- 3: 订单已完全成交
- 4: 订单发起撤销
- 5: 订单已经撤销
- 6: 订单交易失败
- 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
: 当该自定义订单对应多个系统订单时,只返回最新系统订单
{
"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
- 0: 已经收到订单
- 1: 已经提交订单
- 2: 订单部分成交
- 3: 订单已完全成交
- 4: 订单发起撤销
- 5: 订单已经撤销
- 6: 订单交易失败
- 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
鉴权信息
私有信息的鉴权信息,请参考 鉴权说明
order_id
若存在,将优先查找该订单的成交明细,其他参数将被忽略。order_id
若不存在,将根据参数组合分页查询所所有交易明细。其中limit
最大值为1000,超过1000条的订单明细将无法查询order_id
若存在,则查询条件忽略client_oidclient_oid
对应多个系统订单时,只返回最新系统订单的明细
参数名称 | 参数说明 | 是否必须 | 数据类型 |
---|---|---|---|
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 |
[
{
"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
鉴权信息
私有信息的鉴权信息,请参考 鉴权说明
此接口可查询单个订单详情,或根据商品的多个订单
order_id
若存在,将优先查找该订单详情,其他参数将被忽略。order_id
若不存在,将根据参数组合分页查询所所有订单详情。其中limit
最大值为1000,超过1000条的订单详情将无法查询order_id
若存在,则查询条件忽略client_oid
参数名称 | 参数说明 | 是否必须 | 数据类型 |
---|---|---|---|
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 |
[
{
"price": "19.560000000000000000",
"size": "35.447206000000000000",
"product": "BTC_USDT",
"order_id": "128087977541664481",
"funds": "592.668000000000000000",
"type": "limit",
"side": "sell",
"status": "2"
}
]
status
: 交易状态,取值范围0-7
- 0: 已经收到订单
- 1: 已经提交订单
- 2: 订单部分成交
- 3: 订单已完全成交
- 4: 订单发起撤销
- 5: 订单已经撤销
- 6: 订单交易失败
- 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 |
"1277087538632480481"
参数名称 | 参数说明 | 数据类型 |
---|---|---|
order_id | 订单id | string |
DELETE 根据用户自定义订单号撤销单个订单
可撤销单个订单,若自定义订单对应多个系统订单,撤销最新一个订单,撤销申请成功,返回对应的系统订单号
限速:10次/s
限速规则:ApiKey
HTTP请求
DELETE HOST/v1/orders/single/{client_oid}
鉴权信息
私有信息的鉴权信息,请参考 鉴权说明
参数名称 | 参数说明 | 是否必须 | 数据类型 |
---|---|---|---|
client_oid | 用户自定义订单号 | true | string |
"1277087538632480481"
即将被取消的订单的ID列表
DELETE 根据商品取消所有订单
此方法为异步方法,当用户收到接口返回时,并不代表所有订单已经取消成功。BGE收到请求之后,会查询用户账户下对应商品ID的所有未成交订单,并对这些订单异步进行取消操作。 用户可以通过/orders/{order_id} 查询单个订单的成交状态。
限速:10次/s
限速规则:ApiKey
HTTP请求
DELETE HOST/v1/orders
product
: 被撤销的商品ID,例如 "BTC_USD"
参数名称 | 参数说明 | 是否必须 | 数据类型 |
---|---|---|---|
product | 商品 | true | string |
即将被取消的订单的ID列表
WEBSOCKET
欢迎使用BGE数字币交易所 WebSocket 订阅消息协议。该协议允许您通过 WebSocket 连接实时订阅并接收市场数据、交易信息和其他相关信息。
希望该文档能够帮助您快速了解我们的数字币交易所 WebSocket 订阅消息协议。如果您有任何疑问或需要进一步的帮助,请随时联系我们的技术支持团队。祝您使用愉快!
WEBSOCKET 基本说明
WebSocket 是一种在单个 TCP 连接上进行全双工通信的网络协议,它提供了一种在客户端和服务器之间进行实时数据传输的方式。通过使用 WebSocket,您可以实时地订阅和接收来自数字币交易所的实时市场数据和其他信息。
连接说明
在订阅消息之前,您需要建立 WebSocket 连接。连接说明如下:
当订阅公有频道时,使用公有服务的地址;当订阅私有频道时,使用私有服务的地址
- 公有频道:公有频道是向所有连接到交易所的客户端广播的频道,包含市场行情、交易深度等信息。 接入方法请参考: WEBSOCKET PUBLIC V2
- 私有频道:私有频道是指仅向特定客户端推送个人相关信息的频道,例如订单通知、账户余额等。 接入方法请参考: WEBSOCKET PRIVATE V2
请根据您的需求选择相应的服务地址连接到公有或私有频道。
订阅限制
每个连接1s 最多可以发送 50 条消息,否则强制关闭连接
为了保持连接的稳定性和公平性,我们对发送消息做了限制,每个连接每秒最多可以发送 50 条消息。如果您在 1 秒内发送超过 50 条消息,系统将强制关闭连接,请注意遵守此限制。
连接保持
我们会定时发送 ping消息,期待您返回 pong消息作为回应,如果超过 30s 没有收到您的响应服务器会关闭连接
同时,需要注意以下情况:
网络问题:如果出现网络问题,系统会自动断开连接。
连接超时:如果连接成功后 30 秒内未订阅或订阅后 30 秒内服务器未向用户推送数据,系统会自动断开连接。
为了确保连接的活跃性,我们会定时向客户端发送 JSON 格式的 ping 消息:{"ping": timestamp}
。您需要在收到 ping 消息后,及时发送 {"pong": timestamp}
文本消息,以表明连接处于活跃状态。如果在 30 秒内没有收到您的响应,我们将关闭连接,建议您进行以下操作:
每次接收到
{"ping": timestamp}
消息后,立即回复一个{"pong": timestamp}
。期待一个文字字符串
{"ping": timestamp}
作为心跳消息。如果在 N 秒内未收到,请发出错误或重新连接。您回复的pong消息中的时间戳应该使用收到的ping消息中的时间戳。
ping消息示例
{
"ping": 1635065532000
}
pong消息示例
{
"pong": 1635065532000
}
请求错误
不论私有频道或公有频道,当您发送的请求服务器处理失败时,服务器将返回统一的错误消息,便于客户端进行处理。
错误消息主要由两部分组成:错误代码和消息。代码是通用的,但是消息可能会有所不同。
错误代码和消息请参考:状态码对照表 ,其他错误状态码对照表
错误消息响应参数说明
参数名 | 类型 | 说明 |
---|---|---|
event | string | 用户发送的事件名 事件列表 |
msg | string | 错误消息 |
code | int | 状态码 状态码对照表 |
常见错误码说明
错误码
400
:通常需要检查您提供的请求参数是否正确,或者是否有必填参数未填写。错误码
401
:通常需要确保您已收到成功登录响应,未登录进行私有频道订阅会出现此错误。错误码
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
说明
seq_id
是交易所行情的一个序列号,当用户使用一个或多个 WebSocket 连接到同一个频道时,除了实时成交数据外,都会收到相同序列号的数据推送,用户需要自己处理重复数据,可以使用seq_id
来构建消息序列,这将允许用户检测数据包丢失和消息的排序。seq_id
是一个单调递增的数字,最小值为 0。
K线频道
订阅或者请求获取K线(最新一根K线)数据的推送
K线图间隔参数:
min -> 分钟; hour -> 小时; day -> 天; week -> 周; mon -> 月
- 1min
- 5min
- 15min
- 30min
- 60min
- 4hour
- 1day
- 1week
- 1mon
字段说明:
id
消息唯一idopen
这根K线期间第一笔成交价close
这根K线期间末一笔成交价low
这根K线期间最低成交价high
这根K线期间最高成交价filled_size
这根K线期间成交额vol
这根K线期间成交量seq_id
唯一且有序idcount
这根K线期间成交笔数interval
K线间隔product
交易对
订阅
请求示例
{
"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"
}
请求数据
参数说明:
id
每个K线消息的唯一idfrom
开始时间的ix时间戳to
结束时间的ix时间戳interval
K线间隔product
交易对
获取指定范围的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"
}
成交频道
订阅获取产品实时成交增量推送数据
获取最近的成交数据,有成交数据就推送,每次推送可能包含多条成交数据。
字段说明:
id
消息唯一idts
成交时间戳direction
成交方向price
成交价格vol
成交量
订阅
请求示例
{
"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参数:[当前档位支持最大精度, 当前档位支持最大深度]:
- 0 : [0.000000000000000001, 150]
- 1 : [0.00001, 150]
- 2 : [0.0001, 150]
- 3 : [0.001, 150]
- 4 : [0.01, 150]
- 5 : [0.1, 150]
- 6 : [0.000000000000000001, 20]
- 7 : [0.00001, 20]
- 8 : [0.0001, 20]
- 9 : [0.001, 20]
- 10 : [0.01, 20]
- 11 : [0.1, 20]
说明:interval=5,推送的bids里的买方价格只能精确到小数点后一位,bids的数组大小最大是150
字段说明:
id
消息唯一idbiz
业务线type
类型data.seq_id
忽略data.bids
买方data.bids[][0]
买方价格data.bids[][1]
买方数量data.asks
卖方data.asks[][0]
卖方价格data.asks[][1]
卖方数量data.product
交易对data.interval
档位
订阅
请求示例
{
"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可能为空数组
字段说明:
id
消息唯一idbiz
业务线seq_id
忽略type
类型data.bids
买方深度data.bids[][0]
买方深度价格data.bids[][1]
买方深度数量data.asks
卖方深度data.asks[][0]
卖方深度价格data.asks[][1]
卖方深度数量data.seq_id
有序且唯一iddata.product
交易对
订阅
请求示例
{
"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增量推送数据
字段说明:
id
消息唯一idopen
24小时前开始第一笔成交价格close
24小时最新成交价格low
24小时内最低成交价high
24小时内最高成交价filled_size
24小时内成交额vol
24小时内成交量seq_id
唯一且有序idcount
24小时成交笔数change
24小时价格变化change_percent
24小时价格变化(百分比)
订阅
请求示例
{
"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": [
{
"orders_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
- 0: 已经收到订单
- 1: 已经提交订单
- 2: 订单部分成交
- 3: 订单已完全成交
- 4: 订单发起撤销
- 5: 订单已经撤销
- 6: 订单交易失败
- 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 ,或毫秒时间戳 |
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"
计算签名时,
正确使用: preHash = ... + "a=2&b=3" + ...;
错误使用: preHash = ... + "b=3&a=2" + ...;
错误使用: preHash = ... + "?b=3&a=2" + ...;
错误使用: preHash = ... + "b=3&a=2&" + ...;
将用户在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 | 系统繁忙 |
公共数据(DEPRECATED)
GET K线
历史产品的k线图, 数据以数组形式返回,每个对象保函[close
,count
,high
,low
,open
,turnOver
,vol
]
限速:无
限速规则:无
HTTP请求
GET HOST/public/v1/products/{product}/candles
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
product | true | string | 路径参数 商品,例:ETH_USD 商品,例:ETH_USD |
period | true | string | 指标周期 [1min,5min,15min,30min,60min,4hour,1day,1week,1mon] |
start | true | string | timestamp 毫秒 开始 (毫秒) |
end | true | string | 结束 (毫秒) |
size | false | string | 数据长度默认500 ,最大1000[1,1000] |
{
"code": 200,
"data": [
{
"close": 11.9,
"count": 2,
"high": 11.9,
"id": 1639584000,
"low": 11,
"open": 11,
"turnOver": 22.9,
"vol": 2
}
],
"interval": "1day",
"msg": "success",
"productId": "ETH_USDT",
"ts": 1639650753079
}
参数名 | 类型 | 说明 |
---|---|---|
close | int | 收盘价格 |
high | int | 最高价格 |
low | int | 最低价格 |
open | int | 开盘价格 |
turnOver | string | 交易量 |
vol | string | 交易额 |
productId | string | 商品,例:ETH_USD |
GET 订单book
订单book
限速:无
限速规则:无
HTTP请求
GET HOST/public/v1/products/{product}/orderbook
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
product | true | string | 路径参数 商品,例:ETH_USD |
interval | true | string | 指标周期 有效取值范围 step0-step11 请参考 深度频道订阅 |
{
"interval": "step1",
"status": "ok",
"ts": 1641378313942,
"type": "orderBook",
"tick": {
"seqId": 9996,
"id": 1641378313,
"bids": [
[1, 65]
],
"asks": [
[48349.99, 5.3795],
[48562.27, 94.1076],
[48998.82, 49.924],
[49322.83, 15.03636],
[49324.72, 8.1281],
[49334.76, 82.7552],
[49342.59, 44.9204],
[49364.66, 28.5769],
[49365.2, 6.2237],
[49390.8, 44.7102],
[49414.67, 92.3859],
[49428.24, 46.7245],
[49430.6, 66.2994],
[49435.96, 68.4281],
[49437.07, 20.5226],
[49443.47, 51.3443],
[49444.4, 73.2709],
[49448.78, 41.5535],
[49454.19, 77.954],
[49458.74, 29.2196],
[49477.83, 50.3074],
[49492.03, 93.2679],
[49500.02, 11.1431],
[49506.89, 74.3294],
[49519.14, 45.8255],
[49525.62, 19.6835],
[49538.88, 97.1741],
[49544.83, 70.238],
[49551.81, 38.3689],
[49557.84, 69.0679],
[49565.77, 55.5486],
[49571.15, 55.1521],
[49589.14, 83.2236],
[49590.11, 1.5069],
[49593.9, 45.1853],
[49601.42, 21.826],
[49602.74, 2.7914],
[49609.3, 79.3817],
[49615.55, 81.7304],
[49653.07, 12.2331],
[49662.5, 68.8741],
[49675.13, 31.3474],
[49686.03, 6.1158],
[49690.92, 79.5905],
[49699.37, 91.9541],
[49719.33, 80.5142],
[49724.29, 61.7956],
[49726.37, 96.1342],
[49752.36, 71.4982],
[49769.78, 49.3641],
[49785.77, 43.4184],
[49815.95, 91.9892],
[49820.16, 74.1338],
[49847.76, 20.297],
[49888.07, 76.3738],
[49888.44, 8.6581],
[49907.97, 12.634],
[49932.43, 63.1484],
[49951.37, 5.0352],
[49952.08, 81.9681],
[49958.58, 99.3703],
[49977.74, 62.3056],
[49986.53, 34.2252],
[49998.03, 47.7642],
[49998.3, 88.6624]
],
"ts": 1641378313486,
"version": 1641378313,
"type": "orderBook",
"pairCode": "BTC_USDT",
"interval": "1"
}
}
参数名 | 类型 | 说明 |
---|---|---|
interval | string | 档位 |
status | string | 状态码 |
ts | string | 时间戳 |
type | string | 类型 |
seqId | string | 有序且唯一id |
id | string | 消息唯一id |
bids | [] | 买方 |
asks | [] | 卖方 |
pairCode | string | 商品,例:ETH_USD |
GET 全部币对24小时行情数据
行情总览,获取有关交易(报价变动)、最佳买价/卖价和 24 小时交易量的快照信息。
限速:无
限速规则:无
HTTP请求
GET HOST/public/v1/products/{product}/tickers
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
product | true | string | 路径参数 商品,例:ETH_USD |
{
"type": "overview",
"code": 200,
"ts": 1641378730830,
"msg": "success",
"data": [{
"open": "19.56",
"close": "48174.19",
"low": "1",
"high": "54969.49",
"turnOver": "2397481368.57161866",
"count": 0,
"vol": "49659.154689",
"pairCode": "BTC_USDT",
"change": "48154.63",
"changePercent": "2461.8931492842535787"
}, {
"open": "11.9",
"close": "11.9",
"low": "11.9",
"high": "11.9",
"turnOver": "0",
"count": 0,
"vol": "0",
"pairCode": "ETH_USDT",
"change": "0",
"changePercent": "0"
}]
}
参数名 | 类型 | 说明 |
---|---|---|
close | int | 收盘价格 |
high | int | 最高价格 |
low | int | 最低价格 |
open | int | 开盘价格 |
turnOver | string | 交易量 |
vol | string | 交易额 |
pairCode | string | 商品,例:ETH_USD |
GET 单币对24小时行情数据
获取有关最后交易(报价)、最佳买价/卖价和 24 小时交易量的快照信息。
限速:无
限速规则:无
HTTP请求
GET HOST/public/v1/products/{product}/ticker
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
product | true | string | 路径参数 商品,例:ETH_USD |
{
"ch": "market.ETH_USDT.detail",
"status": "ok",
"tick": {
"open": "11.9",
"close": "11.9",
"low": "11.9",
"high": "11.9",
"turnOver": "0",
"count": 0,
"vol": "0",
"pairCode": "ETH_USDT",
"change": "0",
"changePercent": "0"
},
"ts": 1641378912756
}
参数名 | 类型 | 说明 |
---|---|---|
close | int | 收盘价格 |
high | int | 最高价格 |
low | int | 最低价格 |
open | int | 开盘价格 |
turnOver | string | 交易量 |
vol | string | 交易额 |
GET 单币对单条实时成交
获取产品的最新交易列表
限速:无
限速规则:无
HTTP请求
GET HOST/public/v1/products/{product}/trade
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
product | true | string | 路径参数 商品,例:ETH_USD |
{
"status": "ok",
"tick": {
"data": [{
"direction": "sell",
"id": 28730000,
"price": "11.9",
"ts": 1639585820376,
"vol": "1"
}],
"id": 1641379110358,
"ts": 1641379110358
},
"ts": 1641379110358
}
参数名 | 类型 | 说明 |
---|---|---|
direction | string | buy / sell |
price | string | 价格 |
vol | string | 成交量 |
GET 单币对多条实时成交
获取产品的最新交易列表
限速:无
限速规则:无
HTTP请求
GET HOST/public/v1/products/{product}/trades
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
product | true | string | 路径参数 商品,例:ETH_USD |
size | false | int | 数据长度 默认500 ,最大1000[1,1000] |
{
"data": [{
"data": [{
"direction": "buy",
"id": 28470000,
"price": "11",
"ts": 1639585820373,
"vol": "1"
}],
"id": 2847,
"ts": 1639585820373,
"type": "fills"
}, {
"data": null,
"id": 2871,
"ts": 1639585820376,
"type": "fills"
}, {
"data": [{
"direction": "sell",
"id": 28730000,
"price": "11.9",
"ts": 1639585820376,
"vol": "1"
}],
"id": 2873,
"ts": 1639585820376,
"type": "fills"
}],
"status": "ok",
"ts": 1641379702364
}
参数名 | 类型 | 说明 |
---|---|---|
direction | string | buy / sell |
price | string | 价格 |
vol | string | 成交量 |
WEBSOCKET PUBLIC(DEPRECATED)
Candles Subscribe/UnSubscribe
Subscribe
sub request
{
"event": "sub",
"params":{
"biz": "market",
"type": "candles",
"product": "ETH_BNB",
"interval": "30min"
},
"zip": true
}
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params .biz | 是 | string | |
params .type | 是 | string | 订阅类型 |
params .product | 是 | string | 币对 |
params .interval | 是 | string | 周期 |
event | 是 | string | 事件 Subscribe |
zip | 是 | bool | 是否启用gzip |
sub response
{
"channel": "subscribe",
"biz": "market",
"type": "candles",
"product": "ETH_BNB",
"interval": "30min",
"ts": 1639655425910,
"status": "ok"
}
返回参数
参数名 | 类型 | 说明 |
---|---|---|
type | string | 订阅类型 |
interval | string | 间隔 |
product | string | 币对 |
data .open | string | 这根K线期间第一笔成交价 |
data .close | string | 这根K线期间末一笔成交价 |
data .low | string | 这根K线期间最低成交价 |
data .high | string | 这根K线期间最高成交价 |
data .vol | string | 这根K线期间成交量 |
data .turnOver | string | 这根K线期间成交额 |
data .id | int | 唯一且有序id |
data .count | int | 这根K线期间成交笔数 |
UnSubscribe
unsub request
{
"event": "unsub",
"params": {
"biz": "market",
"type": "candles",
"product": "ETH_BNB",
"interval": "1day"
},
"zip":true
}
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params .biz | 是 | string | |
params .type | 是 | string | 订阅类型 |
params .product | 是 | string | 币对 |
params .interval | 是 | string | 周期 |
event | 是 | string | 事件 UnSubscribe |
zip | 是 | bool | 是否启用gzip |
unsub response
{
"channel":"unsubscribe",
"biz": "market",
"type": "candles",
"product": "ETH_BNB",
"interval": "1day",
"ts": 1639655425910,
"status": "ok"
}
返回参数
参数名 | 类型 | 说明 |
---|---|---|
type | string | 订阅类型 |
interval | string | 间隔 |
product | string | 币对 |
data .open | string | 这根K线期间第一笔成交价 |
data .close | string | 这根K线期间末一笔成交价 |
data .low | string | 这根K线期间最低成交价 |
data .high | string | 这根K线期间最高成交价 |
data .vol | string | 这根K线期间成交量 |
data .turnOver | string | 这根K线期间成交额 |
data .id | int | 唯一且有序id |
data .count | int | 这根K线期间成交笔数 |
data .seqId | int | 有序且唯一id |
Feed Stream
feed stream
{
"id": 1688954400,
"type": "candles",
"pairCode": "BTC_USDT",
"product": "BTC_USDT",
"data":
{
"open": 3.1406,
"close": 3.0466,
"high": 4.0007,
"low": 3.0051,
"turnOver": 51642.553798,
"vol": 14765.94,
"count": 52144,
"seqId": 111322735,
"id": 1688954400
},
"interval": "30min",
"SeqId": 111322735
}
Fills Subscribe/UnSubscribe
Subscribe
sub request
{
"event": "sub",
"params": {
"biz": "market",
"type": "fills",
"product": "ETH_USDT"
},
"zip": false
}
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params .biz | 是 | string | |
params .type | 是 | string | 订阅类型类型 |
params .product | 是 | string | 币对 |
event | 是 | string | 事件 Subscribe |
zip | 是 | bool | 是否启用gzip |
sub response
{
"channel": "subscribe",
"biz": "market",
"type": "fills",
"product": "ETH_USDT",
"ts": 1641384262679,
"status": "ok"
}
UnSubscribe
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params .biz | 是 | string | |
params .type | 是 | string | 订阅类型类型 |
params .product | 是 | string | 币对 |
params .interval | 是 | string | 周期 |
event | 是 | string | 事件 Subscribe |
zip | 是 | bool | 是否启用gzip |
sub request
{
"event": "unsub",
"params": {
"biz": "market",
"type": "fills",
"product": "ETH_USDT"
},
"zip": false
}
unsub response
{
"biz": "market",
"channel": "unsubscribe",
"product": "ETH_USDT",
"type": "fills",
"status": "ok",
"ts": 1689041894440
}
Feed Stream
参数名 | 类型 | 说明 |
---|---|---|
id | int | 无符号整数 此消息唯一id |
type | string | 订阅类型 |
interval | string | 间隔 |
product | string | 币对 |
pairCode | string | 忽略 |
data .price | string | 价格 |
data .vol | string | 成交量 |
data .ts | int | 时间戳 |
data .direction | string | 方向 |
data .id | int | 成交id |
feed stream
{
"id": 323241,
"type": "fills",
"pairCode": "BTC_USDT",
"data":
[
{
"ts": 1689152406185,
"id": 323241000,
"vol": "0.04",
"price": "3.6733",
"direction": "buy"
}
],
"product": "BTC_USDT",
"ts": 1689152412845
}
OrderBook Subscribe/UnSubscribe
sub request
{
"event": "sub",
"params": {
"biz": "market",
"type": "orderBook",
"product": "ETH_USDT",
"interval": "1"
},
"zip": false
}
Subscribe
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params .biz | 是 | string | |
params .type | 是 | string | 订阅类型 |
params .product | 是 | string | 币对 |
params .interval | 是 | string | 周期 |
event | 是 | string | 事件 |
zip | 是 | bool | 是否启用gzip |
sub response
{
"biz": "market",
"channel": "subscribe",
"interval": "1",
"product": "ETH_USDT",
"type": "orderBook",
"status": "ok",
"ts": 1689934070509
}
UnSubscribe
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params .biz | 是 | string | |
params .type | 是 | string | 订阅类型 |
params .product | 是 | string | 币对 |
params .interval | 是 | string | 周期 |
event | 是 | string | 事件 |
zip | 是 | bool | 是否启用gzip |
unsub request
{
"event": "unsub",
"params": {
"biz": "market",
"type": "orderBook",
"product": "ETH_USDT",
"interval": "1"
},
"zip": false
}
unsub response
{
"biz": "market",
"channel": "unsubscribe",
"interval": "1",
"product": "ETH_USDT",
"type": "orderBook",
"status": "ok",
"ts": 1689934273388
}
Feed Stream
feed stream
{
"id": 1689934071,
"type": "orderBook",
"pairCode": "ETH_USDT",
"product": "ETH_USDT",
"ts": 1689934071000,
"version": 1689934071,
"seqId": 0,
"interval": "1",
"bids": [
[3781.85, 0.30656],
[3781.78, 0.0219],
[360, 4.59207],
[10, 11]
],
"asks": [
[3835, 0.19948],
[3836.98, 0.00026],
[3837.33, 0.4445],
[3839, 0.2]
]
}
Percent10 Subscribe\Unsubscribe
Subscribe
sub request
{
"event": "sub",
"params":
{
"biz": "market",
"type": "percent10",
"product": "ETH_USDT"
},
"zip": false
}
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params .biz | 是 | string | |
params .type | 是 | string | 订阅类型 |
params .product | 是 | string | 币对 |
event | 是 | string | 事件 |
zip | 是 | bool | 是否启用gzip |
sub response
{
"biz": "market",
"channel": "subscribe",
"product": "ETH_USDT",
"type": "percent10",
"status": "ok",
"ts": 1689934871904
}
UnSubscribe
unsub request
{
"event": "unsub",
"params":
{
"biz": "market",
"type": "percent10",
"product": "ETH_USDT"
},
"zip": false
}
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params .biz | 是 | string | |
params .type | 是 | string | 订阅类型 |
params .product | 是 | string | 币对 |
params .pairCode | 是 | string | 币对(忽略) |
event | 是 | string | 事件 |
zip | 是 | bool | 是否启用gzip |
unsub response
{
"biz": "market",
"channel": "unsubscribe",
"product": "ETH_USDT",
"type": "percent10",
"status": "ok",
"ts": 1689934879610
}
Feed Stream
feed stream
{
"id": 1689934879,
"type": "percent10",
"pairCode": "ETH_USDT",
"product": "ETH_USDT",
"ts": 1689934879000,
"version": 1689934879,
"seqId": 0,
"bids": [
[11.994, 0.10124]
],
"asks": [
[12.006, 0]
]
}
Ticker Subscribe\UnSubscribe
Subscribe
sub request
{
"event": "sub",
"params": {
"biz": "market",
"type": "ticker",
"product": "ETH_USDT"
},
"zip":false
}
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params .biz | 是 | string | |
params .type | 是 | string | 订阅类型 |
params .product | 是 | string | 币对 |
event | 是 | string | 事件 |
zip | 是 | bool | 是否启用gzip |
sub response
{
"id": "",
"channel": "subscribe",
"biz": "market",
"type": "ticker",
"product": "ETH_USDT",
"interval": "",
"ts": 1641387679813,
"status": "ok"
}
UnSubscribe
unsub request
{
"event": "unsub",
"params": {
"biz": "market",
"type": "ticker",
"product": "ETH_USDT"
},
"zip":false
}
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params .biz | 是 | string | |
params .type | 是 | string | 订阅类型 |
params .product | 是 | string | 币对 |
event | 是 | string | 事件 |
zip | 是 | bool | 是否启用gzip |
unsub response
{
"biz": "market",
"channel": "unsubscribe",
"product": "BTC_USDT",
"type": "ticker",
"status": "ok",
"ts": 1689935550687
}
Feed Stream
参数名 | 类型 | 说明 |
---|---|---|
type | string | 订阅类型 |
ts | int | 时间戳 |
product | string | 币对 |
msg | string | 忽略 |
code | int | 忽略 |
data .open | string | 24小时前开始第一笔成交价格 |
data .close | string | 24小时最新成交价格 |
data .low | string | 24小时内最低成交价 |
data .high | string | 24小时内最高成交价 |
data .vol | string | 24小时内成交量 |
data .turnOver | string | 24小时内成交额 |
data .count | int | 24小时成交笔数 |
data .change | int | 24小时价格变化 |
data .changePercent | int | 24小时价格变化(百分比) |
data .pairCode | string | 忽略 |
feed stream
{
"code": 200,
"msg": "success",
"ts": 1689935550508,
"type": "ticker",
"product": "BTC_USDT",
"data":
{
"pairCode": "BTC_USDT",
"open": "3.2934",
"close": "3.01",
"high": "4.003",
"low": "2.9758",
"turnOver": "25483.2032",
"vol": "7355.4",
"count": 0,
"change": "-0.2834",
"changePercent": "-0.0861"
}
}
Request Candles
req request
{
"event": "req",
"params": {
"biz": "market",
"type": "candles",
"product": "BTC_USDT",
"interval": "1day",
"size": 301,
"from": 1613692800,
"to": 1639699200
},
"zip":false
}
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params.biz | 是 | string | |
params.type | 是 | string | 类型 |
params.product | 是 | string | 币对 |
params.interval | 是 | string | 周期 |
params.from | 是 | string | 开始时间 |
params.to | 是 | string | 结束时间 |
event | 是 | string | 事件 |
zip | 是 | bool | 是否启用gzip |
返回结构
参数名 | 类型 | 说明 |
---|---|---|
biz | string | 行情 |
ts | int | 时间戳 |
product | string | 币对 |
interval | string | 间隔 1day |
event | string | req |
data .open | string | 这根K线期间第一笔成交价 |
data .close | string | 这根K线期间末一笔成交价 |
data .low | string | 这根K线期间最低成交价 |
data .high | string | 这根K线期间最高成交价 |
data .vol | string | 这根K线期间成交量 |
data .turnOver | string | 这根K线期间成交额 |
data .id | int | 唯一且有序id |
data .count | int | 这根K线期间成交笔数 |
req response
{
"biz": "market",
"product": "BTC_USDT",
"ts": 1689936708184,
"type": "candles",
"interval": "1day",
"event": "req",
"data":
[
{
"count": 2265,
"turnOver": 2802.082564,
"vol": 810.94,
"id": 1689782400,
"high": 4.003,
"open": 3.2934,
"low": 3.0103,
"close": 3.2399
},
{
"count": 25441,
"turnOver": 29922.563131,
"vol": 8627.47,
"id": 1689868800,
"high": 3.9711,
"open": 3.2399,
"low": 2.9758,
"close": 3.8212
}
]
}
Request Ticker
请求结构
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params.biz | 是 | string | |
params.type | 否 | string | 类型 |
params.product | 否 | string | 币对 |
event | 是 | string | 事件 |
zip | 是 | bool | 是否启用gzip |
req request
{
"event": "req",
"params": {
"biz": "market",
"type": "ticker",
"product": "ETH_USDT"
},
"zip":false
}
返回参数
参数名 | 类型 | 说明 |
---|---|---|
biz | string | 行情 |
type | string | ticker |
ts | int | 时间戳 |
product | string | 币对 |
event | string | req |
data .open | string | 24小时前开始第一笔成交价格 |
data .close | string | 24小时最新成交价格 |
data .low | string | 24小时内最低成交价 |
data .high | string | 24小时内最高成交价 |
data .vol | string | 24小时内成交量 |
data .turnOver | string | 24小时内成交额 |
data .count | int | 24小时成交笔数 |
data .change | int | 24小时价格变化 |
data .changePercent | int | 24小时价格变化(百分比) |
req response
{
"biz": "market",
"product": "BTC_USDT",
"ts": 1689937681602,
"type": "ticker",
"event": "req",
"data":
{
"open": "3.2934",
"close": "3.3483",
"low": "2.9758",
"high": "4.003",
"turnOver": "39507.143672",
"count": 0,
"vol": "11384.41",
"pairCode": "BTC_USDT",
"change": "0.0549",
"changePercent": "0.0167"
}
}
WEBSOCKET PRIVATE(DEPRECATED)
Login
进行WS通道用户认证。只有认证过的通道才可以进行订阅用户的资产信息以及订单状态变化信息
Subscribe
request
{
"event": "login",
"params": {
"type": "api",
"access-key": "de0535f81d51c998b7fbcf00f189f294",
"access-sign": "sign",
"access-timestamp": 14000000000
}
}
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params.type | 是 | string | 认证方式: api :apiKey认证;token :token认证 |
params.access-key | 是 | string | 鉴权说明 |
params.access-sign | 是 | string | 鉴权说明 |
params.access-timestamp | 是 | long | 鉴权说明 |
event | 是 | string | 事件名 事件列表 |
response
{
"result": "login",
"data":
{
"result": true
}
}
参数名 | 类型 | 说明 |
---|---|---|
result | string | 数据频道 |
data.result | bool | 订阅是否成功 |
Assets
订阅用户的资产变更。目前只支持按照产品进行订阅。订阅全量的资产变更信息正在开发中。
Subscribe
request
{
"event": "sub",
"params": {
"biz": "exchange",
"type": "assets",
"product": "ETH_BTC",
"zip": false
}
}
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params.biz | 是 | string | 订阅模块类型 |
params.type | 是 | string | 订阅业务类型 |
params.product | 是 | string | 产品信息 |
event | 是 | string | 事件名 事件列表 |
zip | 是 | bool | 是否启用gzip |
response
{
"channel": "subscribe",
"biz": "exchange",
"type": "assets",
"product": "ETH_BTC",
"data": {
"result": true
}
}
返回参数
参数名 | 类型 | 说明 |
---|---|---|
channel | string | 数据频道 |
biz | string | 业务线 |
type | string | 协议类型 |
product | string | 产品名 |
data.result | bool | 订阅是否成功 |
feed
{
"biz": "exchange",
"type": "assets",
"product": "BTC_USDT",
"zip": false,
"data": [
{
"symbol": "BTC",
"available": 100805.8,
"hold": 13.2
}
]
}
推送数据
参数名 | 类型 | 说明 |
---|---|---|
channel | string | 数据频道 |
biz | string | 业务线 |
type | string | 协议类型 |
product | string | 产品名 |
$data.currency | string | 币种名称 |
$data.available | bigdecimal | 可用数量名称 |
$data.hold | bigdecimal | 冻结数量币种名称 |
Orders
订阅所有订单的状态变化
Subscribe
request
{
"event": "sub",
"params": {
"biz": "exchange",
"type": "orders",
"product": "all",
"zip": false
}
}
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
params.biz | 是 | string | 订阅模块类型 |
params.type | 是 | string | 订阅业务类型 |
params.product | 是 | string | 产品名 |
event | 是 | string | 事件名 事件列表 |
zip | 是 | bool | 是否启用gzip |
response
{
"channel": "subscribe",
"biz": "exchange",
"type": "orders",
"product": "all",
"data": {
"result": true
}
}
返回参数
参数名 | 类型 | 说明 |
---|---|---|
channel | string | 数据频道 |
biz | string | 业务线 |
type | string | 协议类型 |
product | string | 产品名 |
data.result | bool | 订阅是否成功 |
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
order_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
- 0: 已经收到订单
- 1: 已经提交订单
- 2: 订单部分成交
- 3: 订单已完全成交
- 4: 订单发起撤销
- 5: 订单已经撤销
- 6: 订单交易失败
- 7: 订单被减量
feed
{
"biz": "exchange",
"type": "orders",
"data": {
"order_id": "124645019749408967",
"product": "BTC_USDT",
"side": "buy",
"price": "60000",
"size": "1",
"filled_amount": "0",
"funds": "1",
"filled_size": "0",
"type": "limit",
"status": "1",
"client_oid": ""
}
}
推送数据
参数名 | 类型 | 说明 |
---|---|---|
channel | string | 数据频道 |
biz | string | 业务线 |
type | string | 协议类型 |
product | string | 产品名 |
$data | object | 订单详情 |
Event 列表
Event 名称 | 类型 | 说明 |
---|---|---|
sub | string | 订阅事件,由客户端主动发起 |
login | string | 登录事件,由客户端主动发起 |
Biz 列表
Biz 名称 | 类型 | 说明 |
---|---|---|
exchange | string | 现货交易 |
Type 列表
Type 名称 | 类型 | 说明 |
---|---|---|
assets | string | 资产变更 |
orders | string | 订单状态变更 |