ふくふくHukuhuku Inc.
EP.18Open Data 14分公開: 2026-05-10

EDINET API:上場企業の財務データを丸ごと取得して同業比較する

金融庁の EDINET API は、有価証券報告書・四半期報告書を XBRL/PDF で一括取得できる無料の宝。同業他社の決算を 1 スクリプトで集め、自社の利益率・ROE が業界平均と比べてどうかを可視化する手順。

#{{edinet|*}}#財務#XBRL#上場企業
CO📔 Google Colab で開く(上から順にセルを実行)
シェア

金融庁 EDINET は、上場企業の 有価証券報告書 (有報)・四半期報告書・大量保有報告書などを / / XBRL で取得できる 無料 API。同業他社の決算を一括ダウンロードして、自社の利益率や ROE が業界水準と比べてどうかを 半日で可視化 できます。

EDINET API でできることのインパクト

「業界平均と比べて自社はどう」は経営報告で頻出。ただし証券会社が出す業界レポートは 時差 + 高い。EDINET なら 当日公開された有報を即取得でき、同業 20 社の比較を 数分 で出せます。

API 概要と利用条件

項目内容
料金完全無料
認証API キー必要(無料登録、即日発行)
レート制限明示なし(過度なアクセスは控える)
形式書類一覧 JSON、本体は PDF / XBRL /
カバー範囲上場企業・大手非上場の有報、四半期、大量保有、内部統制報告書
過去データ2008 年〜(XBRL 対応は 2014 年以降)
更新頻度リアルタイム(公開時に反映)

Step 1: API キー取得

  1. 1EDINET API の利用申請ページにアクセス
  2. 2メールアドレス + 利用目的で登録、即時に API キー発行
  3. 3発行されたキーは `.env` 等で管理、 には commit しない

Step 2: 書類一覧の取得

ある日の提出書類一覧
Python
import osimport requestsfrom datetime import date
API_BASE = "https://api.edinet-fsa.go.jp/api/v2"API_KEY = os.environ["EDINET_API_KEY"]
def list_documents(target_date: date) -> list[dict]:    """指定日の書類一覧を取得"""    r = requests.get(        f"{API_BASE}/documents.json",        params={            "date": target_date.isoformat(),            "type": 2,                  # 1=メタ、2=書類本体含む一覧            "Subscription-Key": API_KEY,        },        timeout=30,    )    r.raise_for_status()    return r.json().get("results", [])
# 例: 2027-06-30 の提出書類docs = list_documents(date(2027, 6, 30))print(f"提出件数: {len(docs)}")for d in docs[:5]:    print(f"  {d['filerName']}: {d['docDescription']}")

Step 3: XBRL を取得して財務指標を抜き出す

XBRL ダウンロード + 主要勘定の抽出
Python
import zipfile, iofrom arelle import Cntlr  # pip install arelle-release
def fetch_xbrl(doc_id: str) -> bytes:    r = requests.get(        f"{API_BASE}/documents/{doc_id}",        params={"type": 1, "Subscription-Key": API_KEY},        timeout=60,    )    r.raise_for_status()    return r.content
def extract_financials(xbrl_zip: bytes) -> dict:    """XBRL から売上高・営業利益・純利益・純資産を抜く(簡易版)"""    z = zipfile.ZipFile(io.BytesIO(xbrl_zip))    # 実際は arelle でタクソノミ解析、ここでは概念のみ    # InlineXBRL を BeautifulSoup で読むパターンが手っ取り早い    return {        "revenue": ...,        "operating_income": ...,        "net_income": ...,        "net_assets": ...,    }
XBRL は本気でやる前に EDINET の CSV を使う

EDINET は CSV 一括ダウンロード機能 も提供しており、各勘定科目を一覧で取れる。「とりあえず数値が欲しい」なら CSV が圧倒的に楽。本格的な勘定科目展開や タクソノミ依存の指標 が必要な場合のみ XBRL に踏み込む。

Step 4: 同業比較の典型コード

上場 IT 企業 20 社の営業利益率を一括比較
Python
import pandas as pd
# 同業 EDINET コード一覧(事前に edinetCode を調べておく)peers = {    "E12345": "同業A",    "E12346": "同業B",    # ...}
rows = []for edinet_code, name in peers.items():    # この企業の最新有報を検索 → financials 抽出    fin = get_latest_annual_report(edinet_code)    rows.append({        "company": name,        "revenue": fin["revenue"],        "op_income": fin["operating_income"],        "op_margin": fin["operating_income"] / fin["revenue"],        "roe": fin["net_income"] / fin["net_assets"],    })
df = pd.DataFrame(rows)print(df.sort_values("op_margin", ascending=False))# → 同業 20 社の営業利益率ランキング

業務での使い所

  • 経営会議資料: 同業比較・業界平均との乖離を月次で出す
  • 競合分析: 売上構成・地域別・セグメント別の動きをトラッキング
  • M&A 候補スクリーニング: PER / PBR / ROE 等で条件抽出
  • 与信判断: 取引先の財務健全性を最新有報で確認
  • IR 資料生成: 自社の数字 + 業界水準の対比で説得力を上げる

落とし穴

決算期の違い

3 月決算と 12 月決算が混在するため、単純な「同期間比較」が崩れる。直近4四半期合算 (TTM) で揃えるのが標準。

勘定科目の表記揺れ

「売上高」「営業収益」「純売上高」など企業ごとに違う名称。XBRL のタクソノミでは概念で統一されているが、CSV だと手作業の正規化が必要。

次の話

EP.19 では gBizINFO API。EDINET は上場企業中心ですが、gBizINFO は 国内 400 万法人をカバーします。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp