Skip to content

EDINET API

このガイドでは、kabukit が提供する高レベルなモジュール関数と、より詳細な制御が可能な EdinetClient の使い方を解説します。

認証設定

EDINET API を利用するには、事前にコマンドラインで EDINET API の API キーを設定しておく必要があります。詳細は、CLIの使い方の「認証設定」セクションを参照してください。

環境変数 EDINET_API_KEY に直接 API キーを設定することも可能です。

モジュールレベル関数

書類一覧 (get_edinet_list)

kabukit.get_edinet_list 関数は、提出書類一覧を取得します。

日付 (YYYYMMDD または YYYY-MM-DD) を指定すると、指定した日付に提出された書類一覧を取得できます。

from kabukit import get_edinet_list

df = await get_edinet_list("20251010")
df.select("FileDate", "Code", "DocumentId", "Company", "PdfFlag", "CsvFlag")
shape: (230, 6)
FileDateCodeDocumentIdCompanyPdfFlagCsvFlag
datestrstrstrboolbool
2025-10-10"97930""S100WU1N""株式会社ダイセキ"truetrue
2025-10-10"82830""S100WU0U""株式会社PALTAC"truetrue
2025-10-10"61130""S100WUEO""株式会社アマダ"truetrue
2025-10-10"97930""S100WU1S""株式会社ダイセキ"truefalse
2025-10-10"62470""S100WU66""株式会社日阪製作所"truetrue
2025-10-10"75160""S100WUOK""コーナン商事株式会社"truetrue
2025-10-10"76030""S100WUON""ジーイエット株式会社"truetrue
2025-10-10"23450""S100WULQ""株式会社クシム"truetrue
2025-10-10"26870""S100WT9S""株式会社シー・ヴイ・エス・ベイエリア"truetrue
2025-10-10"26870""S100WT9U""株式会社シー・ヴイ・エス・ベイエリア"truefalse

複数の提出日の書類一覧を一度に取得することもできます。このとき、EDINET API へのリクエストは非同期で並列に行われます。

df = await get_edinet_list(["2025-10-10", "2025-10-14", "2025-10-15"])
df.select("FileDate", "Code", "DocumentId", "Company", "PdfFlag", "CsvFlag")
shape: (735, 6)
FileDateCodeDocumentIdCompanyPdfFlagCsvFlag
datestrstrstrboolbool
2025-10-14"135A0""S100WUD3""株式会社VRAIN Solution"truefalse
2025-10-14"135A0""S100WUBO""株式会社VRAIN Solution"truetrue
2025-10-10"14140""S100WUA7""ショーボンドホールディングス株式会社"truetrue
2025-10-15"14180""S100WV99""インターライフホールディングス株式会社"truetrue
2025-10-15"14180""S100WV9D""インターライフホールディングス株式会社"truefalse
2025-10-15"99820""S100WV4Z""タキヒヨー株式会社"truetrue
2025-10-15"99870""S100WTVO""株式会社スズケン"truetrue
2025-10-15"99870""S100WUM2""株式会社スズケン"truetrue
2025-10-14"99930""S100WUKN""株式会社ヤマザワ"truefalse
2025-10-14"99930""S100WUKL""株式会社ヤマザワ"truetrue

戻り値のデータフレームは、銘柄コード (Code)、日付 (Date) の順でソートされます。

過去のある日数または年数に渡る提出日の書類一覧を取得することもできます。

df = await get_edinet_list(days=10)
df.select("FileDate", "Code", "DocumentId", "Company", "PdfFlag", "CsvFlag")
shape: (650, 6)
FileDateCodeDocumentIdCompanyPdfFlagCsvFlag
datestrstrstrboolbool
2026-02-04"13760""S100XJ5E""カネコ種苗株式会社"truetrue
2026-02-05"13810""S100XJ7N""株式会社アクシーズ"truefalse
2026-02-05"13810""S100XJ7I""株式会社アクシーズ"truetrue
2026-01-28"13830""S100XHX5""ベルグアース株式会社"truetrue
2026-01-28"13830""S100XHX7""ベルグアース株式会社"truetrue
2026-02-04"98370""S100XJ0T""モリト株式会社"truetrue
2026-02-03"98800""S100XIWB""イノテック株式会社"truetrue
2026-02-04"98820""S100XINZ""株式会社イエローハット"truetrue
2026-02-03"99320""S100XIX5""杉本商事株式会社"truetrue
2026-02-02"99800""S100XIQU""MRKホールディングス株式会社"truetrue
df_years = await get_edinet_list(years=1)
df_years.select("FileDate", "Code", "DocumentId", "Company", "PdfFlag", "CsvFlag")
shape: (41_692, 6)
FileDateCodeDocumentIdCompanyPdfFlagCsvFlag
datestrstrstrboolbool
2025-06-25"13010""S100W543""株式会社 極洋"truetrue
2025-06-25"13010""S100W4U5""株式会社 極洋"truefalse
2025-06-25"13010""S100W4U1""株式会社 極洋"truetrue
2025-06-30"13010""S100W9LW""株式会社 極洋"truetrue
2025-11-07"13010""S100WZYS""株式会社 極洋"truefalse
2025-06-27"99970""S100W8DU""株式会社ベルーナ"truefalse
2025-06-27"99970""S100W8E2""株式会社ベルーナ"truetrue
2025-06-30"99970""S100W9IL""株式会社ベルーナ"truetrue
2025-11-14"99970""S100X4PC""株式会社ベルーナ"truetrue
2025-11-14"99970""S100X4PF""株式会社ベルーナ"truefalse

書類本文 (get_edinet_documents)

kabukit.get_edinet_documents 関数は、書類本文を取得します。書類一覧で取得した書類 ID (docID) を引数にとります。

from kabukit import get_edinet_documents

df = await get_edinet_documents("S100WUKL")
df.select("DocumentId", "要素ID", "項目名", "値")
shape: (4, 4)
DocumentId要素ID項目名
strstrstrstr
"S100WUKL""jpcrp_cor:IndependentAuditorsR…"独立監査人の報告書、連結 [テキストブロック]""  独立監査人の中間連結財務諸表に対する期中レビュー報告書 …
"S100WUKL""jpcrp_cor:AuditFirm1Consolidat…"監査法人1、連結""EY新日本有限責任監査法人"
"S100WUKL""jpcrp_cor:CPA1AuditFirm1Consol…"公認会計士1、監査法人1、連結""佐 藤   晶"
"S100WUKL""jpcrp_cor:CPA2AuditFirm1Consol…"公認会計士2、監査法人1、連結""大 倉 克 俊"

複数の書類 ID を与えて、非同期に並列取得することもできます。

from polars import col as c

doc_ids = df_years.filter(c.CsvFlag)["DocumentId"]  # CSV形式を提供する書類を選択
df = await get_edinet_documents(doc_ids, max_items=3)
df.select("DocumentId", "要素ID", "項目名", "値")
shape: (96, 4)
DocumentId要素ID項目名
strstrstrstr
"S100W4U1""jpdei_cor:NumberOfSubmissionDE…"提出回数、DEI""1"
"S100W4U1""jpctl_cor:DocumentTitleCoverPa…"提出書類、表紙""内部統制報告書"
"S100W4U1""jpctl_cor:ClauseOfStipulationC…"根拠条文、表紙""金融商品取引法第24条の4の4第1項"
"S100W4U1""jpctl_cor:PlaceOfFilingCoverPa…"提出先、表紙""関東財務局長"
"S100W4U1""jpctl_cor:FilingDateCoverPage""提出日、表紙""2025-06-25"
"S100W9LW""jpdei_cor:IdentificationOfDocu…"訂正対象書類の書類管理番号、DEI""-"
"S100W9LW""jpdei_cor:ReportAmendmentFlagD…"記載事項訂正のフラグ、DEI""false"
"S100W9LW""jpdei_cor:XBRLAmendmentFlagDEI""XBRL訂正のフラグ、DEI""false"
"S100W9LW""jpcrp-esr_cor:ReasonForFilingT…"提出理由 [テキストブロック]""当社は、2025年6月25日の定時株主総会において、決議事項…
"S100W9LW""jpcrp-esr_cor:ResolutionOfShar…"株主総会における決議 [テキストブロック]""(1) 株主総会が開催された年月日2025年6月25日 (2…

Info

EDINETの書類は、すべてが CSV 形式 (XBRL) で提供されるわけではありません。csvFlagTrue の書類のみ、表形式の構造化データとして取得できます。

pdf キーワード引数を True に指定すると、書類本文を PDF 形式で取得できます。データフレームのカラム名は "PdfContent"、データ型は polars.Binary です。バイナリファイルとして保存すれば、PDF 形式の書類を閲覧することができます。

doc_ids = df_years.filter(c.PdfFlag)["DocumentId"]  # PDF形式を提供する書類を選択
df = await get_edinet_documents(doc_ids, max_items=3, pdf=True)
df.select("DocumentId", "PdfContent")
shape: (3, 2)
DocumentIdPdfContent
strbinary
"S100W4U1"b"%PDF-1.5\x0d\x0a%\xe2\xe3\xcf\xd3\x0d\x0a1\x200\x20obj\x0d\x0a<</C"…
"S100W4U5"b"%PDF-1.5\x0d\x0a%\xe2\xe3\xcf\xd3\x0d\x0a1\x200\x20obj\x0d\x0a<</C"…
"S100W543"b"%PDF-1.5\x0d\x0a%\xe2\xe3\xcf\xd3\x0d\x0a1\x200\x20obj\x0d\x0a<</C"…

Info

EDINETの書類は、すべてが PDF 形式で提供されるわけではありません。pdfFlagTrue の書類のみ、PDF の原本を取得できます。

EdinetClient

EdinetClient の各メソッドは、EDINET APIの仕様 に対応した実装となっています。

kabukit.EdinetClient をインポートしてインスタンスを作成します。

from kabukit import EdinetClient

client = EdinetClient()

書類一覧 (get_list)

EdinetClient.get_list メソッドは、日付を指定して、提出された書類のメタデータを取得します。

df = await client.get_list("2025-10-10")
df.select("FileDate", "Code", "DocumentId", "Company", "PdfFlag", "CsvFlag")
shape: (230, 6)
FileDateCodeDocumentIdCompanyPdfFlagCsvFlag
datestrstrstrboolbool
2025-10-10"97930""S100WU1N""株式会社ダイセキ"truetrue
2025-10-10"82830""S100WU0U""株式会社PALTAC"truetrue
2025-10-10"61130""S100WUEO""株式会社アマダ"truetrue
2025-10-10"97930""S100WU1S""株式会社ダイセキ"truefalse
2025-10-10"62470""S100WU66""株式会社日阪製作所"truetrue
2025-10-10"75160""S100WUOK""コーナン商事株式会社"truetrue
2025-10-10"76030""S100WUON""ジーイエット株式会社"truetrue
2025-10-10"23450""S100WULQ""株式会社クシム"truetrue
2025-10-10"26870""S100WT9S""株式会社シー・ヴイ・エス・ベイエリア"truetrue
2025-10-10"26870""S100WT9U""株式会社シー・ヴイ・エス・ベイエリア"truefalse

書類本文 (get_document)

EdinetClient.get_document メソッドは、文書 ID を指定して、書類本文を取得します。

df = await client.get_document("S100WUKL")
df.select("DocumentId", "要素ID", "項目名", "値")
shape: (4, 4)
DocumentId要素ID項目名
strstrstrstr
"S100WUKL""jpcrp_cor:IndependentAuditorsR…"独立監査人の報告書、連結 [テキストブロック]""  独立監査人の中間連結財務諸表に対する期中レビュー報告書 …
"S100WUKL""jpcrp_cor:AuditFirm1Consolidat…"監査法人1、連結""EY新日本有限責任監査法人"
"S100WUKL""jpcrp_cor:CPA1AuditFirm1Consol…"公認会計士1、監査法人1、連結""佐 藤   晶"
"S100WUKL""jpcrp_cor:CPA2AuditFirm1Consol…"公認会計士2、監査法人1、連結""大 倉 克 俊"

pdf キーワード引数を True に指定すると、書類本文を PDF 形式で取得できます。

df = await client.get_document("S100WUKL", pdf=True)
df.select("DocumentId", "PdfContent")
shape: (1, 2)
DocumentIdPdfContent
strbinary
"S100WUKL"b"%PDF-1.5\x0d\x0a%\xe2\xe3\xcf\xd3\x0d\x0a1\x200\x20obj\x0d\x0a<</C"…

Note

モジュール関数は複数の書類を一度に取得できるので、get_edinet_documents(複数形)です。一方、EdinetClient のメソッドは単一の書類を取得するので、get_document(単数形)です。

データ形式について

kabukit.get_edinet_documents 関数および EdinetClient.get_document メソッドで取得される書類本文は、EDINET が提供する CSV 形式のデータ(元のデータは XBRL 形式)を Polars DataFrame に変換したものです。