NAV
English

API概述

0. 域名

线上域名: https://openapi.bitwellex.com, https://openapi.bitwellex.co

您可以自行比较使用openapi.bitwellex.com和openapi.bitwellex.co两个域名的延迟情况,选择延迟低的进行使用。

其中,openapi.bitwellex.co域名对使用aws云服务的用户做了一定的链路延迟优化。

1. 访问限制

本章节访问限制的细节:

当访问超过频率限制时,将返回429状态:请求太频繁。

1.1 Rest API

如果传入有效的APIKey 用用户ID限速;如果没有则拿公网IP限速。

限速规则:各个接口上有单独的说明,如果没有一般接口限速为 5次/秒。

1.2 WebSocket

WebSocket将每个命令类型限制为每秒50条命令

2. 验证

本章节主要为验证的细节分以下4个方面:

2.1 生成APIKey

在对任何请求进行签名之前,您必须通过BitWell网站创建一个APIKey。创建APIKey后,您将获得2个必须记住的信息:

APIKey和SecretKey将由BitWell生成和提供。

2.2 发起请求

所有REST请求头都必须包含如下KEY:

FT-language 语言(可选),支持以下三种,默认 “en-US”

所有请求都应该含有application/json类型内容,并且是有效的JSON。

2.3 签名

BW-ACCESS-SIGN的请求头是对timestamp + Request Method + Request Path + Request body + SecretKey (其中+表示字符串连接) 使用HMAC SHA256方法加密,然后通过Base64编码输出而得。

字段 说明 注意事项 示例
timestamp Unix时间戳格式,精确到毫秒 值与BW-ACCESS-TIMESTAMP请求头相同 1420674445201
Request Method 请求方法 字母全部大写 POST
Request Path 请求接口路径 GET请求包含query参数 /order/pending?num=30
Request Body 请求主体的字符串 1) 若请求没有主体(通常为GET请求), 则省略
2) 值与请求一致
{“symbol”:“BTC_USDT”,“order_id”:1010000867765}
SecretKey 私钥 BitWell个人中心申请所生成 DtUTxNBkTUKr4N9hwaYmDSRgxyIDD0Za

2.3.1 javascript算法示例

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/hmac-sha256.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/enc-base64.min.js"></script>

<script>
  var timestamp = new Date().getTime();
  var message = timestamp + 'GET' + '/users/self/verify';
  var secretKey = "-BW Secret Key-";
  var hash = CryptoJS.HmacSHA256(message, secretKey);
  var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);
  document.write(hashInBase64);
</script>

2.3.2 php算法示例

$secretKey = "Apply BW Api Secret Key and replace with your's";
$timestamp = intval(microtime(true)*1000);
$requestMethod = 'GET';
$requestPath = '/api/v1/orders/pending';
$requestBody = '';
$message = $timestamp.$requestMethod.$requestPath.$requestBody;

$s = hash_hmac('sha256', $message, $secretKey, true);
echo base64_encode($s);

2.3.3 python2.7算法示例

import hashlib
import hmac
import base64
import time

timstamp = int(round(time.time() * 1000))
m = str(timstamp) + 'GET' + '/order/pending?start=1' + '' 
message = bytes(m).encode('utf-8')
secret = bytes("--secretKey--").encode('utf-8')

signature = base64.b64encode(hmac.new(secret, message, digestmod=hashlib.sha256).digest())
print(signature)

2.3.4 go算法示例

package main

import (
	"crypto/hmac"
	"crypto/sha256"
	"encoding/base64"
	"fmt"
	"time"
)

func ComputeHmac256(message string, secret string) string {
	key := []byte(secret)
	h := hmac.New(sha256.New, key)
	h.Write([]byte(message))
	return base64.StdEncoding.EncodeToString(h.Sum(nil))
}

func main() {
	timestamp := time.Now().UnixNano() / 1000000
	message := fmt.Sprintf("%d%s%s%s", timestamp, "GET", "/order/pending?from=3", "")
	secretKey := "-BW Secret Key-"
	fmt.Println(ComputeHmac256(message, secretKey))
}

hmac参考: https://tools.ietf.org/id/draft-mcgrew-aead-aes-cbc-hmac-sha2-03.html

hmac sha256示例参考: https://www.jokecamp.com/blog/examples-of-creating-base64-hashes-using-hmac-sha256-in-different-languages/

2.4 时间戳

BW-ACCESS-TIMESTAMP请求头必须是Unix时间戳格式(如:1420674445201),精确到毫秒

2.5 Websocket 签名

注意:Websocket 签名时 Request Method 设为 POST, Request PathRequest Body 设为空字符串

市场交易对

1. 现货交易对

请求方式: GET
请求地址: /pub/openapi/v1/symbol/spot/all
登录授权:

请求参数: 无

返回结果:

字段名 字段类型 备注
base_asset string 基础资产code
quote_asset string 交易资产code
symbol string 交易对code
price_precision int 价格精度
volume_precision int 数量精度
{
    "data": [
        {
            "base_asset": "USDT",
            "quote_asset": "BTC",
            "symbol": "BTC_USDT",
            "price_precision": 2,
            "volume_precision": 4
        },
        {
            "base_asset": "USDT",
            "symbol": "ETH_USDT",
            "price_precision": 2,
            "quote_asset": "ETH",
            "volume_precision": 4
        }
    ],
    "errmsg": "",
    "errno": 0
}

2. 指数交易对

请求方式: GET
请求地址: /pub/openapi/v1/symbol/index/all
登录授权:

请求参数: 无

返回结果:

字段名 字段类型 备注
base_asset string 基础资产code
quote_asset string 交易资产code
symbol string 交易对code
price_precision int 价格精度
volume_precision int 数量精度
{
    "data": [
        {
            "base_asset": "USDT",
            "symbol": "BTC_INDEX",
            "price_precision": 2,
            "quote_asset": "FT_INDEX",
            "volume_precision": 0
        },
        {
            "base_asset": "USDT",
            "symbol": "MKR_INDEX",
            "price_precision": 2,
            "quote_asset": "FT_INDEX",
            "volume_precision": 0
        }
    ],
    "errmsg": "",
    "errno": 0
}

3. 期权交易对

请求方式: GET
请求地址: /pub/openapi/v1/symbol/options/all
登录授权:

请求参数: 无

返回结果:

字段名 字段类型 备注
base_asset string 基础资产code
quote_asset string 交易资产code
symbol string 交易对code
price_precision int 价格精度
volume_precision int 数量精度
direction int 方向:看涨:1,看跌:2
index_symbol string 关联指数
multiple string 合约乘数
strike_price string 行权价
strike_time int64 行权时间,精确到秒
underlying_asset string 标的资产code
{
    "data": [
        {
            "base_asset": "USDT",
            "symbol": "FIL-20200927-16-C",
            "direction": 1,
            "index_symbol": "FIL_INDEX",
            "multiple": "10",
            "price_precision": 2,
            "quote_asset": "FT_OPTIONS",
            "strike_price": "16",
            "strike_time": 1601197200,
            "underlying_asset": "FIL",
            "volume_precision": 0
        },
        {
            "base_asset": "USDT",
            "symbol": "MKR-20201002-900-C",
            "direction": 1,
            "index_symbol": "MKR_INDEX",
            "multiple": "0.1",
            "price_precision": 2,
            "quote_asset": "FT_OPTIONS",
            "strike_price": "900",
            "strike_time": 1601629200,
            "underlying_asset": "MKR",
            "volume_precision": 0
        },
        {
            "base_asset": "USDT",
            "symbol": "BTC-20201002-7500-P",
            "direction": 2,
            "index_symbol": "BTC_INDEX",
            "multiple": "0.1",
            "price_precision": 2,
            "quote_asset": "FT_OPTIONS",
            "strike_price": "7500",
            "strike_time": 1601629200,
            "underlying_asset": "BTC",
            "volume_precision": 0
        }
    ],
    "errmsg": "",
    "errno": 0
}

资产API

输出结构如下

字段名 字段类型 备注
data object 返回数据
errmsg string 错误信息
errno int 错误码( 0 : 代表成功)
{
    "data":{},
    "errmsg":"",
    "errno":0
}

输出响应头的content-type默认应为application/json 若成功响应,则errno对应为0

1. 资产查询

请求方式: GET
请求地址: /openapi/v1/asset/all
请求授权:

请求参数:

响应数据:

字段名 字段类型 备注
items array 资产列表
字段名 字段类型 备注
code string 资产code
name string 资产名称
{
    "data": {
        "items": [
            {
                "code": "BTC",
                "name": "Bitcoin"
            },
            {
                "code": "USDT",
                "name": "Tether USD"
            }
        ]
    },
    "errmsg": "",
    "errno": 0
}

2. 现货单个资产余额查询

请求方式: GET
请求地址: /openapi/v1/asset/spot/balance
请求授权:

请求参数:

字段名 字段类型 是否必须 中文说明 备注
asset string true 资产code “资产查询"获取, 如: BTC

响应数据:

字段名 字段类型 备注
asset string 资产code
asset_name string 资产名称
available string 可用余额
frozen string 委托冻结资金
locked string 锁仓资金
total string 总计资金(可用+委托冻结+锁仓)
{
    "data": {
        "asset": "BTC",
        "asset_name": "Bitcoin",
        "available": "1013.12720675",
        "frozen": "0",
        "locked": "0",
        "total": "1013.12720675"
    },
    "errmsg": "",
    "errno": 0
}

3. 现货所有资产余额查询

请求方式: GET
请求地址: /openapi/v1/asset/spot/all_balance
请求授权:

请求参数: 无

响应数据:

字段名 字段类型 备注
items array 资产余额列表
字段名 字段类型 备注
asset string 资产code
asset_name string 资产名称
available string 可用余额
frozen string 委托冻结资金
locked string 锁仓资金
total string 总计资金(可用+委托冻结+锁仓)
{
    "data": {
        "items": [
            {
                "asset": "BTC",
                "asset_name": "Bitcoin",
                "available": "1013.12720675",
                "frozen": "0",
                "locked": "0",
                "total": "1013.12720675"
            },
            {
                "asset": "USDT",
                "asset_name": "Tether USD",
                "available": "9860739.020219",
                "frozen": "279.21",
                "locked": "0",
                "total": "9861018.230219"
            },
            {
                "asset": "ETH",
                "asset_name": "Ethereum",
                "available": "10000000.995",
                "frozen": "0",
                "locked": "0",
                "total": "10000000.995"
            }
        ]
    },
    "errmsg": "",
    "errno": 0
}

4. 期权单个资产余额查询

请求方式: GET
请求地址: /openapi/v1/asset/options/balance
请求授权:

请求参数:

字段名 字段类型 是否必须 中文说明 备注
asset string true 资产code “资产查询"获取, 如: BTC

响应数据:

字段名 字段类型 备注
asset string 资产code
asset_name string 资产名称
available string 可用余额
frozen string 委托冻结资金
total string 总计资金(可用+委托冻结+备兑冻结+保证金冻结)
covered_frozen string 备兑冻结
margin_frozen string 保证金冻结
{
    "data": {
        "asset": "BTC",
        "asset_name": "Bitcoin",
        "available": "8999.9",
        "covered_frozen": "0",
        "frozen": "0.1",
        "margin_frozen": "0",
        "total": "9000"
    },
    "errmsg": "",
    "errno": 0
}

5. 期权所有资产余额查询

请求方式: GET
请求地址: /openapi/v1/asset/options/all_balance
请求授权:

请求参数: 无

响应数据:

字段名 字段类型 备注
items array 资产余额列表
字段名 字段类型 备注
asset string 资产code
asset_name string 资产名称
available string 可用余额
frozen string 委托冻结资金
total string 总计资金(可用+委托冻结+备兑冻结+保证金冻结)
covered_frozen string 备兑冻结
margin_frozen string 保证金冻结
{
    "data": {
        "items": [
            {
                "asset": "BTC",
                "asset_name": "Bitcoin",
                "available": "8999.9",
                "covered_frozen": "0",
                "frozen": "0.1",
                "margin_frozen": "0",
                "total": "9000"
            },
            {
                "asset": "USDT",
                "asset_name": "Tether USD",
                "available": "90000491.665951",
                "covered_frozen": "0",
                "frozen": "218.33",
                "margin_frozen": "96.3",
                "total": "90000806.295951"
            },
            {
                "asset": "ETH",
                "asset_name": "Ethereum",
                "available": "0",
                "covered_frozen": "0",
                "frozen": "0",
                "margin_frozen": "0",
                "total": "0"
            }
        ]
    },
    "errmsg": "",
    "errno": 0
}

现货API

输出结构如下

字段名 字段类型 备注
data object 返回数据
errmsg string 错误信息
errno int 错误码( 0 : 代表成功)
{
    "data":{},
    "errmsg":"",
    "errno":0
}

输出响应头的content-type默认应为application/json 若成功响应,则errno对应为0

1. 下单

请求方式: POST
请求地址: /openapi/v1/spot/order/place
请求授权:

请求参数:

{
	"symbol":"BTC_USDT",
	"order_type":"buy_limit",
	"price":8838,
	"volume":0.01,
	"client_oid":"test1111111111111"
}
字段名 字段类型 是否必须 中文说明 默认值 备注
symbol string true 交易对 NA 如: BTC_USDT, ETH_USDT
order_type string true 订单类型 NA buy_limit:限价-买,
sell_limit:限价-卖,
buy_market:市价-买,
sell_market:市价-卖,
limit_stop_loss:限价止损,
limit_stop_profit:限价止盈,
market_stop_loss:市价止损,
market_stop_profit:市价止盈
price float false 委托价格 NA 对市价单无效
volume float true 委托数量 NA
tri_price float false 止盈止损订单触发价格 NA
remain_type string false 剩余处理类型 cancel: 未满足部分即时撤单
limit_match_best: 以最优成交价挂单,如果没有成交则撤单
limit_last: 以最后成交价挂单,如果没有成交则撤单
limit_side_best: 以本方最优盘口价挂单,如果没有盘口则撤单
limit: 以委托价挂单
client_oid string false 用户自编订单号 NA 最大长度32个字符
retain_seconds int false 挂单保留时间 0 单位:秒, 0表示不过期

order_type 具体分类

1.1 buy_limit: 限价-买

字段名 字段类型 是否必须 中文说明 备注
symbol string true 交易对 见上
order_type string true 订单类型 值为 buy_limit
price float true 委托价格 见上
volume float true 委托数量 见上

1.2 sell_limit: 限价-卖

字段名 字段类型 是否必须 中文说明 备注
symbol string true 交易对 见上
order_type string true 订单类型 值为 sell_limit
price float true 委托价格 见上
volume float true 委托数量 见上

1.3 buy_market: 市价-买

字段名 字段类型 是否必须 中文说明 备注
symbol string true 交易对 见上
order_type string true 订单类型 值为 buy_market
volume float true 委托数量 见上

1.4 sell_market: 市价-卖

字段名 字段类型 是否必须 中文说明 备注
symbol string true 交易对 见上
order_type string true 订单类型 值为 sell_market
volume float true 委托数量 见上

1.5 limit_stop_loss: 限价止损

字段名 字段类型 是否必须 中文说明 备注
symbol string true 交易对 见上
order_type string true 订单类型 值为 limit_stop_loss
price float true 委托价格 见上
volume float true 委托数量 见上
tri_price float true 触发价格(止损线) 见上

1.6 limit_stop_profit: 限价止盈

字段名 字段类型 是否必须 中文说明 备注
symbol string true 交易对 见上
order_type string true 订单类型 值为 limit_stop_profit
price float true 委托价格 见上
volume float true 委托数量 见上
tri_price float true 触发价格(止盈线) 见上

1.7 market_stop_loss: 市价止损

字段名 字段类型 是否必须 中文说明 备注
symbol string true 交易对 见上
order_type string true 订单类型 值为 market_stop_loss
volume float true 委托数量 见上
tri_price float true 触发价格(止损线) 见上

1.8 market_stop_profit: 市价止盈

字段名 字段类型 是否必须 中文说明 备注
symbol string true 交易对 见上
order_type string true 订单类型 值为 market_stop_profit
volume float true 委托数量 见上
tri_price float true 触发价格(止盈线) 见上

响应数据:

字段名 字段类型 备注
order_id int64 订单编号
client_oid string 用户自编订单号(如有)
{
    "data": {
        "order_id": 1010000867765,
        "client_oid": "c111111a11111",
    },
    "errmsg":"",
    "errno":0
}

2. 批量下单

请求方式: POST
请求地址: /openapi/v1/spot/order/batch_place
请求授权:

请求参数:

{
    "batch_orders":[
        {
            "symbol":"XRP_USDT",
            "order_type":"buy_limit",
            "price":0.21,
            "volume":1,
            "client_oid":"test1111111111111"
        }, {
            "symbol":"XRP_USDT",
            "order_type":"sell_limit",
            "price":0.22,
            "volume":1,
            "client_oid":"test1111111111112"
        }, {
            "symbol":"XRP_USDT",
            "order_type":"buy_market",
            "volume":1,
            "client_oid":"test1111111111113"
        }, {
            "symbol":"XRP_USDT",
            "order_type":"sell_market",
            "volume":1,
            "client_oid":"test1111111111114"
        }, {
            "symbol":"XRP_USDT",
            "order_type":"limit_stop_loss",
            "price":0.21,
            "volume":1,
            "tri_price":0.19,
            "client_oid":"test1111111111115"
        }
    ]
}
字段名 字段类型 是否必须 中文说明 默认值 备注
batch_orders array true 下单数据 NA
字段名 字段类型 是否必须 中文说明 默认值 备注
symbol string true 交易对 NA 如: BTC_USDT, ETH_USDT
order_type string true 订单类型 NA buy_limit:限价-买,
sell_limit:限价-卖,
buy_market:市价-买,
sell_market:市价-卖,
limit_stop_loss:限价止损,
limit_stop_profit:限价止盈,
market_stop_loss:市价止损,
market_stop_profit:市价止盈
price float false 委托价格 NA 对市价单无效
volume float true 委托数量 NA
tri_price float false 止盈止损订单触发价格 NA
remain_type string false 剩余处理类型 cancel: 未满足部分即时撤单
limit_match_best: 以最优成交价挂单,如果没有成交则撤单
limit_last: 以最后成交价挂单,如果没有成交则撤单
limit_side_best: 以本方最优盘口价挂单,如果没有盘口则撤单
limit: 以委托价挂单
client_oid string false 用户自编订单号 NA 最大长度32个字符
retain_seconds int false 挂单保留时间 0 单位:秒, 0表示不过期

order_type 具体分类: 同"下单api"

响应数据:

字段名 字段类型 备注
items array 订单数据
字段名 字段类型 备注
order_id int64 订单编号
client_oid string 用户自编订单号(如有)
errmsg string 错误信息
errno int 错误码(0: 代表成功)
{
    "data": {
        "items": [
            {
                "client_oid":"c111111a11111",
                "order_id":1010000868734,
                "errmsg":"",
                "errno":0
            },
            {
                "client_oid":"c111111a11112",
                "order_id":0,
                "errmsg":"Invalid remain type",
                "errno":11010101
            }
        ]
    },
    "errmsg":"",
    "errno":0
}

3. 撤单

请求方式: POST
请求地址: /openapi/v1/spot/order/cancel
请求授权:

请求参数:

{
    "order_id":1010000869102
}
字段名 字段类型 是否必须 中文说明 默认值 备注
order_id int64 true 订单id NA

响应数据:

{
    "data": {
        "order_id": 1010000866876,
        "client_oid": "c111111a11111",
    },
    "errmsg":"",
    "errno":0
}

4. 批量撤单

请求方式: POST
请求地址: /openapi/v1/spot/order/batch_cancel
请求授权:

请求参数:


{
	"order_ids": [
		1010000869123,
		1010000869124
	]
}
字段名 字段类型 是否必须 中文说明 默认值 备注
order_ids int64[] true 订单id NA

响应数据:

字段名 字段类型 备注
success array 撤单成功订单
failed array 撤单失败订单
字段名 字段类型 备注
order_id int64 订单编号
client_oid string 用户自编订单号(如有)
字段名 字段类型 备注
order_id int64 订单编号
client_oid string 用户自编订单号(如有)
errmsg string 错误信息(仅对被拒订单有效)
errno int 错误码(仅对被拒订单有效)
{
    "data": {
        "failed": [
            {
                "client_oid":"",
                "errmsg":"委托单已处理,无法撤单",
                "errno":11010202,
                "order_id":1010000868741
            }
        ],
        "success": [
            {
                "client_oid":"test1111111111111",
                "errmsg":"",
                "errno":0,
                "order_id":1010000868744
            },
            {
                "client_oid":"test1111111111112",
                "errmsg":"",
                "errno":0,
                "order_id":1010000868745
            }
        ]
    },
    "errmsg":"",
    "errno":0
}

5. 订单详情

请求方式: GET
请求地址: /openapi/v1/spot/order/query
请求授权:

请求参数:

字段名 字段类型 是否必须 中文说明 默认值 备注
order_id int64 true 订单id NA

响应数据:

字段名 字段类型 备注
order_time int 委托时间(时间戳)
order_id int64 订单ID
client_oid string 用户自编订单号
symbol string 交易对
direction string 买卖方向, buy:买, sell:卖
price string 委托价格
volume string 委托数量
match_volume string 成交数量
match_amount string 成交金额
queue_price string 挂单价格
queue_volume string 挂单数量
order_type string 订单类型,
buy_limit:限价-买,
sell_limit:限价-卖,
buy_market:市价-买,
sell_market:市价-卖,
limit_stop_loss:限价止损,
limit_stop_profit:限价止盈,
market_stop_loss:市价止损,
market_stop_profit:市价止盈
remain_type string 剩余处理类型, cancel: 未满足部分即时撤单
limit_match_best: 以最优成交价挂单,如果没有成交则撤单
limit_last: 以最后成交价挂单,如果没有成交则撤单
limit_side_best: 以本方最优盘口价挂单,如果没有盘口则撤单
limit: 以委托价挂单
state int 委托单状态, 0. 待处理, 1. 挂单中, 2. 撤单中, 3. 已撤单, 4. 部分成交, 5. 已完成, 6. 错误, 7. 等待触发, 8. 已触发, 9. 触价失效
tri_direction string 触发单方向, up: 上触价, down: 下触价
tri_price string 触发价格
{
    "data": {
        "order_time": 1601283710,
        "order_id": 10100002577892,
        "client_oid": "test00001",
        "symbol": "BTC_USDT",
        "direction": "buy",
        "price": "7000",
        "volume": "0.001",
        "match_volume": "0.001",
        "match_amount": "7",
        "queue_price": "7000",
        "queue_volume": "0",
        "order_type": "buy_limit",
        "state": 5,
        "tri_price": "0",
        "tri_direction": "",
        "remain_type": "limit"
    },
    "errmsg":"",
    "errno":0
}

6. 当前委托查询

请求方式: GET
请求地址: /openapi/v1/spot/order/pending
请求授权:

请求参数:

字段名 字段类型 是否必须 中文说明 默认值 备注
symbol string false 交易对 NA 如: BTC_USDT, ETH_USDT
start_date string false 查询开始日期 NA 日期格式 yyyy-mm-dd, 以订单生成时间进行查询
end_date string false 查询结束日期 NA 日期格式 yyyy-mm-dd, 以订单生成时间进行查询
num int false 结果集数量 10 每页返回的结果集数量,最大为100,不填默认返回10条

响应数据:

字段名 字段类型 备注
items array 订单列表
page object 分页信息
字段名 字段类型 备注
prev string 上一页, 第1页时值为""
next string 下一页, items数组长度小于num时值为""

分页使用:

第1页: 
    `openapi/v1/spot/order/pending`

上一页: 当前页大于`1`, `prev`返回值不为空, 如下
    `openapi/v1/spot/order/pending?prev_id=xxxx&page_index=2`

下一页: `items`数组长度等于`num`, `next`返回值不为空, 如下
    `openapi/v1/spot/order/pending?next_id=xxxx&page_index=3`
字段名 字段类型 备注
order_time int 委托时间(时间戳)
order_id int64 订单ID
client_oid string 用户自编订单号
symbol string 交易对
direction string 买卖方向, buy:买, sell:卖
price string 委托价格
volume string 委托数量
match_volume string 成交数量
match_amount string 成交金额
queue_price string 挂单价格
queue_volume string 挂单数量
order_type string 订单类型,
buy_limit:限价-买,
sell_limit:限价-卖,
buy_market:市价-买,
sell_market:市价-卖,
limit_stop_loss:限价止损,
limit_stop_profit:限价止盈,
market_stop_loss:市价止损,
market_stop_profit:市价止盈
remain_type string 剩余处理类型, cancel: 未满足部分即时撤单
limit_match_best: 以最优成交价挂单,如果没有成交则撤单
limit_last: 以最后成交价挂单,如果没有成交则撤单
limit_side_best: 以本方最优盘口价挂单,如果没有盘口则撤单
limit: 以委托价挂单
state int 委托单状态, 0. 待处理, 1. 挂单中, 2. 撤单中, 3. 已撤单, 4. 部分成交, 5. 已完成, 6. 错误, 7. 等待触发, 8. 已触发, 9. 触价失效
tri_direction string 触发单方向, up: 上触价, down: 下触价
tri_price string 触发价格
{
    "data": {
        "items": [
            {
                "order_time": 1601283710,
                "order_id": 10100002577892,
                "client_oid": "test00001",
                "symbol": "BTC_USDT",
                "direction": "buy",
                "price": "7000",
                "volume": "0.001",
                "match_volume": "0.001",
                "match_amount": "7",
                "queue_price": "7000",
                "queue_volume": "0",
                "order_type": "buy_limit",
                "state": 5,
                "tri_price": "0",
                "tri_direction": "",
                "remain_type": "limit"
            },
        ],
        "page": {
            "prev": "",
            "next": "/openapi/v1/spot/order/all?next_id=10100002606285&page_index=2"
        }
    },
    "errmsg": "",
    "errno": 0
}

7. 历史委托查询

请求方式: GET
请求地址: /openapi/v1/spot/order/filled
请求授权:

请求参数: 同当前委托查询

响应数据: 同当前委托查询

8. 所有委托查询

请求方式: GET
请求地址: /openapi/v1/spot/order/all
请求授权:

请求参数: 同当前委托查询

响应数据: 同当前委托查询

9. 成交查询

请求方式: GET
请求地址: /openapi/v1/spot/order/matches
请求授权:

请求参数:

字段名 字段类型 是否必须 中文说明 默认值 备注
order_id int64 false 订单id NA
symbol string false 交易对 NA 如: BTC_USDT, ETH_USDT
start_date string false 查询开始日期 NA 日期格式 yyyy-mm-dd, 以成交时间进行查询
end_date string false 查询结束日期 NA 日期格式 yyyy-mm-dd, 以成交时间时间进行查询
num int false 结果集数量 10 每页返回的结果集数量,最大为100,不填默认返回10条

响应数据:

字段名 字段类型 备注
items array 成交列表
page object 分页信息
字段名 字段类型 备注
prev string 上一页, 第1页时值为""
next string 下一页, items数组长度小于num时值为""

分页使用:同当前委托查询

字段名 字段类型 备注
match_time int 成交时间(时间戳)
direction string 买卖方向, buy:买, sell:卖
price string 成交价格
volume string 成交数量
fee_asset string 手续费资产
fee_volume string 手续费
symbol string 交易对
{
    "data": {
        "items": [
            {
                "direction": "sell",
                "fee_asset": "USDT",
                "fee_volume": "0.09607",
                "match_time": 1591431070,
                "price": "9607.04",
                "symbol": "BTC_USDT",
                "volume": "0.01"
            }
        ],
        "page": {
            "prev": "",
            "next": "/openapi/v1/spot/order/matches?next_id=1312783&page_index=2"
        }
    },
    "errmsg": "",
    "errno": 0
}

期权API

输出结构如下

字段名 字段类型 备注
data object 返回数据
errmsg string 错误信息
errno int 错误码( 0 : 代表成功)
{
    "data":{},
    "errmsg":"",
    "errno":0
}

输出响应头的content-type默认应为application/json 若成功响应,则errno对应为0

1. 下单

请求方式: POST
请求地址: /openapi/v1/options/order/place
请求授权:

请求参数:

{
	"symbol": "BTC-0612-7500-C",
	"price":218.1,
	"volume":1,
	"offset": "open",
	"open_mode": "buy",
	"client_oid":"test2111111111111"
}

常用参数:

字段名 字段类型 是否必须 中文说明 默认值 备注
symbol string true 交易对 NA 如: BTC-0515-8250-C, BTC-0515-8250-P
price float true 委托价格 NA price_typemarket时可不传此参数
volume int true 委托数量(张) NA 委托数量只能为整数(xx张)
offset string true 开仓/平仓 NA open: 开仓, close: 平仓
open_mode string true 开仓模式 NA buy: 买入开仓,
covered_sell:备兑卖出开仓,
margin_sell:保证金卖出开仓
“看跌"期权不支持covered_sell
client_oid string false 用户自编订单号 NA 最大长度32个字符

高级选项(可选)

字段名 字段类型 是否必须 中文说明 默认值 备注
price_type string false 价格类型 limit limit: 限价, average: 均价, market: 市价
remain_type string false 剩余处理类型 limit cancel: 未满足部分即时撤单
limit_match_best: 以最优成交价挂单,如果没有成交则撤单
limit_last: 以最后成交价挂单,如果没有成交则撤单
limit_side_best: 以本方最优盘口价挂单,如果没有盘口则撤单
limit: 以委托价挂单
retain_seconds int false 挂单保留时间 0: 不过期 单位:秒, 0表示不过期

响应数据:

字段名 字段类型 备注
order_id int64 订单编号
client_oid string 用户自编订单号(如有)
{
    "data": {
        "order_id": 1020000867765,
        "client_oid": "c111111a11111",
    },
    "errmsg":"",
    "errno":0
}

2. 批量下单

请求方式: POST
请求地址: /openapi/v1/options/order/batch_place
请求授权:

请求参数:

{
    "batch_orders": [
        {
            "symbol": "BTC-0612-7500-C",
            "price":224.1,
            "volume":1,
            "offset": "open",
            "open_mode": "buy",
            "client_oid":"test2111111111114"
        }, {
            "symbol": "BTC-0612-7500-C",
            "price":225.1,
            "volume":1,
            "offset": "open",
            "open_mode": "covered_sell",
            "client_oid":"test2111111111115"
        }, {
            "symbol": "BTC-0612-7500-C",
            "price":225.1,
            "volume":1,
            "offset": "open",
            "open_mode": "margin_sell",
            "client_oid":"test2111111111116"
        }, {
            "symbol": "BTC-0612-7500-C",
            "price":218.1,
            "volume":1,
            "offset": "close",
            "open_mode": "buy",
            "client_oid":"test2111111111117"
        }, {
            "symbol": "BTC-0612-7500-C",
            "price":220,
            "volume":1,
            "offset": "close",
            "open_mode": "covered_sell",
            "client_oid":"test2111111111118"
        }
    ]
}
字段名 字段类型 是否必须 中文说明 默认值 备注
batch_orders array true 下单数据 NA

常用参数:

字段名 字段类型 是否必须 中文说明 默认值 备注
symbol string true 交易对 NA 如: BTC-0515-8250-C, BTC-0515-8250-P
price float true 委托价格 NA price_typemarket时可不传此参数
volume int true 委托数量(张) NA 委托数量只能为整数(xx张)
offset string true 开仓/平仓 NA open: 开仓, close: 平仓
open_mode string true 开仓模式 NA buy: 买入开仓,
covered_sell:备兑卖出开仓,
margin_sell:保证金卖出开仓
“看跌"期权不支持covered_sell
client_oid string false 用户自编订单号 NA 最大长度32个字符

高级选项(可选)

字段名 字段类型 是否必须 中文说明 默认值 备注
price_type string false 价格类型 limit limit: 限价, average: 均价, market: 市价
remain_type string false 剩余处理类型 limit cancel: 未满足部分即时撤单
limit_match_best: 以最优成交价挂单,如果没有成交则撤单
limit_last: 以最后成交价挂单,如果没有成交则撤单
limit_side_best: 以本方最优盘口价挂单,如果没有盘口则撤单
limit: 以委托价挂单
retain_seconds int false 挂单保留时间 0: 不过期 单位:秒, 0表示不过期

响应数据:

字段名 字段类型 备注
items array 订单数据
字段名 字段类型 备注
order_id int64 订单编号
client_oid string 用户自编订单号(如有)
errmsg string 错误信息
errno int 错误码(0: 代表成功)
{
    "data": {
        "items": [
            {
                "client_oid": "test2111111111114",
                "errmsg": "",
                "errno": 0,
                "order_id": 1020000869145
            },
            {
                "client_oid": "test2111111111115",
                "errmsg": "",
                "errno": 0,
                "order_id": 1020000869146
            },
            {
                "client_oid": "test2111111111116",
                "errmsg": "",
                "errno": 0,
                "order_id": 1020000869147
            },
            {
                "client_oid": "test2111111111117",
                "errmsg": "",
                "errno": 0,
                "order_id": 1020000869148
            },
            {
                "client_oid": "test2111111111118",
                "errmsg": "期权未平合约数不足",
                "errno": 11020501,
                "order_id": 0
            }
        ]
    },
    "errmsg": "",
    "errno": 0
}

3. 撤单

请求方式: POST
请求地址: /openapi/v1/options/order/cancel
请求授权:

请求参数:

{
    "order_id":1020000869150
}
字段名 字段类型 是否必须 中文说明 默认值 备注
order_id int64 true 订单id NA

响应数据:

{
    "data": {
        "order_id": 1010000866876,
        "client_oid": "c111111a11111",
    },
    "errmsg":"",
    "errno":0
}

4. 批量撤单

请求方式: POST
请求地址: /openapi/v1/options/order/batch_cancel
请求授权:

请求参数:


{
	"order_ids": [
		1020000869143,
		1020000869144
	]
}
字段名 字段类型 是否必须 中文说明 默认值 备注
order_ids int64[] true 订单id NA

响应数据:

字段名 字段类型 备注
success array 撤单成功订单
failed array 撤单失败订单
字段名 字段类型 备注
order_id int64 订单编号
client_oid string 用户自编订单号(如有)
字段名 字段类型 备注
order_id int64 订单编号
client_oid string 用户自编订单号(如有)
errmsg string 错误信息(仅对被拒订单有效)
errno int 错误码(仅对被拒订单有效)
{
    "data": {
        "failed": [
            {
                "client_oid": "",
                "errmsg": "订单未触发,禁止撤单",
                "errno": 11010203,
                "order_id": 1020000869144
            }
        ],
        "success": [
            {
                "client_oid": "",
                "errmsg": "",
                "errno": 0,
                "order_id": 1020000869143
            }
        ]
    },
    "errmsg": "",
    "errno": 0
}

5. 订单详情

请求方式: GET
请求地址: /openapi/v1/options/order/query
请求授权:

请求参数:

字段名 字段类型 是否必须 中文说明 默认值 备注
order_id int64 true 订单id NA

响应数据:

字段名 字段类型 备注
order_time int 委托时间
order_id int64 订单ID
client_oid string 用户自编订单号
symbol string 交易对名称
direction string 买卖方向, buy:买, sell:卖
price string 委托价格
volume string 委托数量
offset string 开仓/平仓, open: 开仓, close: 平仓
open_mode string 开仓模式, buy: 买入开仓,
covered_sell:备兑卖出开仓,
margin_sell:保证金卖出开仓
price_type string 价格类型 limit: 限价, average: 均价, market: 市价
match_volume string 成交数量
match_amount string 成交金额
queue_price string 挂单价格
queue_volume string 挂单数量
remain_type string 剩余处理类型, cancel: 未满足部分即时撤单
limit_match_best: 以最优成交价挂单,如果没有成交则撤单
limit_last: 以最后成交价挂单,如果没有成交则撤单
limit_side_best: 以本方最优盘口价挂单,如果没有盘口则撤单
limit: 以委托价挂单
state int 委托单状态, 0. 待处理, 1. 挂单中, 2. 撤单中, 3. 已撤单, 4. 部分成交, 5. 已完成, 6. 错误, 7. 等待触发, 8. 已触发, 9. 触价失效
{
    "data": {
        "order_time": 1602315076,
        "order_id": 10200002605606,
        "client_oid": "",
        "symbol": "BTC-20201016-7500-C",
        "direction": "sell",
        "price": "301",
        "volume": "1",
        "offset": "open",
        "open_mode": "margin_sell",
        "price_type": "limit",
        "match_volume": "1",
        "match_amount": "585.55",
        "queue_price": "301",
        "queue_volume": "0",
        "state": 5,
        "remain_type": "limit"
    },
    "errmsg": "",
    "errno": 0
}

6. 当前委托查询

请求方式: GET
请求地址: /openapi/v1/options/order/pending
请求授权:

请求参数:

字段名 字段类型 是否必须 中文说明 默认值 备注
symbol string false 交易对 NA 如: BTC_USDT, ETH_USDT
start_date string false 查询开始日期 NA 日期格式 yyyy-mm-dd, 以订单生成时间进行查询
end_date string false 查询结束日期 NA 日期格式 yyyy-mm-dd, 以订单生成时间进行查询
num int false 结果集数量 10 每页返回的结果集数量,最大为100,不填默认返回10条

响应数据:

字段名 字段类型 备注
items array 订单列表
page object 分页信息
字段名 字段类型 备注
prev string 上一页, 第1页时值为”"
next string 下一页, items数组长度小于num时值为""

分页使用:

第1页: 
    `openapi/v1/options/order/pending`

上一页: 当前页大于`1`, `prev`返回值不为空, 如下
    `openapi/v1/options/order/pending?prev_id=xxxx&page_index=2`

下一页: `items`数组长度等于`num`, `next`返回值不为空, 如下
    `/openapi/v1/options/order/pending?next_id=xxxx&page_index=3`
字段名 字段类型 备注
order_time int 委托时间
order_id int64 订单ID
client_oid string 用户自编订单号
symbol string 交易对名称
direction string 买卖方向, buy:买, sell:卖
price string 委托价格
volume string 委托数量
queue_price string 挂单价格
queue_volume string 挂单数量
offset string 开仓/平仓, open: 开仓, close: 平仓
open_mode string 开仓模式, buy: 买入开仓,
covered_sell:备兑卖出开仓,
margin_sell:保证金卖出开仓
price_type string 价格类型 limit: 限价, average: 均价, market: 市价
match_volume string 成交数量
match_amount string 成交金额
remain_type string 剩余处理类型, cancel: 未满足部分即时撤单
limit_match_best: 以最优成交价挂单,如果没有成交则撤单
limit_last: 以最后成交价挂单,如果没有成交则撤单
limit_side_best: 以本方最优盘口价挂单,如果没有盘口则撤单
limit: 以委托价挂单
state int 委托单状态, 0. 待处理, 1. 挂单中, 2. 撤单中, 3. 已撤单, 4. 部分成交, 5. 已完成, 6. 错误, 7. 等待触发, 8. 已触发, 9. 触价失效
{
    "data": {
        "items": [
            {
                "order_time": 1602315076,
                "order_id": 10200002605606,
                "client_oid": "",
                "symbol": "BTC-20201016-7500-C",
                "direction": "sell",
                "price": "301",
                "volume": "1",
                "offset": "open",
                "open_mode": "margin_sell",
                "price_type": "limit",
                "match_volume": "1",
                "match_amount": "585.55",
                "queue_price": "301",
                "queue_volume": "0",
                "state": 5,
                "remain_type": "limit"
            }
        ],
        "page": {
            "prev": "",
            "next": "/openapi/v1/options/order/pending?next_id=10200001849964&page_index=2"
        }
    },
    "errmsg": "",
    "errno": 0
}

7. 历史委托查询

请求方式: GET
请求地址: /openapi/v1/options/order/filled
请求授权:

请求参数: 同当前委托查询

响应数据: 同当前委托查询

8. 所有委托查询

请求方式: GET
请求地址: /openapi/v1/options/order/all
请求授权:

请求参数: 同当前委托查询

响应数据: 同当前委托查询

9. 成交查询

请求方式: GET
请求地址: /openapi/v1/options/order/matches
请求授权:

请求参数:

字段名 字段类型 是否必须 中文说明 默认值 备注
order_id int64 true 订单id NA
symbol string true 交易对 NA 如: BTC_USDT, ETH_USDT
start_date string false 查询开始日期 NA 日期格式 yyyy-mm-dd, 以成交时间进行查询
end_date string false 查询结束日期 NA 日期格式 yyyy-mm-dd, 以成交时间时间进行查询
num int false 结果集数量 10 每页返回的结果集数量,最大为100,不填默认返回10条

响应数据:

字段名 字段类型 备注
items array 成交列表
page object 分页信息
字段名 字段类型 备注
prev string 上一页, 第1页时值为""
next string 下一页, items数组长度小于num时值为""

分页使用:同当前委托查询

字段名 字段类型 备注
match_time int 成交时间
direction string 买卖方向, buy:买, sell:卖
price string 成交价格
volume string 成交数量
fee_asset string 手续费资产
fee_volume string 手续费
symbol string 交易对
offset string 开仓/平仓, open: 开仓, close: 平仓
open_mode string 开仓模式, buy: 买入开仓,
covered_sell:备兑卖出开仓,
margin_sell:保证金卖出开仓
{
    "data": {
        "items": [
            {
                "direction": "sell",
                "fee_asset": "USDT",
                "fee_volume": "0.1",
                "match_time": 1591448079,
                "offset": "open",
                "open_mode": "margin_sell",
                "price": "213.37",
                "symbol": "BTC-0612-7500-C",
                "volume": "1"
            }
        ],
        "page": {
            "prev": "",
            "next": "/openapi/v1/options/order/matches?next_id=1313173&page_index=2"
        }
    },
    "errmsg": "",
    "errno": 0
}

10. 期权持仓查询

请求方式: GET
请求地址: /openapi/v1/options/position
请求授权:

请求参数:

字段名 字段类型 是否必须 中文说明 默认值 备注
symbol string false 交易对 NA 如: BTC-0515-8250-C
symbols string[] false 交易对 NA 多个交易对查询,最多10个交易对
num int false 结果集数量 10 每页返回的结果集数量,最大为100,不填默认返回10条

响应数据:

字段名 字段类型 备注
items array 持仓列表
page object 分页信息
字段名 字段类型 备注
prev string 上一页, 第1页时值为""
next string 下一页, items数组长度小于num时值为""

分页使用:同当前委托查询

字段名 字段类型 备注
open_volume int 持仓数量
frozen_volume int 冻结数量
available int 可平仓数量
- open_volume(持仓数量) - frozen_volume(冻结数量)
covered_frozen string 冻结备兑数量(备兑占用)
margin_frozen string 冻结保证金数额(保证金占用)
open_mode string 开仓模式, buy: 买入开仓,
covered_sell:备兑卖出开仓,
margin_sell:保证金卖出开仓
open_profit string 收益(浮动盈亏)
symbol string 交易对名称
expiration_date int 期权到期日(10位时间戳)
{
    "data": {
        "items": [
            {
                "open_volume": 1,
                "frozen_volume": 0,
                "available": 1,
                "covered_frozen": "0",
                "margin_frozen": "0",
                "open_mode": "buy",
                "open_profit": "108.4",
                "symbol": "BTC-20201016-7500-C",
                "expiration_date": 1602838800
            }
        ],
        "page": {
            "prev": "",
            "next": "/openapi/v1/options/position?next_id=115245&page_index=2"
        }
    },
    "errmsg": "",
    "errno": 0
}

行情API

输出结构如下

字段名 字段类型 备注
data object 返回数据
errmsg string 错误信息
errno int 错误码( 0 : 代表成功)
{
    "data":{},
    "errmsg":"",
    "errno":0
}

输出响应头的content-type默认应为application/json 若成功响应,则errno对应为0

1. K线数据(蜡烛图)

请求方式: GET

请求地址: /pub/openapi/v1/hq/kline

登录授权:

特殊说明: 这个接口的返回值中time 是一个区间段的开始, 例如:8:00~8:15的数据, time是8:00的时间戳

请求参数:

字段名 字段类型 是否必须 中文说明 备注
symbol string 交易对代码 如: BTC_USDT
type int K线类型 参照type参数列表
num int 数量 默认60 最大值2880
ts int 时间戳 取时间戳之前数据

type参数列表:

type字段枚举值 type字段说明
1 day
2 hour
3 minute
4 5min
5 15min
6 30min

返回结果:

{
  "data": [
    {
      "symbol": "BTC_USDT",
      "time": 1593344700,
      "open": 40.34,
      "close": 39.79,
      "high": 40.34,
      "low": 39.76,
      "volume": 86,
      "amount": 3439.52,
      "type": 5
    }
  ],
  "errmsg": "",
  "errno": 0
}

返回字段说明:

字段 字段说明
time 时间 (单位s)
open 开盘价
close 收盘价
high 最高价
low 最低价
volume 成交量
amount 成交额
type 同入参type

2. 获取最新的市场行情

请求方式: GET

请求地址: /pub/openapi/v1/hq/quote

登录授权:

特殊说明:

请求参数:

字段名 字段类型 是否必须 中文说明 备注
symbol string 交易对代码 如: BTC_USDT,XRP_USDT

返回结果:

{
  "data": [
    {
      "amount": 21.5631,
      "amount_24": 84057335.36599398,
      "high": 11349,
      "high_24": 11349,
      "low": 10980.56,
      "low_24": 10980.56,
      "open": 11098.02,
      "prev_24": 11142.66,
      "sn": 214650314992441180,
      "state": 2,
      "symbol": "BTC_USDT",
      "time": 1596467413652610,
      "trade": 11349,
      "type": "spot",
      "volume": 0.0019,
      "volume_24": 7518.5058
    },
    {
      "amount": 86.515,
      "amount_24": 28004799.082520593,
      "high": 0.31586,
      "high_24": 0.31586,
      "low": 0.28397,
      "low_24": 0.28397,
      "open": 0.28594,
      "prev_24": 0.289,
      "sn": 214650314992060860,
      "state": 2,
      "symbol": "XRP_USDT",
      "time": 1596467414119937,
      "trade": 0.3146,
      "type": "spot",
      "volume": 275,
      "volume_24": 93996959.91
    }
  ],
  "errmsg": "",
  "errno": 0
}
字段 名称
symbol 交易对
trade 当前价
high_24 24小时最高
low_24 24小时最低
volume_24 24小时成交量
amount_24 24小时成交额
prev_24 24小时前成交价,计算24小时涨跌幅用
time 最近一笔报价成交时间 微秒时间戳
sn 成交序列号
type 当前数据类型 “index” 指数,“spot” 现货 ,“options” 期权
status 状态 0:未上市,1:预上市,2:正常, 3:已停牌, 4:已退市

3. 获取最新的盘口

请求方式: GET

请求地址: /pub/openapi/v1/hq/orderbook

登录授权:

特殊说明: ask数组的key(价格)按照从小到大, bid数组的key(价格)按照从大到小

请求参数:

字段名 字段类型 是否必须 中文说明 备注
symbol string 交易对代码 如: BTC_USDT
{
	"data": {
		"ask": [
			[11303, 2.354],
			[11303.15, 1.9789],
			[11303.23, 1.7953],
			[11297.06, 1.3814],
			[11300, 0.0778],
			[11300.62, 0.028],
			[11302.79, 1.4581],
			[11300.21, 0.0994],
			[11300.22, 0.7582],
			[11302.66, 0.0524],
			[11302.68, 0.2115],
			[11296.45, 2.0452],
			[11296.57, 0.1962],
			[11296.58, 0.2082],
			[11298.07, 0.4463],
			[11300.44, 0.0013],
			[11301.19, 0.836],
			[11300.61, 0.0009],
			[11300.83, 0.055],
			[11303.14, 0.0437]
		],
		"bid": [
			[11264.32, 0.0113],
			[11261.87, 0.11],
			[11261.26, 0.1831],
			[11261.1, 0.0419],
			[11260.88, 0.0019],
			[11259.3, 1.1],
			[11258.51, 0.8361],
			[11264.33, 0.1838],
			[11261.14, 0.1954],
			[11258.71, 0.0765],
			[11261.23, 0.4217],
			[11264.08, 0.0336],
			[11261.49, 0.0552],
			[11260.89, 0.0468],
			[11260.75, 0.5703],
			[11296.36, 0.0024],
			[11264.09, 0.1658],
			[11261.25, 0.0473],
			[11260.21, 0.0391],
			[11264.11, 0.0008]
		],
		"sn": 214650314992616380,
		"time": 1596526503258399,
		"trade": 11296.45,
		"volume": 2.3337
	},
	"errmsg": "",
	"errno": 0
}
字段 名称
bid 价格-> 数量
ask 价格-> 数量
trade 最新一笔成交价
volume 最近一笔成交量

4. 获取最新的成交记录

请求方式: GET

请求地址: /pub/openapi/v1/hq/transaction

登录授权:

特殊说明:

请求参数:

字段名 字段类型 是否必须 中文说明 备注
symbol string 交易对代码 如: BTC_USDT
{
	"data": [{
		"symbol": "BTC_USDT",
		"price": 11294.07,
		"volume": 0.005,
		"amount": 56.47035,
		"direction": 2,
		"time_us": 1596526984520229,
		"sn": 214650314992617124,
		"open_mode": "other"
	}],
	"errmsg": "",
	"errno": 0
}

逐笔数据结构为数组,可能同时包括多条成交数据

key value
direction 买卖方向(1卖, 2买)
price 价格
volume 成交量
amount 成交额
time_us 成交微秒
sn 成交序列号
symbol 交易对代码
open_mode open 开仓, close 平仓 other 其他

行情WS

1. WS说明

接口地址

wss://openws.bitwellex.com/v2

wss://openws.bitwellex.co/v2

您可以自行比较使用openws.bitwellex.com和openws.bitwellex.co两个域名的延迟情况,选择延迟低的进行使用。

其中,openws.bitwellex.co域名对使用aws云服务的用户做了一定的链路延迟优化。

QA

QA1:

Q: ws的kline时间 和 kline接口返回历史数据里 date字段的值 单位不太一样 A: ws的单位是: us , 然后api的单位是: s

QA2:

Q: 比如 USDT_BTC-QUOTE 这条指令 如果我发了多次 会合并吗?我发了同样指令 会成倍的返回消息吗?

A: 会合并, 不会成倍推送消息, 服务端做了唯一校验,如果当前用户订阅了该key,二次订阅无效

QA3:

Q: 如果分钟,小时,天,分时来回的切换的话,我是不是要频繁的先给ws发送unsub请求才行? 先发送unsub 再发送sub

A: 对, 需要客户端unsub掉历史的, 防止ws泄露(例如用户点击了4下, 如果不unsub, 就会成4倍的推送消息)

建立连接

地址如上

ping text

由于服务器和客户端维护ws有心跳时间, 如果60s内无心跳,或者无数据通讯, 有可能会造成服务端或者客户端主动断开连接, 所以服务端提供ping text消息, 请在60s返回内定期发送ping text

格式: 客户端发送消息: ping 服务端回应: success

如果服务端未回复,有可能是服务端已经主动断开了连接, 请重连

2. 鉴权

鉴权发生在建立连接之后, 客户端主动发送text消息, 消息格式如下:

{
    "action":"auth",
    "type":"openapi",
    "access_key": "W2zxxxxND1Wxxxxtdt9gxxxxJFtxxxxQ",
    "signature": "4F65x5A2bLyMWVQj3Aqp+B4w+ivaA7n5Oi2SuYtCJ9o=",
    "timestamp": "1420674445201"
}

鉴权成功后服务端会返回鉴权结果:

{
    "action":"auth",
    "type":"openapi",
    "errmsg":"",
    "errno":0,
    "ts":1602583578
}

说明:

  1. 如果errno不为0, 则说明鉴权失败,失败具体信息参考errmsg
  2. 鉴权逻辑参考 api概述
  3. timestamp参数单位: ms, ts单位: s

3. 订阅数据方式

订阅消息需要客户端发送msg(json格式), symbol是交易对数组,所以支持批量和单个订阅

{
    "action":"sub",
    "symbol":["BTC_USDT","ETH_USDT","BTC_ETH"],
    "type":"quote"
}

字段说明:

action: sub订阅,unsub取消订阅

symbol: 交易对数组,支持批量和单个订阅

4. 数据索引

行情数据, symbol是具体的交易对(例如:BTC_USDT), type有如下枚举值:

5. 报价数据

{
"symbol":"BTC-0703-9000-P",
"trade":34.33,
"high_24":44.79,
"low_24":32.13,
"volume_24":30276,
"amount_24":1159539.43,
"prev_24":32.99,
"time":1593346801180223,
"sn":198669742410734082,
"type":"options",
"subtype":"quote",
"state":2
}

字段说明:

字段 字段说明
symbol 交易对
trade 当前价
high_24 24小时最高
low_24 24小时最低
volume_24 24小时成交量
amount_24 24小时成交额
prev_24 24小时前成交价,计算24小时涨跌幅用
time 最近一笔报价成交时间 微秒时间戳
sn 成交序列号
type 当前数据类型 “index” 指数,“spot” 现货 ,“options” 期权
status 状态 0:未上市,1:预上市,2:正常, 3:已停牌, 4:已退市

6. K线数据

 {
    "symbol":"BTC_USDT",
    "open":1.0,
    "high":1.0,
    "low":1.0,
    "volume":4.0,
    "amount":4.0,
    "close":1.0, 
    "subtype":"kline-15min",
    "time": 1592619538684837
 }    
字段 字段说明
open
high
low
close
time unix时间,单位 us
volume 这段时间成交量
amount 这段时间成交额

7. 逐笔数据

[
    {
    "symbol":"BTC-0703-9000-C",
    "price":39.01,
    "volume":4,
    "amount":156.04,
    "direction":1,
    "subtype":"",
    "open_mode":"open",
    "time_us":1593347347135782,
    "sn":198669755295637272
    },
    {
    "symbol":"BTC-0703-9000-C",
    "price":38.93,
    "volume":5,
    "amount":194.65,
    "direction":1,
    "subtype":"transaction",
    "time_us":1593347347135784,
    "sn":198669755295637272
    }
]

逐笔数据结构为数组,可能同时包括多条成交数据

字段 字段说明
direction 买卖方向(1卖, 2买)
price 价格
volume 成家量
amount 成交额
time_us 成交微秒
sn 成交序列号
symbol 交易对代码
open_mode open 开仓, close 平仓 other 其他

8. 盘口数据

{
    "bid":{
        "38.76":1,
        "38.64":1,
        "38.63":8,
        "38.62":3,
        "38.58":6,
    },
    "ask":{
        "38.87":6,
        "38.88":1,
        "38.89":6,
        "38.9":8,
        "38.97":2,
    },
    "trade":38.87,
    "volume":3,
   "symbol": "BTC_USDT",
   "subtype":"orderbook",
    "time":1593347487172380,
    "sn":198669755295637354
}

字段 字段说明
bid 委买盘口数组
—key 价格
—value 数量
ask 委卖盘口数组
—key 价格
—value 数量
trade 最新一笔成交价
volume 最近一笔成交量

9. 期权信息数据

{
    "theory_price":35.95,
    "delta":0.5389,
    "gamma":0.0047,
    "theta":-3.5326,
    "vega":41.3693,
    "leverage":12.5184,
    "iv":0,
    "open_positions":0,
    "symbol": "BTC-0703-9000-C",
    "subtype":"option"
}

字段说明:

字段 字段说明
theory_price 理论价格
delta delta
gamma gamma
theta theta
vega vega
leverage 杠杆率
iv 隐含波动率
open_positions 未平持仓数
symbol 交易对
subtype 订阅的type

用户相关WS

1. 概述

授权/数据格式同 行情ws 相关约定

2. 用户订单

订阅格式

{
    "action":"sub",
    "symbol":["USER_ORDER"],
    "type":"state_change" # 订单变更
}

响应数据

同订单列表数据格式

3. 用户期权

订阅格式

{
    "action":"sub",
    "symbol":["USER_OPTION"],
    "type":"pos_change" # 持仓变更
}

响应数据

{
	"symbol": "BTC-20201016-7500-C"
	"open_mode": "buy",
	"open_volume": 0,
	"frozen_volume": 0,
}
字段名 字段类型 说明
symbol string 交易对code
open_mode string 开仓方式, buy: 开仓买入, margin_sell:保证金卖出,covered_sell:备兑卖出
open_volume int 开仓数量
frozen_volume int 冻结数量