EDINETの書類種別コード一覧と絞り込み:docTypeCode・formCodeで半期報告書・大量保有報告書を分ける
要点
- EDINETの書類一覧APIに書類種別の検索条件はありません。 1日分の一覧を取得してから、
docTypeCodeで絞ります。 - 変更報告書は
350(大量保有報告書)に含まれます。 区別には様式コードformCodeが要ります。 - 半期報告書
160には様式コード043A00があります。 数値に変換すると壊れるので、コードは文字列のまま扱います。 - 大量保有の対象会社は
issuerEdinetCodeで引きます。 提出者のedinetCodeは保有者側です。
EDINET API v2の書類一覧は日付単位でしか取れません。有価証券報告書だけ、大量保有報告書だけ、と絞り込むのは取得した後の処理です。有報ならdocTypeCode=120で済みますが、半期報告書・変更報告書・大量保有報告書は、書類種別コードだけで分けようとすると取りこぼしや取り違えが起きます。
この記事では、金融庁のAPI仕様書と様式コードリストからコード表を確認し、保存済みの一覧を書類種別で数えて目的別に絞るNode.jsコードを配布します。認証や一覧の取得手順はEDINET API v2の使い方を参照してください。
書類種別コード(docTypeCode)一覧
仕様書4-1の書類種別コードは42件です。docTypeCodeは3桁の文字列で出力されます(仕様書3-1-2-2)。よく使うものを先に並べます。
| コード | 書類種別 | コード | 書類種別 |
|---|---|---|---|
120 | 有価証券報告書 | 130 | 訂正有価証券報告書 |
135 | 確認書 | 136 | 訂正確認書 |
140 | 四半期報告書 | 150 | 訂正四半期報告書 |
160 | 半期報告書 | 170 | 訂正半期報告書 |
180 | 臨時報告書 | 190 | 訂正臨時報告書 |
220 | 自己株券買付状況報告書 | 230 | 訂正自己株券買付状況報告書 |
235 | 内部統制報告書 | 236 | 訂正内部統制報告書 |
240 | 公開買付届出書 | 250 | 訂正公開買付届出書 |
270 | 公開買付報告書 | 290 | 意見表明報告書 |
350 | 大量保有報告書 | 360 | 訂正大量保有報告書 |
残りは、有価証券通知書・届出書・発行登録の系統(010〜110)、親会社等状況報告書(200・210)、公開買付の関連書類(260・280・300〜340)、基準日の届出書(370)・変更の届出書(380)です。全42件は配布コードのDOC_TYPESに、仕様書の名称のまま入れています。
様式コードリストでは、有価証券通知書や基準日の届出書・変更の届出書の開示区分は「非開示」です。一覧に種別が出ていても、書類本体を読める書類とは限りません。
docTypeCodeだけでは分けられない3つのケース
1. 変更報告書は350に含まれる
書類種別コードには「変更報告書」がありません。様式コードリストを見ると、変更報告書は府令コード060(株券等の大量保有の状況の開示に関する内閣府令)の様式で、書類種別は「大量保有報告書」です。
| 府令 / 様式コード | 様式名 | docTypeCode |
|---|---|---|
060 / 010000 | 大量保有報告書 | 350 |
060 / 010002 | 変更報告書 | 350 |
060 / 020002 | 変更報告書(短期大量譲渡) | 350 |
060 / 030000 | 大量保有報告書(特例対象株券等) | 350 |
060 / 030002 | 変更報告書(特例対象株券等) | 350 |
060 / 090001 | 訂正報告書(大量保有報告書・変更報告書) | 360 |
docTypeCode=350で絞ると、新規の大量保有報告書と変更報告書が混ざります。最初の大量保有報告書だけを見たいなら、formCodeまで見る必要があります。変更報告書のparentDocIDには、基となる大量保有報告書や変更報告書の書類管理番号が入ります。ただし仕様書4-1は「提出操作上設定されている場合のみ」としているので、空でもおかしいとは限りません。
2. 半期報告書には043A00がある
様式コードリストの改版履歴(2024年7月1日)には、四半期報告書制度の廃止に伴い、第四号の三様式に半期報告書043A00と訂正半期報告書043A01を新設したと記録されています。第四号の三様式は、それまで四半期報告書(043000)の様式番号でした。
| 様式コード | 様式名 | docTypeCode |
|---|---|---|
043000 | 四半期報告書(第四号の三様式) | 140 |
043A00 | 半期報告書(第四号の三様式) | 160 |
050000 | 半期報告書(第五号様式) | 160 |
半期報告書をdocTypeCode=160で絞れば、どちらの様式も拾えます。問題になるのは、様式コードを数値として扱う処理です。手元のNode.js v24.8.0で確かめました。
node -e "console.log(Number('043A00'), Number('050000'), parseInt('043A00',10))"NaN 50000 43Number()はNaN、parseInt()は途中で切って43を返し、エラーにはなりません。先頭の0も消えます。DBの列を整数型にしている場合や、表計算ソフトで開いた一覧を読み直す場合も同じ問題が起きます。docTypeCode・ordinanceCode・formCodeは文字列で保存し、文字列で比べます。
四半期報告書(140・150)は、過去のファイル日付の一覧に残ります。仕様書1-2-2では、2015年4月1日以後に提出された四半期報告書の閲覧期間は10年(縦覧3年+延長7年)です。制度廃止後の日付で140が出るかどうかは、実データで確認していません。
3. 大量保有の対象会社はissuerEdinetCodeで引く
大量保有報告書の提出者は、株式を保有する側です。仕様書3-1-2-2によると、大量保有の発行会社のEDINETコードはissuerEdinetCodeに出力されます。公開買付の対象会社はsubjectEdinetCodeです。
有報と同じ感覚でedinetCodeを照合すると、対象会社についての大量保有報告書は1件も当たりません。下の実行例でも、この違いを確かめます。
保存済みの一覧を、書類種別で数えて絞る
配布するコードは、保存済みの書類一覧(type=2)を読み、書類種別ごとの件数を数え、目的別のプリセットで絞ります。外部通信や書類の取得は行いません。
2ファイルを同じフォルダに保存し、PowerShellで実行します。確認環境はWindowsのNode.js v24.8.0で、追加パッケージは要りません。
node .\edinet-doctype-filter.mjs .\edinet-doctype-demo.json以下はすべて、2026年10月5日に架空の12行を処理した出力です。
{ "fileDate": "2026-08-14", "total": 12, "byDocType": { "120 有価証券報告書": 1, "130 訂正有価証券報告書": 1, "135 確認書": 1, "160 半期報告書": 2, "170 訂正半期報告書": 1, "180 臨時報告書": 1, "350 大量保有報告書": 3, "360 訂正大量保有報告書": 1, "unknown": 1 }}unknownの1行は、取り下げられた書類を模した行です。仕様書3-1-5によると、取り下げられた書類は日次更新で連番・書類管理番号・親書類管理番号・取下区分以外がnullになります。閲覧期間が満了した書類も、連番と書類管理番号以外がnullです(3-1-4)。種別がnullの行は、元が何の書類だったか一覧からは分かりません。 過去に保存した一覧と照合したいなら、docIDをキーに取得時点の記録を残しておく必要があります。
大量保有を発行会社で絞る
node .\edinet-doctype-filter.mjs .\edinet-doctype-demo.json --preset=large-holding --issuer=E90001{ "preset": "large-holding", "matched": 3, "rows": [ { "docID": "DEMO1007", "form": "大量保有報告書(第一号様式)", "kind": "initial_report", "filerEdinetCode": "E90010", "issuerEdinetCode": "E90001" }, { "docID": "DEMO1008", "form": "変更報告書(第一号様式)", "kind": "change_report", "filerEdinetCode": "E90011", "parentDocID": "DEMO0998" }, { "docID": "DEMO1010", "form": "訂正報告書(大量保有報告書・変更報告書)", "kind": "correction", "parentDocID": "DEMO1008" } ]}(読みやすさのため、出力の一部の項目を省略しています。)350の3行のうち、発行会社がE90001の2行と訂正の1行が出ました。kindは様式コードから決めたもので、initial_reportが大量保有報告書、change_reportが変更報告書です。
同じ条件を提出者で絞ると0件になります。
node .\edinet-doctype-filter.mjs .\edinet-doctype-demo.json --preset=large-holding --filer=E90001{ "preset": "large-holding", "matched": 0, "rows": [] }半期報告書を絞る
node .\edinet-doctype-filter.mjs .\edinet-doctype-demo.json --preset=semiannual043A00と050000の半期報告書2行と、043A01の訂正半期報告書1行、合わせて3行が出ます。periodは2026-01-01..2026-12-31のように、半期ではなく1年の範囲になっています。仕様書3-1-2-2の注記*3は、期間(periodStart・periodEnd)を「有価証券報告書及び半期報告書では事業年度」と定めているためです。架空データはこの記載に合わせて作りました。中間期の末日がperiodEndに入るとは限らないので、期末日で書類を判定する処理では注意してください。実データでの値は確認していません。
プリセットと注意フラグ
| プリセット | 対象のdocTypeCode | 会社の絞り方 |
|---|---|---|
annual | 120・130 | --filer=(提出者) |
semiannual | 160・170 | --filer= |
quarterly | 140・150(過去分) | --filer= |
extraordinary | 180・190 | --filer= |
large-holding | 350・360 | --issuer=(発行会社) |
絞り込んだ各行には、次のnotesが付くことがあります。行を消さずに残し、判断は人に任せる作りです。
form_code_not_in_table:コード内の様式表にない様式コード。様式コードリストで確認するperiod_missing:期間が必要な書類なのに期間が空withdrawal_status_not_0・disclosure_status_not_0・legal_status_not_viewable:取下げ・不開示・閲覧期間の区分が通常と違う
数値の120のように文字列でないコードは一致させず、要約ではunknownに数えます。エラー本文(StatusCode: 401など)、件数の不一致、type=1のメタデータだけのファイルは、0件と区別するため終了コード1で止まります。これらの挙動は9件の自動テストで確認しました。
自分の保存JSONで使うとき
node .\edinet-doctype-filter.mjs .\saved-list.json --preset=annual --filer=E00000E00000は書式を示すための架空の値です。入力は手元のJSONファイル1個(上限2MiB)で、APIキーやキー付きURLを渡す欄はありません。結果は標準出力に出すだけで、入力ファイルを書き換えません。
絞り込んだ結果から、取下げや不開示、訂正の系譜まで含めて取得候補を決めるなら、保存JSONから有報の取得候補を作るのコードへ進めます。こちらは書類種別の仕分け、向こうは1社の有報を取得するかどうかの判定で、役割が違います。
このコードは書類を種別で分けるところまでです。書類本体の取得、XBRL・CSVの読み取り、保有割合などの値の解釈は行いません。投資判断や法的な判断の材料として使う場合は、元の書類を確認してください。
次に読む
- EDINET API v2の使い方:APIキー・書類一覧・書類取得の仕様
- 保存JSONから有報の取得候補を作る(訂正・取下げ・不開示の扱い)
- EDINET APIをMCP化する設計:検索・取得・抽出の3ツール
- ほかの公共データAPIを比べる
出典は金融庁「EDINET API仕様書 Version 2」2026年6月版の1-2-2、3-1-2-2、3-1-4、3-1-5、4-1と、別紙1 様式コードリストです(いずれも2026年10月5日確認)。コード表は今後の改版で変わることがあるので、使う前に配布ページで更新日を確かめてください。
関連して読む
edinet・public-dataを続けて読む
· 参考リンク 1件EDINETの保存JSONから有報の取得候補を作る:Node.jsで訂正・取下げ・不開示を分ける
EDINETの書類一覧JSONをローカルで読み、有価証券報告書と訂正報告書のCSV取得候補を整理するNode.jsサンプル。架空10行を候補2・除外5・要確認3に分け、親docID、操作情報、欠損フラグを確認します。API接続や財務値の抽出は行いません。
mcp・public-dataを続けて読む
· 参考リンク 5件日本の公共データAPI 5選:MCPで使うe-Gov・国会・統計・法人情報の選び方
日本の公共データをMCPから使う開発者向けに、e-Gov・国会会議録・e-Stat・Gビズインフォ・EDINETを比較。用途・認証・識別子からAPIを選び、法令の時点指定やXML変換の実装例へ進めます。
この記事の情報・検証メモ
- edinet
- public-data
- nodejs
- mcp
- 公開日
- 情報確認
- 参考リンク
- 3件
- 更新性
- 定期更新
仕様・料金・提供範囲が変わりやすいテーマは、公開日・更新日・情報確認日を分けて管理します。 導入前には必ず記事末尾の一次情報と公式ドキュメントで最新状況を確認してください。
一次情報・参考リンク
- 金融庁 EDINET API仕様書 Version 2(2026年6月)1-2-2、3-1-2-2、3-1-4、3-1-5、4-1 https://disclosure2dl.edinet-fsa.go.jp/guide/static/disclosure/download/ESE140206.pdf
- 金融庁 EDINET API仕様書 別紙1 様式コードリスト(2024年7月更新) https://disclosure2dl.edinet-fsa.go.jp/guide/static/disclosure/download/ESE140327.xlsx
- EDINET 操作ガイド等(API仕様書と別紙の配布ページ) https://disclosure2dl.edinet-fsa.go.jp/guide/static/disclosure/WZEK0110.html