目錄本文共 9 節
歐易 API Key 在網頁端「頭像 → API → 建立 API Key」建立,表單裡依次填寫備註名、選擇帳戶和用途、繫結 IP、勾選權限,最後自己設定一個 Passphrase。建立完成後你會拿到 API Key、Secret Key 和 Passphrase 三項資訊,程式呼叫私有介面時三項缺一不可。權限只勾讀取和交易,提現永遠不開;寫程式碼前先在模擬盤建立一套模擬盤 API 跑通,再換實盤。
建立歐易 API Key 前要滿足什麼條件?
- 已完成身份認證並開啟 2FA:建立和修改 Key 時都要輸入驗證碼。還沒註冊的可以先看 歐易註冊與認證教程。
- 資產門檻:截至 2026 年 10 月,歐易 API FAQ 寫明部分地區要求帳戶資產(AUM)超過 100 USD 才能建立 API Key,主帳戶和子帳戶都適用,以頁面提示為準。
- 地區與域名:歐易全球站不向部分國家和地區提供服務(包括中國大陸),美國、歐洲等地的使用者只能使用當地單獨運營的站點,香港、臺灣、馬來西亞等地也存在牌照或使用限制,請遵守當地法律和平臺條款。API 域名也按註冊站點區分:歐易文件提示美國、澳洲站使用者用 us.okx.com,歐洲站使用者用 eea.okx.com,其他使用者的 REST 域名為 openapi.okx.com(www.okx.com 截至本文發布時也能正常訪問)。
網頁端和 App 怎麼建立歐易 API Key?
網頁端步驟:
- 登入歐易網頁版,點右上角頭像 → API(部分版本顯示為「API 和連線」)。
- 點建立 API Key。
- 填寫備註名,建議寫清用途,例如「記帳-只讀」「現貨指令碼」。
- 選擇帳戶:主帳戶或某個子帳戶;選擇用途:自己寫程式選 API 交易,接入第三方工具選對應的連線方式。
- 填寫 IP 白名單,最多 20 個,用逗號或空格分隔。
- 勾選權限:讀取、交易、提現,另有單獨的劃轉、借貸、賺幣選項(借貸、賺幣只對符合條件的帳戶顯示)。
- 設定 Passphrase,按頁面提示的長度和字元規則填寫。
- 完成 2FA 驗證,頁面顯示 API Key 和 Secret Key,立刻儲存到密碼管理器。
App 路徑:登入後點左上角選單 → 往下找到 API → 建立 API Key,後面填寫的內容與網頁端相同。Secret Key 和 Passphrase 都是長字串,建議在電腦上建立和儲存,減少抄錯。
已建立的歐易 API Key 能修改嗎?
能改一部分。按歐易 API FAQ,建立後可以修改備註名、權限和繫結的 IP,修改時同樣要過 2FA。不能修改的是 Secret Key 和 Passphrase:Passphrase 建立後就無法檢視,想換只能刪掉整個 Key 重建。所以如果你只是想把一個「讀取 + 交易」的 Key 降級為只讀,直接編輯權限即可,不必重建;但如果懷疑 Secret Key 或 Passphrase 已經外洩,修改權限沒有用,必須刪除。
歐易 API Key、Secret Key、Passphrase 分別有什麼用?
| 資訊 | 誰生成 | 用在哪裡 | 丟了怎麼辦 |
|---|---|---|---|
| API Key | 歐易隨機生成 | 請求頭 OK-ACCESS-KEY,相當於帳號 |
頁面可再次檢視 |
| Secret Key | 歐易隨機生成 | 在本地計算簽名 OK-ACCESS-SIGN,不會發給伺服器 |
只在建立時顯示,丟了要重建 |
| Passphrase | 你自己設定 | 請求頭 OK-ACCESS-PASSPHRASE |
無法找回,只能重建 |
和幣安相比,歐易多了一層 Passphrase:就算有人拿到了 API Key 和 Secret Key,沒有 Passphrase 依然無法呼叫私有介面。簽名的具體演算法(時間戳 + 請求方法 + 路徑 + 請求體,再做 HMAC-SHA256 和 Base64)可以看 交易所 API 簽名原理。
Passphrase 應該怎麼設定和儲存?
- 不要和登入密碼、資金密碼重複。Passphrase 會以明文形式寫進你的程式配置,一旦配置洩露,重複使用的密碼也會跟著暴露。
- 歐易不儲存原文:官方文件寫明只儲存 Passphrase 加鹽後的雜湊值,所以無法幫你找回,頁面上也查不到。
- 和 Secret Key 放在一起儲存:用密碼管理器為每個 Key 建一條記錄,三項資訊加上用途、繫結的 IP 一起記好。
- 在 CCXT 裡填
password欄位:很多人第一次用 CCXT 連歐易報錯,就是因為沒傳 Passphrase。
歐易 API 權限:讀取、交易、提現怎麼選?
新建 Key 時,歐易提供讀取、交易、提現三項基礎權限,以及單獨勾選的劃轉、借貸、賺幣選項。權限定義和本站建議如下:
| 權限 | 官方說明 | 建議 |
|---|---|---|
| 讀取(Read) | 檢視帳單、訂單歷史等帳戶資訊 | 開啟 |
| 交易(Trade) | 下單、撤單、調整帳戶設定等 | 需要程式下單時才開 |
| 提現(Withdraw) | 通過 API 提現 | 永遠不開 |
| 劃轉(Transfer) | 在帳戶之間劃轉資金 | 程式確實需要劃轉時才開 |
| 借貸 / 賺幣(Loan / Earn) | 借幣、賺幣相關操作,僅符合條件的帳戶可選 | 用不到就不開 |
兩個容易忽略的細節:
- 歐易的「交易」權限不只是下單,還包括帳戶設定(比如調整槓桿倍數)。歐易 API FAQ 提到,只有在這次權限調整之前就已開通交易權限的老 Key,才會自動帶上劃轉、借貸、賺幣相關權限;新建的 Key 需要自己單獨勾選。老 Key 的權限範圍可能比你以為的大,建議到 API 頁面檢查一遍,用不到的權限關掉,並繫結 IP、用子帳戶隔離。
- 只想查行情不需要 API Key,行情、K 線、交易對規則都是公開介面;只想做資產統計,建一個只讀 Key 即可。
歐易 API 的 IP 白名單怎麼繫結?
截至 2026 年 10 月,歐易 API 文件對 IP 繫結的規則是:
- 每個 API Key 最多繫結 20 個 IP,支援 IPv4、IPv6 和網段格式。
- 沒有繫結 IP、又開了交易或提現權限的 Key,連續 14 天未使用會自動刪除。模擬盤 Key 不受這條限制。
- 「使用」只算呼叫需要認證的私有介面,比如查餘額、下單;只調公開介面時即使帶了 Key 也不算。WebSocket 只有登入那一下算使用。
- 未繫結 IP 的交易或提現 Key 的使用記錄,可以在安全中心檢視。
這條 14 天規則經常讓人措手不及:你在本地測試時沒綁 IP,過兩週再執行,Key 已經不存在了,程式只會報 50111。解決辦法是給長期使用的 Key 繫結 IP;臨時測試用的 Key,用完就主動刪除,不要留著等它過期。
繫結 IP 後,如果從白名單以外的地址請求,會收到 50110(Your IP is not included in your API key’s IP whitelist)。家庭寬頻的公網 IP 經常變化,長期執行的程式最好放在固定 IP 的雲伺服器上,並在更換伺服器後第一時間更新白名單。
歐易模擬盤 API 怎麼建立和使用?
模擬盤用的是虛擬資金,行情和撮合也獨立於實盤,是測試程式最安全的地方。建立步驟:
- 登入歐易,進入交易 → 模擬交易。
- 開啟個人中心 → 模擬盤 API。
- 點建立模擬盤 API Key,同樣要設定 Passphrase 和權限。
使用時要記住三點:
- REST 域名和實盤相同,區別只在請求頭:每個模擬盤請求都要帶
x-simulated-trading: 1。WebSocket 則換成 wspap.okx.com 的地址。 - 部分功能不支援:文件寫明模擬盤不支援提現、充值、申購贖回等。
- 價格和實盤不一樣:模擬盤有自己的訂單簿。我們在同一時間分別請求實盤和模擬盤的 BTC-USDT 行情,實盤最新價 81828.7,模擬盤是 82556.2(執行時資料),所以不要用模擬盤價格判斷實盤行情。
下面是只用 Python 標準庫呼叫模擬盤餘額介面的寫法,三項金鑰從環境變數讀取:
import base64
import hashlib
import hmac
import json
import os
import urllib.error
import urllib.request
from datetime import datetime, timezone
API_KEY = os.environ["OKX_API_KEY"]
SECRET = os.environ["OKX_API_SECRET"]
PASSPHRASE = os.environ["OKX_API_PASSPHRASE"]
DEMO = True # 模擬盤 Key 必須配合 x-simulated-trading: 1
path = "/api/v5/account/balance?ccy=USDT"
ts = datetime.now(timezone.utc).isoformat(timespec="milliseconds").replace("+00:00", "Z")
prehash = ts + "GET" + path
sign = base64.b64encode(hmac.new(SECRET.encode(), prehash.encode(), hashlib.sha256).digest()).decode()
headers = {
"OK-ACCESS-KEY": API_KEY,
"OK-ACCESS-SIGN": sign,
"OK-ACCESS-TIMESTAMP": ts,
"OK-ACCESS-PASSPHRASE": PASSPHRASE,
"Content-Type": "application/json",
"User-Agent": "my-okx-script/1.0",
}
if DEMO:
headers["x-simulated-trading"] = "1"
BASE_URL = "https://openapi.okx.com" # www.okx.com 目前也能用
req = urllib.request.Request(BASE_URL + path, headers=headers)
try:
with urllib.request.urlopen(req, timeout=10) as r:
print(json.loads(r.read()))
except urllib.error.HTTPError as e:
print(e.code, e.read().decode())
我們用一組隨意填寫的假 Key 執行,伺服器返回的真實結果是:
401 {"msg":"Invalid OK-ACCESS-KEY","code":"50111"}
說明請求已經正確到達認證環節,換成你自己的模擬盤 Key 就會返回餘額。程式碼里加 User-Agent 是因為實測不帶這個請求頭時,Python 自帶的 urllib 會被攔截,返回 403 和 error code: 1010。
用 CCXT 更簡單,set_sandbox_mode(True) 會自動加上模擬盤請求頭:
import os
import ccxt
okx = ccxt.okx({
"apiKey": os.environ["OKX_API_KEY"],
"secret": os.environ["OKX_API_SECRET"],
"password": os.environ["OKX_API_PASSPHRASE"], # Passphrase 填在 password 欄位
})
okx.set_sandbox_mode(True) # 自動加上 x-simulated-trading: 1
print(okx.headers)
try:
print(okx.fetch_balance()["USDT"])
except ccxt.AuthenticationError as e:
print("認證失敗:", e)
執行輸出(假 Key):
{'x-simulated-trading': '1'}
認證失敗: okx {"msg":"Invalid OK-ACCESS-KEY","code":"50111"}
完整的查餘額、下單、撤單指令碼見 Python 用 CCXT 連線幣安和歐易。
歐易子帳戶怎麼建立 API?
把程式放在子帳戶裡跑,可以讓程式最多只能動用你轉進去的那部分錢。按歐易幫助中心說明:
- 網頁端進入頭像 → 子帳戶 → 建立子帳戶,填寫名稱、選擇帳戶類型,完成 2FA。普通使用者最多可建立 5 個子帳戶。
- 主帳戶向子帳戶劃轉你願意讓程式使用的資金。
- 到 API → 建立 API Key,在「帳戶」一欄選擇這個子帳戶,其餘步驟與主帳戶相同。
子帳戶還有一個好處:歐易的私有介面限頻按使用者 ID 計算,子帳戶有獨立的使用者 ID,多個程式分開在不同子帳戶裡,互相不搶限頻額度。截至 2026 年 10 月,歐易文件列出的規則是:公開介面按 IP 限頻,私有介面按使用者 ID 限頻;下單、改單、撤單的限頻按交易產品分別計算;每個子帳戶每 2 秒最多 1000 次下單和改單請求,超出返回 50061。普通指令碼遠遠碰不到這些上限,真正容易觸發的是循環裡不加間隔地反覆查詢,這時會收到 50011。
歐易 API 常見報錯怎麼解決?
| 錯誤碼 | 原文(節選) | 怎麼處理 |
|---|---|---|
| 50101 | APIKey does not match current environment | 實盤 Key 和模擬盤 Key 混用,檢查 x-simulated-trading |
| 50102 | Timestamp request expired | 本機時間與伺服器相差超過 30 秒,開啟自動對時,時間戳用 UTC |
| 50104 / 50105 | OK-ACCESS-PASSPHRASE cannot be empty / incorrect | 沒傳 Passphrase 或填錯,CCXT 裡檢查 password |
| 50110 | Your IP is not included in your API key’s IP whitelist | 當前出口 IP 不在白名單,更新白名單 |
| 50111 | Invalid OK-ACCESS-KEY | Key 填錯、已被刪除,或複製時帶了空格 |
| 50113 | Invalid signature | 簽名字串拼錯,詳見簽名原理一文 |
| 50011 | Rate limit reached | 請求太頻繁,降低頻率或開啟 CCXT 的 enableRateLimit |
歐易 API Key 洩露了怎麼辦?
- 立即到 API 頁面刪除該 Key。不確定哪個洩露,就全部刪除後按需重建。
- 檢查訂單歷史、資金劃轉和提現記錄,確認有沒有陌生操作。
- 修改登入密碼和資金密碼,重新繫結 2FA;懷疑電腦中毒時換一臺乾淨裝置操作。
- 通過歐易官網或 App 的線上客服說明情況。
- 清理洩露源頭:程式碼倉庫、聊天記錄、截圖、雲筆記。更多防護設定見 帳戶安全設定指南,也要小心 釣魚網站 騙取 API 資訊。
常見問題
歐易 API 的 Passphrase 忘了怎麼辦?
無法找回,也無法在頁面上檢視。歐易只儲存 Passphrase 加鹽後的雜湊值,官方文件寫明丟失後只能刪除這個 API Key 重新建立,並把程式裡的三項配置全部換成新的。
歐易 API Key 為什麼突然失效了?
最常見的原因是這個 Key 沒有繫結 IP,又開了交易或提現權限,連續 14 天沒有呼叫需要認證的介面,被歐易自動刪除。其他原因包括 IP 變了、權限被修改,或把實盤 Key 用在了模擬盤。
歐易模擬盤 API 和實盤 API 能通用嗎?
不能。模擬盤 Key 要在「交易 → 模擬交易 → 個人中心」裡單獨建立,請求時還必須帶 x-simulated-trading: 1 請求頭。實盤 Key 連模擬盤、模擬盤 Key 連實盤都會報 50101 環境不匹配。
歐易 API 報錯 50113 是什麼意思?
50113 是 Invalid signature,簽名錯誤。常見原因是簽名用的時間戳和請求頭裡的不一致、請求方法沒有大寫、GET 引數沒算進 requestPath,或簽名用的 body 和實際傳送的不是同一個字串。
歐易子帳戶能單獨建立 API Key 嗎?
可以。在建立 API Key 的表單裡選擇要繫結的帳戶,選子帳戶即可生成只作用於該子帳戶的 Key。歐易普通使用者最多可建立 5 個子帳戶,適合把程式化交易的資金和主帳戶隔開。
準備好出發了嗎?
參考來源
- OKX API v5 文件:Overview / REST Authentication / Demo Trading
- OKX 幫助中心:OKX API FAQ
- OKX 幫助中心:Subaccounts, Account Mode, and API Connections FAQ
- OKX API v5 文件:Error Code(50000 系列認證錯誤)
以上資訊核實於 2026-10-22,交易所規則可能調整,請以官方最新說明為準。
本文僅供學習參考,不構成投資建議。交易所的費率、活動與功能可能隨時調整,請以官方頁面為準。文中部分連結為推廣連結,詳見推廣披露。