API 介绍
接入准备
交易对
交易对由基础币种和报价币种组成。以交易对 BTC/USDT 为例,BTC 为商品币种,USDT 为计价币种。
申请API Key
创建成功后请务必记住以下信息:
Secret Key
签名认证加密所使用的密钥(仅申请时可见)
接口鉴权
公共接口可用于获取基础信息和行情数据。公共接口无需认证即可调用。
私有接口可用于交易管理和账户管理。每个私有请求必须使用您的API Key进行签名验证。
接入URLs
REST API
https://api.hibt0.co/open-api
签名认证
API 请求在通过 internet 传输的过程中极有可能被篡改,为了确保请求未被更改,除公共接口(基础信息,行情数据)外的私有接口均必须使用您的 API Key 做加密处理,以校验参数或参数值在传输途中是否发生了更改。 每一个API Key需要有适当的权限才能访问相应的接口,每个新创建的API Key都需要分配权限。在使用接口前,请查看每个接口的权限类型,并确认你的API Key有相应的权限。
一个合法的请求所需要的内容:
方法请求地址:即访问服务器地址 https://api.hibt0.com/open-api。
API 访问密钥(X-ACCESS-KEY):您申请的 API Key 中的 Access Key。
必选和可选参数:每个方法都有一组用于定义 API 调用的必需参数和可选参数。可以在每个方法的说明中查看这些参数及其含义。
签名:加密计算得出的值,用于确保签名有效和未被篡改,为了您 API Key 的安全,一次参数签名 5 分钟后会过期 。
签名必要参数**:需要签名认证的接口,必须添加 reqTime 参数(传值为服务器最新时间,可通过 /v1/common/systemTime
接口获取)。
加密方式
规范要计算签名的请求 因为使用 HMAC 进行签名计算时,使用不同内容计算得到的结果会完全不同。所以在进行签名计算前,请先对请求进行规范化处理。下面以查询某订单详情请求为例进行说明:
下单请求URL
Copy https://api.hibt0.com/open-api/v1/trade/order?amount=0.12&direction=ASK&price=7126.4285&symbol=BTC_USDT&reqTime=1672502400000
对参数按照ASCII码顺序进行排序
Copy amount=0.12&direction=ASK&price=7126.4285&reqTime=1672502400000&symbol=BTC_USDT
将排完序的请求参数使用secretKey 进行HMAC SHA256进行加密,得到的结果
Copy 550ac73ace8c34372e0e1dd6631e890c7bd16697af8bb4e2908e966b50aba4e0
构建 http 请求使用
使用 X-ACCESS-KEY 存储access key信息,并在 header 中进行参数传递
使用 X-SIGNATURE 存储生成的签名信息,并在 header 中进行参数传递
请求方式
目前只有两种方法:GET和POST
POST请求,所有参数以form-data格式发送在请求主体(body)里
返回格式
所有的接口都是JSON格式。在JSON最上层有三个字段:message
, code
和 data
。前两个字段表示请求状态和信息,实际的业务数据在data
字段里。
Copy {
"message": "success",
"code": "0",
"data": ""
}
常见错误码
1xxx(访问失败类)
2xxx(业务失败类)
现货接口
基础信息接口
服务器时间
HTTP 请求
GET /v1/common/systemTime
鉴权:否
限流:100次/1秒
请求参数
此接口不接受任何参数。
返回字段
Copy {
"message": "success",
"code": "0",
"data": 1672502400000
}
所有交易对信息
HTTP 请求
鉴权:否
限流:5次/1秒
请求参数
此接口不接受任何参数。
返回字段
Copy {
"message": "success",
"code": "0",
"data": [
{
"symbol": "BTC/USDT", // 交易对
"baseCoinScale": 4, // 计价币数量精度
"coinScale": 4, // 商品币数量精度
"priceScale": 2, // 价格精度
"baseSymbol": "USDT", // 计价币种
"coinSymbol":"BTC", // 商品币种
"minTurnover": 10, // 最小挂单成交额
"minVolume": 0.001, // 最小下单量
"maxVolume": 50, // 最大下单量
"enable": 1 // 是否启用
},
{
"symbol": "ETH/USDT",
"baseCoinScale": 4,
"coinScale": 4,
"baseSymbol": "USDT",
"coinSymbol":"ETH",
"minTurnover": 10,
"minVolume": 0.01,
"maxVolume": 500,
"enable": 1
}
]
}
行情接口
最新成交价
此接口提供交易对当前最新成交价
HTTP 请求
GET /v1/market/ticker/price
鉴权:否
限流:10次/1秒
请求参数
返回字段
Copy {
"message": "success",
"code": "0",
"data": {
"tickerPrice": 40000
}
}
深度数据
此接口返回指定交易对的当前深度数据。
HTTP 请求
鉴权:否
限流:10次/1秒
请求参数
返回字段
Copy {
"message": "success",
"code": "0",
"data": {
"symbol" : "BTC/USDT",
"timestamp" : "2023-11-22 10:00:00",
"bids" : [ [ "36074.99", "0.27225537" ], [ "36074.81", "0.00967628" ] ],
"asks" : [ [ "36075.06", "0.55858424" ], [ "36075.24", "0.22475193" ] ]
}
}
账户接口
账户余额
此接口返回指定交易对的当前深度数据。
HTTP 请求
鉴权:是
限流:5次/1秒
请求参数
返回字段
Copy {
"message": "success",
"code": "0",
"data": [
{
"coin": "USDT",
"balance": 1000,
"frozenBalance": 1000,
"isLock": "IS_FALSE"
},{
"coin": BTC,
"balance": 1,
"frozenBalance": 0.01,
"isLock": "IS_TRUE"
}
]
}
交易接口
未完成挂单
HTTP 请求
鉴权:是
限流:10次/1秒
请求参数
返回字段
Copy {
"message": "success",
"code": "0",
"data": [
{
"orderId": "E1677194831589408768",
"clOrdId": "1677AAA",
"price": 35000,
"avgPrice": 0,
"amount": 0.1,
"tradedAmount": 0,
"turnover": 0,
"symbol": "BTC/USDT",
"baseSymbol": "USDT",
"coinSymbol": "BTC",
"direction": 0,
"status": 0,
"type": 1,
"completedTime": 1672502400000,
"canceledTime": 1672502400000,
"time": 1672502400000
},{
"orderId": "E1677269378757951488",
"clOrdId": "1677AAA",
"price": 2000,
"avgPrice": 0,
"amount": 1,
"tradedAmount": 0,
"turnover": 0,
"symbol": "ETH/USDT",
"baseSymbol": "USDT",
"coinSymbol": "ETH",
"direction": 1,
"status": 0,
"type": 1,
"completedTime": 1672502400000,
"canceledTime": 1672502400000,
"time": 1672502400000
}
]
}
历史挂单(范围 3 个月)
HTTP 请求
鉴权:是
限流:10次/1秒
请求参数
返回字段
Copy {
"message": "success",
"code": "0",
"data": [
{
"orderId": "E1677226372826791936",
"clOrdId": "1677AAA",
"price": 35000,
"avgPrice": 35000,
"amount": 0.1,
"tradedAmount": 0.1,
"turnover": 3500,
"symbol": "BTC/USDT",
"baseSymbol": "USDT",
"coinSymbol": "BTC",
"direction": 0,
"status": 1,
"type": 1,
"completedTime": 1672502400000,
"canceledTime": 1672502400000,
"time": 1672502400000
},{
"orderId": "E1677261905426776064",
"clOrdId": "1677AAA",
"price": 2000,
"avgPrice": 2000,
"amount": 1,
"tradedAmount": 1,
"turnover": 2000,
"symbol": "ETH/USDT",
"baseSymbol": "USDT",
"coinSymbol": "ETH",
"direction": 1,
"status": 1,
"type": 1,
"completedTime": 1672502400000,
"canceledTime": 1672502400000,
"time": 1672502400000
}
]
}
下单
HTTP 请求
鉴权:是
限流:20次/1秒
请求参数
返回字段
Copy {
"message": "success",
"code": "0",
"data": "E1677226372826791936"
}
撤销
HTTP 请求
鉴权:是
限流:20次/1秒
请求参数
返回字段
Copy {
"message": "success",
"code": "0",
"data": ""
}