auカブコム証券 kabuステーションAPI完全ガイド — 個人投資家向け株式自動売買APIの実装

証券API自動売買Pythonkabuステーション

API概要

kabuステーションAPI(kabu STATION API)は、三菱UFJ eスマート証券(旧auカブコム証券)が提供する個人投資家向けのプログラミング発注基盤。2020年8月リリース。

ユーザーのPC上で起動している「kabuステーション」がローカルHTTPサーバーとして動作し、REST API経由でデータ取得・注文執行を行う。OpenAPI 3.0仕様(v1.5)で定義されており、任意のプログラミング言語から利用可能。

項目内容
提供元三菱UFJ eスマート証券(旧auカブコム証券)
方式ローカルREST API + WebSocket
ベースURL(本番)http://localhost:18080/kabusapi
ベースURL(検証)http://localhost:18081/kabusapi
仕様OpenAPI 3.0
対応商品現物・信用・先物・オプション
利用料無料(kabuステーション月額も無料化済み)
信用取引手数料API経由は無料

利用条件・セットアップ

前提条件

  1. 三菱UFJ eスマート証券の口座開設(無料)
  2. kabuステーション Professional プラン以上の適用
  3. kabuステーションAPI利用申し込み(Web上で完結、審査不要)

セットアップ手順

  1. メンバーズサイト → 設定・申込 → らくらく電子契約 → 取引ツール → kabuステーションAPI利用設定
  2. kabuステーション起動 → 右上「</>」アイコン右クリック → APIシステム設定
  3. 「APIを利用する」にチェック → APIパスワード設定(英数字6〜16桁) → ソフトリミット金額設定
  4. kabuステーション再起動(アイコン緑色で利用可能)

認証方式

トークンベース認証。/tokenエンドポイントにAPIパスワードを送信してトークンを取得し、以降のリクエストでX-API-KEYヘッダーに設定。

import requests

# トークン取得
res = requests.post("http://localhost:18080/kabusapi/token", json={
    "APIPassword": "your_api_password"
})
token = res.json()["Token"]

# 以降のリクエストにトークンを設定
headers = {"X-API-KEY": token}
トークン特性詳細
有効期間kabuステーション起動中のみ
無効化条件kabuステーション終了・ログアウト・新規トークン発行時
利用可能時間6:30〜翌6:15(毎日自動ログアウト)

エンドポイント一覧

発注系(秒間5件制限)

メソッドパス説明
POST/sendorder現物・信用注文
POST/sendorder/future先物注文
POST/sendorder/optionオプション注文
PUT/cancelorder注文取消

情報取得系(秒間10件制限)

メソッドパス説明
GET/board/{symbol}板情報・時価情報(気配値10本)
GET/symbol/{symbol}銘柄情報
GET/orders注文約定照会
GET/positions残高照会
GET/ranking詳細ランキング(15種類)
GET/exchange/{symbol}為替情報
GET/regulations/{symbol}規制情報・空売り規制
GET/primaryexchange/{symbol}優先市場
GET/apisoftlimitソフトリミット値
GET/margin/marginpremium/{symbol}プレミアム料

取引余力系(秒間10件制限)

メソッドパス説明
GET/wallet/cash現物取引余力
GET/wallet/cash/{symbol}銘柄指定の現物余力
GET/wallet/margin信用取引余力
GET/wallet/margin/{symbol}銘柄指定の信用余力
GET/wallet/future先物取引余力
GET/wallet/optionオプション取引余力

銘柄コード取得

メソッドパス説明
GET/symbolname/future先物銘柄コード(NK225等11種類)
GET/symbolname/optionオプション銘柄コード
GET/symbolname/minioptionweeklyミニオプション(限週)銘柄コード

PUSH配信用銘柄登録(秒間10件制限)

メソッドパス説明
PUT/register配信銘柄登録(最大50銘柄)
PUT/unregister登録解除
PUT/unregister/all全銘柄登録解除

対応市場

市場コード市場名
1東証
3名証
5福証
6札証
9SOR
27東証+

発注リクエスト例

現物買い注文(指値)

order = {
    "Password": "trading_password",
    "Symbol": "7203",        # トヨタ自動車
    "Exchange": 1,           # 東証
    "SecurityType": 1,       # 株式
    "Side": "2",             # 買い(1=売り, 2=買い)
    "CashMargin": 1,         # 現物
    "DelivType": 2,          # お預り金
    "FundType": "AA",        # 信用代用
    "AccountType": 2,        # 特定口座
    "Qty": 100,              # 数量
    "Price": 2500,           # 指値価格
    "ExpireDay": 20260320,   # 期限
    "FrontOrderType": 20     # 指値(10=成行, 20=指値)
}

res = requests.post(
    "http://localhost:18080/kabusapi/sendorder",
    json=order,
    headers={"X-API-KEY": token}
)
print(res.json())
# {"ResultCode": 0, "OrderId": "20260314A01N06848002"}

注文種別コード(FrontOrderType)

コード種別
10成行
13寄成(前場)
14寄成(後場)
15引成(前場)
16引成(後場)
17IOC成行
20指値
21寄指(前場)
22寄指(後場)
23引指(前場)
24引指(後場)
25不成(前場)
26不成(後場)
27IOC指値
30逆指値

板情報取得

res = requests.get(
    "http://localhost:18080/kabusapi/board/7203@1",
    headers={"X-API-KEY": token}
)
board = res.json()

レスポンスに含まれる主要フィールド:

フィールド説明
CurrentPrice現在値
CurrentPriceTime現在値時刻
OpeningPrice始値
HighPrice高値
LowPrice安値
TradingVolume売買高
VWAP加重平均価格
Sell1〜Sell10売気配(価格・数量)
Buy1〜Buy10買気配(価格・数量)

WebSocket PUSH配信

接続

import asyncio
import websockets
import json

async def receive_push():
    uri = "ws://localhost:18080/kabusapi/websocket"
    async with websockets.connect(uri) as ws:
        while True:
            data = json.loads(await ws.recv())
            print(f"{data['Symbol']} {data['SymbolName']}: {data['CurrentPrice']}")

asyncio.run(receive_push())

PUSH配信前の銘柄登録

# 銘柄登録(最大50銘柄)
requests.put(
    "http://localhost:18080/kabusapi/register",
    json={"Symbols": [
        {"Symbol": "7203", "Exchange": 1},  # トヨタ
        {"Symbol": "9984", "Exchange": 1},  # ソフトバンクG
    ]},
    headers={"X-API-KEY": token}
)
PUSH仕様詳細
最大登録銘柄数50
間引き間隔400ms
配信フィールド数約63項目
配信タイミング値更新時リアルタイム

PUSH配信にはオプション固有のグリークス(IV、デルタ、ガンマ、セータ、ベガ)も含まれる。

レート制限

API種別制限
発注系(sendorder, cancelorder)秒間5件
取引余力系秒間10件
情報取得系秒間10件
銘柄登録系秒間10件

超過時はエラーレスポンスが返される。

制約事項

  • kabuステーションを起動しているPCと同一IPアドレスからのリクエストのみ受付(リモートアクセス不可)
  • kabuステーションは常時起動が必要(Windows専用)
  • 1PCにつき1インスタンスのみ起動可能
  • 利用可能時間: 6:30〜翌6:15(毎日自動ログアウト)
  • ソフトリミット(1日あたりの注文金額上限)の設定必須
  • PUSH配信は最大50銘柄

SDK・ライブラリ

公式サンプル(GitHub: kabucom/kabusapi)

言語バージョン
Pythonv1.9.0
JavaScriptv1.9.0
C#v1.3.0
Excelアドインv1.11.0
Excelマクロv1.19.0

リポジトリ: 388スター、MITライセンス

非公式ライブラリ

  • python-kabusapi(shirasublue/python-kabusapi)— REST + WebSocket対応、pip install requests websockets

手数料

項目手数料
信用取引(API経由)無料
現物取引(〜5万円)55円
現物取引(〜10万円)99円
現物取引(〜20万円)115円
現物取引(〜50万円)275円
現物取引(〜100万円)535円
1日定額(〜100万円)0円
日経225先物275円/枚
日経225mini38.5円/枚
25歳以下全て無料

他社API比較

項目auカブコム(kabuステーション)SBI証券(HyperSBI2)楽天証券(MS2 RSS)松井証券
方式ローカルREST + WebSocketローカルHTTPExcel RSSアドインFXのみAPI公開
対応商品現物・信用・先物・OP現物・信用現物・信用・先物・OPFXのみ
言語自由度任意(Python等)任意(Python等)Excel VBA限定
公式ドキュメント充実(OpenAPI仕様)限定的あり
検証環境ありなし
API手数料特典信用取引無料なしなし
審査不要(Web完結)不要事業者契約必須

結論: 個人投資家が株式自動売買APIを利用する場合、kabuステーションAPIが最も整備されている。公式ドキュメント・OpenAPI仕様・検証環境・サンプルコードが揃い、信用取引手数料無料の特典がある。主な制約はWindows PC上でのkabuステーション常時起動が必要な点。

リファレンス