🦁
Python+EDINET APIをやってみる#3 - 書類取得API
はじめ
- 前回(メタデータ及び提出書類一覧の取得)のつづき。
- 今回:提出書類の取得。
EDINET APIの仕様
■2つのAPI
- 提出された書類の一覧を取得するAPI
- 提出された書類を取得するAPI
■書類取得API
リクエスト
-
エンドポイント
https://disclosure.edinet-fsa.go.jp/api/バージョン/documents/書類管理番号
-
バージョン
を指定する。 -
書類管理番号
を指定する。
-
HTTP通信方式:TLS
-
HTTPメソッド:GET
-
リクエストパラメータ
パラメータ名 項目名 必須 設定値 説明 type 必要書類 ○ 1 提出本文書及び監査報告書を取得する。 2 PDFを取得する。 3 代替書面・添付文書を取得する。 4 英文ファイルを取得する。 -
パラメータの指定方法
- 「パラメータ名」と「設定値」を
=
で結合する。 - 複数のパラメータを指定する場合は、1.で作成したパラメータ同士を
&
で結合する。 - 「エンドポイント」と2.で作成したパラメータ文字列を
?
で結合する。
- 「パラメータ名」と「設定値」を
Python編
■書類取得APIソースコード
edinet_doc.py
import requests #HTTPリクエスト
#エンドポイント(基本)
endpoint_base = "https://disclosure.edinet-fsa.go.jp/api/v1/"
#パラメータ
param = {
"type" : 1
}
#書類管理番号
doc_id = "S100NCIA"
#URL
url = endpoint_base + "documents/" + doc_id
#出力ファイル名
filename = doc_id + ".zip"
# 書類一覧の取得
response = requests.get(url, params=param, verify=False)
# ファイルへ出力
if response.status_code == 200:
with open(filename, 'wb') as f:
for chunk in response.iter_content(chunk_size=1024):
f.write(chunk)
#zip解凍
with zipfile.ZipFile(filename) as existing_zip:
existing_zip.extractall(doc_id)
■実行結果
※ZIPファイルと、解凍ファイルができる。
※保存及び解凍先は上記のソースコードのファイルと同じ階層。
実行結果
S100NCIA.zip
S100NCIA
└ BRL
├ AuditDoc
│ ├ jpaud-qrr-cc-001_E02213-000_2021-12-31_01_2022-02-04.xbrl
│ ├ jpaud-qrr-cc-001_E02213-000_2021-12-31_01_2022-02-04.xsd
│ ├ jpaud-qrr-cc-001_E02213-000_2021-12-31_01_2022-02-04_ixbrl.htm
│ ├ jpaud-qrr-cc-001_E02213-000_2021-12-31_01_2022-02-04_pre.xml
│ └ manifest_AuditDoc.xml
│
└ PublicDoc
├ 0000000_header_jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04_ixbrl.htm
├ 0101010_honbun_jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04_ixbrl.htm
├ 0102010_honbun_jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04_ixbrl.htm
├ 0103010_honbun_jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04_ixbrl.htm
├ 0104010_honbun_jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04_ixbrl.htm
├ 0200010_honbun_jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04_ixbrl.htm
├ jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04.xbrl
├ jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04.xsd
├ jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04_cal.xml
├ jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04_def.xml
├ jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04_lab-en.xml
├ jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04_lab.xml
├ jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04_pre.xml
└ manifest_PublicDoc.xml
■説明
- 文書管理番号:S100NCIAは、三菱自動車工業株式会社 R4.02.04 15:01 四半期報告書。
- この例では財務諸表は
0104010_honbun_jpcrp040300-q3r-001_E02213-000_2021-12-31_01_2022-02-04_ixbrl.htm
に記載されている。
おわり
- ここまでで思ったんですが、EDINET APIは究極最小限の機能しか提供していないのでは?と。
- たぶんこのAPIを使おうと思う人って、企業名と期間で検索・取得したいはずですよね。。。
- となると、予め日々の文書一覧情報を取得して、管理するDBとか構築して、そこから企業名とか日付で検索できるシステムを作って、やっとこさ知り得た文書管理番号で財務諸表等の文書データを取得する…っていう超めんどくさいことしないといけないのかなあ...と思いました。
- とりあえず、python勉強の題材ついでに挑戦してみようとは思います。
Discussion