幣安(Binance)のAPIは2024年以降、急速に 발전하고 있으며、特に2026年にはWebSocket v2の正式導入によりリアルタイム取引の门槛が大きく下がりました。本記事では、API経験が全くない完全な初心者でも理解できるよう、基础から丁寧に解説いたします。
APIとは?まず始めに理解しておきましょう
API(Application Programming Interface)とは、ソフトウェア同士が通信するための「約束事」です。料理を例に考えると、レストランでウェイターに注文を伝えると、キッチンにリクエストが伝わります。ウェイターがAPIの役割を担当し、注文(リクエスト)を厨房(サーバー)に運び、作られた料理(レスポンス)をあなたのもとへ届けるのです。
幣安のAPIを使用することで、自分の 컴퓨터やスマートフォンから直接、暗号資産のリアルタイム価格を取得したり、自动取引を実行したりすることが可能になります。
幣安APIの2つの接続方式:RESTとWebSocket
幣安では主に2つの方法でAPIに接続できます。 각각の特徴を理解して、自分の目的に合った方法を選びましょう。
| 比較項目 | REST API | WebSocket v2 |
|---|---|---|
| 通信方式 | リクエスト→レスポンス型(一問一答) | 双方向通信(一度接続하면 유지) |
| リアルタイム性 | △ 新着データ获取にポーリング必要 | ◎ サーバー側から即座にプッシュ |
| リソース消費 | △ 频繁な要求で负荷增加 | ◎ 接続維持のみで効率的 |
| 実装难度 | ◎ 简单で初心者に優しい | △ 状態管理が必要で中級者向け |
| 主な用途 | 注文執行、历史データ取得、アカウント操作 | リアルタイム価格取得、板情報推送 |
| 速度 | 约100-300ms | 约5-50ms |
REST APIのはじめかた:ステップバイステップ
手順1:APIキーの取得
幣安アカウント持有が前提となります。持有していない方はまず今すぐ登録してアカウントを作成してください。
- 幣安にログインし、右上のプロフィールアイコンをクリック
- 「API管理」を選択
- 「新しいキーを生成」をクリック
- セキュリティ認証(2FAなど)を完了
- APIキーとシークレットキーを安全に保存(この画面を閉じると再表示できません)
⚠️ 重要:APIキーを誰にも渡さないでください。シークレットキーを含むと第三者があなたの账户で取引可能被になります。
手順2:Python環境の準備
初心者の方にはAnacondaまたはPython公式サイトからPython 3.9以上をインストールすることをお勧めします。インストールが完了したら、ターミナル(Windowsならコマンドプロンプト、Macならターミナル.app)で以下を実行して必要なライブラリをインストールします。
# 幣安公式ライブラリrequestsをインストール
pip install requests
WebSocket用ライブラリも合わせてインストール
pip install websockets
テスト用のHTTPクライアントもインストール
pip install python-dotenv
手順3:REST APIでリアルタイム価格を取得するコード
以下のコードは、REST APIを使ってBTC/USDTペアの現在の価格を取得する単純な例です。
import requests
import time
def get_btc_price():
"""
幣安REST APIを使用してBTC/USDTの最新価格を取得
初心者でも理解しやすいよう、コメントを丁寧に記述
"""
# 幣安の公开APIエンドポイント(認証不要)
url = "https://api.binance.com/api/v3/ticker/price"
# 取得したい取引ペアを指定
params = {"symbol": "BTCUSDT"}
try:
# GETリクエストを送信
response = requests.get(url, params=params)
# 正常なレスポンスかどうかを確認
if response.status_code == 200:
data = response.json()
print(f"🪙 BTC/USDT 価格: ${data['price']}")
return float(data['price'])
else:
print(f"❌ エラー発生: ステータスコード {response.status_code}")
return None
except requests.exceptions.RequestException as e:
# ネットワークエラー等の処理
print(f"❌ 通信エラー: {e}")
return None
関数を実行して価格を取得
if __name__ == "__main__":
price = get_btc_price()
print(f"取得完了: {price}")
手順4:実践的な例 — 自動取引Botの骨子
以下のコードは、REST APIを使った基本的な取引Botの構造示例です。実際の取引には更なる安全対策が必要です。
import requests
import hashlib
import hmac
import time
from datetime import datetime
class SimpleBinanceBot:
"""
初心者のためのシンプルな幣安取引Bot示例
⚠️ このコードは教育目的のみに使用してください
"""
def __init__(self, api_key, api_secret):
self.api_key = api_key
self.api_secret = api_secret
self.base_url = "https://api.binance.com"
def get_server_time(self):
"""サーバーとの時刻同期(署名生成に必要)"""
endpoint = "/api/v3/time"
response = requests.get(self.base_url + endpoint)
return response.json()['serverTime']
def create_signature(self, query_string):
"""HMAC SHA256でリクエスト署名を作成"""
signature = hmac.new(
self.api_secret.encode('utf-8'),
query_string.encode('utf-8'),
hashlib.sha256
).hexdigest()
return signature
def get_account_balance(self):
"""自分のアカウントの残高を取得"""
timestamp = self.get_server_time()
query_string = f"timestamp={timestamp}"
signature = self.create_signature(query_string)
headers = {"X-MBX-APIKEY": self.api_key}
params = {
"timestamp": timestamp,