0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

edinetdbのβ版が終了したのでEDINET APIの代替を探した

0
Last updated at Posted at 2026-03-09

edinetdbのβ版が3月7日に終了した。

β期間中は無料でEDINETの財務データをAPIで取得できた。1,300人以上がAPIキーを取得していたらしい。自分もベンチマーク検証で使っていた。

β終了後、既存のスクリプトが動かなくなった人もいるはず。選択肢を整理した。

選択肢は3つ

1. EDINET APIを直接叩く

金融庁のEDINET APIを直接使う方法。無料。ただしZIPをダウンロードしてXBRLをパースする必要がある。

# 1社の売上高を取るだけで35行
res = requests.get("https://api.edinet-fsa.go.jp/api/v2/documents.json", ...)
zip_res = requests.get(f"https://api.edinet-fsa.go.jp/api/v2/documents/{doc_id}", ...)
# → zipfile展開 → lxml → namespace分岐 → 会計基準判定...

3つの会計基準(JP-GAAP/IFRS/US-GAAP)の分岐処理が必要。1社なら50行、3,709社にスケールさせると数千行。詳細は前の記事に書いた。

2. 自分でパーサーを書く

上のEDINET APIルートを本気でやるパターン。XBRLタクソノミのマッピング、3会計基準の正規化、単位変換(円/千円/百万円)、期間判定(当期/前期)を全部自前で実装する。

2週間は溶ける。XBRLパースで絶望した話に書いた通り。

3. 別のAPIを使う

Axioraがある。EDINETの有報XBRLをパース・正規化して、REST APIで返す。自分が作っているサービス。

  • 無料プラン:1,000リクエスト/日
  • 期限なし。βではない
  • クレジットカード不要

edinetdbから移行する場合の対応を書いておく。

edinetdb → Axiora 移行

セットアップ

pip install axiora

axiora.devでGitHub or Googleログイン → APIキーをコピー → 環境変数にセット:

export AXIORA_API_KEY="ax_live_..."

基本的な取得

edinetdbで書いていたコード:

import requests

res = requests.get(
    "https://edinetdb.jp/v1/companies/E02144/financials",
    headers={"X-API-Key": "edb_..."},
)
data = res.json()["data"][0]
print(data["revenue"])

Axioraで書き換え:

from axiora import Axiora

client = Axiora()
toyota = client.companies.retrieve_financials("7203", years=1)
print(toyota.data[0].revenue)
# 48036704000000

SDKは型付き。toyota.data[0].まで打てばIDEが52フィールド全部補完してくれる。

企業コード

edinetdbはEDINETコード(E02144)で指定していた。

Axioraは証券コード(7203)でもEDINETコード(E02144)でもどちらでも使える。東証のティッカーをそのまま渡せる。

# どちらでもOK
client.companies.retrieve_financials("7203", years=1)     # 証券コード
client.companies.retrieve_financials("E02144", years=1)   # EDINETコード

フィールド対応表

edinetdbが返していたフィールドと、Axioraの対応:

データ edinetdb Axiora
売上高 revenue revenue
純利益 net_income net_income
営業利益 operating_income operating_income
総資産 total_assets total_assets
株主資本 ❌ 未提供 total_equity
EPS eps eps
BPS bps
ROE ❌ 未提供 roe
ROA ❌ 未提供 roa
営業利益率 ❌ 未提供 operating_margin
純利益率 ❌ 未提供 net_margin
自己資本比率 ❌ 未提供 equity_ratio
配当 dividends_per_share
従業員数 num_employees
会計基準 accounting_standard accounting_standard

edinetdbは24フィールド。Axioraは52フィールド。ROE・ROA・利益率など分析に使う指標は計算済みで返ってくる。

edinetdbにはなかった機能

移行ついでに使えるようになる機能がいくつかある。

ランキング

# 売上高トップ10
ranking = client.rankings.retrieve("revenue", limit=10)
for r in ranking.data:
    print(f"{r.company.name_jp}  ¥{r.value/1e12:.1f}")

revenue, net_income, roe, roa, operating_marginなど11指標でソート可能。

スクリーニング

# ROE15%以上、売上1000億以上
screen = client.screen.retrieve(roe_min=15.0, revenue_min=100_000_000_000)
for r in screen.data:
    print(f"{r.company.name_jp}  ROE: {r.metrics.roe:.1f}%")

成長率・CAGR

growth = client.companies.retrieve_growth("7203", years=5)
cagr_5yr = growth.data.cagr.api_5yr
print(f"売上CAGR(5年): {cagr_5yr.revenue:.1f}%")

財務健全性スコア

health = client.companies.retrieve_health("7203")
print(health.data.score)   # 0-100
print(health.data.flags)   # リスクフラグ (例: ['net_loss', 'negative_operating_cf'])

大量保有報告書(5%ルール)

# 誰がトヨタの株を大量保有しているか
curl https://api.axiora.dev/v1/companies/7203/shareholdings \
  -H "Authorization: Bearer $AXIORA_API_KEY"

MCP(Claude連携)

Claude Desktopの設定に1ブロック追加するだけで、日本企業の財務質問に答えられるようになる。

{
  "mcpServers": {
    "axiora": {
      "url": "https://api.axiora.dev/mcp",
      "headers": {
        "Authorization": "Bearer ax_live_..."
      }
    }
  }
}

33ツール。スクリーニング、比較、大量保有報告書の分析まで自然言語で実行できる。

精度

気になる人もいると思うので。

50社ベンチマークの結果:

プロバイダ 精度
Axiora 100.00% (285/285)
edinetdb 74.74% (213/285)

正解データはEDINETの有報XBRL。ベンチマークはOSSで公開している。

edinetdbのスコアが低い主因はtotal_equityが未実装だったこと(0/50)。それを除くと90.6%。残りは売上要素の選択ミス、営業利益の期間ずれ、EPSの端数処理。

まとめ

β終了後の選択肢:

  1. EDINET API直接 — 無料だが、XBRLパースの実装コストが高い
  2. 自前パーサー — 2週間〜。自分のユースケースに最適化できる
  3. Axiora — 3行で同じデータ。52フィールド。無料・期限なし

スクリプトを書き換えるだけなら30分。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?