第一次在 OKX 使用 API,最关键的区别不在于"密钥怎么填",而在于你给请求戴了一顶什么"帽子"——是真实的实盘环境,还是只用于练习的模拟盘。这两个环境是完全隔离的,Key 不能混用,请求头里必须用不同的参数来区分。
步骤 1:先搞清楚你要的是"实盘 Key"还是"模拟盘 Key"
这是最容易搞混的一步。OKX 的模拟盘和实盘的 API Key 是独立分开创建的,不存在"一个 Key 两边都能用"的情况。
做什么:根据你的用途,去对应的环境创建 API Key。
怎么做:
实盘 API Key:登录 OKX,在"个人中心"或"API 管理"页面创建(官网路径:登录后点击右上角头像 → API → 创建 API key)。
模拟盘 API Key:登录 OKX 后,必须先进去模拟交易(Demo Trading)页面,再在模拟盘内部创建专用的 API Key。不能在实盘 API 管理页面创建。
完成标准:你手里的 API Key,明确知道自己属于哪个环境。
常见失败原因:很多人拿了实盘的 API Key 去调模拟盘接口,系统返回错误码 50101(APIKey does not match the current environment),就是这个原因。
步骤 2:用"模拟盘 Key"时,必须带上一个特定的请求头
这是模拟盘 API 调用的核心标志,少了它你的请求就会被当成实盘处理,或者直接被拒。
做什么:在发起 API 请求的 HTTP Header 里,增加一个自定义字段。
怎么做:在请求头里加上
x-simulated-trading: 1。模拟盘(Demo):请求头必须包含
x-simulated-trading: 1。实盘(Live):请求头里
x-simulated-trading: 0,或者干脆不加这个字段(系统默认当作实盘处理)。
完成标准:你的代码或工具发出的每个需要鉴权的模拟盘请求,都正确带上了这个请求头。
风险提醒:绝对不要把实盘的 Secret Key 和 Passphrase 写在代码里硬编码,更不要上传到 GitHub 或任何公开地方。 官方文档和社区教程都反复强调:Secret Key 和 Passphrase 只会在创建时显示一次,关闭页面后无法找回,必须立即保存到安全的地方(推荐用密码管理器)。密钥泄露后,别人不需要你的手机验证,直接用你的 API 就能操作账户。
操作完成的校验方式
创建好密钥并配置请求头后,先用一个 "只读"接口(比如查询账户余额)来做测试,而不是直接下单。
代码示例(使用 Python 的 python-okx 库):
from okx import Account # flag='1' 代表模拟盘,flag='0' 代表实盘 account = Account.AccountAPI( api_key="你的API_KEY", api_secret_key="你的SECRET_KEY", passphrase="你的PASSPHRASE", flag="1" # 1 = 模拟交易,0 = 实盘交易 ) result = account.get_balance() print(result)
(参考来源:python-okx SDK 文档)
下一步衔接动作
如果你是第一次尝试,强烈建议先在模拟盘跑通整个流程。OKX 官方教程也明确建议:"第一次配置,一律用模拟盘,策略跑通之后,再切实盘。" 如果条件允许,可以给 API 单独开一个子账户,让资金独立,万一出问题影响范围也有限。



