1.对参数按key排序并拼接
抹茶交易所API使用指南:从入门到实战**
在加密货币交易领域,自动化交易、数据获取和策略回测是许多交易者追求的目标,抹茶交易所(MEXC)作为全球知名的数字资产交易平台,提供了功能丰富的API接口,允许开发者通过编程方式与交易所进行交互,实现自动化交易、账户管理、数据获取等功能,本文将详细介绍抹茶交易所API的使用方法,帮助您快速上手。
什么是抹茶交易所API?
抹茶交易所API(Application Programming Interface)是一套预定义的接口,它允许您的应用程序(如交易机器人、数据分析脚本等)直接与抹茶交易所的服务器进行通信,无需手动登录网页版或APP,通过API,您可以执行以下操作:
- 查询账户信息:如账户余额、订单历史、交易记录等。
- 执行交易操作:如下单(限价单、市价单)、取消订单、查询订单状态等。
- 获取市场数据:如K线数据、 ticker 信息、深度数据、交易历史等。
- 管理API密钥:创建、启用、禁用API密钥。
准备工作:获取API密钥
在使用抹茶API之前,您首先需要获取API密钥,具体步骤如下:
- 登录抹茶交易所:打开抹茶交易所官网(https://www.mexc.com/)并登录您的账户。
- 进入API管理页面:在账户中心或安全设置中找到“API管理”或类似选项。
- 创建API密钥:
- 点击“创建API密钥”或“新建API”。
- 为您的API密钥设置一个易于识别的名称(“我的交易机器人”)。
- 选择权限:这是非常重要的一步!根据您的需求勾选API权限。
- 读取权限:仅允许查询账户信息、市场数据等,不能进行交易操作。
- 交易权限:在读取权限基础上,允许下单、取消订单等交易操作。
- 提现权限:强烈建议不开启,除非您有绝对的安全保障和特殊需求,否则存在资金安全风险,对于大多数自动化交易场景,仅开启“读取”和“交易”权限即可。
- 设置IP白名单(可选但推荐):为了增强安全性,您可以设置允许访问该API密钥的IP地址列表,只有来自这些IP地址的请求才会被接受,如果您是在本地开发或固定服务器运行,建议添加您的IP地址。
- 保存API Key和Secret:
- 创建成功后,系统会显示您的API Key(公钥)和Secret(私钥)。
- 请务必妥善保管Secret,它相当于您的密码,一旦泄露,他人将可能完全控制您的账户!
- 建议使用密码管理工具保存,并不要在代码中硬编码或通过不安全的方式传输。
API认证与请求格式
抹茶API使用HMAC-SHA256签名算法进行身份认证,大部分API请求都需要在请求头中包含以下信息:
- ApiKey:您创建的API Key。
- Request-Time:请求时间戳(UTC时间,毫秒级)。
- Signature:基于API Secret、请求方法、请求路径、请求参数(如果有)和时间戳生成的签名。
签名生成步骤(以Python为例):
- 将所有请求参数(按参数名ASCII码从小到大排序)拼接成字符串
param_string。 - 将请求方法(GET/POST等)、请求路径、
param_string和时间戳按特定格式拼接成待签名字符串。 - 使用API Secret对待签名字符串进行HMAC-SHA256加密,得到签名(通常转换为十六进制小写字符串)。
示例(伪代码):
import hmac
import hashlib
import time
api_key = "YOUR_API_KEY"
secret_key = "YOUR_SECRET_KEY"
request_method = "GET"
request_path = "/api/v3/order"
params = {
"symbol": "BTCUSDT",
"side": "BUY",
"type": "LIMIT",
"quantity": "0.001",
"price": "50000",
"timestamp": int(time.time() * 1000) # 毫秒时间戳
}
sorted_params = "&".join([f"{k}={v}" for k, v in sorted(params.items())])
query_string = sorted_params
# 2. 构建待签名字符串
sign_string = f"{request_method}\n{request_path}\n{query_string}"
# 3. HMAC-SHA256签名
signature = hmac.new(secret_key.encode('utf-8'), sign_string.encode('utf-8'), hashlib.sha256).hexdigest()
# 4. 将签名添加到请求参数中
params["signature"] = signature
# 5. 发送请求(例如使用requests库)
# headers = {"X-MEXC-APIKEY": api_key}
# response = requests.get(request_path, params=params, headers=headers)
常用API接口示例
抹茶API文档详细列出了所有可用的接口及其参数、返回格式,您可以在抹茶交易所官网的API文档页面找到最新最准确的信息:https://mexcdevelop.github.io/apidocs/spot_v3_en/ (请注意替换为最新的官方文档链接)
以下是一些常用接口的简要说明和示例(请以官方文档为准):
-
获取服务器时间
- 接口:
GET /api/v3/time - 作用:获取服务器时间,用于同步本地时间,确保请求时间戳准确。
- 示例请求:
https://api.mexc.com/api/v3/time
- 接口:
-
获取账户信息
- 接口:
GET /api/v3/account - 权限:读取权限
- 作用:获取账户的资产信息。
- 示例请求(需带认证):
https://api.mexc.com/api/v3/account?timestamp=1678886400000&signature=YOUR_SIGNATURE - 请求头:
X-MEXC-APIKEY: YOUR_API_KEY
- 接口:
-
下单
- 接口:
POST /api/v3/order - 权限:交易权限
- 参数:
symbol(交易对),side(BUY/SELL),type(LIMIT/MARKET等),quantity(数量),price(价格,限价单需要),timestamp(时间戳),signature(签名) 等。 - 作用:创建一个新的订单。
- 示例请求(需带认证):
POST https://api.mexc.com/api/v3/order?symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=0.001&price=50000×tamp=1678886400000&signature=YOUR_SIGNATURE
- 接口:
-
查询订单状态
- 接口:
GET /api/v3/order - 权限:读取权限
- 参数:
symbol(交易对),orderId(订单ID) 或origClientOrderId(客户端订单ID),timestamp,signature。 - 作用:查询某个订单的详细信息。
- 接口:
-
获取K线数据
- 接口:
GET /api/v3/klines - 权限:无需认证(公共接口)
- 参数:
symbol(交易对),interval(K线周期,如1m, 5m, 1h, 1d等),limit(数量,默认500,最大1000),startTime,endTime。 - 作用:获取指定交易对的K线数据。
- 示例请求:
https://api.mexc.com/api/v3/klines?symbol=BTCUSDT&interval=1h&limit=100
- 接口:
使用API的注意事项
-
安全第一:
- 切勿泄露Secret:Secret是您账户安全的核心,一旦泄露,立即在API管理页面禁用该密钥。
- 谨慎开启提现权限:除非必要,否则不要开启。
- 使用IP白名单:限制API密钥的访问来源IP。
- 定期轮换API密钥:定期更换API密钥,降低密钥泄露后的风险。
-
请求频率限制

错误处理:API调用可能会返回各种错误码(如参数