MENU

kabuステーションAPI検証でハマった:ポート番号を変更し忘れた話

  • URLをコピーしました!
目次

やろうとしたこと

三菱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で動かそうとして、上記の様なエラーメッセージが出る人は

  1. APIパスワードを検証用に変更
  2. ポート番号も18081に変更

この2つをセットで変更しないと動きません。

私みたいに「パスワード変えたのに動かない!」となったら、ポート番号を確認してみてください。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次