CLI の使い方
kabukit は、J-Quants API および EDINET API からデータを取得するための、便利なコマンドラインインターフェース(CLI)を提供します。
コマンド名は kabu
です。このコマンドの役割は大きく分けて 3 つあります。
- J-Quants API および EDINET API の認証情報を設定します。これにより、ノートブックなどで使うときに、認証について気にする必要がなくなります。
- 各サブコマンドで銘柄コードや日付を引数に与えることで、最小限のネットワークアクセスで各 API から情報を取得します。結果はすぐにターミナルに表示されるので、API との通信が正常であること、および、取得した情報が期待通りであることを迅速に確認できます。
- 銘柄コードや日付を省略したり、
all
コマンドを使ったりすることで、非同期並列通信を活かして多量の情報を取得できます。取得した情報は、キャッシュディレクトリに保存されます。このキャッシュデータを使うことで、ノートブックなどで、分析をすぐに始められます。
以下のガイドでは、これらの特徴を順次説明していきます。
認証設定 (auth
)
kabu auth
コマンドは、以下の優先順位で認証情報を探索します。
- コマンドラインオプション (例:
--mailaddress
) - 設定ファイル (例:
~/.config/kabukit/config.toml
) - 環境変数 (例:
JQUANTS_MAILADDRESS
) - 上記いずれにも見つからない場合は、インタラクティブな入力プロンプトを表示
J-Quants API (jquants
)
J-Quants API を利用するには、事前に ユーザー登録 が必要です。
kabu auth jquants
コマンドで、事前登録したメールアドレスとパスワードを使って認証を行い、ID トークンを取得します。取得した ID トークンは、設定ファイルに保存され、あとから再利用されます。
対話的な使い方
オプションを指定せずにコマンドを実行すると、メールアドレスとパスワードの入力を求められます。
$ kabu auth jquants
Mailaddress: my_email@example.com
Password:
J-QuantsのIDトークンを保存しました。
非対話的な使い方
CI/CD 環境など、対話的な入力ができないときは、コマンドラインオプションまたは環境変数で認証情報を指定できます。
- コマンドラインオプション
$ kabu auth jquants --mailaddress my_email@example.com --password my_password
- 環境変数
$ export JQUANTS_MAILADDRESS="my_email@example.com"
$ export JQUANTS_PASSWORD="my_password"
$ kabu auth jquants
EDINET API (edinet
)
EDINET API を利用するには、事前に API キーの取得 が必要です。
kabu auth edinet
コマンドで API キーを設定ファイルに保存します。
対話的な使い方
$ kabu auth edinet
Api key: my_api_key
EDINETのAPIキーを保存しました。
非対話的な使い方
- コマンドラインオプション
$ kabu auth edinet --api-key my_api_key
- 環境変数
$ export EDINET_API_KEY="my_api_key"
Note
環境変数を設定しているときは、別途
kabu auth edinet
コマンドを実行する必要はありません。
認証設定の表示 (show
)
認証設定の保存先と内容は、kabu auth show
コマンドで表示できます。
$ kabu auth show
設定ファイル: /home/my_name/.config/kabukit/config.toml
JQUANTS_ID_TOKEN = "..."
EDINET_API_KEY = "..."
情報取得 (get
)
kabu get
コマンドは、J-Quants API および EDINET API から各種情報を取得します。
上場銘柄一覧 (info
)
kabu get info
コマンドを使うと、J-Quants API から上場銘柄一覧を取得します。
銘柄コードを指定すると、指定した銘柄の最新情報を取得できます。
$ kabu get info 7203
shape: (1, 8)
┌────────────┬───────┬──────────────┬───┬───────────────┬────────────────┬────────────────┐
│ Date ┆ Code ┆ CompanyName ┆ … ┆ ScaleCategory ┆ MarketCodeName ┆ MarginCodeName │
│ date ┆ str ┆ str ┆ ┆ cat ┆ cat ┆ cat │
╞════════════╪═══════╪══════════════╪═══╪═══════════════╪════════════════╪════════════════╡
│ 2025-10-20 ┆ 72030 ┆ トヨタ自動車 ┆ … ┆ TOPIX Core30 ┆ プライム ┆ 貸借 │
└────────────┴───────┴──────────────┴───┴───────────────┴────────────────┴────────────────┘
銘柄コードを省略すると、全銘柄の最新情報を一度に取得できます。
$ kabu get info
shape: (4_414, 8)
┌────────────┬───────┬───────────────────────┬───┬───────────────┬────────────────┬────────────────┐
│ Date ┆ Code ┆ CompanyName ┆ … ┆ ScaleCategory ┆ MarketCodeName ┆ MarginCodeName │
│ date ┆ str ┆ str ┆ ┆ cat ┆ cat ┆ cat │
╞════════════╪═══════╪═══════════════════════╪═══╪═══════════════╪════════════════╪════════════════╡
│ 2025-10-20 ┆ 13010 ┆ 極洋 ┆ … ┆ TOPIX Small 2 ┆ プライム ┆ 貸借 │
│ 2025-10-20 ┆ 13050 ┆ 大和アセットマネジメ ┆ … ┆ - ┆ その他 ┆ 貸借 │
│ ┆ ┆ ント株式会社 iFr ┆ ┆ ┆ ┆ │
│ ┆ ┆ eeETF TOPI… ┆ ┆ ┆ ┆ │
│ 2025-10-20 ┆ 13060 ┆ 野村アセットマネジメ ┆ … ┆ - ┆ その他 ┆ 貸借 │
│ ┆ ┆ ント株式会社 NEX ┆ ┆ ┆ ┆ │
│ ┆ ┆ T FUNDS TO… ┆ ┆ ┆ ┆ │
│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │
│ 2025-10-20 ┆ 99960 ┆ サトー商会 ┆ … ┆ - ┆ スタンダード ┆ 貸借 │
│ 2025-10-20 ┆ 99970 ┆ ベルーナ ┆ … ┆ TOPIX Small 1 ┆ プライム ┆ 貸借 │
└────────────┴───────┴───────────────────────┴───┴───────────────┴────────────────┴────────────────┘
全銘柄の情報を '/home/runner/.cache/kabukit/jquants/info/20251020.parquet' に保存しました。
--quiet
または-q
オプションを付けると、取得したデータフレームの表示を抑制できます。
銘柄コードを指定したときは、表示されたデータフレームはどこにも保存されずにプログラムは終了します。単純に J-Quants API へのリクエストが正常に処理され、期待通りの情報が得られていることを確認したいケースで用います。
一方、銘柄コードを省略したときは、取得した上場銘柄一覧はキャッシュディレクトリに保存されます。このキャッシュデータを使うことで、ノートブックなどで、分析をすぐに始められます。
この仕様は、以下で説明する他のサブコマンドでも共通です。
財務情報 (statements
)
kabu get statements
コマンドを使うと、J-Quants API から財務情報を取得します。
銘柄コードを指定すると、指定した銘柄の全期間分の財務情報を取得できます。
$ kabu get statements 7203
shape: (41, 105)
┌────────────┬───────────────┬───────────────┬───┬────────────────┬────────────────┬───────────────┐
│ Date ┆ DisclosedDate ┆ DisclosedTime ┆ … ┆ NextYearForeca ┆ NextYearForeca ┆ NextYearForec │
│ date ┆ date ┆ time ┆ ┆ stNonConsolida ┆ stNonConsolida ┆ astNonConsoli │
│ ┆ ┆ ┆ ┆ te… ┆ te… ┆ date… │
│ ┆ ┆ ┆ ┆ f64 ┆ f64 ┆ f64 │
╞════════════╪═══════════════╪═══════════════╪═══╪════════════════╪════════════════╪═══════════════╡
│ 2015-11-06 ┆ 2015-11-05 ┆ null ┆ … ┆ null ┆ null ┆ null │
│ 2016-02-08 ┆ 2016-02-05 ┆ null ┆ … ┆ null ┆ null ┆ null │
│ 2016-05-12 ┆ 2016-05-11 ┆ null ┆ … ┆ 1.3900e12 ┆ 1.2000e12 ┆ 393.41 │
│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │
│ 2025-05-08 ┆ 2025-05-08 ┆ 13:55:00 ┆ … ┆ null ┆ null ┆ null │
│ 2025-08-07 ┆ 2025-08-07 ┆ 14:00:00 ┆ … ┆ null ┆ null ┆ null │
└────────────┴───────────────┴───────────────┴───┴────────────────┴────────────────┴───────────────┘
銘柄コードを省略すると、全銘柄の全期間分の財務情報を一度に取得できます。
$ kabu get statements
100%|█████████████████████████████████████| 3787/3787 [01:28<00:00, 42.61it/s]
shape: (165_891, 105)
(略)
このようにプログレスバーが表示され、進捗状況が把握できるようになっています。加えて以下のオプションが設定可能です。
--quiet
または-q
オプションを付けると、プログレスバーおよび取得したデータフレームの表示を抑制できます。--max-items
オプションを付けると、全銘柄取得時の銘柄数の上限を指定できます。
上の出力例から、次のことがわかります。
- 1 秒間に 40 銘柄程度の財務情報を取得しました。
- トータルで 1 分 30 秒程度かかりました。
- 取得したデータフレームの行数は約 16 万行です。
株価情報 (prices
)
kabu get prices
コマンドを使うと、J-Quants API から株価情報を取得します。
銘柄コードを指定すると、指定した銘柄の全期間分の株価情報を取得できます。
$ kabu get prices 7203
shape: (2_444, 16)
┌────────────┬───────┬────────┬───┬────────┬──────────┬───────────┐
│ Date ┆ Code ┆ Open ┆ … ┆ RawLow ┆ RawClose ┆ RawVolume │
│ date ┆ str ┆ f64 ┆ ┆ f64 ┆ f64 ┆ f64 │
╞════════════╪═══════╪════════╪═══╪════════╪══════════╪═══════════╡
│ 2015-10-20 ┆ 72030 ┆ 1480.0 ┆ … ┆ 7303.0 ┆ 7320.0 ┆ 5.5323e6 │
│ 2015-10-21 ┆ 72030 ┆ 1470.4 ┆ … ┆ 7340.0 ┆ 7467.0 ┆ 8.541e6 │
│ 2015-10-22 ┆ 72030 ┆ 1481.2 ┆ … ┆ 7394.0 ┆ 7428.0 ┆ 6.47e6 │
│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │
│ 2025-10-17 ┆ 72030 ┆ 2920.0 ┆ … ┆ 2920.0 ┆ 2933.5 ┆ 1.43169e7 │
│ 2025-10-20 ┆ 72030 ┆ 2988.5 ┆ … ┆ 2971.0 ┆ 3003.0 ┆ 2.05746e7 │
└────────────┴───────┴────────┴───┴────────┴──────────┴───────────┘
銘柄コードを省略すると、全銘柄の全期間分の株価情報を一度に取得できます。
$ kabu get prices
100%|█████████████████████████████████████| 3787/3787 [12:33<00:00, 5.02it/s]
shape: (8_128_217, 16)
(略)
このようにプログレスバーが表示され、進捗状況が把握できるようになっています。加えて以下のオプションが設定可能です。
--quiet
または-q
オプションを付けると、プログレスバーおよび取得したデータフレームの表示を抑制できます。--max-items
オプションを付けると、全銘柄取得時の銘柄数の上限を指定できます。
上の出力例から、次のことがわかります。
- 1 秒間に 5 銘柄程度の株価情報を取得しました。
- トータルで 13 分程度かかりました。
- 取得したデータフレームの行数は約 8 百万行です。
書類一覧 (entries
)
kabu get entries
コマンドを使うと、EDINET API から提出書類一覧を取得します。
日付 (YYYY-MM-DD) を指定すると、指定した日付に提出された書類一覧を取得できます。
$ kabu get entries 2025-10-10
shape: (520, 30)
┌────────────┬───────┬───────────┬───┬────────────────┬─────────┬─────────────┐
│ Date ┆ Code ┆ seqNumber ┆ … ┆ englishDocFlag ┆ csvFlag ┆ legalStatus │
│ date ┆ str ┆ i64 ┆ ┆ bool ┆ bool ┆ str │
╞════════════╪═══════╪═══════════╪═══╪════════════════╪═════════╪═════════════╡
│ 2025-10-10 ┆ 97930 ┆ 1 ┆ … ┆ false ┆ true ┆ 1 │
│ 2025-10-10 ┆ null ┆ 2 ┆ … ┆ false ┆ true ┆ 1 │
│ 2025-10-10 ┆ 82830 ┆ 3 ┆ … ┆ false ┆ true ┆ 1 │
│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │
│ 2025-10-10 ┆ 26870 ┆ 519 ┆ … ┆ false ┆ true ┆ 1 │
│ 2025-10-10 ┆ 26870 ┆ 520 ┆ … ┆ false ┆ false ┆ 1 │
└────────────┴───────┴───────────┴───┴────────────────┴─────────┴─────────────┘
日付を省略すると、過去10年分の書類一覧を一度に取得できます。
$ kabu get entries
100%|█████████████████████████████████████| 3653/3653 [00:42<00:00, 86.47it/s]
shape: (896_632, 30)
(略)
このようにプログレスバーが表示され、進捗状況が把握できるようになっています。加えて以下のオプションが設定可能です。
--quiet
または-q
オプションを付けると、プログレスバーおよび取得したデータフレームの表示を抑制できます。--max-items
オプションを付けると、全期間取得時の日付数の上限を指定できます。
上の出力例から、次のことがわかります。
- 1 秒間に 80 日程度の書類一覧を取得しました。
- トータルで 50 秒程度かかりました。
- 取得したデータフレームの行数は約 90 万行です。
全ての情報の一括取得 (all
)
これまで、4 つの情報を個別のコマンドで取得してきました。kabu get all
コマンドを使うと、全ての入手可能な情報を一度に取得できます。
$ kabu get all [code]
code
引数で銘柄コードを指定すると、その銘柄に関する情報のみを取得します。--quiet
または-q
オプションを付けると、取得したデータフレームの表示を抑制できます。--max-items
オプションを付けると、全銘柄取得時の銘柄数(または日付数)の上限を指定できます。
Note
code
引数を指定した場合、書類一覧 (entries
) は取得されません。
銘柄コードを省略したときに限り、これらの情報はキャッシュディレクトリに保存されます。
キャッシュ (cache
)
これまでに説明したように、銘柄コードや日付を省略したり、kabu get all
コマンドを使ったりすることで、キャッシュディレクトリに取得した情報が保存されます。
kabu cache
コマンドを使うと以下のことができます。
kabu cache tree
: キャッシュの内容をツリー表示しますkabu cache clean
: キャッシュ全体を消去します
キャッシュの仕組みや、Python からの活用方法については、キャッシュの活用ガイドを参照してください。