やろうとしたこと
三菱UFJ eスマート証券の口座を開設して、kabuステーションAPIでアルゴリズムトレードを始めようとしていました。
まずは検証API(テスト環境)でPythonプログラムが動くか確認しようと思い、ガイドライン通りに設定を進めていました。
参考:
kabuステーション API |株のことならネット証券会社【三菱UFJ eスマート証券】
Release Python v1.9.0 · kabucom/kabusapi · GitHub
ハマったポイント
APIパスワードを検証API用に変更したのに、プログラムを実行してもエラーが出続けました。
エラーメッセージ:

「パスワード間違ってないのに何で?」と30分くらい悩みました。
原因:ポート番号も変更が必要だった
調べてみたら、検証APIを使うときはAPIパスワードだけでなくポート番号も変更する必要があることが判明。
- 本番API:ポート番号
18080 - 検証API:ポート番号
18081
私はパスワードだけ変更して、ポート番号は 18080 のままにしていました。これじゃ動きません。
どこに書いてあったか
kabuステーションのExcelアドイン設定のドキュメントに記載がありました。
【本番用】をご利用になる場合には「18080」を入力してください。
【検証用】をご利用になる場合には「18081」を入力してください。
※誤操作の防止のため、「2.使用環境」と「3.ポート」が一致しない場合はAPIをご利用できません。
※誤ログインの防止のため、「3.ポート」と「4.APIパスワード」の環境が一致しない場合は認証エラーとなります。
引用元:kabuステーション API |株のことならネット証券会社【三菱UFJ eスマート証券】
最初は「Excelアドインは使わないだろう」と思って読み飛ばしていたんですが、そこに検証APIの設定方法が詳しく書いてあったんです。
解決方法
Pythonコードのポート番号を 18081 に変更する。
# 検証APIの場合
url = "http://localhost:18081/kabusapi/token" # ポート番号を18081に
# 本番APIの場合
url = "http://localhost:18080/kabusapi/token" # ポート番号は18080
同じミスをする人へ
HTTP Error 401: Unauthorized
{'Code': 4001013, 'Message': 'トークン取得失敗'}
検証用のAPIで動かそうとして、上記の様なエラーメッセージが出る人は
- APIパスワードを検証用に変更
- ポート番号も18081に変更
この2つをセットで変更しないと動きません。
私みたいに「パスワード変えたのに動かない!」となったら、ポート番号を確認してみてください。