トレーディングツール

Binance APIの始め方:Pythonのコード1行で価格情報を取得する方法

2026-04-23 · 9 分で読了

APIを使えばプログラムによる自動売買が可能になります。本記事ではAPIキーの作成方法から、Pythonでの価格情報取得までを解説します。

APIは、クオンツ運用や自動化への鍵となります。まず Binance公式サイト で登録を行い、Binance公式アプリ をダウンロードしてください(iOSについては iOSインストールガイド を参照)。

APIとは何か

Application Programming Interfaceの略です。自分のプログラムを使って、手動操作の代わりにBinanceの全機能を呼び出すことができます:

  • 相場情報の取得
  • 注文の発注
  • 注文のキャンセル
  • 残高・ポジションの確認
  • 資金移動(制限あり)

APIキーの作成方法

手順

  1. Binanceのウェブサイトにログイン
  2. プロフィールアイコン → [API管理] を選択
  3. [APIの作成] をクリック
  4. [システム生成] を選択 → 2FA認証 → APIに名前を付ける
  5. 完了

作成後、以下の2つの情報が発行されます:

  • API Key(公開される識別子)
  • Secret Key(秘密の署名用キー)

Secret Keyは作成時に一度だけ表示されます。 必ず安全な場所に保存してください。

権限の設定

各APIキーには以下の権限を設定できます:

  • 現物・マージン取引を有効化
  • 先物取引を有効化
  • 出金を有効化
  • マージン借入を有効化

初心者はまず「読み取り専用」のみに設定することをお勧めします。

「出金を有効化」には絶対にチェックを入れないでください。IPホワイトリストを設定していても、出金権限を付与することは非常に高いリスクを伴います。

IPホワイトリスト

固定IPアドレスをバインドすることを強くお勧めします。指定したIP以外からのリクエストをすべて無効化できます。

自宅や会社の固定IPが適していますが、動的IPの場合はVPSを経由して運用するのが一般的です。

Pythonで最初の1行

import requests
r = requests.get('https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT')
print(r.json())

出力例:{'symbol': 'BTCUSDT', 'price': '63500.5'}

APIキーを必要としない公開相場APIは、このように非常にシンプルに利用できます。

認証が必要なリクエスト

注文などのプライベートAPIには署名が必要です。Pythonでの例:

import time, hmac, hashlib, requests
api_key = 'YOUR_KEY'
secret = 'YOUR_SECRET'
ts = int(time.time() * 1000)
params = f'symbol=BTCUSDT&timestamp={ts}'
sig = hmac.new(secret.encode(), params.encode(), hashlib.sha256).hexdigest()
url = f'https://api.binance.com/api/v3/account?{params}&signature={sig}'
r = requests.get(url, headers={'X-MBX-APIKEY': api_key})
print(r.json())

これにより、現物アカウントの残高情報が返ってきます。

おすすめのPythonライブラリ

ゼロから書く必要はありません。定評のあるライブラリを利用しましょう:

  • python-binance:最もポピュラーなSDK
  • ccxt:多くの取引所に対応した汎用ライブラリ
  • binance-connector-python:Binance公式のSDK
from binance.client import Client
client = Client(api_key, secret)
print(client.get_account())

これだけで複雑な認証処理を代行してくれます。

レート制限(Rate Limit)

Binance APIには制限があります:

  • 公開相場API:1,200 weight/分
  • プライベートAPI:120 weight/10秒

制限を超えると一時的にIPがブロックされます。エンドポイントごとに消費されるweightが異なり、注文1回で1 weight、残高確認も1 weightといった具合です。

よくあるエラー

1. -1021 Timestamp for this request is outside of the recvWindow

サーバー時刻とPCの時刻が5秒以上ずれています。OSの時刻同期設定を確認してください。

2. -2010 Account has insufficient balance

注文時の残高が不足しています。アカウントを確認してください。

3. -2011 Unknown order sent

注文がすでに約定しているか、存在しない注文をキャンセルしようとした場合に発生します。

4. -1003 Too many requests

リクエスト頻度が高すぎます。速度を落としてください。

REST vs WebSocket

用途 REST WebSocket
単発のリクエスト 適している 適さない
リアルタイムデータ 適さない 適している
K線のスナップショット 適している 適さない
価格のプッシュ配信 適さない 適している

クオンツ戦略の多くは、RESTとWebSocketを併用して構築されます。

WebSocketの例

import websocket
ws = websocket.WebSocketApp('wss://stream.binance.com:9443/ws/btcusdt@trade',
  on_message=lambda ws, msg: print(msg))
ws.run_forever()

BTC/USDTの全約定データがリアルタイムでプッシュされます。

テストネット(Testnet)

Binanceは練習用のテストネットを提供しています:

  • testnet.binance.vision(現物)
  • testnet.binancefuture.com(先物)

仮想の資金を使って、損失を気にせず練習できます。初心者はまずここで試すのが鉄則です。

APIのリスク管理

1. キーの用途別管理

戦略ごとに異なるAPIキーを発行します。問題が起きてもそのキーを削除するだけで済みます。

2. バックアップと暗号化

シークレットキーはパスワードマネージャーで保存し、ソースコードに平文で書かないでください。

3. 出金権限は絶対にオフ

自動出金の必要性が明確にあり、リスクを完全に理解している場合を除き、常にオフにします。

4. 定期的な監査

毎週APIリストを確認し、使用していないキーは削除しましょう。

APIの活用例

  • クオンツ戦略(自動売買)
  • 監視(資産変動の通知)
  • 自動アービトラージ(裁定取引)
  • データ分析(過去のK線取得)
  • コピートレード(他人の取引をAPIでコピー)
  • カスタム指標・アラート作成

学習ロードマップ

  1. まずはテストネットで Hello World
  2. SDKを使って現在の価格を取得
  3. 「価格がX以下になったら通知」という簡単なスクリプトを作成
  4. 少額・低レバレッジで単純な戦略を本番環境で試す
  5. ロジックの最適化とリスク管理の強化
  6. 本格的な運用を開始

よくある質問

Q: APIを利用するのに本人確認(KYC)は必要ですか? A: アカウント自体がKYC済みであれば、APIのために別途認証を行う必要はありません。

Q: APIの利用に手数料はかかりますか? A: API経由の注文でも、通常の手数料率が適用されます。BNB割引も有効です。

Q: APIですべての機能を自動化できますか? A: はい。ただし、プログラムのバグやリスク管理の失敗は自己責任となります。

Q: APIキーを忘れた場合、確認できますか? A: シークレットキーは作成時以外確認できません。忘れた場合は削除して再作成してください。

関連ガイド

APIはエンジニアにとっての最強の武器です。テストネットから始めて、自分だけの投資戦略を構築しましょう。