#はじめに
金融商品の取引API公開は、Bitcoinなどの仮想通貨分野ではずいぶんと前から様々な事業者にて行われていましたが、株やETFにおいてはまだそれほど多くはないと感じています。
そんな中、auカブコム証券がREST形式に対応した取引APIを公開した為、使ってみました。
#環境
- Windows10
- Python3.8.6
#事前準備
kabuステーションAPIの利用にあたってはauカブコム証券に口座を開設済みであり、かつFintechプラン以上のプランに加入している必要があります。
その為、口座を持っていない方が利用を開始するには以下の手順を実行する必要があります。詳しい手順はこちらを参考ください。
1.auカブコム証券にて口座開設を行う
2.「Fintechプラン」もしくは「Premiumプラン」に加入する
3.「kabuステーションAPI」の利用設定を行う
4.「kabuステーション」を自身のPCへインストールする
5.「kabuステーション」の「APIシステム設定」にて「APIを利用する」にチェックを入れ、APIパスワードとソフトリミットを設定する
6.「kabuステーション」を再起動し、5の設定を反映する
#トークン取得
各種APIリクエストを行うにあたってはリクエストヘッダーに事前に取得したトークンを指定する必要がある為、まずはそのトークンを取得します。
トークン取得の際、前項の事前準備5にて設定したAPIパスワードが必要となりますが、今回は環境変数に入れておきます。
import os
import json
import requests
API_URL = "http://localhost:18080/kabusapi"
API_PASSWORD = os.environ["API_PASSWORD"]
def get_token():
URL = API_URL + "/token"
headers = {"content-type": "application/json"}
payload = {"APIPassword": API_PASSWORD}
try:
response = requests.post(URL, data=json.dumps(payload).encode("utf8"), headers=headers)
except Exception as e:
print (e)
return json.loads(response.text).get("Token")
#時価情報の取得
任意銘柄の時価情報を取得します。
レスポンスには他にも詳細な板情報等が含まれています。
ちなみにsymbolを101に指定すると日経平均株価が取得出来ます。
変数 | 説明 |
---|---|
token | 前項で取得したトークン |
symbol | 取得したい銘柄コード |
exchange | 取得したい市場コード (1が東証) |
def get_price(token):
symbol = "9433"
exchange = "1"
URL = API_URL + "/board/" + symbol + "@" + exchange
headers = {
"content-type": "application/json",
"X-API-KEY": token
}
try:
response = requests.get(URL, headers=headers)
except Exception as e:
print (e)
return json.loads(response.text).get("CurrentPrice")
#その他
リファレンスに他様々なリクエスト方法が記載されていますので、実行したい操作がある方はこちらを参照すると良いです。
APIが使用可能になるまでの事前準備がありますが、それさえ済んでしまえばAPIリクエスト自体は特に難しくないように思いました。
このようなリソースは日本にはまだまだ少ないと感じてますので、仮想通貨分野のようにオープン化が進むと良いですね。