OKX APIキーの権限はRead、Trade、Withdrawの3種類で、1キーに最大20個のIPを登録できます。アプリごとに別キーを作り、Readのみで開始し、固定送信元IPを登録します。IP未登録のTrade/Withdrawキーには14日間の非アクティブ失効ルールがあります。署名とプライベートReadを確認してからTradeを追加し、通常の看板やボットではWithdrawを無効にします。
安全なOKX APIキーの基本
APIキーは1つのアプリ、1つの環境、1つの目的に分けます。残高表示や通知は通常Readだけで足ります。売買ボットにはTradeが必要でも、自動的にWithdrawが必要になるわけではありません。分離しておけば、問題のある連携だけを停止できます。
| 用途 | Read | Trade | Withdraw | 推奨する境界 |
|---|---|---|---|---|
| 資産・税務データ | 有効 | 無効 | 無効 | 読み取り専用 |
| アラート・監視 | 有効 | 無効 | 無効 | ホスト時はIP制限を検討 |
| 売買ボット | 有効 | 必要時のみ | 無効 | 専用キー、固定IP、アプリ側の注文制限 |
| 出金自動化 | 有効 | 必要時のみ | 個別審査後のみ | 通常の売買処理から分離 |
本番運用で重要な3つの数字
| ルール | 公式値 | 実務への影響 |
|---|---|---|
| 権限種類 | 3 | Read、Trade、Withdrawを個別に審査でき、ボットに全権限は不要 |
| 1キーのIP | 最大20 | 複数出口に対応できるが、実際の本番IPだけを登録 |
| IP未登録キーの非アクティブ失効 | 14日 | Trade/Withdrawキーは監視とローテーションが必要 |
実際の連携例
| 連携 | 必要なデータ・操作 | 推奨権限 | 追加制御 |
|---|---|---|---|
| 資産・税務看板 | 残高、約定、明細 | Read | Secretはサーバーのみ、定期取得 |
| 価格・リスク通知 | 公開市場データと口座ポジション | Read | 公開データは可能な限り認証なしAPIを使う |
| 自動発注ボット | 口座照会、注文、取消 | Read + Trade | 固定IP、銘柄リスト、注文・日次上限、緊急失効手順 |
Withdrawは通常の売買ボットに不要です。 自動出金が必要なら、別サービス、別キー、別承認、別上限へ分離します。
作成手順
- 用途を先に決める。 データ取得だけか、注文・取消まで行うかを書き出します。
- OKX登録ページからアカウントへ入り、ログイン後にAPI設定を開きます。 古いキーを流用せず、アプリ専用のキーを作成します。紹介特典では取引手数料が20%割引になります。
- 最小権限を選ぶ。 最初はReadだけにします。
- 認証情報を直ちに保管する。 APIキー、Secret、Passphraseをシークレット管理または暗号化した環境設定へ保存し、チャット、コード、画像、ログへ貼りません。
- 固定の送信元IPがある場合は登録する。 開発PCではなく本番サーバーから見えるIPを確認します。
- プライベートな読み取りAPIを1本試す。 署名、時計、アカウント範囲を確認します。
- デモ用キーを別に作る。 デモ成功を本番の安全確認として扱いません。
OKX REST署名の構成
公式認証ガイドでは、タイムスタンプ、大文字のHTTPメソッド、リクエストパス、本文を連結し、API SecretでHMAC SHA-256署名した結果をBase64化します。プライベートRESTでは、文書に示されたAPIキー、署名、時刻、Passphraseのヘッダーも送ります。
prehash = timestamp + METHOD + requestPath + body
signature = Base64(HMAC_SHA256(secret, prehash))
署名したパスにはクエリ文字列を含め、署名時の本文と送信本文を一致させます。デバッグログへSecretや完全な認証情報を残さないでください。
よくある認証エラー
| 症状 | 最初の確認 | 安全な確認方法 |
|---|---|---|
| Invalid signature | メソッド、パス、本文、Base64 | Secretを除いた署名前文字列を比較 |
| Timestamp expired | サーバー時刻と形式 | UTCとのずれを確認 |
| Passphrase error | 作成時に保存した値 | 安全に復元できなければキーを再作成 |
| Permission denied | Read、Trade、Withdraw | まずReadを確認し、無条件に権限を広げない |
| IP restriction | 本番の送信元IP | 実行環境からegress IPを確認 |
| デモで失敗 | デモキーとデモ要件 | 公式デモ取引の節を再確認 |
本番前チェック
- 連携と環境ごとに別キーを使用する。
- SecretをGitへ登録せず、ブラウザーJavaScriptへ含めない。
- 通常の監視・売買ボットではWithdrawを無効にする。
- 固定IPがある場合は許可リストを使う。
- ログからAPIキー、Secret、Passphrase、署名を除く。
- 失効とローテーションの手順を決める。
- アプリ側で銘柄、注文サイズ、最大損失を制限する。
- デモとRead確認後に小額で本番テストする。
認証後は、口座に表示された実際のレートを OKX手数料計算 に入力してください。公開ページの単一レートを全口座に適用しないことが重要です。
よくある質問
OKX APIキーではどの権限を有効にすべきですか?
まずReadのみで開始します。注文や取消が必要な場合だけTradeを追加し、出金が明確に必要で個別のセキュリティ審査を終えていない限りWithdrawは無効にします。
OKX APIキーにIPアドレスを登録すべきですか?
サーバーに固定の送信元IPがある場合は推奨です。ただしIP制限は、秘密情報の安全な保管や最小権限の代わりにはなりません。
OKXのデモ取引と本番で同じAPIキーを使えますか?
分離してください。デモと本番は別の認証情報と環境として扱い、OKXのデモ取引向けリクエスト要件を使用します。
OKXでInvalid signatureになる原因は何ですか?
タイムスタンプ、HTTPメソッド、パス、本文、Secret、Passphrase、HMAC結果のBase64処理を確認します。Secretを記録せず、署名前文字列だけをマスクして比較します。
1つのOKX APIキーに何個のIPを登録できますか?
OKX V5文書では1つのAPIキーに最大20個のIPを登録できます。本番では上限まで埋めず、実際の送信元IPだけを登録します。
OKX APIキーは自動失効しますか?
IP未登録でTradeまたはWithdraw権限を持つキーは14日間非アクティブだと失効すると公式文書にあります。デモ取引キーはこのルールの対象外です。