auカブコム証券のkabu STATION API(kabusapi)のノウハウ
APIのエラーで、「HTTP Error 400: Bad Request」「レジスト数エラー」になる場合、登録銘柄が規定数より多いことが原因の一つです。
「レジスト数エラー」は「登録銘柄50件以上になって登録できません」ということです。
自分ではそんなに登録していないのに50件を超えるのは、自動的に登録されているからです。
何かの情報をGetする場合、登録銘柄にない場合は、サーバ側で自動的に銘柄を登録するという仕様です。
銘柄が50件登録されている状態で、登録されていない銘柄の板情報などを照会しようとすると、サーバ側で新しい銘柄を登録しようとしてエラーになります。
登録されている銘柄を確認してもいいのですが「一旦登録銘柄を全部削除してから登録」とすれば確認する必要はないです。
50件以上見たい場合は、50件ずつ塊にしてループで回します。 実際に試した方によると、平均3件/秒で取得できるようです。
プログラムの中で銘柄一覧からコードを50件ずつ切り出し「登録銘柄を全部削除 → 登録 → 取得」をループで回します。 pythonでリクエストを並列処理し、1秒10件の制限を超えないように調整し、東証1部の2200件程の株価を早い時で12分程度(平均3件/秒)で取得することができました。
また、起動直後の5分間ほどはネットワークがほとんど送信に使われてしまうため、その間はGETリクエストが非常に遅くなっているという報告もありました。
参考
2022/10/25