【2026年版】kabuステーションAPI(auカブコム証券)で作るPython自動売買BOTの最小構成

Python実装・コード

なぜ「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パスワード→トークン交換方式です。トークンは取得のたびに新規発行され、古いものは無効化されます。発注時のFrontOrderTypeDelivTypeの組み合わせは現物/信用で異なるため、公式仕様書を必ず参照してください。

本番運用前のチェックリスト

実弾を投じる前に、最低でも次の4点はクリアしましょう。(1) 検証環境(ポート18081)で全フローを通す、(2) 例外処理と再送ロジック(タイムアウト・5xx・ネットワーク断)、(3) ポジションサイズと損失上限のハードコード、(4) ログ/約定通知(Slack/Discord webhook)の実装。とくに(3)はBOT暴走対策の最後の砦になります。

まとめと次のステップ

kabuステーションAPI × Pythonの構成は、個人投資家が日本株でAPI発注を行うための最も現実的なルートです。次のステップとしては、(1) WebSocket(PUSH配信)でティック取得 → イベント駆動の発注、(2) Backtesting.pyで検証 → そのままライブに移植、(3) Streamlitでダッシュボード化、がおすすめです。まずは検証環境で「板取得→疑似発注」のループを安定させるところから始めましょう。

タイトルとURLをコピーしました