Skip to content

基础信息

API 基本信息

  • 接口可能需要用户的 API Key,如何创建API-KEY请参考这里
  • 本篇列出接口的baseurl: https://api.toobit.com
  • 所有接口的响应都是 JSON 格式。
  • 所有时间、时间戳均为UNIX时间,单位为毫秒。

接口的基本信息

  • GET方法的接口, 参数必须在query string中发送.
  • POST, PUT, 和 DELETE 方法的接口, 参数可以在 query string中发送,也可以在 request body中发送(content type application/x-www-form-urlencoded)。允许混合这两种方式发送参数。不建议同一个参数名在query stringrequest body中都有,若存在,那么query string中的会被优先采用。
  • 对参数的顺序不做要求。

HTTP 返回代码

  • HTTP 4XX 错误码用于指示错误的请求内容、行为、格式。问题在于请求者。
  • HTTP 403 错误码表示违反WAF限制(Web应用程序防火墙)。
  • HTTP 429 错误码表示警告访问频次超限,你有义务停止发送请求。
  • HTTP 5XX 错误码用于指示服务侧的问题。

访问限制

访问限制基本信息

  • /api/v1/exchangeInfo rateLimits 数组中包含与交易的有关REQUEST_WEIGHTORDERS速率限制相关的对象。这些在 限制种类 (rateLimitType) 下的 枚举定义 部分中进一步定义。
  • 违反任何一个速率限制时,将返回429。
  • 每一个接口均有一个相应的权重(weight),有的接口根据参数不同可能拥有不同的权重。越消耗资源的接口权重就会越大。
  • 收到429时,您有责任停止发送请求,不得滥用API。

TIP

建议您尽可能多地使用websocket消息获取相应数据,以减少请求带来的访问限制压力。

接口鉴权类型

  • 每个接口都有自己的鉴权类型,鉴权类型决定了访问时应当进行何种鉴权。
  • 鉴权类型会在本文档中各个接口名称旁声明,如果没有特殊声明即默认为 NONE。
  • 如果需要 API-keys,应当在HTTP头中以 X-BB-APIKEY字段传递。
  • API-keys 与 secret-keys 是大小写敏感的。
  • API-keys可以被配置为只拥有访问一些接口的权限。 例如, 一个 API-key 仅可用于发送交易指令, 而另一个 API-key 则可访问除交易指令外的所有路径。
  • 默认 API-keys 可访问所有鉴权路径.
鉴权类型描述
NONE端点可以自由访问。
TRADE端点需要发送有效的API-Key和签名。
USER_DATA端点需要发送有效的API-Key和签名
USER_STREAM端点需要发送有效的API-Key。
MARKET_DATA端点需要发送有效的API-Key。
  • TRADEUSER_DATA 接口是 签名(SIGNED)接口.

需要签名的接口

  • 调用这些接口时,除了接口本身所需的参数外,还需要传递signature即签名参数
  • 签名使用HMAC SHA256算法. API-KEY所对应的API-Secret作为 HMAC SHA256 的密钥,其他所有参数作为HMAC SHA256的操作对象,得到的输出即为签名
  • 签名大小写不敏感
  • 当同时使用query string和request body时,HMAC SHA256的输入query string在前,request body在后

时间同步安全

  • 签名接口均需要传递timestamp参数, 其值应当是请求发送时刻的unix时间戳(毫秒)
  • 服务器收到请求时会判断请求中的时间戳,如果是5000毫秒之前发出的,则请求会被认为无效。这个时间窗口值可以通过发送可选参数recvWindow来自定义
  • 另外,如果服务器计算得出客户端时间戳在服务器时间的'未来'一秒以上,也会拒绝请求。

逻辑伪代码:

java
if (timestamp < (serverTime + 1000) && (serverTime - timestamp) <= recvWindow) {
  // process request
} else {
  // reject request
}

关于交易时效性 互联网状况并不100%可靠,不可完全依赖,因此你的程序本地到TooBit服务器的时延会有抖动. 这是我们设置recvWindow的目的所在,如果你从事高频交易,对交易时效性有较高的要求,可以灵活设置recvWindow以达到你的要求。

TIP

不推荐使用5秒以上的recvWindow

公开API参数

术语解释

  • base asset 指一个交易对的交易对象,即写在靠前部分的资产名
  • quote asset 指一个交易对的定价资产,即写在靠后部分资产名

枚举定义

订单状态:

  • PENDING_NEW - 下单请求接收成功
  • NEW - 新订单,暂无成交
  • PARTIALLY_FILLED - 部分成交
  • FILLED - 完全成交
  • CANCELED - 已取消
  • PENDING_CANCEL - 等待取消
  • REJECTED - 被拒绝

订单类型:

通用类型:

  • LIMIT - 限价单
  • MARKET - 市价单
  • LIMIT_MAKER - maker限价单

合约特有:

  • STOP - 计划委托
  • STOP_SHORT_PROFIT - 止盈
  • STOP_LONG_PROFIT - 止盈
  • STOP_LONG_LOSS - 止损
  • STOP_SHORT_LOSS - 止损
  • LIQUI_IOC_ORDER - 强平
  • LIQUI_ADL_ORDER - ADL

订单方向:

现货:

  • BUY - 买单
  • SELL - 卖单

合约:

  • BUY_OPEN - 开多 买单 开仓买入
  • BUY_CLOSE - 平空 买单 平仓买入
  • SELL_OPEN - 开空 卖单 开仓卖出
  • SELL_CLOSE - 平多 卖单 平仓卖出

计划委托 或者 止盈止损订单状态 (status):

  • ORDER_NEW - 新建委托
  • ORDER_FILLED - 委托触发成功
  • ORDER_REJECTED - 委托拒绝
  • ORDER_CANCELED - 取消委托
  • ORDER_FAILED - 委托触发失败

止盈止损类型(type):

  • STOP_LONG_PROFIT - 多仓止盈
  • STOP_LONG_LOSS - 多仓止损
  • STOP_SHORT_PROFIT - 计划委托-空仓止盈
  • STOP_SHORT_LOSS - 计划委托-空仓止损

交易对类型 (合约):

  • FUTURE - 期货

价格类型 (合约):

  • INPUT - 系统将会用你输入的价格来撮合订单。
  • MARKET - 订单会以 最新成交价 * (1 ± 5%) 撮合。

有效方式:

  • GTC - Good Till Cancel 成交为止
  • IOC - Immediate or Cancel 无法立即成交(吃单)的部分就撤销
  • FOK - Fill or Kill 无法全部立即成交就撤销

K线间隔:

m -> 分钟; h -> 小时; d -> 天; w -> 周; M -> 月

  • 1m
  • 3m
  • 5m
  • 15m
  • 30m
  • 1h
  • 2h
  • 4h
  • 6h
  • 8h
  • 12h
  • 1d
  • 1w
  • 1M

频率限制类型:

  • REQUESTS_WEIGHT
  • ORDERS

频率限制区间

  • SECOND
  • MINUTE
  • DAY

基于 MIT 许可发布