现货交易

普通用户现货交易使用的API

接入准备

交易对

交易对由基础币种和报价币种组成。以交易对 BTC/USDT 为例,BTC 为商品币种,USDT 为计价币种。

申请API Key

手机访问HibtApp,进入个人设置页找到API管理,申请API Key,创建成功后请务必记住以下信息:

  • Access Key API 访问密钥

  • Secret Key 签名认证加密所使用的密钥(仅申请时可见)

  • Password管理API时使用

接口鉴权

公共接口可用于获取基础信息和行情数据。公共接口无需认证即可调用。

私有接口可用于交易管理和账户管理。每个私有请求必须使用您的API Secret Key进行签名验证。

REST API

https://api.hibt0.com/user-open-api

签名认证

除公共接口(基础信息,行情数据)外的私有接口均必须使用您的 API Key 做加密处理,以校验参数或参数值在传输途中是否发生了更改。 每一个API Key需要有适当的权限才能访问相应的接口,每个新创建的API Key都需要分配权限。在使用接口前,确认你的API Key有相应的权限。

一个合法的请求所需要的内容:

  • API 访问密钥(X-ACCESS-KEY):您申请的 API Key 中的 Access Key。

  • 请求时间戳(X-TIMESTAMP): 请求时的毫秒时间戳,签名时使用

  • 必选和可选参数:每个方法都有一组用于定义 API 调用的必需参数和可选参数。可以在每个方法的说明中查看这些参数及其含义。

  • 签名:加密计算得出的值,用于确保签名有效和未被篡改,为了您 API Key 的安全,一次参数签名 5 分钟后会过期

  • 签名必要参数**:需要签名认证的接口,必须添加 reqTime 参数(传值为服务器最新时间,可通过/v1/common/systemTime 接口获取)。

加密方式

规范要计算签名的请求 因为使用 HMAC 进行签名计算时,使用不同内容计算得到的结果会完全不同。所以在进行签名计算前,请先对请求进行规范化处理。下面以查询某订单详情请求为例进行说明:

下单请求URL

https://api.hibt0.com/user-open-api/v1/trade/order?amount=0.12&direction=ASK&price=7126.4285&symbol=BTC/USDT&reqTime=1672502400000

对参数按照ASCII码顺序进行排序,并且带上请求时间戳timestamp

amount=0.12&direction=ASK&price=7126.4285&reqTime=1672502400000&symbol=BTC/USDT&timestamp=1672502400000

将排完序的请求参数使用secretKey 进行HMAC SHA256进行加密,得到的结果

550ac73ace8c34372e0e1dd6631e890c7bd16697af8bb4e2908e966b50aba4e0

构建 http 请求使用

  1. 使用X-ACCESS-KEY存储access key信息,并在 header 中进行参数传递

  2. 使用X-SIGNATURE存储生成的签名信息,并在 header 中进行参数传递

  3. 使用X-TIMESTAMP存储请求时间戳,并在 header 中进行参数传递

请求方式

目前只有两种方法:GETPOST

  • GET请求:所有的参数都在路径参数里

  • POST请求,所有参数以form-data格式发送在请求主体(body)里

返回格式

所有的接口都是JSON格式。在JSON最上层有三个字段:message, codedata。前两个字段表示请求状态和信息,实际的业务数据在data字段里。

{
  "message": "success",
  "code": "0",
  "data": ""
}

常见错误码

1xxx(访问失败类)

2xxx(业务失败类)

错误码
描述

0

成功

1001

接口请求限流

1101

API Key鉴权失败

1102

密钥解密失败

1103

访问 IP 不在白名单内

2001

参数为空

2002

时间范围错误

2003

请求时间参数为空

2004

请求时间已过期

2101

账户不存在

2102

API Key不存在

2103

交易对不存在

2201

用户 API Key 被禁用

2202

IP 被禁用

2203

API过期

2204

API 权限不足

9999

其他异常,具体参照 message 内容

现货接口

基础信息接口

服务器时间

HTTP 请求

  • GET /v1/common/systemTime

鉴权:否

限流:100次/1秒

请求参数

此接口不接受任何参数。

返回字段

{
  "message": "success",
  "code": "0",
  "data": 1672502400000
}

所有交易对信息

HTTP 请求

  • GET /v1/common/symbols

鉴权:否

限流:5次/1秒

请求参数

此接口不接受任何参数。

返回字段

字段名称
数据类型
描述

symbol

string

交易对

baseCoinScale

integer

计价币数量精度

coinScale

integer

商品币数量精度

priceScale

integer

价格精度

baseSymbol

string

基础币

coinSymbol

string

计价币

minTurnover

decimal

最小挂单成交额

minVolume

decimal

最小下单量

maxVolume

decimal

最大下单量

enable

integer

是否支持交易(0-否;1-是)

返回示例

{
  "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秒

请求参数

参数
数据类型
是否必须
描述

symbol

string

true

交易对

返回字段

字段名称
数据类型
描述

tickerPrice

decimal

最新成交价

返回示例

{
  "message": "success",
  "code": "0",
  "data": {
      "tickerPrice": 40000
    }
}

深度数据

此接口返回指定交易对的当前深度数据。

HTTP 请求

  • GET /v1/market/depth

鉴权:否

限流:10次/1秒

请求参数

参数
数据类型
是否必须
描述
取值范围

symbol

string

true

交易对

depth

integer

true

返回深度的数量

最大 50 档

返回字段

字段名称
数据类型
描述

symbol

string

交易对

bids

array

买盘深度列表[[价格,数量]]

asks

array

买盘深度列表[[价格,数量]]

timestamp

datetime

时间

返回示例

{
  "message": "success",
  "code": "0",
  "data": {
      "symbol" : "BTC/USDT",
      "timestamp" : "1723199363658",
      "bids" : [ [ "36074.99", "0.27225537" ], [ "36074.81", "0.00967628" ] ],
      "asks" : [ [ "36075.06", "0.55858424" ], [ "36075.24", "0.22475193" ] ]
  }
}

账户余额

此接口返回指定币种的余额信息

HTTP 请求

  • POST /v1/account/balance

鉴权:是

限流:5次/1秒

请求参数

参数
数据类型
是否必须
描述

coin

string

false

币种

返回字段

字段名称
数据类型
描述

coin

string

币种

balance

decimal

余额

frozenBalance

decimal

冻结余额

isLock

string

是否锁定

返回示例

{
  "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 请求

  • POST /v1/account/bill

鉴权:是

限流:5次/1秒

请求参数

参数
数据类型
是否必须
描述

coin

string

true

币种

startTime

long

true

开始时间(ms)

endTime

long

true

结束时间(ms)

返回字段

字段名称
数据类型
描述

uid

long

用户uid

firstLevelBillType

string

一级账单类型,2交易

secondLevelBillType

string

二级账单类型名称,1充币;4现货买入;5现货卖出

tradeType

int

交易类型;1:现货

amount

decimal

数量

coinUnit

string

币种

createTime

long

创建时间(ms)

返回示例

{
  "message": "success",
  "code": "0",
  "data": [
    {
      "uid": "123456",
      "firstLevelBillType": 2,
      "secondLevelBillType: 4,
      "tradeType: 1,
      "amount: 15.00,
      "coinUnit": "USDT",
      "createTime": 1672502400000
    }
  ]
}

当前委托

HTTP 请求

  • POST /v1/trade/openOrder

鉴权:是

限流:10次/1秒

请求参数

参数
数据类型
是否必须
描述

symbol

string

true

交易对

direction

integer

true

订单方向(0-买;1-卖)

返回字段

字段名称
数据类型
描述

orderId

string

挂单 ID

clOrdId

string

客户自定义订单ID

price

decimal

订单价格

avgPrice

decimal

成交均价

amount

decimal

买盘深度列表

tradedAmount

decimal

已成交数量

turnover

decimal

交易额(已成交数量*成交价格)

symbol

string

交易对

baseSymbol

string

计价币种

coinSymbol

string

商品币种

direction

integer

方向(0-买;1-卖)

status

integer

状态(0-交易中;1-完成;2-取消;3-超时;4-部分成交;)

type

integer

类型(0-市价;1-限价;)

completedTime

long

订单完成时间

canceledTime

long

订单取消时间

time

long

订单创建时间

返回示例

{
  "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 请求

  • POST /v1/trade/history

鉴权:是

限流:10次/1秒

请求参数

参数
数据类型
是否必须
描述

symbol

string

true

交易对

startTime

long

true

开始时间(ms)

endTime

long

true

结束时间(ms)

返回字段

字段名称
数据类型
描述

orderId

string

挂单 ID

clOrdId

string

客户自定义订单ID

price

decimal

订单价格

avgPrice

decimal

成交均价

amount

decimal

买盘深度列表

tradedAmount

decimal

已成交数量

turnover

decimal

交易额(已成交数量*成交价格)

symbol

string

交易对

baseSymbol

string

计价币种

coinSymbol

string

商品币种

direction

integer

方向(0-买;1-卖)

status

integer

状态(0-交易中;1-完成;2-取消;3-超时;4-部分成交;)

type

integer

类型(0-市价;1-限价;)

completedTime

long

订单完成时间

canceledTime

long

订单取消时间

time

long

订单创建时间

返回示例

{
  "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 请求

  • POST /v1/trade/order

鉴权:是

限流:20次/1秒

请求参数

参数
数据类型
是否必须
描述

symbol

string

true

交易对

price

decimal

true

价格(市价单传 0 即可)

amount

decimal

true

数量(市价买单:表示 需要买入的交易额,以USDT 为单位;市价卖单:表示需要卖出的商品币数量;)

direction

integer

true

方向(0-买;1-卖)

type

integer

true

类型(0-市价;1-限价)

返回字段

字段名称
数据类型
描述

data

string

挂单 ID

返回示例

{
  "message": "success",
  "code": "0",
  "data": "E1677226372826791936"
}

撤销委托

HTTP 请求

  • POST /v1/trade/cancel

鉴权:是

限流:20次/1秒

请求参数

参数
数据类型
是否必须
描述

orderId

string

true

订单 ID

返回示例

{
  "message": "success",
  "code": "0",
  "data": ""
}

返佣列表

HTTP 请求

  • POST /v1/account/rebateInfo

鉴权:是

限流:5次/1秒

请求参数

返回字段

字段名称
数据类型
描述

invitedUID

long

被邀请人UID

parentUID

long

邀请人(上级)UID

createTime

long

创建时间(ms)

coin

string

返佣币种

rebateAmount

decimal

返佣数量

rebateUsdtAmount

decimal

返佣代币折合usdt数量

返回示例

{
  "message": "success",
  "code": "0",
  "data": [
    {
      "invitedUID": "123456",
      "parentUID": "45678",
      "coin": "BTC",
      "rebateAmount": 0.1,
      "rebateUsdtAmount": 0.1,
      "createTime": 1672502400000
    }
  ]
}

K线列表

HTTP 请求

  • POST /v1/market/kline

鉴权:是

限流:5次/1秒

请求参数

参数
数据类型
是否必须
描述

symbol

string

true

交易对

period

string

true

"1min", "5min", "15min", "30min", "60min", "4hour", "1day", "1week", "1mon", "1year"

size

int

false

获取数量,默认为100,最大500

from

long

true

开始时间(ms)

to

long

true

结束时间(ms)

返回字段

字段名称
数据类型
描述

openPrice

decimal

开盘

highestPrice

decimal

最高价

lowestPrice

decimal

最低价

closePrice

decimal

收盘价

time

long

k线时间(ms)

volume

decimal

成交数量

turnover

decimal

成交额

返回示例

{
  "message": "success",
  "code": "0",
  "data": [
    {
      "openPrice": 0.5,
      "highestPrice": 1.5,
      "lowestPrice": 0.5,
      "closePrice": 0.1,
      "volume": 0.1,
      "time": 1672502400000,
      "turnover": 1.2
    }
  ]
}

用户信息

HTTP 请求

  • POST /v1/account/uInfo

鉴权:是

限流:5次/1秒

请求参数

返回字段

字段名称
数据类型
描述

uid

long

用户uid

email

string

邮箱

mobile

string

手机号

parentUid

long

邀请人uid

返回示例

{
  "message": "success",
  "code": "0",
  "data": 
    {
      "uid": "123456",
      "email": "45678@qq.com",
      "mobile": 13800138000,
      "parentUid": 45678
    }
}

现货WebSocket

请求方式

例如wss://api.hibt0.com/user-open-api/ws

深度数据

鉴权:否

推送频率:500ms

请求参数

参数
数据类型
是否必须
描述
取值范围

topic

string

true

主题

默认32档

method

string

true

SUBSCRIBE;UNSUBSCRIBE

请求示例

{
  "topic": "/spot/depth/BTC/USDT",// /spot/depth/symbol
  "method":"SUBSCRIBE"
}

返回字段

字段名称
数据类型
描述

symbol

string

交易对

bids

array

买盘深度列表

asks

array

买盘深度列表

time

long

时间

返回示例

{
  "data": {
    "asks": [
      ["104539.7", "0.78920499"],
      ["104539.8", "0.84600278"],
      ["104539.9", "0.84761218"],
      ["104540.1", "0.70833188"],
      ["104540.2", "1.92720935"]
    ],
    "bids": [
      ["104539.0", "0.79127465"],
      ["104538.9", "0.56433672"],
      ["104538.7", "0.66290532"],
      ["104538.6", "0.66611411"],
      ["104538.5", "1.20910389"]
    ],
    "symbol": "BTC/USDT",
    "time": 1734344532790
  },
  "topic": "/spot/depth/BTC/USDT"
}

实时行情

鉴权:否

推送频率:500ms

请求示例

{
  "method": "SUBSCRIBE",
  "topic": "/spot/thumb/BTC/USDT"
}

返回字段

字段名称
数据类型
描述

symbol

string

交易对

open

string

24小时开盘价

high

string

24小时最高价

low

string

24小时最低价

close

string

24小时收盘价

chg

string

24小时涨跌幅

change

string

24小时涨跌额

volume

string

24小时成交量

turnover

string

24小时成交额

返回示例

{
  "data": {
    "change": "2148.3",
    "chg": "0.0211",
    "close": "104400",
    "high": "106648",
    "low": "102147.5",
    "open": "102251.7",
    "price": "104400",
    "symbol": "BTC/USDT",
    "turnover": "121939376.554075",
    "volume": "1169.3656799256694"
  },
  "topic": "/spot/thumb/BTC/USDT"
}

最新成交

鉴权:否

推送频率:1000ms

请求示例

{
  "method":"SUBSCRIBE",
  "topic": "/spot/trade/BTC/USDT"
}

返回字段

字段名称
数据类型
描述

symbol

string

交易对

amount

string

成交量

price

string

成交价

side

integer

成交方向:0=买,1=卖

time

long

成交时间

turnover

string

成交额

返回示例

{
    "data": [
        {
            "amount": "0.0000992",
            "price": "104592.5",
            "side": 1,
            "symbol": "BTC/USDT",
            "time": 1734345158326,
            "turnover": "10.3755768"
        }
    ],
    "topic": "/spot/trade/BTC/USDT"
}

委托订单

鉴权:accessKey

推送频率:实时

订阅该主题,需要保持连接才能收到实时消息,因此需要客户端每隔15秒发送ping请求,当接受到pong时表明连接正常,否则需要重新订阅

请求示例

{
  "topic": "/spot/order/198931902000XXXX",
  "method":"SUBSCRIBE",
  "accessKey":"xxxx",
  "sign":"xxx"
}

返回字段

字段名称
数据类型
描述

symbol

string

交易对

orderId

string

订单编号

amount

string

订单数量买base Amount,卖coin Amount

baseSymbol

string

结算币种

coinSymbol

string

交易币种

side

integer

0买1卖

status

integer

1=已完成;2=已取消

price

string

委托价格;市价单为0

time

long

订单状态更新时间(ms)

tradedAmount

decimal

成交数量

turnover

decimal

成交额

type

integer

0市价1限价

uid

long

UID

返回示例

{
    "data": {
        "amount": "6",
        "baseSymbol": "USDT",
        "coinSymbol": "BTC",
        "orderId": "E1868931253529608267",
        "price": "0",
        "side": 0,
        "status": 1,
        "symbol": "BTC/USDT",
        "time": 1734422908562,
        "tradedAmount": "0.000056108851171272",
        "turnover": "6",
        "type": 0,
        "uid": 1989319020001465
    },
    "topic": "/spot/order/198931902000xxxx"
}

Last updated