本記事はPython学習・情報提供を目的としています。投資判断はご自身の責任で行ってください。
SBI証券のAPIとは
SBI証券が提供する取引ツール「HYPER SBI 2」には、ローカルHTTP APIが搭載されています。このAPIを使うと、Pythonから注文・残高照会・保有銘柄確認などができます。ただし、WindowsのHYPER SBI 2が起動している状態でのみ動作する点に注意が必要です。
SBI証券APIの基本情報
| 項目 | 内容 |
|---|---|
| APIの種類 | ローカルHTTP API(REST) |
| エンドポイント | http://localhost:18080 |
| 対応OS | Windowsのみ(Mac非対応) |
| 必要なツール | HYPER SBI 2(起動中) |
| 料金 | 無料(口座開設のみ必要) |
| 認証方式 | なし(ローカル接続のみ) |
事前準備
1. SBI証券の口座開設
SBI証券の口座をお持ちでない方は、まず公式サイトから口座開設を行います。審査は通常1〜3営業日です。
2. HYPER SBI 2のインストール
口座開設後、SBI証券のサイトから「HYPER SBI 2」をダウンロード・インストールします。Windowsのみ対応しています。
3. APIを有効化する
HYPER SBI 2を起動し、設定メニューから「外部連携API」を有効化します。
PythonからAPIを呼び出す
必要なライブラリ
pip install requests
残高照会
import requests
import json
BASE_URL = "http://localhost:18080"
def get_balance():
"""口座残高を取得する"""
url = f"{BASE_URL}/kabusapi/wallet/cash"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
print(f"現金残高: {data.get('StockAccountWallet', 0):,.0f}円")
return data
else:
print(f"エラー: {response.status_code}")
return None
get_balance()
保有銘柄の確認
import requests
import pandas as pd
BASE_URL = "http://localhost:18080"
def get_positions():
"""保有銘柄一覧を取得する"""
url = f"{BASE_URL}/kabusapi/positions"
response = requests.get(url)
if response.status_code == 200:
positions = response.json()
df = pd.DataFrame(positions)
if not df.empty:
display_cols = ['Symbol', 'SymbolName', 'Side', 'Qty', 'Price', 'ProfitLoss']
print(df[display_cols].to_string(index=False))
return df
else:
print(f"エラー: {response.status_code}")
return None
get_positions()
株価取得
import requests
BASE_URL = "http://localhost:18080"
def get_board(symbol, exchange=1):
"""板情報(現在値)を取得する
exchange: 1=東証, 3=名証, 6=福証, 9=札証
"""
url = f"{BASE_URL}/kabusapi/board/{symbol}@{exchange}"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
print(f"銘柄: {data.get('SymbolName')}")
print(f"現在値: {data.get('CurrentPrice'):,.0f}円")
print(f"前日比: {data.get('ChangePreviousPrice'):+,.0f}円")
print(f"出来高: {data.get('TradingVolume'):,.0f}株")
return data
else:
print(f"エラー: {response.status_code}")
# トヨタ自動車(7203)東証
get_board("7203", 1)
よくある質問
| 質問 | 回答 |
|---|---|
| Macでも使えますか? | いいえ。HYPER SBI 2はWindowsのみ対応です |
| APIキーは必要ですか? | 不要。ローカル接続なので認証なしで使えます |
| リアルタイムデータは取得できますか? | はい。WebSocketでリアルタイム受信も可能です |
| 本番取引の注文はできますか? | はい。ただし十分なテストを行ってください |
まとめ
SBI証券のローカルHTTP APIは、Pythonから株価取得・残高照会・注文まで幅広く対応しています。Windows環境でHYPER SBI 2が起動中であれば、追加費用なしで使えます。まずは残高照会と株価取得から試してみましょう。

