【銘柄の選び方】高配当株スクリーニングにEDINETを使う方法|API登録からデータ取得まで

高配当株の選び方シリーズ「EDINETの使い方」のアイキャッチ画像。有価証券報告書からAPIで財務データを自動で集めるイメージ 銘柄の選び方

高配当分析には配当利回りだけでなく、各銘柄の財務データを確認し、優良な銘柄か、罠銘柄かを見分ける必要があります。良い情報が載っているのはIRBANKですが、4,000近くある銘柄を一つ一つ確認していくのはかなり大変ですよね。

そこで私はEDINET APIを用いて、自動で財務データを取得しています。

この記事では、スクリーニングにEDINETを取り入れる方法を説明します。APIの登録から、実際に数字を取り出すところ、取り出すときに気をつけることまで、順番にまとめました。

EDINETとは

EDINET(エディネット)は、金融庁が運営している、会社の決算書類を誰でも無料で見られるサイトです。上場している会社が毎年出す「有価証券報告書」(以下、有報)も、ここで見られます。

よく見られているIRBANKも、こうした会社の開示資料をもとに数字をまとめているサイトです(IRBANKの各社のページにも「有価証券(EDINET)」の欄があります)。

EDINETの良いところは、会社が決まった形で有報を出す義務があることです。

  • 出す時期が決まっている
    上場している会社は、決算から3か月以内に有報を出すことが、法律(金融商品取引法)で決められています。
  • 書く中身と形が決まっている
    書く項目や順番が決まっていて、数字は「売上高」「1株配当」といった項目ごとに、コンピューターで読める形のデータでも出されます。
  • 1冊に5年分の数字が載っている
    有報のはじめのほうに「主要な経営指標等の推移」という表があり、売上や1株配当などが5年分並んでいます。最新の有報と5年前の有報、2冊を合わせると10年分になります。

どの会社でも同じような場所に同じような数字が並んでいるので、ここを見ておけば、スクリーニングに必要な財務の数字はひととおり集まります。

EDINET APIへの登録

APIとは

API(エーピーアイ)は、決まった書き方の「定型文」を打ち込むと、必要なデータを返してくれる仕組みです。

たとえばEDINET APIに次の1行を送ると、2025年6月30日に出された書類の一覧が返ってきます。

https://api.edinet-fsa.go.jp/api/v2/documents.json?date=2025-06-30&type=2&Subscription-Key=(自分のAPIキー)

黄色のところの日付を変えれば、別の日の一覧が返ってきます。人が画面を開いて1社ずつ探す代わりに、プログラムがこの定型文を何百回でも送れるのが、APIの良いところです。

EDINET APIで頼めることは、大きく2つです。

  • 書類一覧API:「この日に出された書類の一覧をください」
  • 書類取得API:「この番号の書類をください」

定型文の最後には、自分専用の「APIキー」(会員証のようなもの)を付けます。EDINETの場合は、このAPIキーを無料でもらえます。もらうための手続きが、次の登録です。

登録方法

金融庁の「EDINET API仕様書」(2026年6月版)に沿って、パソコンで進めます。用意するものは、メールアドレスと、SMSか電話を受けられる電話番号です。

  1. ポップアップを許可しておく APIキーを表示する画面は、別の小さな窓(ポップアップ)で開きます。ブラウザがポップアップを止めないように、先に許可しておきます。仕様書では、Microsoft Edgeでの手順が書かれています。
    • Edgeの右上の「・・・」→「設定」を開く
    • 「プライバシー、検索、サービス」→「サイトのアクセス許可」→「ポップアップとリダイレクト」と進む
    • 許可の欄の「サイトの追加」を押して、https://api.edinet-fsa.go.jp を入れて「追加」を押す
  1. EDINETを開いて「ログイン」を押す EDINETの閲覧サイトを開くと、左上に「EDINET APIの利用登録はこちらから」という枠があります。その中の「ログイン」を押すと、サインイン画面が出ます。
    EDINETのトップページ。左上の「EDINET APIの利用登録はこちらから」の枠にある「ログイン」ボタン
  2. 「今すぐサインアップ」を押す はじめてなので、アカウントを作ります。サインイン画面のいちばん下にある「今すぐサインアップ」を押します。
    サインイン画面。下の「アカウントをお持ちでない場合」の横にある「今すぐサインアップ」
  3. メールアドレスと画像の文字を入れて「確認コードを送信」 「ユーザーの詳細」という画面が出ます。いちばん上の「メール アドレス」に自分のメールアドレスを入れて、「ボットを倒すお手伝いをします」の下の画像に出ている文字を、その下の欄に入れます。「確認コードを送信」を押すと、メールで確認コードが届きます。
    メールはMicrosoft(@microsoftonline.com)から届きます。見つからないときは、迷惑メールのフォルダも見てください。
    「ユーザーの詳細」画面。メールアドレスの欄、画像の文字を入れる欄と「確認コードを送信」ボタン
  4. 確認コードを入れて「コードの確認」 画面に「確認コード」の欄が増えます。メールに書かれた確認コードを入れて、「コードの確認」を押します。コードが届かないときは、「新しいコードを送信」で送り直せます。
    「ユーザーの詳細」画面。確認コードの欄と「コードの確認」ボタン
  5. パスワードを決めて「作成」 「メール アドレスが確認できました。次に進んでください。」と出たら、「新しいパスワード」と「新しいパスワードを確認してください」に同じパスワードを入れて、「作成」を押します。パスワードは12文字以上で、小文字・大文字・数字・記号のうち3種類以上を混ぜる決まりです。
    「ユーザーの詳細」画面。新しいパスワードの欄2つと「作成」ボタン
  6. 電話番号で本人確認をする 「作成」を押すと、アカウントができて、電話番号で本人確認をする画面(多要素認証)に変わります。SMSか、自動音声の電話のどちらかで確認します。
    • 「国コード」は日本、「電話番号」は自分の電話番号を入れる
    • SMSで受け取るときは「コードの送信」を押す。届いた確認コードを画面に入れて、Enterキーを押す
    • 電話で受け取るときは「電話する」を押す。かかってきた電話の音声の案内に従って、電話のボタンで「#」を押す
  7. 連絡先を登録して、APIキーを受け取る 本人確認がすむと、「APIキー発行画面」がポップアップで開きます(開かないときは、準備のポップアップの許可を見直してください)。
    • 画面の連絡先の欄(電話番号など)を入れて、「連絡先登録」を押す。電話番号は、ハイフンや空白なしで入れる(例:0312345678)
    • 確認のメッセージが出るので「OK」を押す。続けて完了のメッセージが出るので、もう一度「OK」を押す
    • APIキー発行画面に、APIキー(英数字の文字列)が表示される。これをコピーして保存する
    • 画面を閉じるときは、右上の「×」を押す
    連絡先は、利用規約に沿わない使い方が疑われたときに、金融庁が確認の連絡に使うそうです。

2回目からは、同じ「ログイン」から入って電話番号で確認すれば、APIキー発行画面を開けます。

APIキーの扱いに気をつける
  • APIキーは、自分専用の会員証です。人に見せない、ブログやSNSに貼らない
  • コードを人に見せるときは、キーの部分を消しておく

EDINETを用いた情報取得

EDINET APIで取れるもの

先に、EDINET APIで何が取れるのかをまとめておきます。

頼み方返ってくるもの
書類一覧API
(日付を指定)
その日に出された書類の一覧。書類の番号・会社名・証券コード・書類の種類・決算期・提出した日時など
書類取得API
(書類の番号を指定)
書類そのもの。形は5つから選べる
本文とXBRLのデータ(type=1)・PDF(type=2)・添付の書類(type=3)・英文の書類(type=4)・CSV(type=5)

※取れる書類は、有報のほか、半期報告書・臨時報告書・大量保有報告書などです。さかのぼれるのは10年分までです。

スクリーニングで使うのは、有報の「主要な経営指標等の推移」(5年分の表)の数字です。主に、次のような数字が取れます。

分類取れる数字
もうけ売上高・経常利益・当期純利益
財産総資産・純資産・自己資本比率
お金の流れ営業CF・投資CF・財務CF・現金及び現金同等物
1株あたりEPS(1株あたり利益)・BPS(1株あたり純資産)・1株配当
指標ROE(自己資本利益率)・PER(株価収益率)・配当性向
そのほか発行済株式数・従業員数

※有報には、ほかにも500以上の数字が入っていますが、ほとんどは当期と前期の2年分だけです。10年分をそろえやすいのは、この5年分の表の数字です。

実装例:私のスクリーニングでの流れ

書類一覧API最新と5年前、それぞれ1年分の一覧から有報の番号を集める
↓
プログラム会社ごとに、証券コードから有報の番号を引く
↓
書類取得API有報のデータ(XBRL)をもらう
↓
プログラム数字を取り出して、10年分の表にする

ここからは、この流れを1社分だけ、実際にやってみます。2026年9月に買った上組(9364)の有報から、1株配当を5年分取り出します。プログラミング言語のPythonで書いています(動かすには、Pythonと、requests・pandasという道具が要ります)。

① 書類一覧APIで、有報の番号を探す

上組の有報は、2025年6月30日に出されています。その日の書類一覧をもらって、上組の有報を探します。

コード
import requests

API_KEY = "ここに自分のAPIキー"

# 2025年6月30日に出された書類の一覧をもらう
url = "https://api.edinet-fsa.go.jp/api/v2/documents.json"
params = {"date": "2025-06-30", "type": 2, "Subscription-Key": API_KEY}
res = requests.get(url, params=params)

# その中から、上組(証券コード93640)の有価証券報告書(種類コード120)を探す
for doc in res.json()["results"]:
    if doc["docTypeCode"] == "120" and doc["secCode"] == "93640":
        print(doc["docID"], doc["filerName"], doc["periodEnd"])
出力
S100VZET 株式会社上組 2025-03-31
  • この日に出された書類は1,512件、そのうち有報は245件でした。その中から上組の分を探しています
  • 有報の種類コードは「120」です。証券コードは、4桁のうしろに0を付けた5桁で入っています
  • S100VZET が、この有報の番号(書類管理番号)です

② 書類取得APIで、1株配当を取り出す

見つけた番号を使って、有報のデータをもらいます。形は、表計算ソフトでも開けるCSVを選びます(type=5)。①の続きに書きます。

コード
import io
import zipfile
import pandas as pd

# 上組の有価証券報告書を、CSV(type=5)でもらう
doc_id = "S100VZET"
url = f"https://api.edinet-fsa.go.jp/api/v2/documents/{doc_id}"
res = requests.get(url, params={"type": 5, "Subscription-Key": API_KEY})

# 届いたZIPの中から、有価証券報告書の本体のCSVを読む
z = zipfile.ZipFile(io.BytesIO(res.content))
name = [n for n in z.namelist() if "jpcrp" in n][0]
df = pd.read_csv(z.open(name), encoding="utf-16", sep="\t")

# 「1株配当」の行だけを取り出す
dps = df[df["要素ID"] == "jpcrp_cor:DividendPaidPerShareSummaryOfBusinessResults"]
print(dps[["相対年度", "値"]].to_string(index=False))
出力
相対年度      値
 四期前  50.00
 三期前  73.00
 前々期  90.00
  前期 100.00
  当期 130.00
  • 「当期」が2025年3月期、「四期前」が2021年3月期です。5年で50円から130円に増えています

正直なところ、ここのコードは書けなくても大丈夫です。ChatGPTやClaudeなどのAIに「EDINET APIで、上組の2025年3月期の有価証券報告書から、1株配当を5年分取り出すPythonのコードを書いて」と頼めば、似たコードを書いてもらえます。

ついこの間まではコードを書けないとこういったAPIを使うこともできませんでしたが、AIが発達してコードを全く書けない人でもこういったものができるようになっています。

とはいえ、EDINETのデータ取得ではいくつか注意が必要です。

EDINET API活用の注意点

実際に何百社分も集めてみると、1日分・1社分を取るだけでは済まない事情が出てきます。私がつまずいたのは、次の3つです。

① 表記揺れ:会社によって項目の名前がちがう

同じ「売上」でも、会社によって呼び方がちがい、データの中の項目の名前も別々になっています。そのため、「売上高」の項目だけで取りに行くと、取れない会社が出てきます。

2025年3月期の有報、約2,300社分で数えてみました。

会社での呼び方社数
売上高2,017社
営業収益(鉄道・物流・証券など)329社
売上収益(国際的なルールIFRSの会社)164社
完成工事高(建設)など少し

※1社に2つの呼び方の項目があることもあるので、合計は2,300社より多くなります。

さっきの上組も、「売上高」の項目で探すと1行も出てきません。上組は「営業収益」の会社だからです。

名前がよく似た項目も要注意です。「1株配当」と「中間の1株配当」は名前がそっくりなので、名前の一部だけで探すと、中間配当を1年分の配当として拾ってしまうおそれがあります。1株配当を取り出したコードで、名前が完全に同じもの(==)を探しているのはこのためです。

そもそも載っていない数字もあります。5年分の表には営業利益がほとんど載っていなくて、約2,300社のうち載っていたのは27社だけでした。私の場合は、ほぼ全社に載っている経常利益で代わりにしています。

② 有価証券報告書の提出月の揺れ

たとえば、ショーボンドの有報が欲しいとしましょう。

書類一覧APIは「日付ごと」の一覧なので、日付を決めて頼みます。ところが、2025年8月1日の一覧を頼んでも、ショーボンドの有報は出てきません。(この日の書類は247件、うち有報は19件ありました)

ショーボンドは6月決算の会社で、有報を出すのは決算の3か月後の9月です。2025年は9月25日に出していました。

本当なら、ショーボンドが出す9月1日〜30日の分だけをAPIで頼めば、短い時間で取得できます。でも、それだとスクリーニングとしては漏れが出てしまいます。

  • 決算月が会社ごとにちがう
    3月決算なら6月、6月決算なら9月、12月決算なら3月ごろに有報が出ます。何百社もまとめて探すときに、会社ごとに月を決めて頼むのは大変です。
  • 同じ3月決算でも、ずれる会社がある
    2025年3月期でも、9社が6月以外に出していました。新型コロナで提出期限が延びた2020年3月期は、169社が7月以降にずれました。

そこで私の場合は、時間はかかりますが1年のすべての日を総当たりで、漏れがないように情報を取得しています。自動化のメリットは、ここで時間がかかっても問題ないというのもありますね。

③ 株式分割の影響

株式分割は、1株を2株などに分けることです。株価が上がって1株の値段が高くなった会社が、買いやすくするためによく行います。

分けても会社の価値は変わらないので、1株を2株にすると、株数は2倍になり、1株あたりの株価・配当・利益(EPS)は半分になります。持っている株全体でもらえる配当は、分割の前と後で変わりません。

困るのは、有報の5年分の表の中で、分割に合わせて直してある数字と、直していない数字が混ざっていることです。ショーボンドの2020年6月期の有報で見てみます(2019年7月1日に、1株を2株に分割しています)。

決算期1株配当EPS発行済株式数
2016年6月期87円116.43円2,910万株
2017年6月期104円130.00円2,910万株
2018年6月期125円135.64円2,837万株
2019年6月期135円150.11円2,837万株
2020年6月期79.5円167.30円5,675万株

※2018年6月期に株数が少し減っているのは、自社株を消却したためです。

  • 1株配当は、当時の金額のまま
    135円から79.5円に、減配したように見えます。分割前の基準にそろえると159円(79.5円×2)なので、実際は増配です。
  • EPSは、過去の分も分割後の基準に直してある
    116円から167円まで、なめらかに増えています(会社によっては、古い年だけ直していないこともあります)。分割に合わせて数字をそろえるときは、EPSがすでに直してあるかを確かめることが大事です。確かめずに割り戻すと二重に割ってしまい、分割の年にEPSが急に増えたように見えてしまいます。

私の場合は、発行済株式数を見て判断しています。ショーボンドの2,837万株→5,675万株のように、発行済株式数が1.5倍以上に増えた年を分割とみなして、それより前の年の数字を割り戻しています。大まかに10年の傾向がつかめればいいと割り切っていて、多少のずれは許しています。

AIにコードを頼むときに伝えること

上の3つは、AIにとっても必要な情報です。「1株配当を取って」とだけ頼むと、こうした事情までは考えてくれないことがあります。最初から伝えておくと、あとで数字がおかしくなるのを防げます。

  • 売上は会社によって項目の名前がちがう(売上高・営業収益・売上収益など)。順番に探して、見つかったものを使う
  • 項目は、名前が完全に同じものを探す(中間配当と取り違えない)
  • 有報を出す月は会社によってちがう。1年分の書類一覧から探す
  • 発行済株式数が急に増えた年は株式分割。1株配当は割り戻し、EPSは直してあるかを確かめてから割り戻す
  • APIは、1回ごとに少し間を空けて呼ぶ(短い時間に呼びすぎると「429」というエラーで断られる)

まとめ

4,000近くある銘柄の財務データを1社ずつ見るのは大変ですが、EDINET APIを使えば自動で集められます。ポイントをまとめます。

  • EDINETは、有報を無料で見られる金融庁のサイト
    会社が決まった形で出すので、5年分の表から財務データがまとめて取れます。2冊で10年分です。
  • APIキーは、登録すれば無料でもらえる
    メールアドレスと電話番号があれば登録できます。
  • 書類一覧APIで番号を探して、書類取得APIで数字を取り出す
    何百社分でも、同じ手順のくり返しで取れます。
  • コードは書けなくても大丈夫
    ChatGPTやClaudeなどのAIに頼めば、コードを書いてもらえます。
  • 表記揺れ・提出月の揺れ・株式分割の3つには気をつける
    AIにコードを頼むときにも、この3つを伝えます。

「4,000銘柄なんて見きれない…」と感じている方の参考になればうれしいです。

関連記事

※ 本記事は情報提供を目的としており、特定銘柄への投資を推奨するものではありません。投資は自己責任のもと、ご自身の判断で行ってください。数字は、EDINETに出された有価証券報告書のものです。社数は、EDINETのデータを私が数えたものです。登録の手順は、金融庁の「EDINET API仕様書(Version 2)」2026年6月版をもとにしています。画面や手順は変わることがあります。

タイトルとURLをコピーしました