基本信息
接入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-APIKEY | API key中的access key |
Content-Type | application/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×tamp=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×tamp=1644489390087&signature=323c96ab85a745712e95e63cad28903dd8292e4a905e99c4ee3932023843a117'
Example 2
HMAC SHA256 signature:
$ echo -n "symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000×tamp=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×tamp=1644489390087&signature=fd3e4e8543c5188531eb7279d68ae7d26a573d0fc5ab0d18eb692451654d837a'
Example 3
HMAC SHA256 signature:
$ echo -n "symbol=BTCUSDT&side=BUY&type=LIMITquantity=1&price=11&recvWindow=5000×tamp=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×tamp=1644489390087&signature=d1a676610ceb39174c8039b3f548357994b2a34139a8addd33baadba65684592'
以下是在linux bash环境下使用 echo openssl 和curl工具实现的一个调用接口下单的示例 apikey、secret仅供示范
Key | Value |
---|---|
apiKey | mx0aBYs33eIilxBWC5 |
secretKey | 45d0b3c26f2644f19bfb98b07741b2f5 |
参数 | 取值 |
---|---|
symbol | BTCUSDT |
side | BUY |
type | LIMIT |
quantity | 1 |
price | 11 |
recvWindow | 5000 |
timestamp | 1644489390087 |
示例 1: 所有参数通过 request body 发送
- requestBody: symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000×tamp=1644489390087
所有参数通过 query string 发送
- queryString: symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000×tamp=1644489390087
示例 3: 混合使用 query string 和 request body
-
queryString: symbol=BTCUSDT&side=BUY&type=LIMIT
-
requestBody: quantity=1&price=11&recvWindow=5000×tamp=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交易 |
700001 | apikey格式错误 |
700002 | 签名无效 |
700003 | 此请求的时间戳在 recvWindow 之外 |
700004 | 参数'origClientOrderId' 或 'orderId'至少需要一个 |
700005 | recvWindow 必须小于 60000 |
700006 | IP非白名单 |
700007 | 没有访问端点的权限 |
700008 | 参数中有无效字节 |
730000 | 请求失败,请联系客服人员 |
730001 | 用户信息错误 |
730002 | 参数错误,请检查 |
730003 | 不支持的操作,请联系客服人员 |
730100 | 用户状态异常 |
730600 | 子账户名称不能为空 |
730601 | 子账户必须是8-32位字母和数字组合 |
730602 | 子账户备注不能为空 |
730700 | 备注不能为空 |
730701 | 权限不能为空 |
730702 | API KEY权限不存在 |
730703 | IP信息错误,超过最大绑定IP数量 |
730704 | 绑定的IP格式错误,请重新填写 |
730705 | 最多允许创建30组Api Key |
730706 | API KEY 信息不存在 |
730707 | accessKey不能为空 |
730101 | 用户名已存在 |
140001 | 子账号不存在 |
140002 | 禁止子账号访问 |