跳到主要内容

接入说明

通用响应数据结构

响应示例

{
"success": true,
"code": 0,
"data": {
"symbol": "BTC_USD",
"fairPrice": 8000,
"timestamp": 1587442022003
}
}

{
"success": false,
"code":500,
"message": "系统内部错误!"
}

请求格式

当前Open-API直接三种来源的请求方式,分别为:APP、WEB、OPEN-API; 相应API接受GET,POST或DELETE类型的请求,post请求的Content-Type为:application/json.参数以json格式发送(参数命名规则为驼峰命名),get请求以requestParam形式发送(参数命名规则为'_'隔开) 每种请求来源对应的鉴权方式不同:

  1. 如果请求方式为OPEN-API,需在请求header里加上ApiKey参数,如果请求方式为APP,需在header里加上App-version。

  2. 对于公共接口,不需要授权或者签名。

  3. 对于私有接口,请求方式为WEB或者APP,需要在header中加上Authorization参数,值为对应token;请求方式为OPEN-API,需要在header中传入ApiKey、Request-Time、Signature、Revc-Window(可选)参数,Signature为签名字符串,签名规则如下:

1)签名时需要先获得请求参数字符串,无参时为"";

对于GET/DELETE请求,按字典序拼接业务参数以&间隔,并最终获得签名目标串(在批量操作的API中,若参数值中有逗号等特殊符号,这些符号在签名时需要做URL encode)。

对于POST请求,签名参数为json字符串(无需进行字典排序)。

2)获得参数字符串后,再拼接签名目标串,规则为:accessKey+时间戳+获取到的参数字符串。

3)使用HMAC SHA256算法对目标串进行签名,并最终将签名作为参数携带到header中。

4)参与签名的业务参数为null时,不参与签名,对于path参数,也不参与签名;注意get请求将参数拼接至url上时,如果参数为null,后台解析时,会解析成"",固当get请求,某参数为null时,不要传该参数,或者签名时,将该参数的值设置为"",否则会出现验签失败!

5)请求时将签名时用到的req_time的值放入header的Request-Time参数中,获得的签名字符串放入header的Signature参数中,将APIKEY的Access Key放在header的ApiKey参数中,其余业务参数按正常传递即可。

  1. 对于APP和WEB,POST请求需要做签名,获取签名规则为:md5(time + body + md5(token + time).substring(7)),其中time为当前时间戳,body为json参数,时间需于服务器时间差值在2分钟以内,可以通过api/v1/contract/ping接口获取服务器时间;签名之后得到签名字符串,放到header中,key为:x-mxc-sign,另外将time传入header中,key为:x-mxc-nonce

时间安全

所有签名接口均需要传入header参数Request-Time,即以毫秒表示的时间戳字符串,服务端接收到请求后会验证请求发出的时间 范围。若接受请求时,收到的req_time小于或大于服务端时间10秒(默认值)以上(该时间窗口值可以通过发送可选header参数 Recv-Window来自定义,其最大值为60,不推荐使用30秒以上的recv_window),则认为该请求无效

创建API key

用户可以在MEXC站点个人中心,创建API key,其包括两个部分,Access keyAPI的访问秘钥,Secret key对应的秘钥,用于签名计算及验证。

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

创建 API Key 时可以选择绑定 IP 地址,未绑定 IP 地址的 API Key 有效期为90天。(强烈建议绑定 IP 地址)

这两个密钥与账号安全紧密相关,无论何时都请勿向其它人透露。