API連携

バイナンスAPIの申請方法:APIキー取得と署名生成の完全ガイド

バイナンス(Binance)APIキー申請の全プロセス:KYC完了からキー作成、IPホワイトリスト設定、HMAC-SHA256署名の生成方法まで解説。PythonとNode.jsの実装コード例付き。

バイナンス(Binance)のAPI申請の主な流れは、KYC(本人確認)L2の完了 → バイナンス公式サイト のAPI管理ページでキーを作成 → IPホワイトリストを設定 → コード内でHMAC-SHA256署名を使用して呼び出す、というステップです。全工程は約 15分 で完了し、キー作成後すぐに利用可能です。APIは無料で、月額費用もかかりません。2段階認証(2FA)の管理に便利なスマホ版をまだお持ちでない方は、バイナンス公式アプリ からAndroid版をインストールできます。iPhoneユーザーの方は iOSインストールガイド を参照してください。この記事では、申請、署名、エラー対処、レート制限の4つのパートに分けて詳しく解説し、PythonとNode.jsの完全なコードサンプルも提供します。

一、APIキー申請の前提条件

1. KYC L2(本人確認)の完了

バイナンスAPIを利用するには、少なくとも L2(中級)の身分証明(身分証の提出 + 顔認証)を完了している必要があります。L1(初級)のアカウントではAPIキーを作成できません。通常、L2の審査は24時間以内に完了します。

2. 2FA(2段階認証)の有効化(必須)

APIキーの作成プロセスでは、2段階認証コードによる確認が必要です。まだ設定していない場合は、セキュリティセンター → 2段階認証 → Google Authenticator で設定を完了させてください。

3. 残高・保有資産の制限なし

残高がゼロの状態でもAPIキーを作成できます。あらかじめキーを準備してから入金することが可能です。

二、APIキーの作成(5つのステップ)

ステップ1:API管理ページへアクセス

バイナンス公式サイト にログイン → 右上のアイコンをクリック → 「API管理」 を選択します。

ステップ2:キーのタイプを選択

バイナンスでは2種類のAPIキータイプを提供しています:

タイプ 用途 推奨されるケース
システム生成 システムが自動でキーペアを生成 90%のユーザーに推奨。シンプルで安定
自己生成 自身でEd25519公開鍵を提供 上級ユーザー。秘密鍵をローカルから一切出さない

初心者の方は 「システム生成」 を選択してください。

ステップ3:ラベル(名前)を入力

管理しやすいように、キーに名前(ラベル)を付けます。例:

  • python-grid-bot — グリッド取引ボット用
  • nodejs-monitor — 価格監視スクリプト用
  • quantitative-strategy-v2 — 量化戦略 v2

このラベルは自分だけに表示され、バイナンス側での機能差はありません。

ステップ4:2FA認証を完了

以下のコードを入力します:

  • メール送信の6桁認証コード
  • SMS送信の6桁認証コード
  • Google Authenticator の6桁動的コード

すべて正しく入力されると、キーが生成されます。

ステップ5:シークレットキー(Secret Key)の保存(最重要)

キーの生成後、以下の情報が表示されます:

  • API Key:常に表示され、いつでも確認可能です。
  • Secret Key作成時に一度だけ表示されます。ページを閉じると二度と表示されません。

必ずすぐにシークレットキーを安全な場所(パスワードマネージャーや暗号化されたメモなど)にコピーしてください。紛失した場合は、キーを削除して再作成するしかありません。

三、キー権限とIPホワイトリストの設定

キー作成直後は、すべての操作権限がオフになっています。手動で有効化する必要があります:

権限のオプション

権限 用途 リスクレベル
読み取りを有効にする 残高、注文、相場の照会
現物・マージン取引を有効にする 現物 / レバレッジ取引の発注
先物を有効にする 先物取引の発注
出金を有効にする 資産の出金(IPホワイトリストの設定が必須) 極高
ユニバーサル転送を許可する 資金アカウント間の振替

セキュリティ上のアドバイス:必要な権限のみを有効にしてください。相場データの取得だけなら 「読み取りを有効にする」 のみ、現物取引なら 「読み取り + 現物・マージン取引」 を選びます。「出金を有効にする」 は、特別な理由がない限り決して有効にしないでください。

IPホワイトリスト(強く推奨)

このキーの使用を許可するサーバーのIPアドレスを登録します(最大30個まで)。設定すると、登録されたIP以外からのリクエストは拒否されます。

自宅の回線など動的IPの場合は、IP制限なし(「制限なし」)を選択できますが、その場合、セキュリティ保護のため 「出金を有効にする」権限は利用できません。これはバイナンスの強制的な安全規則です。

四、署名の生成とAPI呼び出し

バイナンスのREST APIでは、アカウント操作に関連するすべてのリクエストに署名が必要です。署名アルゴリズムには HMAC-SHA256 を使用します。

署名のルール

署名対象 = すべてのリクエストパラメータをURLエンコードし、& で連結した文字列

例:アカウント残高照会インターフェース

GET /api/v3/account
パラメータ: timestamp=1712876400000

署名対象: timestamp=1712876400000
署名: HMAC_SHA256(secret_key, "timestamp=1712876400000")

最終的なリクエスト:

GET /api/v3/account?timestamp=1712876400000&signature=<計算された署名>
ヘッダー: X-MBX-APIKEY: <あなたのAPIキー>

Python による実装例

import hmac, hashlib, time, requests

API_KEY = "あなたのAPIキー"
SECRET_KEY = "あなたのシークレットキー"
BASE_URL = "https://api.binance.com"

def sign(params: dict) -> str:
    query = "&".join([f"{k}={v}" for k, v in params.items()])
    return hmac.new(SECRET_KEY.encode(), query.encode(), hashlib.sha256).hexdigest()

def get_account():
    params = {"timestamp": int(time.time() * 1000)}
    params["signature"] = sign(params)
    headers = {"X-MBX-APIKEY": API_KEY}
    r = requests.get(f"{BASE_URL}/api/v3/account", params=params, headers=headers)
    return r.json()

print(get_account())

Node.js による実装例

const crypto = require('crypto');
const axios = require('axios');

const API_KEY = 'あなたのAPIキー';
const SECRET_KEY = 'あなたのシークレットキー';
const BASE_URL = 'https://api.binance.com';

function sign(params) {
  const query = Object.keys(params).map(k => `${k}=${params[k]}`).join('&');
  return crypto.createHmac('sha256', SECRET_KEY).update(query).digest('hex');
}

async function getAccount() {
  const params = { timestamp: Date.now() };
  params.signature = sign(params);
  const r = await axios.get(`${BASE_URL}/api/v3/account`, {
    params,
    headers: { 'X-MBX-APIKEY': API_KEY }
  });
  return r.data;
}

getAccount().then(console.log);

五、レート制限(Weight)と重み

バイナンスAPIは、重み(Weight) という仕組みで呼び出し頻度を制限しています:

制限項目 デフォルト値
1分間あたりの重み上限 6000
10秒間あたりの注文上限 100注文
1日あたりの注文上限 200,000注文
WebSocket 1接続あたりの購読数上限 1024

主なエンドポイントの重み

  • GET /api/v3/ticker/price — 重み 1
  • GET /api/v3/account — 重み 10
  • POST /api/v3/order — 重み 1(ただし注文回数制限を消費)

レスポンスヘッダーに現在の使用状況が返されます:

  • X-MBX-USED-WEIGHT-1m:直近1分間に使用された重み

制限を超えると 429 Too Many Requests エラーが返され、さらに違反が続くと 418 エラーとなり一時的にIPがブロックされます。

六、よくあるエラーと対処法

エラー: -1022 Signature for this request is not valid

原因:署名の誤り。パラメータの順序が署名時と異なっているか、URLエンコードが不適切です。 対処:署名に使用した文字列と、実際に送信するクエリ文字列が 完全に一致 しているか確認してください。

エラー: -1021 Timestamp for this request was 1000ms ahead of the server's time

原因:ローカルの時刻とサーバーの時刻が1秒以上ずれています。 対処:サーバーの時刻同期(NTP)を行うか、リクエストに recvWindow=10000 パラメータを追加して許容誤差を広げてください。

エラー: -2014 API-key format invalid

原因:APIキーの文字列が正しくありません。 対処:コピー時に余計な空白や改行が入っていないか確認してください。キーは64文字の英数字です。

七、APIセキュリティのベストプラクティス

  1. フロントエンドにシークレットキーを露出させない — 自身のバックエンドサーバー経由でバイナンスAPIを呼び出すようにしてください。
  2. .gitignore でキーファイルを管理外にする — GitHub等に誤ってアップロードしないよう注意してください。
  3. 本番環境ではIPホワイトリストを使用する — 特定のサーバーIPからのみのアクセスに制限してください。
  4. 定期的にキーを更新する — セキュリティのため、半年程度を目安に新しいキーを作成し直すことをお勧めします。

よくある質問 FAQ

Q1: APIキーの作成に費用はかかりますか?

A: 完全に無料です。呼び出し自体に費用はかかりませんが、実際の取引時には通常の手数料が発生します。1アカウントにつき最大30個までキーを作成できます。

Q2: APIで注文すると手数料が安くなりますか?

A: 自動的に安くなることはありません。手数料はユーザーのVIPレベルとBNBの保有状況に基づきますが、APIは高頻度な取引を可能にするため、実質的に有利な価格で約定させやすくなります。

Q3: テスト環境でシミュレーションできますか?

A: はい。バイナンスは現物・先物それぞれの テストネット(Testnet) を提供しており、リスクなしでAPI呼び出しを練習できます。

Q4: APIキーが盗まれた可能性がある場合は?

A: ただちに バイナンス公式サイトのAPI管理から該当するキーを削除してください。削除は即座に反映されます。

アカウントのリスク管理についてさらに詳しく知りたい場合は、カテゴリナビ から「リスク管理」カテゴリのガイドを参照してください。

引き続き閲覧

バイナンスの利用でまだ疑問がありますか?カテゴリページに戻って同じテーマの他のガイドを探しましょう。

カテゴリナビ

関連ガイド

バイナンス現物API(Spot API)の使い方:ゼロから最初の注文まで、実行可能なサンプルコード 2026-04-14 バイナンスの Futures と Spot API の違いは?エンドポイント・パラメータ・ウェイトの比較 2026-04-14 バイナンスAPIでIP制限を避けるには?レート制限とウェイト計算の仕組みを解説 2026-04-14 バイナンスのWebSocketで相場を購読する方法は?単一/混合ストリームのプロダクション級コード 2026-04-14