なぜ「kabuステーションAPI × Python」が現実解なのか
2026年現在、個人投資家が日本株を公式APIでリアルタイム自動売買できる選択肢は限られています。SBI証券・楽天証券は個人向けの公式公開APIを提供していないため、現実的な本命はauカブコム証券の「kabuステーションAPI」です。kabuステーションをローカルで常駐させ、Pythonからローカルホスト経由でREST/WebSocketを叩く構成で、約定スピードと安定性のバランスが優秀です。
本記事では、(1) APIトークンの取得、(2) 板情報の取得、(3) 成行注文の発注、までを最小構成のPythonコードで通して見ていきます。実弾運用の前に、必ず検証環境(ポート18081)で動作確認するのが鉄則です。
事前準備
kabuステーションをPCにインストールし、ログインしたうえで「API設定」を有効化、APIパスワードを設定しておきます。検証環境のエンドポイントはhttp://localhost:18081/kabusapi、本番は:18080です。Pythonからはrequestsのみで完結し、追加ライブラリは基本的に不要です。
Python実装:トークン取得 → 板情報 → 成行発注
import json
import requests
BASE = 'http://localhost:18081/kabusapi' # 検証環境
API_PASSWORD = 'YOUR_API_PASSWORD'
def get_token():
r = requests.post(
f'{BASE}/token',
json={'APIPassword': API_PASSWORD},
headers={'Content-Type': 'application/json'},
timeout=5,
)
r.raise_for_status()
return r.json()['Token']
def get_board(token, symbol='7203', exchange=1):
# 7203 = トヨタ自動車, exchange=1: 東証
url = f'{BASE}/board/{symbol}@{exchange}'
r = requests.get(url, headers={'X-API-KEY': token}, timeout=5)
r.raise_for_status()
return r.json()
def send_market_order(token, symbol='7203', qty=100, side='2'):
# side: '1'=売, '2'=買
payload = {
'Password': 'YOUR_TRADE_PASSWORD',
'Symbol': symbol,
'Exchange': 1,
'SecurityType': 1,
'Side': side,
'CashMargin': 1, # 1=現物
'DelivType': 2, # 2=お預り金
'AccountType': 4, # 4=特定
'Qty': qty,
'FrontOrderType': 10, # 10=成行
'Price': 0,
'ExpireDay': 0, # 0=当日
}
r = requests.post(
f'{BASE}/sendorder',
headers={'X-API-KEY': token, 'Content-Type': 'application/json'},
data=json.dumps(payload),
timeout=5,
)
return r.status_code, r.json()
if __name__ == '__main__':
tok = get_token()
board = get_board(tok)
print('現在値:', board.get('CurrentPrice'))
# 簡易ロジック: 直近10秒で上昇していたら買い、など
# status, resp = send_market_order(tok)
# print(status, resp)
コードのポイント
kabuステーションAPIは「ローカルホストAPI」なので、認証はAPIパスワード→トークン交換方式です。トークンは取得のたびに新規発行され、古いものは無効化されます。発注時のFrontOrderTypeとDelivTypeの組み合わせは現物/信用で異なるため、公式仕様書を必ず参照してください。
本番運用前のチェックリスト
実弾を投じる前に、最低でも次の4点はクリアしましょう。(1) 検証環境(ポート18081)で全フローを通す、(2) 例外処理と再送ロジック(タイムアウト・5xx・ネットワーク断)、(3) ポジションサイズと損失上限のハードコード、(4) ログ/約定通知(Slack/Discord webhook)の実装。とくに(3)はBOT暴走対策の最後の砦になります。
まとめと次のステップ
kabuステーションAPI × Pythonの構成は、個人投資家が日本株でAPI発注を行うための最も現実的なルートです。次のステップとしては、(1) WebSocket(PUSH配信)でティック取得 → イベント駆動の発注、(2) Backtesting.pyで検証 → そのままライブに移植、(3) Streamlitでダッシュボード化、がおすすめです。まずは検証環境で「板取得→疑似発注」のループを安定させるところから始めましょう。

