OKX API 文档怎么看:V5 接口地址、API Key 创建、签名方法与限频规则(2026 指南)
简短回答
OKX 官方 API 文档地址是 okx.com/docs-v5,对应的是 V5 版本接口,现货、杠杆、交割合约、永续合约和期权都用同一套接口完成。要调用私有接口,你需要在 OKX 账户里创建 API Key、Secret Key 和自己设定的 Passphrase(密码短语);每个私有 REST 请求都要用 HMAC SHA256 签名,带上四个 OK-ACCESS 请求头,发送到生产环境地址 https://openapi.okx.com。文档里还给出了 WebSocket 地址、模拟盘环境、每个接口的限频规则和 Python SDK,所以你可以在动用真实资金之前,把脚本从头到尾完整测一遍。
收起完整分析
OKX API 文档里有什么
V5 文档是一整页很长的参考手册,按模块排列。刚上手时最常用的是下面这些:
文章表格:可横向滑动,或聚焦表格区域后使用方向键。
| 模块 | 内容 |
|---|---|
| 概览 | API Key 创建、权限、IP 绑定、签名规则、接口地址 |
| 交易账户 | 余额、持仓、杠杆、账户配置、账单流水 |
| 订单簿交易 | 下单、改单、撤单、策略委托、成交明细 |
| 公共数据与行情数据 | 产品信息、行情快照、深度、K 线、资金费率、服务器时间 |
| 资金账户 | 充值、提币、账户间划转 |
| 子账户 | 创建子账户及其 API Key |
| WebSocket 频道 | 公共、私有和业务三类实时推送 |
| 错误码 | 每个错误码对应的 HTTP 状态和含义 |
文档页面还链接了 Python SDK、做市商示例代码和分步教程。公共行情接口不需要任何密钥;凡是涉及你账户的操作都需要鉴权。
第一步:创建 API Key
登录 OKX,在账户设置里打开 API 页面。创建时系统会给出三样东西:API Key、Secret Key,以及你自己设定的 Passphrase。文档写得很清楚:OKX 只保存 Passphrase 加盐后的哈希值,无法帮你找回;一旦丢失,只能重新创建一套 API Key。
每个 Key 可以勾选以下三种权限中的一种或多种:
- 读取:查看余额、账单和历史订单。
- 交易:下单、撤单、资金划转以及修改设置。
- 提币:发起提币。
建议先只开读取权限,脚本测试通过后再加交易权限。绝大多数自动化程序根本不需要提币权限。
有两个上限值得记住:每个账户最多创建 50 个 API Key(错误码 59501),每个 Key 最多绑定 20 个 IP 地址(错误码 59503),支持 IPv4、IPv6 和网段格式。
第二步:绑定 IP 地址
这是新手最容易踩的坑。按照文档规定,没有绑定 IP、又带有交易或提币权限的 API Key,连续 14 天未使用就会自动失效。只有调用需要鉴权的接口才算“使用”,单纯请求公共接口不算。模拟盘的 Key 不会过期。
核对地区资格与账户条款
打开 →如果你的程序跑在固定 IP 的服务器上,创建 Key 时就把这个 IP 绑上。这样更安全,也能避免两周没交易后 Key 悄悄失效。我们之前写过一篇 OKX API Key IP 白名单与过期检查清单,对这条规则讲得更细。
第三步:给请求签名
每个私有 REST 请求都必须带上四个请求头:
文章表格:可横向滑动,或聚焦表格区域后使用方向键。
| 请求头 | 内容 |
|---|---|
| OK-ACCESS-KEY | 你的 API Key |
| OK-ACCESS-SIGN | Base64 编码后的签名 |
| OK-ACCESS-TIMESTAMP | UTC 时间,ISO 8601 格式并精确到毫秒,例如 2020-12-08T09:08:57.715Z |
| OK-ACCESS-PASSPHRASE | 创建 Key 时设定的 Passphrase |
签名的生成方法是:把 timestamp + 请求方法 + 请求路径 + 请求体 拼成一个字符串,用 Secret Key 做 HMAC SHA256 运算,再把结果做 Base64 编码。GET 请求的查询参数算在请求路径里,请求体为空。请求体必须是合法 JSON,Content-Type 设为 application/json。
最常见的报错是 50102。只要请求时间戳与服务器时间相差超过 30 秒,服务器就会拒绝,文档特别指出本地时区偏移是最常见的原因。时间戳一定要用 UTC 生成;拿不准的话,先调用不需要密钥的 GET /api/v5/public/time 读取服务器时间。
第四步:用对接口地址
文档列出的生产环境地址如下:
- REST:https://openapi.okx.com
- 公共 WebSocket:wss://ws.okx.com/ws/v5/public
- 私有 WebSocket:wss://ws.okx.com/ws/v5/private
- 业务 WebSocket:wss://ws.okx.com/ws/v5/business
模拟盘的 REST 地址不变,但要在请求头里加上 x-simulated-trading: 1;WebSocket 则改连 wspap.okx.com,而不是 ws.okx.com。模拟盘需要单独的 API Key,入口在 交易 → 模拟交易 → 个人中心 → 模拟盘 API。充值、提币等部分功能在模拟盘里不可用。
第五步:遵守限频规则
OKX 为每个接口单独公布了限频。文档中的几个例子:
文章表格:可横向滑动,或聚焦表格区域后使用方向键。
| 接口 | 限频 | 计算维度 |
|---|---|---|
| POST /api/v5/trade/order(下单) | 每 2 秒 60 次 | 用户 ID + 产品 ID |
| GET /api/v5/market/tickers | 每 2 秒 20 次 | IP |
| GET /api/v5/account/instruments | 每 2 秒 20 次 | 用户 ID + 产品类型 |
超过限频时接口会返回错误码 50011。交易所层面,一个账户最多同时挂 4,000 笔未成交订单,单个交易对最多 500 笔。
WebSocket 方面,如果连接超过 30 秒没有任何数据推送,OKX 会自动断开。文档推荐的保活办法很简单:每收到一条消息就重新设一个短于 30 秒的计时器,计时器到点还没收到新消息,就发送字符串 "ping",等待服务器回 "pong"。每个子账户在订单、账户、持仓等私有频道上最多建立 30 个连接;每个连接每小时最多发送 480 次订阅、取消订阅或登录请求。
先跑一个最小测试
写交易逻辑之前,先跑两个请求。第一个是不带密钥的 GET /api/v5/public/time:能拿到时间戳,说明你到 OKX 的网络通路没问题。第二个是用只读 Key 调用 GET /api/v5/account/balance:能返回余额,说明签名、时间戳和 Passphrase 全都正确。之后再加下单功能,而且先在模拟盘里试。
怎么操作
如果你还没有 OKX 账户,可以通过 本站 OKX 页面 用邀请码 nexu888 开户,然后先创建一个只读 Key,按上面的步骤走一遍。OKX 交易所介绍页 还列出了当前的现货和永续合约手续费,脚本开始真实交易后这些费率会直接影响收益;也可以在 费率对比页 和其他平台比较。
常见问题
OKX 官方 API 文档在哪里? 在 okx.com/docs-v5,有英文和中文版本,覆盖 REST、WebSocket、错误码和 Python SDK。
2026 年 OKX API 的接口地址是什么? 文档列出的 REST 地址是 https://openapi.okx.com,WebSocket 的公共、私有和业务频道都在 wss://ws.okx.com/ws/v5/ 下。
为什么我的 OKX API Key 突然不能用了? 带交易或提币权限、又没有绑定 IP 的 Key,连续 14 天没有鉴权调用就会失效。绑定 IP 可以避免。
OKX 错误码 50102 是什么意思? 请求时间戳与服务器时间相差超过 30 秒。请用 UTC 时间,并通过 GET /api/v5/public/time 校准。
可以不用真钱测试 OKX API 吗? 可以。创建模拟盘 API Key,并在 REST 请求头里加上 x-simulated-trading: 1。
OKX 最多能创建多少个 API Key? 每个账户最多 50 个,每个 Key 最多绑定 20 个 IP 地址。
相关专题与工具:交易所 API 与行情数据核查
核对地区资格与账户条款
打开 →来源与证据
02- OKX API v5 documentation · okx.com
- GET /api/v5/public/time (live check) · openapi.okx.com