跳到主要内容

基本信息

接入URL

请选用以下的baseurl进行API请求:

  • https://api.mexc.com

HTTP 返回代码

  • HTTP 4XX 错误码用于指示错误的请求内容、行为、格式。问题在于请求者。
  • HTTP 401 表示身份认证、权限错误。
  • HTTP 403 错误码表示违反WAF限制(Web应用程序防火墙)。
  • HTTP 429 错误码表示警告访问频次超限,即将被封IP。
  • HTTP 5XX 错误码用于指示MEXC服务端的问题。

请求格式

相应API接受GET,POST或DELETE类型的请求

  • GET 方法的接口, 参数必须在 query string中发送。
  • POST, PUT, 和 DELETE 方法的接口,参数可以在内容形式为application/x-www-form-urlencoded的 query string 中发送,也可以在 request body 中以application/json的形式发送。如果你喜欢,也可以混合这两种方式发送参数。
  • 对参数的顺序不做要求。但如果同一个参数名在query string和request body中都有,query string中的会被优先采用。

返回格式

所有接口的返回数据均为JSON形式

Header操作的组成

请求Header中签名相关参数

组成部分说明
X-MEXC-APIKEYAPI key中的access key
Content-Typeapplication/json

签名

  • 调用SIGNED接口时,除了接口本身所需的参数外,还需要在query string 或 request body中传递 signature, 即签名参数(在批量操作的API中,若参数值中有逗号等特殊符号,这些符号在签名时需要做URL encode,注意encode只支持大写)。
  • 签名使用HMAC SHA256算法. API-KEY所对应的API-Secret作为 HMAC SHA256 的密钥,其他所有参数作为HMAC SHA256的操作对象,得到的输出即为签名。
  • 签名 目前只支持小写
  • "totalParams"定义为与"request body"串联的"query string"。

时间安全

伪代码示例

 if (timestamp < (serverTime + 1000) && (serverTime - timestamp) <= recvWindow)
{
// process request
}
else
{
// reject request
}
  • 签名接口均需要传递timestamp参数,其值应当是请求发送时刻的unix时间戳(毫秒)。
  • 服务器收到请求时会判断请求中的时间戳,如果是5000毫秒之前发出的,则请求会被认为无效。这个时间空窗值可以通过发送可选参数recvWindow来定义。

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

POST /api/v3/order 举例

Example 1

HMAC SHA256 signature:

$ echo -n "symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000&timestamp=1644489390087" | openssl dgst -sha256 -hmac "45d0b3c26f2644f19bfb98b07741b2f5"
(stdin)= 323c96ab85a745712e95e63cad28903dd8292e4a905e99c4ee3932023843a117
curl command:

(HMAC SHA256)
$ curl -H "X-MEXC-APIKEY: mx0aBYs33eIilxBWC5" -X POST 'https://api.mexc.com/api/v3/order' -d 'symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000&timestamp=1644489390087&signature=323c96ab85a745712e95e63cad28903dd8292e4a905e99c4ee3932023843a117'

Example 2

HMAC SHA256 signature:

$ echo -n "symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000&timestamp=1644489390087" | openssl dgst -sha256 -hmac "45d0b3c26f2644f19bfb98b07741b2f5"
(stdin)= fd3e4e8543c5188531eb7279d68ae7d26a573d0fc5ab0d18eb692451654d837a
curl command:

(HMAC SHA256)
$ curl -H "X-MEXC-APIKEY: mx0aBYs33eIilxBWC5" -X POST 'https://api.mexc.com/api/v3/order' -d 'symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000&timestamp=1644489390087&signature=fd3e4e8543c5188531eb7279d68ae7d26a573d0fc5ab0d18eb692451654d837a'

Example 3

HMAC SHA256 signature:

$ echo -n "symbol=BTCUSDT&side=BUY&type=LIMITquantity=1&price=11&recvWindow=5000&timestamp=1644489390087" | openssl dgst -sha256 -hmac "45d0b3c26f2644f19bfb98b07741b2f5"
(stdin)= d1a676610ceb39174c8039b3f548357994b2a34139a8addd33baadba65684592
curl command:

(HMAC SHA256)
$ curl -H "X-MEXC-APIKEY: mx0aBYs33eIilxBWC5" -X POST 'https://api.mexc.com/api/v3/order?symbol=BTCUSDT&side=BUY&type=LIMIT' -d 'quantity=1&price=11&recvWindow=5000&timestamp=1644489390087&signature=d1a676610ceb39174c8039b3f548357994b2a34139a8addd33baadba65684592'

以下是在linux bash环境下使用 echo openssl 和curl工具实现的一个调用接口下单的示例 apikey、secret仅供示范

KeyValue
apiKeymx0aBYs33eIilxBWC5
secretKey45d0b3c26f2644f19bfb98b07741b2f5
参数取值
symbolBTCUSDT
sideBUY
typeLIMIT
quantity1
price11
recvWindow5000
timestamp1644489390087

示例 1: 所有参数通过 request body 发送

  • requestBody: symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000&timestamp=1644489390087

所有参数通过 query string 发送

  • queryString: symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000&timestamp=1644489390087

示例 3: 混合使用 query string 和 request body

  • queryString: symbol=BTCUSDT&side=BUY&type=LIMIT

  • requestBody: quantity=1&price=11&recvWindow=5000&timestamp=1644489390087

请注意,签名与示例3不同。 "LIMIT"和"quantity = 1"之间没有&。

限频规则

对REST API的访问有频率限制,当超出限制时,返回状态429:请求过于频繁。

需要携带access key进行访问的接口,以账号作为限速的基本单位;不需要携带access key进行访问的接口,以IP作为限速的基本单位。

限频说明

  • 每个接口会标明是按照IP或者按照UID统计, 以及相应请求一次的权重值。不同接口拥有不同的权重,越消耗资源的接口权重就会越大。
  • 按IP和按UID(account)两种模式分别统计, 两者互相独立。按IP权重限频的接口,所有接口共用500权重/10秒;按UID权重限频的接口,所有接口共用500权重/10秒。

超频报错

  • 收到429时,您有责任停止发送请求,不得滥用API。
  • 收到429后仍然继续违反访问限制,会被封禁IP。
  • 频繁违反限制,封禁时间会逐渐延长,从最短2分钟到最长3天
  • Retry-After的头会与带有418或429的响应发送,并且会给出以秒为单位的等待时长(如果是429)以防止禁令,或者如果是418,直到禁令结束。

WEBSOCKET 连接限制

  • Websocket服务器访问频率限制为:100次/s。
  • 如果用户发送的消息超过限制,连接会被断开连接。反复被断开连接的IP有可能被服务器屏蔽。
  • 单个连接最多可以订阅 30 个Streams。

错误码

以下为接口可能返回的错误码信息

错误码说明
-2011未知订单
26该操作不允许
400需要APIKEY
401未授权
403访问被拒
429请求过多
500内部错误
503服务不可用,请重试
504网关超时
602签名认证失败
10001用户不存在
10007该交易对不支持api交易
10015用户id不能为空
10072无效的access key
10073无效的请求时间
10095金额不能为空
10096金额小数位过大
10097金额错误
10098因风控原因,无法划转,请稍后重试
10099子站账号未开通
10100不支持该币种划转
10101资产余额不足
10102金额不能为零或负数
10103不支持该账户划转
10200转账操作处理中
10201用户资金入账失败
10202用户资金出账失败
10206转账关闭
10211禁止提现
10212提币地址不是常用地址或已失效
10216没有可用地址,请稍后再试
10219资产流水写入失败请重新尝试
10222币种不能为空
10232币种不存在
10259未配置中间账户错误
10265由于风控原因,暂不支持提币,请稍后再试
10268备注长度过大
20001不支持此子系统
20002内部系统调用错误
22222记录不存在
30000交易对暂停交易
30001当前交易方向不允许下单
30002最小交易量不能小过
30003最大交易量不能大过
30004持仓不足
30005卖出超过持仓
30010无效价格
30014无效交易对
30016无法交易
30018暂不支持市价单
30019暂不支持API市价单
30020该交易对不支持api
30021无效交易对
30025不存在的对手订单
30026无效的订单id
30027该货币已达到最大持仓限制,买入暂停
30028货币触发平台风控,抛售暂停
30029不能超过最大订单限制
30032不能超过最大仓位
30041目前的订单类型不支持下单
33333参数错误
44444参数不能为空
60005您的账号存在异常,暂时无法进行法币交易,请联系客服或稍后再试
70011交易对不支持api交易
700001apikey格式错误
700002签名无效
700003此请求的时间戳在 recvWindow 之外
700004参数'origClientOrderId' 或 'orderId'至少需要一个
700005recvWindow 必须小于 60000
700006IP非白名单
700007没有访问端点的权限
700008参数中有无效字节
730000请求失败,请联系客服人员
730001用户信息错误
730002参数错误,请检查
730003不支持的操作,请联系客服人员
730100用户状态异常
730600子账户名称不能为空
730601子账户必须是8-32位字母和数字组合
730602子账户备注不能为空
730700备注不能为空
730701权限不能为空
730702API KEY权限不存在
730703IP信息错误,超过最大绑定IP数量
730704绑定的IP格式错误,请重新填写
730705最多允许创建30组Api Key
730706API KEY 信息不存在
730707accessKey不能为空
730101用户名已存在
140001子账号不存在
140002禁止子账号访问