財務諸表 EDINET DB 検索 AI アプリ – day 24

30 days AI challenge

本記事は 2026/02/01 ~ 2026/03/02 の間毎日 AI アプリケーション開発(AI を搭載したアプリ開発 or AI を使用した開発)をテーマに 30 days AI challenge を行う 24 日目のブログポストです。

今日は巷で話題の EDINET DB API を使用した財務諸表分析アプリを作りました。

先日 EDINET DB API が公開され、ベータ版で 1,000回/日 のリクエストを無料で使用することができるので、お試して使ってみました。

アプリ概要

ひとまずお試しということで、キャッシュフロー計算書の表示や各種指標のデータを取得してグラフや表で表示するようなアプリとしました。

個別の企業情報を検索、取得することもできますし、優良企業を見つける機能もあります。

キャッシュフローを軸とし、投資判断に使えるような指標を登録してあります。なお、EDINET の api からの情報取得に加え、Yahoo finance からの株価情報等の取得も行っています。

技術要素

EDINET へリクエストを投げて結果を取得する箇所のサンプルは以下です。

EDINET DB の URL に EDINET コード(EDINET 上の企業コードのようなもの)を指定して GET リクエストを送ります。

try
        {
            var client = CreateClient();
            var url = $"{BaseUrl}/companies/{edinetCode}/financials";
            var response = await client.GetAsync(url);

            if (!response.IsSuccessStatusCode)
            {
                _logger.LogWarning($"財務データ取得エラー: {response.StatusCode} ({edinetCode})");
                return new List<EdinetDbFinancialYear>();
            }

            var json = await response.Content.ReadAsStringAsync();
            var result = JsonSerializer.Deserialize<EdinetDbListResponse<EdinetDbFinancialYear>>(json, _jsonOptions);

            return result?.Data?.OrderByDescending(d => d.FiscalYear).ToList()
                   ?? new List<EdinetDbFinancialYear>();
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, $"財務データ取得エラー: {edinetCode}");
            return new List<EdinetDbFinancialYear>();
        }

EDINET DB API では、API の結果として AI による簡単な分析結果を返してくれるため、今回アプリ側で AI は呼び出していません。

こんな感じで AI Analysis を取得できます。

var analysis = await GetAnalysisAsync(edinetCode);
// ...
AiSummary = analysis?.AiSummary?.Text ?? "",
CreditRating = analysis?.History?.FirstOrDefault()?.CreditRating ?? "",

---
public async Task<EdinetDbAnalysis?> GetAnalysisAsync(string edinetCode)
    {
        try
        {
            var client = CreateClient();
            var url = $"{BaseUrl}/companies/{edinetCode}/analysis";
            var response = await client.GetAsync(url);

            if (!response.IsSuccessStatusCode)
            {
                _logger.LogWarning($"分析データ取得エラー: {response.StatusCode} ({edinetCode})");
                return null;
            }

            var json = await response.Content.ReadAsStringAsync();
            var result = JsonSerializer.Deserialize<EdinetDbSingleResponse<EdinetDbAnalysis>>(json, _jsonOptions);
            return result?.Data;
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, $"分析データ取得エラー: {edinetCode}");
            return null;
        }
    }

終わりに

今日は話題の API を使用して財務諸表分析ができる AI アプリを作りました。*EDINET DB API 側で AI 分析結果を持っているので AI アプリというほどでもありませんね。

ちなみに、EDINET API という金融庁が出している API もあり、EDINET API が持つ課題を解決するのが今回公開された EDINET DB API のようです。このあたりに EDINET API と EDINET DB API の違いが記載してあります。時間があるときにでも読んでみようと思います。

今回 Claude を主に使ってアプリ開発をしましたが、EDINET DB API と指定した際に Claude が最初 EDINET API を使って実装したため、いろいろ実装周りでこけていましたが、EDINET DB API のリンクを渡したことで最新の DB API での実装にすることができました。。笑

今日も最後までご覧いただきありがとうございました。明日もよろしくお願いいたします。

コメント

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