EDINET API v2の使い方:APIキー取得・書類一覧・書類取得の仕様と有報をAIで読む設計
金融庁EDINET API(Version 2)の書類一覧API・書類取得API・APIキー発行手順・ステータスコード・更新タイミングを、2026年6月版の公式仕様書で確認して整理。キー未取得のため実行は未検証ですが、キーなしで返る401応答は実測しました。有価証券報告書をAIエージェントで読む設計まで。
金融庁の EDINET API(Version 2)は、書類一覧 API と書類取得 API の2本だけで構成されています。エンドポイントは単純ですが、日付単位でしか一覧が取れない、エラーでも HTTP 200 が返る、書類取得は Content-Type で成否を判定する、閲覧期間は10年で満了後は中身が消える、といった仕様を知らないままエージェントに渡すと必ず詰まります。
EDINET を含む5つの公共 API の比較は日本の公共データAPI 5選にあります。MCP サーバーにする設計は続編のEDINET APIをMCP化する設計で扱います。
先に押さえること
- API は2本。
documents.json?date=で日付単位の一覧、documents/{docID}?type=で書類本体。 - 認証はクエリの
Subscription-Key。 ヘッダではなく URL に載るので、ログのマスクが必須です。 - エラーでも HTTP 200。 一覧 API は本文の
metadata.status、書類取得 API はContent-Typeで判定します。 - 取れるのは閲覧期間内(有報なら10年)だけ。 過去分は日次で差し替わり、満了した書類は
docID以外がnullになります。
APIキーの取得手順(仕様書2-3章)
仕様書の第2章は、ほぼ全ページがアカウント作成と API キー発行の画面手順です。流れを要約します。
- ポップアップ許可の事前設定。 ブラウザ(仕様書は Microsoft Edge で説明)のポップアップ許可サイトに
https://api.edinet-fsa.go.jpを追加します。API キー発行画面・削除画面を開くのに必要とされています。 - サインアップ。 EDINET 閲覧サイトの「ログイン」からサインイン画面を開き、「今すぐサインアップ」へ。メールアドレスと画像認証を入力すると
@microsoftonline.comから確認コードが届きます。 - パスワード設定。 12〜256文字、小文字・大文字・数字・記号のうち3種以上。
- 多要素認証。 国コードと電話番号を登録し、SMS の確認コードか自動音声通話で確認します。
- API キー発行。 サインイン後の API キー発行画面で連絡先(電話番号はハイフンなし)を登録すると、API キーが表示されます。「リクエストパラメータとして使用するため、忘れずに保存」と書かれています。
実際に https://api.edinet-fsa.go.jp/api/auth/index.aspx?mode=1 を開くと、Azure AD B2C(fsaedinetauth.b2clogin.com)の認可エンドポイントへ 302 リダイレクトされることは確認しました。手順が Microsoft の画面で説明されているのはこのためです。
書類一覧API:日付単位でしか引けない
GET https://api.edinet-fsa.go.jp/api/v2/documents.json?date=YYYY-MM-DD&type=2&Subscription-Key=<APIキー>| パラメータ | 必須 | 意味 |
|---|---|---|
date | ○ | ファイル日付。当日以前で、直近の財務局営業日24時において10年を経過していない日付。土日祝も指定可 |
type | - | 1 メタデータのみ(既定)、2 提出書類一覧 + メタデータ |
Subscription-Key | ○ | API キー |
企業名や書類種別で検索するパラメータはありません。 「その日に提出処理された書類(と、その日に登録された書類情報修正・開示不開示区分の変更)」が1日分まとめて返るだけです。特定企業の有報を探すなら、提出日を推定して日付を回すか、日次で一覧を取り込んで自前のインデックスを持つ必要があります。
仕様書1-2-1 は「まず type=1 でメタデータの件数を見て、前回より増えていなければ後続処理をしない」という使い方を推奨しています。
メタデータ(type=1)
{ "metadata": { "title": "提出された書類を把握するためのAPI", "parameter": { "date": "2023-04-03", "type": "1" }, "resultset": { "count": 1 }, "processDateTime": "2023-04-03 13:01", "status": "200", "message": "OK" }}(仕様書掲載のサンプル。日付・時刻は日本時間。)processDateTime は一覧の内容に変更がなくても更新されます。
提出書類一覧(type=2)の results 項目
results 配列の各要素は40項目です。仕様書3-1-2-2 から、設計で効く項目を抜き出します。
| 項目ID | 意味 | 設計上の扱い |
|---|---|---|
seqNumber | ファイル日付ごとの連番。一度付与されたら変わらない | 同日中の差分取得は「前回の最後の連番より大きいもの」 |
docID | 書類管理番号(8桁)。訂正報告書等も親から独立に採番 | 出典の主キー |
edinetCode / secCode / JCN / filerName | 提出者の EDINET コード・証券コード・法人番号・名称 | 提出者の照合は edinetCode か JCN。名称の文字列一致で結ばない |
ordinanceCode / formCode / docTypeCode | 府令コード・様式コード・書類種別コード | 有報は docTypeCode=120、訂正有報は 130 |
periodStart / periodEnd | 事業年度(有報・半期)、四半期会計期間(四半期報告書) | その他の書類種別では出力されない |
submitDateTime | 提出日時 | 出典の時点情報 |
docDescription | 閲覧サイトの「提出書類」欄の文字列 | 表示用 |
parentDocID | 親書類管理番号(訂正報告書の訂正前書類など) | 訂正の系譜をたどる |
withdrawalStatus | 取下書は 1、取り下げられた書類は 2 | 2 は除外候補 |
docInfoEditStatus / disclosureStatus | 財務局職員による書類情報修正・不開示の区分 | disclosureStatus=2 は不開示中 |
xbrlFlag / pdfFlag / attachDocFlag / englishDocFlag / csvFlag | 各形式の有無(1/0) | 書類取得 API の type を選ぶ前に確認 |
legalStatus | 1 縦覧中、2 延長期間中、0 閲覧期間満了 | 0 は取得不可 |
edinetCode 等の提出者情報は後から変わることがありますが、一覧上は変更されない(仕様書 *2)とされています。提出者の最新情報は EDINET コードリスト(https://disclosure2dl.edinet-fsa.go.jp/searchdocument/codelist/Edinetcode.zip)で別途照合します。
書類取得API:Content-Typeで成否を判定する
GET https://api.edinet-fsa.go.jp/api/v2/documents/<docID>?type=1&Subscription-Key=<APIキー>type | 取得内容 | 形式 | 前提フラグ |
|---|---|---|---|
1 | 提出本文書及び監査報告書(XBRL ファイルを含む) | ZIP | xbrlFlag=1 で XBRL が含まれる |
2 | PDF(閲覧サイトの「PDF 表示」に相当) | pdfFlag=1 | |
3 | 代替書面・添付文書 | ZIP | attachDocFlag=1 |
4 | 英文ファイル | ZIP | englishDocFlag=1 |
5 | CSV(XBRL を CSV に変換したもの) | ZIP | csvFlag=1 |
ZIP の中身は type=1 なら PublicDoc(提出本文書)と AuditDoc(監査報告書)、type=5 なら XBRL_TO_CSV フォルダです。閲覧サイトの XBRL ダウンロードと違い、XbrlSearchDlInfo.csv は含まれません(その情報は書類一覧 API 側にあります)。
仕様書3-3 が明記している重要な癖がこれです。
- 成功時は
Content-Typeがapplication/octet-stream(ZIP)またはapplication/pdf - 失敗時は
application/json; charset=utf-8で、HTTP ステータスは 200 のまま
「HTTP 200 で何かバイナリが返ってきた」だけでは成否が分からないので、Content-Type を見てから保存します。
ステータスコード(実測した401を含む)
仕様書3-3 の一覧です。パラメータ誤り等のエラーは JSON 本文で返り、HTTP ステータスは 200 です。
| status | message | 意味 |
|---|---|---|
| 200 | OK | 成功(書類一覧 API) |
| 400 | Bad Request | パラメータや文字コードの誤り |
| 401 | Access denied due to invalid subscription key. … | API キーが無効または未指定 |
| 404 | Not Found | リソースが存在しない |
| 429 | Too Many Requests | 一定時間内の大量リクエスト。時間を空けて再試行し、取得間隔を見直す |
| 500 | Internal Server Error | サーバー側エラー。メンテナンス情報を確認 |
400・404・500 は metadata.status / metadata.message に入り、401 と 429 は StatusCode と message のトップレベル形式です。キーなしで実際に叩いた結果がこちらです(2026-09-14)。
curl -s -w "HTTP %{http_code} type %{content_type}\n" \ "https://api.edinet-fsa.go.jp/api/v2/documents.json?date=2026-09-11&type=2"{"StatusCode": 401,"message": "Access denied due to invalid subscription key.Make sure to provide a valid key for an active subscription."}HTTP 200 type application/json; charset=utf-8無効なキー(Subscription-Key=invalid)でも、書類取得 API(documents/S1000001?type=1)でも同じ応答でした。仕様書のとおり HTTP は 200 で、判定は本文の StatusCode です。429 の具体的な閾値(何秒に何回か)は仕様書に数値の記載がなく、利用規約は「短時間における大量のアクセスその他のAPI機能の運用に支障を与える行為」を禁止し、負荷状況に応じたアクセス制限があり得るとしています。
更新タイミングとデータの範囲
- 8:30過ぎ〜当日分を原則1分毎に更新書類提出(取下書を含む)、書類情報修正、不開示の開始・解除が発生時に追加される。内容に変更がなくてもファイルは差し替わる
- 24:00過ぎ日次更新処理全ファイル日付の過去分が差し替えられ、10年を経過したファイル日付は削除される
- 処理の最後当日分ファイルの作成当日分が取得可能になっていれば、日次更新が完了し前日までのデータが確定したと判定できる
閲覧期間は書類種別ごとに決まっています。
閲覧期間が満了すると、一覧上の当該書類は legalStatus=0 になり、seqNumber と docID 以外が null(区分・フラグは 0)に更新され、書類取得 API では取れなくなります。延長期間中(legalStatus=2)の書類は、法定縦覧期間内と同様には訂正されないことがある、とも注記されています。
有価証券報告書をAIエージェントで読む設計
キーを取得した後に組む前提で、設計だけ先に固めておきます。
1. 一覧の取り込みは日次バッチにする
書類一覧 API は日付単位なので、エージェントが「トヨタの直近の有報」と聞かれてから日付を総当たりするのは現実的ではありません。日次で type=2 を取り込み、docID をキーに edinetCode・docTypeCode・periodEnd・submitDateTime・各フラグ・legalStatus をローカルに持ちます。当日分の再取得は seqNumber の差分で足ります。
2. 絞り込みはコードで行う
有報は docTypeCode=120、訂正有報は 130。企業は edinetCode または JCN で特定し、filerName の文字列一致では結ばない。withdrawalStatus=2(取り下げられた書類)と disclosureStatus=2(不開示中)は除外し、legalStatus=0 は取得不可として扱います。
3. 訂正の系譜を追う
訂正有価証券報告書は parentDocID に訂正前の書類の docID を持ちます(提出操作上設定されている場合)。「最新版らしい1件」を名前で選ばず、原本と訂正を parentDocID でつないで両方の docID を残します。
4. モデルに渡すのは ZIP ではなく抽出結果
type=5 の CSV(XBRL_TO_CSV)か type=1 の XBRL からサーバー側で必要な項目だけ抽出し、値・単位・期間・連結/個別の区別を揃えてから渡します。CSV のレイアウトは仕様書が「書類閲覧操作ガイド」を参照先にしており、本記事では確認していません。数値を扱う前にそのガイドで列定義を確認してください。
5. 出典は docID と submitDateTime
回答に付ける出典は、docID、docDescription、filerName、submitDateTime、periodStart〜periodEnd、取得日時のセットです。API キーは URL に載るため、Subscription-Key を含む URL をそのまま出典やログに残さない運用が必須です。出典オブジェクトの共通形はMCPのprovenance用outputSchema設計、3ツール構成の具体案はEDINET APIをMCP化する設計を参照してください。
まとめ
- EDINET API v2 は書類一覧(
documents.json?date=)と書類取得(documents/{docID}?type=1〜5)の2本。認証はクエリのSubscription-Key - API キーは閲覧サイトのサインアップ → メール確認 → パスワード → 多要素認証 → 連絡先登録で発行される(仕様書2-3章)
- 一覧は日付単位のみ。企業名検索はないので、日次で取り込んで
docIDをキーにローカルで持つ - エラーでも HTTP 200。一覧は本文の
status、書類取得はContent-Typeで判定する。キーなしの401応答は実測済み - 閲覧期間は有報で10年。満了すると
legalStatus=0になりdocID以外がnullになる - 本記事はキー未取得のため実行未検証。仕様と実際の挙動が異なる可能性がある
キーを取得して実測できた時点で、この記事の testedWith と各節を更新します。それまでは、仕様書の記載と、キーなしで返る401だけを事実として扱ってください。
関連して読む
mcp・ai-agentを続けて読む
· 参考リンク 4件EDINET APIをMCP化する設計:書類検索・取得・XBRL抽出の3ツールとキー管理・出典保持
金融庁EDINET API v2をMCP化する設計案。書類検索→取得→XBRL/CSV抽出の3ツール分割、Subscription-Keyの環境変数管理とマスク、日次一覧と書類本体で分けるキャッシュ、docID・提出日時を保持する出典スキーマを型定義とスケルトンで示します(2026-09-14、キー未取得で実行未検証)。
ai-agent・mcpを続けて読む
· 参考リンク 4件法令をAIで扱うときの安全境界:出典・施行日・改正履歴の確認チェックリスト
法令調査をAIやMCPで補助するとき、何を自動化し、どこで人が確認するかを整理。法令ID、公布日、施行日、基準日、改正履歴、引用位置を残す実務チェックリストです。
この記事の情報・検証メモ
- ai-agent
- mcp
- legal-tech
- edinet
- 公開日
- 情報確認
- 参考リンク
- 3件
- 更新性
- 定期更新
仕様・料金・提供範囲が変わりやすいテーマは、公開日・更新日・情報確認日を分けて管理します。 導入前には必ず記事末尾の一次情報と公式ドキュメントで最新状況を確認してください。
一次情報・参考リンク
- EDINET 操作ガイド等(EDINET API仕様書 Version 2 の配布ページ) https://disclosure2dl.edinet-fsa.go.jp/guide/static/disclosure/WZEK0110.html
- EDINET API仕様書(Version 2)2026年6月 金融庁 企画市場局 企業開示課 https://disclosure2dl.edinet-fsa.go.jp/guide/static/disclosure/download/ESE140206.pdf
- EDINET 利用規約 https://disclosure2dl.edinet-fsa.go.jp/guide/static/disclosure/WZEK0030.html