快速入门

接入准备

如需使用API ,请先登录网页端,完成API key的申请和权限配置,再据此文档详情进行开发和交易。

您可以点击 这里 创建 API Key。

每个用户可创建10组Api Key,每个Api Key可对应设置读取、交易两种权限。

权限说明如下:

  • 读取权限:读取权限用于对数据的查询,例如:行情数据。

  • 交易权限:交易权限用于下单、撤单等接口。

创建成功后请务必记住以下信息:

  • APIKey API交易的身份标识,随机算法生成。

  • Secretkey 私钥,由系统随机生成,用于签名的生成。

  • Passphrase 口令,由用户自己设定,需要注意的是,Passphrase忘记之后是无法找回的,需要重新创建APIKey。

创建 APIKey 时可以绑定 IP 地址,未绑定 IP 地址的 APIKey出于安全考虑,强烈建议您绑定 IP 地址。

风险提示 :这三个密钥与账号安全密切相关,请牢记Passphrase,无论何时都请勿向他人透露。 这三个密钥任意一个泄露可能会造成您的资产损失,若发现APIKey泄露请尽快删除该APIKey。

接口类型

本章节主要为接口类型分以下两个方面:

  • 公共接口

  • 私有接口

公共接口

公共接口可用于获取配置信息和行情数据。公共请求无需认证即可调用。

私有接口

私有接口可用于订单管理和账户管理。每个私有请求必须使用规范的验证形式进行签名。

私有接口需要使用您的APIKey进行验证。

访问限制

本章节主要为访问限制:

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

Rest API

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

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

特殊说明:批量下单时,若下4个币对,每个币对10个订单时,计为一次请求。

API公开参数

side(交易方向)

字段
说明

sell

buy

orderType(订单类型)

字段
说明

limit

限价

market

市价

force(订单类型)

字段
说明

normal

不用特殊控制类型订单

postOnly

postOnly类型订单

fok

全部成交或立即取消(FOK)

ioc

立即成交并取消剩余(IOC)

status(订单状态)

字段
说明

new

未成交

partial_fill

部分成交

full_fill

全部成交

cancelled

已撤销

groupType(账单流水大类型)

字段
说明

deposit

充值

withdraw

提现

transaction

交易

transfer

划转

other

其他

bizType(账单流水业务类型)

字段
说明

deposit

充值

withdraw

提现

buy

sell

transfer-in

转入

transfer-out

转出

status(充提订单状态)

字段
说明

cancel

取消

reject

拒绝

success

成功

wallet-fail

钱包失败

wallet-processing

钱包处理中

first-audit

初审

recheck

复审

first-reject

初审拒绝

recheck-reject

复审拒绝

type(用户提币地址查询)

字段
说明

chain-on

链上

inner-transfer

内部地址

accountType(账户类型)

不区分大小写

字段
说明

EXCHANGE

现货账户

OTC_SGD

OTC账户

CONTRACT

合约账户

USD_MIX

混合合约账户

USDT_MIX

USDT专业合约账户

K线间隔(granularity)

  • 1min(1分钟)

  • 5min(5分钟)

  • 15min(15分钟)

  • 30min(30分钟)

  • 1h(1小时)

  • 4h(4小时)

  • 12h(12小时)

  • 1day(1天)

  • 1week(1周)

签名

ACCESS-SIGN的请求头是对 timestamp + method.toUpperCase() + requestPath + "?" + queryString + body 字符串(+表示字符串连接)使用 HMAC SHA256 方法加密,通过BASE64 编码输出而得到的。

签名各字段说明

  • timestamp:与 ACCESS-TIMESTAMP 请求头相同。

  • method:请求方法(POST/GET),字母全部大写。

  • requestPath:请求接口路径。

  • queryString:请求URL中(?后的请求参数)的查询字符串。

  • body:请求主体对应的字符串,如果请求没有主体(通常为GET请求)则body可省略。

queryString为空时,签名格式

timestamp + method.toUpperCase() + requestPath + body

queryString不为空时,签名格式

timestamp + method.toUpperCase() + requestPath + "?" + queryString + body

举例说明

获取深度信息,以 btcusdt 为例:

  • Timestamp = 1591089508404

  • Method = "GET"

  • requestPath = "/api/spot/v1/market/depth"

  • queryString= "?symbol=btcusdt_spbl&limit=20"

生成待签名的字符串:

'1591089508404GET/api/spot/v1/market/depth?symbol=btcusdt_spbl&limit=20'

下单,以 btcusdt 为例:

  • Timestamp = 1561022985382

  • Method = "POST"

  • requestPath = "/api/spot/v1/order/order"

  • body = {"symbol":"btcusdt_spbl","quantity":"8","side":"buy","price":"1","orderType":"limit","clientOrderId":"ww#123456"}

生成待签名的字符串:

'1561022985382POST/api/spot/v3/order/order{"symbol":"btcusdt_spbl","size":"8","side":"buy","price":"1","orderType":"limit","clientOrderId":"ww#123456"}'

生成最终签名的步骤

第1步,将待签名字符串使用私钥secretkey进行hmac sha256加密

Signature = hmac_sha256(secretkey, Message)

第2步,对于Signature进行base64编码

Signature = base64.encode(Signature)

请求交互

所有请求基于Https协议,请求头信息中Content-Type 需要统一设置为: 'application/json'。

请求交互说明

  • 请求参数:根据接口请求参数规定进行参数封装。

  • 提交请求参数:将封装好的请求参数通过GET/POST方式提交至服务器。

  • 服务器响应:服务器首先对用户请求数据进行参数安全校验,通过校验后根据业务逻辑将响应数据以JSON格式返回给用户。

  • 数据处理:对服务器响应数据进行处理。

成功

HTTP状态码200表示成功响应,并可能包含内容。如果响应含有内容,则将显示在相应的返回内容里面。

常见错误码

  • 400 Bad Request – Invalid request format 请求格式无效

  • 401 Unauthorized – Invalid API Key 无效的API Key

  • 403 Forbidden – You do not have access to the requested resource 请求无权限

  • 404 Not Found 没有找到请求

  • 429 Too Many Requests 请求太频繁被系统限流

  • 500 Internal Server Error – We had a problem with our server 服务器内部错误

  • 如果失败body带有错误描述信息

标准规范

时间戳

请求签名中的ACCESS-TIMESTAMP的单位是毫秒。请求的时间戳必须在API服务时间的30秒内,否则请求将被视为过期并被拒绝。 如果本地服务器时间和API服务器时间之间存在较大的偏差,那么我们建议您使用通过查询API服务器时间来更新http header。

限频规则

如果请求过于频繁系统将自动限制请求,并在http header中返回429 too many requests状态码。

  • 公共接口:如行情接口,统一限频为2秒最多20个请求。

  • 授权接口:通过apikey限制授权接口的调用,参考每个接口的限频规则限频。

请求格式

目前只有两种格式的请求方法:GET和POST

  • GET: 参数通过queryString在路径中传输到服务器。

  • POST: 参数按照json格式发送body传输到服务器。

Last updated