概要
個人的に株の分析を行うにあたり、J-Quants APIを使って上場銘柄一覧を取得した際の手順となります。
環境
- mac OS: 13.5.2
- Python: 3.12.1
J-Quants APIとは
株価や財務などの金融データをヒストリカルで簡単に取得できる、個人投資家向けのAPIデータ配信サービスです。
JPX総研により提供されています。
注意点
J-Quants APIサービス利用規約を事前に確認しました。
利用する際に注意すべきと感じたのは下記の2点です。
- 登録ユーザーの私的使用のみ利用できる事
- 商用もしくは学術目的での利用は禁止である事
上場銘柄一覧を取得するまでの手順
アカウント作成
トップページから【アカウントを作成する】より、手順にしたがいアカウントを作成します。
プランを選ぶように表示されるので、任意のプランを選びます。
今回はFreeプランを選択しました。
Freeプランは12週間の遅延があるので、実用性を求めるのであればライトプランが良さそうです。
名前と、請求書の住所を入力することで登録完了です!
APIを叩いてみる
ドキュメントに従い、リフレッシュトークンを取得してみます。
CurlとPythonのサンプルコードがあるので、とりあえずCurlで叩いてレスポンスが返ってくるか確認してみます。
<YOUR EMAIL_ADDRESS>
に登録したメールアドレス、<YOUR PASSWORD>
に登録したパスワードを入力します。
BODY="{\"mailaddress\":\"<YOUR EMAIL_ADDRESS>\", \"password\":\"<YOUR PASSWORD>\"}" && curl -X POST -H "Content-Type: application/json" -d "$BODY" https://api.jquants.com/v1/token/auth_user
String型でリフレッシュトークンが返ってくればOKです。
上場銘柄一覧の取得
ドキュメントのサンプルに記載されているPythonコードを使用して上場銘柄一覧を取得するコードを書きました。
import requests
import json
import pandas as pd
EMAIL_ADDRESS = "<YOUR EMAIL_ADDRESS>"
PASSWORD = "<YOUR PASSWORD>"
# リフレッシュトークン取得
data={"mailaddress":EMAIL_ADDRESS, "password":PASSWORD}
r_post = requests.post("https://api.jquants.com/v1/token/auth_user", data=json.dumps(data))
REFRESH_TOKEN = r_post.json()["refreshToken"]
# IDトークン取得
r_post = requests.post(f"https://api.jquants.com/v1/token/auth_refresh?refreshtoken={REFRESH_TOKEN}")
ID_TOKEN = r_post.json()["idToken"]
# 上場銘柄一覧
headers = {'Authorization': 'Bearer {}'.format(ID_TOKEN)}
r = requests.get("https://api.jquants.com/v1/listed/info", headers=headers)
# Pandas DafaFrameへ変換
r_dict = r.json()
df = pd.DataFrame(r_dict['info'])
その他
丁寧なドキュメントがあるので、詰まったら確認すれば良さそうです。
また、Discordのコミュニティもあるようですので、困ったら参加してみようと思います。