この記事で分かること
- 日本の開示データ・統計データは無料の公式APIで取得できること
- EDINET APIの認証方式と「書類一覧→書類取得」という2段階の流れ
- Pythonで書類一覧を取得する最小限のコード例
- 株価データ取得時の規約・再配布制限の注意点と、pandasでの整形・保存の基本
結論:日本の開示データは無料の公式APIで取れる
企業分析の第一歩は「データをどう手に入れるか」です。日本には、有価証券報告書などの開示情報を無料で取得できる公式API(EDINET)、政府統計を取得できる公式API(e-Stat)、金利や為替などの時系列データを取得できる公式API(日本銀行時系列データ検索サイト)が整備されています。まずこれらの公式ルートを押さえ、公式APIが用意されていない領域(TDnetの適時開示や、株価データの一部)についてのみ、利用規約を確認したうえで補完手段を検討する、という順序で考えると迷いにくいです。
データソースの全体地図
財務・株価分析で使うデータは、提供元によって取得方法も更新頻度も、再配布の可否も異なります。まず全体像を押さえてから、個別の取得方法に進みます。
図の通り、金融庁のEDINET・総務省統計局等のe-Stat・日本銀行時系列データには無料の公式APIが用意されています。一方、東証の適時開示(TDnet)には決算短信等をまとめて取得できる公式の一括APIは用意されておらず、株価データは証券会社やデータベンダーとの有料契約が基本線になります。無料で使える手段が存在する分野もあるが、提供元の都合による仕様変更・提供終了が起こりうるため、本記事では特定サービス名の永続的な利用を前提にしません。
EDINET APIの基本
EDINET(Electronic Disclosure for Investors’ NETwork)は、金融庁が運営する開示書類の電子開示システムです。2026年6月付で「EDINET API仕様書(Version 2)」(金融庁 企画市場局 企業開示課)が公開されており、書類一覧API・書類取得APIの仕様が定められています。利用の流れは大きく3ステップです。
1. APIキーの登録
EDINET APIの利用にはAPIキーの発行が必要です。アカウント登録→メール認証→電話番号によるSMS等の多要素認証→マイページでのAPIキー発行、という手順を踏みます。APIキーは第三者に共有しません。
2. 書類一覧APIで対象書類を絞り込む
まず「書類一覧API」(/api/v2/documents.json)に日付(date)を指定してリクエストし、その日に提出された書類の一覧を取得します。typeパラメータで「メタデータのみ」か「メタデータ+提出書類一覧」かを切り替えられます。
3. 書類取得APIで実データを取得する
書類一覧から目的の書類(例:有価証券報告書)のIDを特定したら、「書類取得API」(/api/v2/documents/{書類ID})にtypeパラメータで取得形式を指定してリクエストします。提出書類本体(XBRLを含むZIP)・PDF・代替書面等・英文ファイル・CSV(XBRLを表形式に変換したもの)など、書類種別ごとに複数の形式が用意されています。数値を機械的に扱うだけならCSV、原本を確認したいならPDF、という使い分けが基本になります。
APIキーはクエリパラメータ(Subscription-Key)としてリクエストに含めます。エンドポイントの詳細、各type値と提供形式の対応、リクエスト時の注意事項などの最新仕様は、必ず金融庁が公開する公式のAPI仕様書を確認すること。
コード例:書類一覧の取得
以下は、指定した日付に提出された書類の一覧を取得し、有価証券報告書だけを絞り込むイメージです。実行には有効なAPIキーが必要であり、下記は実際の実行結果を示すものではありません。
import requests
url = "https://api.edinet-fsa.go.jp/api/v2/documents.json"
params = {
"date": "2026-06-30",
"type": 2,
"Subscription-Key": "YOUR_API_KEY",
}
res = requests.get(url, params=params, timeout=10)
res.raise_for_status()
docs = res.json().get("results", [])
# docTypeCodeが"120"(有価証券報告書)の書類だけを抽出
yuho_list = [d for d in docs if d.get("docTypeCode") == "120"]
for d in yuho_list:
print(d.get("filerName"), d.get("docID"))
実務では、この一覧取得を対象期間分ループさせて目的の書類IDを集め、その書類IDを書類取得APIに渡して本体データを取得する、という2段階構成になります。
株価データの取得
株価データは開示書類と異なり、金融庁のような無料の公式一括APIが標準整備されているわけではありません。取得手段はおおむね次のように類型化できます。
- 有料データベンダー・証券会社API:契約に基づき、利用範囲・再配布可否が明確に定められています。実務での本格利用はこの類型が中心になります。
- 取引所・関連団体が提供する公式データ:提供範囲や粒度が限定的なことが多いです。
- 無料または低価格のサードパーティ・ライブラリ/API:手軽だが、提供元の都合による仕様変更・提供終了・利用規約変更が起こりえます。学習・検証目的での利用を前提とし、実務で使う場合は必ず最新の利用規約と再配布可否を確認します。
いずれの手段でも、「取得したデータをそのまま社外に再配布してよいか」「加工後の指標であれば公開してよいか」は提供元ごとに条件が異なります。契約や利用規約を確認しないまま再配布・商用転用することは避けます。
EDINET APIでの開示データ取得から、pandasでの整形、財務モデリングまでを一連の流れとして体系的に身につけたい方は、大手町プレップの講座で実践的なコード演習を扱っています。
pandasでの整形と保存
APIやCSVで取得したデータは、そのままでは欠損や型のばらつきが残っていることが多いです。分析に入る前に、次のような整形を行います。
- 欠損処理:
isna()で欠損の有無を確認し、dropna()やfillna()で除外・補完します。財務データでは「欠損=非開示」であることも多く、安易な0埋めは避けます。 - 型変換:金額や日付が文字列として読み込まれることがあるため、
astype()やpd.to_datetime()で明示的に変換します。カンマ区切りの数値文字列は変換前に除去します。 - 保存形式:中間データはCSV(
to_csv())で人が確認しやすい形にし、繰り返し読み込むデータはparquet(to_parquet()、pyarrow等が必要)で高速・省容量に保存する、という使い分けが基本になります。
スクレイピングの法的・技術的注意
APIが用意されていないデータをどうしても取得したい場合、Webスクレイピングが選択肢に挙がります。ただし、以下は必ず確認します。
- robots.txt・利用規約の確認:クロール禁止範囲や再配布条件が定められていることがあります。規約に反する取得・利用は行いません。
- アクセス頻度への配慮:短時間に大量のリクエストを送ると相手サーバーに負荷をかけ、アクセス遮断や法的な問題につながりえます。リクエスト間隔を空けるなどの配慮が必要になります。
- 「APIがあるならAPIを使う」原則:EDINETやe-Statのように公式APIが用意されている場合は、そちらを優先します。スクレイピングは、公式に取得手段がない場合の最終手段と位置づけます。
面接での答え方(30秒回答例)
Q:財務データはどうやって集めていますか?
「有価証券報告書のような開示データは、金融庁のEDINET APIから無料で取得しています。書類一覧APIで対象の書類を絞り込み、書類取得APIでXBRLやCSV形式の実データを取得する、という2段階の流れです。株価データのように公式の無料一括APIがないものについては、利用規約や再配布条件を確認したうえで、契約しているデータソースやライブラリを使い分けています。」
よくある質問(FAQ)
EDINET APIの利用は無料ですか?
2026年8月時点で、EDINET API自体の利用に料金はかかりません。ただしAPIキーの発行にはアカウント登録とメール認証・多要素認証が必要であり、最新の利用条件は金融庁の公式仕様書で確認する必要があります。
XBRLとCSV、どちらを使えばよいですか?
財務数値を機械的に集計・分析する用途では、CSV
まとめ
財務データの取得は、まず公式APIの有無を確認するところから始めるとよいです。EDINET・e-Stat・日本銀行時系列データのように無料の公式APIが整備されている領域は、書類一覧→書類取得(または統計データ取得)という決まった流れを押さえれば自動化しやすいです。一方、TDnetの適時開示や株価データのように公式の一括取得手段が限られる領域では、利用規約・再配布条件を確認したうえで、有料サービスや限定的な手段を使い分ける判断が必要になります。取得したデータは、pandasで欠損処理・型変換を行ってから分析に進む、という順序を徹底したいです。
出典・参考(2026-08-01確認)
- 金融庁 企画市場局 企業開示課「EDINET API仕様書(Version 2)」(2026年6月付、EDINET API関連資料ページで公開)
- 金融庁 EDINET API関連資料ページ(disclosure2dl.edinet-fsa.go.jp)
- e-Gov APIカタログ「EDINET API」情報ページ
※EDINET APIの詳細仕様(エンドポイントURL・パラメータ・各typeの提供形式の対応関係等)は改定される場合があるため、実装前には必ず金融庁公式の最新版仕様書を確認すること。
※本記事は教育目的の一般的な解説であり、法務・税務・投資助言ではありません。設例は理解のための仮設例です。