量化喵是独立第三方信息站,与任何交易所都没有隶属关系。本页不含推广链接与邀请码。 完整披露 →

欧易 · API 接入

欧易 API 地址怎么填:REST、WebSocket 与模拟盘,8443 端口公网 10 月 31 日起停用

欧易 API 的 REST 地址填 https://openapi.okx.com。这是欧易 2026 年 5 月 20 日新增的专用 REST 域名,在 API 访问上和 https://www.okx.com 完全等价;老代码里写的 www.okx.com 继续可用,不会下线。WebSocket 实盘有三个地址:公共频道 wss://ws.okx.com/ws/v5/public、私有频道 wss://ws.okx.com/ws/v5/private、业务频道 wss://ws.okx.com/ws/v5/business;模拟盘把主机换成 wspap.okx.com,路径不变。

代码里如果还留着 :8443,要在 2026 年 10 月 31 日前删掉:那天起欧易公网不再接受 8443 端口的 WebSocket 连接,Colo 晚一些,到 11 月 16 日。只删端口,域名和路径都不动,REST 接口不受这次变更影响。在欧盟站(my.okx.com)或美国站(app.okx.com)注册的账户另有一套域名,用 openapi.okx.com 访问不了,对应地址都在下面的总表里。

欧易 API 地址总表:实盘、模拟盘、欧盟站和美国站

表里按「在哪个站注册」和「实盘还是模拟盘」分成六行。WebSocket 一列只写主机,后面接的路径各行通用:/ws/v5/public 是公共频道,/ws/v5/private 是私有频道,/ws/v5/business 是业务频道。

账户与环境RESTWebSocket 主机另外要注意
全球站 · 实盘https://openapi.okx.comwss://ws.okx.comhttps://www.okx.com 同样可用
全球站 · 模拟盘https://openapi.okx.comwss://wspap.okx.com请求头加 x-simulated-trading: 1;Key 在模拟盘上创建
欧盟站(my.okx.com 注册)· 实盘https://eea.okx.comwss://wseea.okx.com用 openapi.okx.com 访问不了
欧盟站 · 模拟盘https://eea.okx.comwss://wseeapap.okx.com请求头加 x-simulated-trading: 1
美国站(app.okx.com 注册)· 实盘https://us.okx.comwss://wsus.okx.com美国及澳大利亚用户;用 openapi.okx.com 访问不了
美国站 · 模拟盘https://us.okx.comwss://wsuspap.okx.com请求头加 x-simulated-trading: 1

全球站账户可以直接抄下面这几行:

# 实盘
REST      https://openapi.okx.com
WS 公共   wss://ws.okx.com/ws/v5/public
WS 私有   wss://ws.okx.com/ws/v5/private
WS 业务   wss://ws.okx.com/ws/v5/business

# 模拟盘(REST 请求头加 x-simulated-trading: 1)
REST      https://openapi.okx.com
WS 公共   wss://wspap.okx.com/ws/v5/public
WS 私有   wss://wspap.okx.com/ws/v5/private
WS 业务   wss://wspap.okx.com/ws/v5/business

这些地址出自欧易 API 文档概览的实盘交易与模拟盘交易小节,以 2026 年 10 月的页面为准。建议把它们集中写进配置文件,实盘一份、模拟盘一份,脚本里只读配置;以后欧易再调整端口或域名,改配置就够了。

REST 地址填 openapi.okx.com 还是 www.okx.com?

全球站账户填哪个都行。欧易在 2026 年 5 月 20 日的更新日志里新增 openapi.okx.com,同时写了三点:它在 API 访问方面与 www.okx.com 完全等价;www.okx.com 将继续可用,不会下线;OKX 全球站用户现在就可以使用。同一条还说明,us.okx.com、eea.okx.com、tr.okx.com 这几个地区域名保持不变。

所以老代码里的 https://www.okx.com 不是非改不可。新项目可以直接写 openapi.okx.com,文档概览里列出的实盘和模拟盘 REST 地址用的也是它。真要换,只换主机名,/api/v5/ 开头的接口路径照旧。

欧盟站和美国站的账户不在这个范围里。openapi.okx.com 是给全球站用户的,在 my.okx.com 或 app.okx.com 注册的账户照旧用自己站点的域名,后面单独一节讲。

WebSocket 8443 端口公网 10 月 31 日停用,地址里只删 :8443

这次变更写在欧易 API 更新日志「WebSocket 8443 端口下线」条目里,标为不兼容变更,条目最近一次更新是 2026 年 10 月 16 日。停用分两批:公网 2026 年 10 月 31 日,Colo 2026 年 11 月 16 日。过了各自的日期,连接 8443 端口会失败。

欧易 API 更新日志中的「WebSocket 8443 端口下线」条目,标注最近更新于 2026 年 10 月 16 日,列出公网 2026-10-31 与 Colo 2026-11-16 两个停用日期、不兼容变更说明、实盘和模拟盘地址的变更前后对照,以及 REST API 不受影响的说明
欧易 API 更新日志,2026 年 10 月截图:公网 10 月 31 日、Colo 11 月 16 日两个日期分开生效;变更前后的实盘和模拟盘地址只差一个 :8443,主机名和 /ws/v5/public 路径都没变。

改法就是把 WebSocket 地址里的 :8443 删掉,域名和路径保持原样:

# 实盘
wss://ws.okx.com:8443/ws/v5/public     →  wss://ws.okx.com/ws/v5/public
# 模拟盘
wss://wspap.okx.com:8443/ws/v5/public  →  wss://wspap.okx.com/ws/v5/public

私有频道 /ws/v5/private、业务频道 /ws/v5/business 照这个改,全球站的 SBE 行情地址 /ws/v5/public-sbe 也在这次的范围内。wss:// 默认走 443 端口,删掉端口号连的就是 443;显式写成 :443 同样能连上。

这次不用动的:REST API 不受影响;所有受影响的域名(包括 Colo)现在都已支持 443 端口,停用日期之前 8443 和 443 两个端口都能正常连接。现在改完就可以上线,不必等到月底。

改之前在项目里全局搜一遍 8443,配置文件、环境变量、部署脚本、写死在代码里的字符串都算。订阅行情和订单推送的完整写法见欧易 WebSocket 怎么接:ccxt.pro 订阅行情和订单;用 ccxt.pro 的,地址由库自带,要看本机 ccxt 是哪一版,后面 ccxt 那一节有自查办法。

欧易模拟盘 API 地址:REST 加请求头,WebSocket 换 wspap

模拟盘的 REST 地址和实盘是同一个,https://openapi.okx.com。主机一样,模拟盘请求就得靠请求头标出来:header 里加上 x-simulated-trading: 1。WebSocket 要换主机,三个地址是 wss://wspap.okx.com/ws/v5/public、wss://wspap.okx.com/ws/v5/private、wss://wspap.okx.com/ws/v5/business,同样不带 8443。

Key 也要分开建。欧易文档的原话是「模拟盘API交易需要在模拟盘上创建APIKey」。所以跑模拟盘时,下面三样要配套:

  • API Key 是在模拟盘上创建的那一把;
  • REST 请求带 x-simulated-trading: 1;
  • WebSocket 连的是 wspap.okx.com。

在模拟盘上建 Key、勾权限、下一笔单再撤掉的完整步骤,见欧易 API 量化入门:创建模拟盘 Key、下单与撤单核验;想用 ccxt 把策略在模拟盘上整套跑一遍,看欧易模拟盘怎么用。

在欧盟站、美国站注册的账户,API 域名换成 eea 和 us

欧易文档概览写着:「根据您的注册地区,进行 API 调用和查阅文档时必须使用对应的域名。」紧接着一句是「以下地区用户使用 openapi.okx.com 将无法正常访问」。两类账户的地址如下:

  • 在 my.okx.com 注册的欧盟用户:REST 用 https://eea.okx.com;WebSocket 实盘 wss://wseea.okx.com/ws/v5/ 加 public、private 或 business,模拟盘主机是 wseeapap.okx.com。文档看 my.okx.com/docs-v5。
  • 在 app.okx.com 注册的美国及澳大利亚用户:REST 用 https://us.okx.com;WebSocket 实盘 wss://wsus.okx.com/ws/v5/ 加 public、private 或 business,模拟盘主机是 wsuspap.okx.com。文档看 app.okx.com/docs-v5。

两个站的模拟盘 REST 地址都和各自实盘相同,请求头一样要加 x-simulated-trading: 1。

那句原话里「查阅文档」也算在内。全球站文档列的是全球站的地址,欧盟站、美国站的账户照着它抄,抄下来的就是 openapi.okx.com 和 ws.okx.com。打开自己站点那份文档写代码,示例里的地址才对得上。用 ccxt 的话不必手改主机,换一个交易所类就行,写法在下一节。

ccxt 和 python-okx 默认连哪个地址,要不要改

ccxt 的 okx 类默认 hostname 是 www.okx.com,REST 地址按 https://{hostname} 拼出来。它和 openapi.okx.com 等价,保持默认就能用。欧盟站账户换 myokx 类,默认主机 eea.okx.com;美国站账户换 okxus 类,默认主机 us.okx.com。

import ccxt

ex = ccxt.okx()              # 全球站账户,REST 默认 https://www.okx.com
# ex = ccxt.myokx()          # 欧盟站账户,默认 eea.okx.com
# ex = ccxt.okxus()          # 美国站账户,默认 us.okx.com

ex.set_sandbox_mode(True)    # 模拟盘:okx 类会给请求加上 x-simulated-trading: 1

打开沙盒模式后,okx 类发出的请求带上 x-simulated-trading: 1,这时填进去的 Key 也要换成模拟盘上建的那一把。上面几个默认主机,以 ccxt 在 GitHub 主分支上 2026 年 10 月的源码为准。

ccxt.pro 的 WebSocket 地址要按版本看。ccxt 在 2026 年 10 月 1 日合入了 PR #30715,把 okx、myokx、okxus 三个类的 WebSocket 端口从 :8443 改成 :443。PyPI 上第一个带这项修改的版本是 4.5.87,2026 年 10 月 13 日发布;4.5.87 之前的版本,okx 连的还是 wss://ws.okx.com:8443/ws/v5。装的是旧版,在 10 月 31 日前升级(pip install -U ccxt);不确定本机是哪一版,用下面几行打印出来看:

import ccxt
import ccxt.pro

print(ccxt.__version__)                    # 4.5.87 及以上,ccxt.pro 的 okx 用 443
print(ccxt.pro.okx().urls['api']['ws'])    # ccxt.pro 实际连的 WebSocket 地址,还带 :8443 就要升级

python-okx 的 README 自称是非官方(unofficial)的 Python 封装,不是欧易官方 SDK。它的 REST 地址写在 consts.API_URL,值是 https://www.okx.com,OkxClient 的 base_api 默认就用它,不改也能连。

另一个要看的是 flag 参数。它的默认值是 '1',按 README 的说明,0 是实盘、1 是模拟盘。调用时没传 flag,请求就按模拟盘发出去。上实盘时把 flag='0' 明明白白写出来,别靠默认值。

python-okx 的 WebSocket 模块没有写死连接地址,地址由调用它的代码传进去。8443 因此要在你自己的代码里删:

WS_PUBLIC   = 'wss://ws.okx.com/ws/v5/public'     # 旧写法 wss://ws.okx.com:8443/ws/v5/public
WS_PRIVATE  = 'wss://ws.okx.com/ws/v5/private'
WS_BUSINESS = 'wss://ws.okx.com/ws/v5/business'
# 模拟盘把 ws.okx.com 换成 wspap.okx.com,路径不变

用 /api/v5/public/time 确认 REST 地址通了,再看时间差

换完地址,先调一个不用签名的公共接口:GET /api/v5/public/time,取服务器时间。它不需要 Key,返回正常就说明这个 REST 主机连得通;账户该用哪套域名,仍按注册站点定。再拿返回的服务器时间和本机时间比一比。

import time
import requests

BASE = 'https://openapi.okx.com'   # 欧盟站账户用 https://eea.okx.com,美国站用 https://us.okx.com

resp = requests.get(BASE + '/api/v5/public/time', timeout=10)
print(resp.status_code, resp.text)

server_ms = int(resp.json()['data'][0]['ts'])          # 服务器时间,毫秒
drift = abs(time.time() * 1000 - server_ms) / 1000
print(f'本机与服务器相差 {drift:.1f} 秒')               # 超过 30 秒,签名请求会被拒

比时间差,是因为签名请求有时效。文档「REST 请求验证」里「发起请求」一节写明:服务器将拒绝与服务器时间相差超过 30 秒的请求,错误码 50102。签名里的时间戳一般取本机时间,本机时钟一偏,地址、Key、签名都没错,请求照样被拒。差值接近 30 秒时,校准本机时钟,或者签名前先调这个接口,用服务器时间生成时间戳。

地址填对了还是连不上,按这个顺序查

下面按从根上到细处排,前一项没问题再看下一项:

  1. 账户在哪个站注册。my.okx.com 注册的用 eea.okx.com 那一套,app.okx.com 注册的用 us.okx.com 那一套;这两类账户填 openapi.okx.com 访问不了。
  2. WebSocket 地址里还有没有 :8443。公网从 2026 年 10 月 31 日起、Colo 从 11 月 16 日起,连 8443 会失败。用 ccxt.pro 的,先看 ccxt 版本是不是 4.5.87 及以上。
  3. 实盘和模拟盘有没有混用。模拟盘要用在模拟盘上建的 Key,REST 带 x-simulated-trading: 1,WebSocket 连 wspap.okx.com,三样配套;用 python-okx 的再看一眼 flag 是 0 还是 1。
  4. 签名请求报 50102。本机时间和服务器差了 30 秒以上,按上一节校时。
  5. 连得上,过一阵又断。能连上说明地址已经对了,要查的是订阅有没有成功、心跳有没有按时发,见欧易 WebSocket 为什么连上 30 秒就断开?
风险提示:地址只决定请求发到哪里;一笔单落在实盘还是模拟盘,还要看请求头、WebSocket 主机和 Key 是在哪边建的,其中一处写错,单子就可能没进你以为的那个盘。新地址先在模拟盘跑通再切实盘,API Key 只开策略用得到的权限。用 API 自动交易,程序故障和行情波动都可能带来亏损。地址与停用日期以欧易 API 文档当前页面为准,本文是接口地址说明,不构成投资建议;请只用你能承受全部损失的闲钱,并遵守所在地的法律法规。

www.okx.com 会下线吗、:443 能不能写:换地址时的几个细节

欧易的 www.okx.com 以后还能当 API 地址用吗?

能。欧易 2026 年 5 月 20 日新增 openapi.okx.com 时写明,新域名在 API 访问方面与 www.okx.com 完全等价,www.okx.com 继续可用、不会下线。ccxt 的 okx 类和 python-okx 默认用的都是 www.okx.com,保持默认也能连。

WebSocket 地址里写成 :443 能连上吗?

能。wss:// 默认走 443 端口,欧易在 8443 下线说明里提到,显式指定 :443 同样可以连接。要删的只有 :8443,域名和路径不变;用 ccxt.pro 的,4.5.87 及以上版本连的就是 :443,更早的版本还是 :8443。

Colo 连接的 8443 端口哪天停?

2026 年 11 月 16 日,公网是 10 月 31 日。各自的日期之前 8443 和 443 都能连,改法同样是删掉地址里的 :8443。

/ws/v5/public-sbe 也要去掉 8443 吗?

要。8443 下线适用于 /ws/v5/public、/ws/v5/private、/ws/v5/business,以及 Global 站的 /ws/v5/public-sbe,改法都是只删端口。

8443 停用后 REST 地址要不要跟着改?

不用。8443 下线说明里说了 REST API 不受影响,https://openapi.okx.com 和 https://www.okx.com 照常使用;欧盟站、美国站的账户继续用 eea.okx.com、us.okx.com。