目录导读
-
欧易API接口与密钥申请

- 1 注册与登录欧易交易所官网
- 2 进入API管理页面创建密钥
- 3 设置API权限与安全配置
-
Postman环境配置与请求构建
- 1 安装并打开Postman工具
- 2 设置请求头与签名参数
- 3 使用预请求脚本自动生成签名
-
测试API密钥的常用接口实战
- 1 获取账户余额(GET请求)
- 2 查询行情数据(公开接口)
- 3 错误排查与常见问题解答
-
高频问题与问答汇总
- Q1:API密钥泄露怎么办?
- Q2:Postman返回200但无数据?
- Q3:签名计算总是失败如何解决?
欧易API接口与密钥申请
1 注册与登录欧易交易所官网
要使用欧易(OKX)的API功能,首先需要拥有一个欧易交易所账号,请访问欧易交易所官网(在本文中推荐使用欧易交易所下载完成注册)或通过官方渠道下载APP,注册时需完成邮箱/手机验证及基础身份认证,建议开启双因素认证(2FA)以增强账户安全。
完成注册后登录账户,在首页导航栏中找到“API”入口,不同版本的欧易交易所官网界面可能略有差异,但通常位于“账户”或“开发者中心”下拉菜单中。
2 进入API管理页面创建密钥
在API管理页面,点击“创建API Key”按钮,系统会要求输入API名称(如“测试Key”),并选择权限范围,注意:首次创建时,部分平台需要验证二次密码或短信验证码,创建成功后,你将获得以下关键信息:
- API Key:作为身份标识,类似用户名。
- Secret Key:签名密钥,用于生成请求签名,请务必妥善保管,不可泄露。
- Passphrase:部分版本需要额外设置API密码短语(可自定义)。
务必复制并保存好Secret Key,因为刷新页面后将无法再次查看,你也可以在欧易交易所下载的API文档中查看更详细的密钥生成规则。
3 设置API权限与安全配置
欧易API支持多种权限类型,包括:
- 读取(Read):只能查询账户信息、行情等,不可交易。
- 交易(Trade):可进行买卖、撤单等操作。
- 提币(Withdraw):控制资金转出,建议仅按需开启。
测试阶段建议仅勾选“读取”权限,避免误操作,同时可以绑定IP白名单,只允许指定IP地址访问API,即使密钥泄露也能降低风险。
Postman环境配置与请求构建
1 安装并打开Postman工具
Postman是开发者常用的API测试工具,支持多种HTTP方法(GET、POST等)和变量管理,从官网下载并安装后,打开Postman,创建一个新的集合(Collection)用于管理欧易API请求。
建议在集合中设置全局变量,包括:
baseUrl:https://www.okx.com(或通过欧易交易所下载获取最新入口)apiKey:你申请到的API KeysecretKey:你申请到的Secret Keypassphrase:你设置的API Passphrase
这些变量后续可在请求URL和脚本中直接引用,方便维护。
2 设置请求头与签名参数
欧易API要求在请求头中传递以下参数:
| Header名称 | 说明 | 示例值 |
|---|---|---|
| OK-ACCESS-KEY | API Key | 你的API Key |
| OK-ACCESS-SIGN | 请求签名(后文计算) | 由算法生成的字符串 |
| OK-ACCESS-TIMESTAMP | UTC时间戳(毫秒) | 1700000000000 |
| OK-ACCESS-PASSPHRASE | API密码短语 | 你在创建时设置的字符串 |
请求签名计算规则如下(以GET请求为例):
- 拼接签名字符串:
时间戳 + METHOD + 请求路径 + 请求体(若为POST则为JSON字符串,GET可为空)。 - 使用HMAC-SHA256算法,以Secret Key为密钥,对上述字符串加密。
- 将加密结果进行Base64编码后放入
OK-ACCESS-SIGN头部。
3 使用预请求脚本自动生成签名
手动计算签名非常繁琐,Postman的Pre-request Script(预请求脚本)可以自动化完成,以下是一个可用的JavaScript脚本示例:
const timestamp = new Date().toISOString().slice(0,19) + 'Z';
const method = pm.request.method;
const path = pm.request.url.getPathWithQuery();
const body = pm.request.body ? pm.request.body.raw : '';
const message = timestamp + method + path + body;
const secretKey = pm.variables.get('secretKey');
const sign = CryptoJS.HmacSHA256(message, secretKey).toString(CryptoJS.enc.Base64);
pm.variables.set('okTimestamp', timestamp);
pm.variables.set('okSign', sign);
在请求头中使用变量:在Headers中设置OK-ACCESS-TIMESTAMP为{{okTimestamp}},OK-ACCESS-SIGN为{{okSign}}。
测试API密钥的常用接口实战
1 获取账户余额(GET请求)
接口地址:/api/v5/account/balance
请求方式:GET
请求头:按上述规则设置签名参数(无请求体)。
响应示例:
{
"code": "0",
"data": [{
"totalEq": "100.5",
"details": [{
"ccy": "BTC",
"eq": "0.5"
}]
}]
}
若返回code: "0",表示请求成功;若返回错误码,请参考官方文档排查。
2 查询行情数据(公开接口)
公开接口通常无需签名,例如获取BTC/USDT当前价格:
接口地址:/api/v5/market/ticker?instId=BTC-USDT
请求方式:GET
请求头:仅需设置Content-Type: application/json即可。
返回结果中的“last”字段即为最新成交价,注意:公开接口有频率限制,建议控制请求间隔。
3 错误排查与常见问题解答
-
问题1:Postman返回“401 Unauthorized”。
原因:签名计算错误或时间戳偏差超过30秒,请检查系统时间是否准确(建议开启自动同步),并确认Secret Key和Passphrase与创建时一致。 -
问题2:响应中带中文乱码。
解决方法:在Postman的Body设置中,将编码格式改为UTF-8。 -
问题3:请求交易接口时提示“缺少权限”。
原因:创建API Key时未勾选“交易”权限,请在API管理页面修改权限后重新测试。
高频问题与问答汇总
Q1:API密钥泄露怎么办?
答:立即登录欧易交易所官网,在API管理页面中删除或禁用泄露的密钥,同时检查账户是否有异常操作,必要时修改登录密码和资金密码,建议启用IP白名单功能,限制API只能从你指定的服务器IP调用。
Q2:Postman返回200但无数据?
答:可能原因包括:
- 请求路径错误(检查大小写和斜杠)。
- 参数遗漏(如未指定交易对
instId)。 - 接口已废弃(请参考官网最新API文档,例如欧易交易所下载中发布的更新日志)。
- 权限未开启(只勾选了读取权限但调用了交易接口)。
Q3:签名计算总是失败如何解决?
答:分步排查:
- 确认时间戳格式为UTC且精确到秒(格式如
2025-04-02T12:00:00Z)。 - 确认签名消息字符串中无多余空格或换行符。
- 确认Secret Key已正确粘贴(注意前后无空格)。
- 使用Postman的Console(console.log)打印
message和sign值,与在线签名工具比对。
如果你需要更复杂的交易策略或批量测试,建议先通过欧易交易所下载获取最新SDK示例代码,再结合Postman进行单元调试。