本文へスキップ

EDINET API v2の使い方:APIキー取得・書類一覧・書類取得の仕様と有報をAIで読む設計

金融庁EDINET API(Version 2)の書類一覧API・書類取得API・APIキー発行手順・ステータスコード・更新タイミングを、2026年6月版の公式仕様書で確認して整理。キー未取得のため実行は未検証ですが、キーなしで返る401応答は実測しました。有価証券報告書をAIエージェントで読む設計まで。

SHAYOUWORLD 更新 約8分

金融庁の EDINET API(Version 2)は、書類一覧 API と書類取得 API の2本だけで構成されています。エンドポイントは単純ですが、日付単位でしか一覧が取れない、エラーでも HTTP 200 が返る、書類取得は Content-Type で成否を判定する、閲覧期間は10年で満了後は中身が消える、といった仕様を知らないままエージェントに渡すと必ず詰まります。

EDINET を含む5つの公共 API の比較は日本の公共データAPI 5選にあります。MCP サーバーにする設計は続編のEDINET APIをMCP化する設計で扱います。

先に押さえること

  1. API は2本。 documents.json?date= で日付単位の一覧、documents/{docID}?type= で書類本体。
  2. 認証はクエリの Subscription-Key ヘッダではなく URL に載るので、ログのマスクが必須です。
  3. エラーでも HTTP 200。 一覧 API は本文の metadata.status、書類取得 API は Content-Type で判定します。
  4. 取れるのは閲覧期間内(有報なら10年)だけ。 過去分は日次で差し替わり、満了した書類は docID 以外が null になります。

APIキーの取得手順(仕様書2-3章)

仕様書の第2章は、ほぼ全ページがアカウント作成と API キー発行の画面手順です。流れを要約します。

  1. ポップアップ許可の事前設定。 ブラウザ(仕様書は Microsoft Edge で説明)のポップアップ許可サイトに https://api.edinet-fsa.go.jp を追加します。API キー発行画面・削除画面を開くのに必要とされています。
  2. サインアップ。 EDINET 閲覧サイトの「ログイン」からサインイン画面を開き、「今すぐサインアップ」へ。メールアドレスと画像認証を入力すると @microsoftonline.com から確認コードが届きます。
  3. パスワード設定。 12〜256文字、小文字・大文字・数字・記号のうち3種以上。
  4. 多要素認証。 国コードと電話番号を登録し、SMS の確認コードか自動音声通話で確認します。
  5. 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年を経過していない日付。土日祝も指定可
type1 メタデータのみ(既定)、2 提出書類一覧 + メタデータ
Subscription-KeyAPI キー

企業名や書類種別で検索するパラメータはありません。 「その日に提出処理された書類(と、その日に登録された書類情報修正・開示不開示区分の変更)」が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 コード・証券コード・法人番号・名称提出者の照合は edinetCodeJCN。名称の文字列一致で結ばない
ordinanceCode / formCode / docTypeCode府令コード・様式コード・書類種別コード有報は docTypeCode=120、訂正有報は 130
periodStart / periodEnd事業年度(有報・半期)、四半期会計期間(四半期報告書)その他の書類種別では出力されない
submitDateTime提出日時出典の時点情報
docDescription閲覧サイトの「提出書類」欄の文字列表示用
parentDocID親書類管理番号(訂正報告書の訂正前書類など)訂正の系譜をたどる
withdrawalStatus取下書は 1、取り下げられた書類は 22 は除外候補
docInfoEditStatus / disclosureStatus財務局職員による書類情報修正・不開示の区分disclosureStatus=2 は不開示中
xbrlFlag / pdfFlag / attachDocFlag / englishDocFlag / csvFlag各形式の有無(1/0書類取得 API の type を選ぶ前に確認
legalStatus1 縦覧中、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 ファイルを含む)ZIPxbrlFlag=1 で XBRL が含まれる
2PDF(閲覧サイトの「PDF 表示」に相当)PDFpdfFlag=1
3代替書面・添付文書ZIPattachDocFlag=1
4英文ファイルZIPenglishDocFlag=1
5CSV(XBRL を CSV に変換したもの)ZIPcsvFlag=1

ZIP の中身は type=1 なら PublicDoc(提出本文書)と AuditDoc(監査報告書)、type=5 なら XBRL_TO_CSV フォルダです。閲覧サイトの XBRL ダウンロードと違い、XbrlSearchDlInfo.csv は含まれません(その情報は書類一覧 API 側にあります)。

仕様書3-3 が明記している重要な癖がこれです。

  • 成功時は Content-Typeapplication/octet-stream(ZIP)または application/pdf
  • 失敗時は application/json; charset=utf-8 で、HTTP ステータスは 200 のまま

「HTTP 200 で何かバイナリが返ってきた」だけでは成否が分からないので、Content-Type を見てから保存します。

ステータスコード(実測した401を含む)

仕様書3-3 の一覧です。パラメータ誤り等のエラーは JSON 本文で返り、HTTP ステータスは 200 です。

statusmessage意味
200OK成功(書類一覧 API)
400Bad Requestパラメータや文字コードの誤り
401Access denied due to invalid subscription key. …API キーが無効または未指定
404Not Foundリソースが存在しない
429Too Many Requests一定時間内の大量リクエスト。時間を空けて再試行し、取得間隔を見直す
500Internal Server Errorサーバー側エラー。メンテナンス情報を確認

400・404・500 は metadata.status / metadata.message に入り、401 と 429 は StatusCodemessage のトップレベル形式です。キーなしで実際に叩いた結果がこちらです(2026-09-14)。

Terminal window
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機能の運用に支障を与える行為」を禁止し、負荷状況に応じたアクセス制限があり得るとしています。

更新タイミングとデータの範囲

  1. 8:30過ぎ〜
    当日分を原則1分毎に更新
    書類提出(取下書を含む)、書類情報修正、不開示の開始・解除が発生時に追加される。内容に変更がなくてもファイルは差し替わる
  2. 24:00過ぎ
    日次更新処理
    全ファイル日付の過去分が差し替えられ、10年を経過したファイル日付は削除される
  3. 処理の最後
    当日分ファイルの作成
    当日分が取得可能になっていれば、日次更新が完了し前日までのデータが確定したと判定できる
EDINET API仕様書(Version 2)3-1-3 より。時刻は日本時間

閲覧期間は書類種別ごとに決まっています。

10年
有価証券報告書の閲覧期間
縦覧5年 + 延長5年
10年
四半期報告書の閲覧期間
縦覧3年 + 延長7年(2015-04-01以降提出分)
2013-01-04〜
API で取得可能な有報
2023年1月4日の更改時点の記載。10年経過分は順次消える
40項目
書類一覧 results の項目数
seqNumber から legalStatus まで
EDINET API仕様書(Version 2)1-2-2、3-1-9-2、3-1-2-2 より

閲覧期間が満了すると、一覧上の当該書類は legalStatus=0 になり、seqNumberdocID 以外が null(区分・フラグは 0)に更新され、書類取得 API では取れなくなります。延長期間中(legalStatus=2)の書類は、法定縦覧期間内と同様には訂正されないことがある、とも注記されています。

有価証券報告書をAIエージェントで読む設計

キーを取得した後に組む前提で、設計だけ先に固めておきます。

1. 一覧の取り込みは日次バッチにする

書類一覧 API は日付単位なので、エージェントが「トヨタの直近の有報」と聞かれてから日付を総当たりするのは現実的ではありません。日次で type=2 を取り込み、docID をキーに edinetCodedocTypeCodeperiodEndsubmitDateTime・各フラグ・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

回答に付ける出典は、docIDdocDescriptionfilerNamesubmitDateTimeperiodStartperiodEnd、取得日時のセットです。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だけを事実として扱ってください。

関連して読む

この記事の情報・検証メモ
公開日
情報確認
参考リンク
3件
更新性
定期更新
更新管理

仕様・料金・提供範囲が変わりやすいテーマは、公開日・更新日・情報確認日を分けて管理します。 導入前には必ず記事末尾の一次情報と公式ドキュメントで最新状況を確認してください。

図解を保存・共有

記事の要点を1枚にまとめました。画像は新しいタブで開いて保存できます。

EDINET API v2の使い方:APIキー取得・書類一覧・書類取得の仕様と有報をAIで読む設計 EDINET API v2は2本だけ。キー、日付単位の一覧、Content-Typeでの成否判定を先に押さえる 2つのAPI:書類一覧: documents.json?date=YYYY-MM-DD&type=1|2。書類取得: documents/{docID}?type=1〜5(ZIP/PDF)。どちらも Subscription-Key をクエリで渡す。 仕様書で確認した制約:ファイル日付は10年以内、当日分は1分毎更新。エラーでも HTTP は 200、本文JSONの status を見る。書類取得は Content-Type で成功/失敗を判定。 AIで有報を読むなら:docTypeCode=120 と csvFlag/xbrlFlag で絞る。訂正は parentDocID、取下げは withdrawalStatus。docID・submitDateTime を出典として残す。
EDINET API v2の使い方:APIキー取得・書類一覧・書類取得の仕様と有報をAIで読む設計 記事の要約 2026.09.14 入門・導入ガイド
Primary sources

一次情報・参考リンク

About the author
SHAYOUWORLD

日本の公共データAPIを使うMCPサーバーを作って公開し、ローカルLLMを自分のGPUで測った記録を、一次情報・検証ログ・失敗例とあわせて整理します。