日本株のデータ分析をやったことがある方なら、データ取得のハードルの高さをご存じのはずです。Bloomberg ターミナルや FactSet、Refinitiv Eikon は機能十分ですが、個人やスタートアップには価格が高すぎます。一方、無料の海外フィードは日本株のカバレッジが薄く、銘柄コードや時価総額(円建て)の扱いも不安定です。
この記事では、Apify 上の TSE Japan Stock Screener(東証銘柄スクリーナー) を紹介します。日経225・TOPIX・東証全銘柄を対象に、株価・時価総額(円)・騰落率などを構造化 JSON で返し、必要に応じてファンダメンタルズも付与できます。クラウド実行・従量課金で、無料枠から始められます。以下、出力フィールド・コード・料金・FAQ をまとめます。
1. 課題:日本株データは高い/APIが少ない
- プロ向け端末は高額。 Bloomberg / FactSet / Eikon は年額数百万円規模で、個人・小規模チームには非現実的。
- 無料フィードはカバレッジが薄い。 海外系の無料 API は日本銘柄の網羅性・鮮度に難あり。
- 銘柄コード/円建ての整形が面倒。 4桁証券コード、時価総額の円表記などを自分で揃える必要がある。
- スクリーニング条件の組み立てが手間。 指数・時価総額・セクターでの絞り込みを毎回スクラッチで書くのは非効率。
2. このActorでできること
指数(NIKKEI / TOPIX / TSE-all)を指定して銘柄一覧を取得します。各銘柄について、銘柄コード・銘柄名・株価(円)・騰落率・時価総額(円)・売上高などの基本情報を返します。enrich_fundamentals を有効にすると、PER・PBR・配当利回り・ROE などのファンダメンタルズも付与します(その分やや時間がかかります)。
主な入力パラメータ:index(指数・市場、既定 NIKKEI)、limit(取得銘柄数、既定 50)、min_market_cap_jpy_billion(時価総額の下限・十億円)、sector(セクター/業種/銘柄名キーワード)、enrich_fundamentals(ファンダメンタルズ付与)。
3. こんな方におすすめ
- ヘッジファンド/クオンツ: 日本株ユニバースを構造化データで取得し、スクリーニングやバックテストに利用。
- 個人投資家: 高額端末なしで日経225・TOPIX のスクリーニングを実行。
- フィンテック/データ基盤: 日本株の時価総額・株価を自社パイプラインに取り込む。
- リサーチ: セクター別・時価総額別の銘柄群を抽出してレポートに活用。
4. 出力フィールド例
| フィールド | 内容 |
|---|---|
symbol / name
|
銘柄コード / 銘柄名 |
ticker_yahoo |
Yahoo!ファイナンス用ティッカー |
price_jpy / pct_change
|
株価(円) / 騰落率 |
market_cap_jpy / market_cap_billion_jpy / market_cap_display
|
時価総額(円 / 十億円 / 表示用) |
revenue_ttm_jpy / revenue_ttm_billion_jpy
|
売上高(TTM、円 / 十億円) |
is_nikkei225 |
日経225 構成銘柄か |
stockanalysis_url / yahoo_finance_url
|
参照リンク |
1銘柄あたりの JSON はおおよそ次のような形です:
{
"symbol": "7203",
"name": "トヨタ自動車",
"ticker_yahoo": "7203.T",
"price_jpy": 3120,
"pct_change": 1.4,
"market_cap_jpy": 50000000000000,
"market_cap_billion_jpy": 50000,
"market_cap_display": "50.0兆円",
"is_nikkei225": true
}
※ 値はフォーマット例示用のサンプルです。実データは実行時に取得されます。
5. 活用例
-
大型株スクリーニング:
index=NIKKEI+min_market_cap_jpy_billionで大型株だけを抽出。 -
セクター分析:
sectorキーワードで特定業種の銘柄群を取得。 -
ファンダメンタルズ比較:
enrich_fundamentals=trueで PER・配当利回り等を付与し相対比較。 - 定点観測: 定期実行で株価・時価総額の時系列を蓄積。
6. Apify で実行する
Actor ページ:TSE Japan Stock Screener on Apify。新規登録で $5 の無料クレジット (こちらから登録)。
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("nexgendata/tse-japan-stock-screener").call(run_input={
"index": "NIKKEI",
"limit": 20,
"enrich_fundamentals": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["symbol"], item["name"], item["price_jpy"], item["market_cap_display"])
料金:いくらかかる?
従量課金(Pay-Per-Event) :起動 $0.01 + 1銘柄あたり $0.25 。たとえば 20 銘柄で約 $5。銘柄数が多いと費用も増えるため、limit や時価総額・セクターで対象を絞るのがおすすめです。無料枠の $5 でまず動作確認できます。
7. 関連Actor:日本データスタックを組む
- TDnet 適時開示 —— 東証の当日適時開示フィード(解説記事)
- EDINET 大量保有報告書 —— インサイダー/大量保有データ
- 法人番号 企業登記 —— 国税庁 法人番号レジストリ(解説記事)
- J-PlatPat 特許・商標 —— 特許庁 知財検索(解説記事)
8. よくある質問
対象はどの市場ですか?
日経225・TOPIX・東証全銘柄から index で選べます。
データはリアルタイムですか?
実行時点の株価・時価総額を取得します。時系列が必要な場合は定期実行で蓄積してください。
PER や配当利回りも取れますか?
enrich_fundamentals=true を指定すると、PER・PBR・配当利回り・ROE などのファンダメンタルズを付与します(処理はやや遅くなります)。
ログインや口座は必要ですか?
不要です。公開情報をもとに取得します。
pandas や Excel にそのまま読み込めますか?
はい。結果は Apify のデータセットに保存され、CSV / Excel / JSON でエクスポート、またはデータセット API から pandas に直接読み込めます。
Top comments (0)