— REST API REFERENCE

YUHO DB API ガイド

EDINET 公開メタデータを企業軸で再インデックス化した非公式 API。匿名・キーレスで利用でき、 IP 単位のレート制限のみ適用されます。すべての応答は application/json または text/csv

概要

ベース URL: https://yuho-db-api-7oq53ssyja-an.a.run.app

このサービスは EDINET の公式日付ベース API の非効率(特定企業の過去 N 年分の書類取得に N×365 回の API コールが必要)を補うため、 日次でメタデータを取得して企業軸で再インデックス化しています。書類本体は配信せず、 ドック ID から EDINET 公式書類ページへのリンクで提供します。

初回呼び出しは 3〜5 秒かかります。 Cloud Run のコールドスタート対策のため、Web UI からの利用ではバックグラウンドで /warmup を発火しています。 プログラムから叩く場合も最初に /warmup を no-cors fetch すると速くなります。

認証 / レート制限

認証は不要。キーや Cookie も渡さないでください。代わりに IP 単位レート制限が適用されます:

単位上限残量ヘッダ
1 分10 reqX-RateLimit-Remaining-Minute
1 時間100 reqX-RateLimit-Remaining-Hour
1 日500 reqX-RateLimit-Remaining-Day

制限超過時は HTTP 429 Too Many Requests + Retry-After ヘッダ。/health/warmup は対象外。

CORS

https://*.web.app および https://*.firebaseapp.com オリジンからの GET / OPTIONS を許可しています。 ローカル開発は localhost:3000/5000/8000 を許可。それ以外のオリジンから叩く場合は mode: 'no-cors' でレスポンスヘッダが読めない制約付きで動作します。

エンドポイント

書類のメイン検索。曖昧キーワード、銘柄コード、書類種別、期間でフィルタリング、無限スクロール用カーソル対応。

パラメータ説明
qstring曖昧検索 (社名・コード・業種を3軸でマッチ)
sec_codestring銘柄コード完全一致 (例: 72030)
edinet_codestringEDINET コード完全一致 (例: E02144)
doc_typestring書類種別カンマ区切り (例: 120,140)
periodenum1y / 3y / 5y / 10y / all
from / toYYYY-MM-DD期間範囲 (period より優先)
sortenumsubmit_date_desc(default) / submit_date_asc / relevance
limitint 1–200デフォルト 50
cursorstring前回応答の next_cursor をそのまま渡す

主な書類種別コード: 120 有価証券報告書 / 140 四半期報告書 / 160 半期報告書 / 220 大量保有報告書 / 180 臨時報告書 / 030 有価証券届出書

レスポンス例:

{
  "results": [
    {
      "doc_id": "S100ABCD",
      "sec_code": "72030",
      "edinet_code": "E02144",
      "filer_name": "トヨタ自動車",
      "doc_type": { "code": "120", "name": "有価証券報告書", "category": "annual" },
      "doc_description": "第122期 有価証券報告書",
      "submit_date": "2024-06-25",
      "has_csv": true,
      "edinet_url": "https://disclosure2.edinet-fsa.go.jp/WZEK0040.aspx?S100ABCD="
    }
  ],
  "total": 142,
  "next_cursor": "eyJvZmZzZXQiOjUwfQ==",
  "query_echo": { ... }
}

GET /api/v1/documents/export.csv

検索結果を CSV ファイルとしてダウンロード。/api/v1/documents と同じパラメータ。最大 10,000 件まで。UTF-8 BOM 付きなので Excel でそのまま開けます。

# トヨタの有報を全部 CSV で取得
curl "https://yuho-db-api-7oq53ssyja-an.a.run.app/api/v1/documents/export.csv?q=トヨタ&doc_type=120" \
  -o toyota_yuho.csv

列: submit_date, submit_datetime, sec_code, edinet_code, filer_name, doc_type_code, doc_type_name, doc_description, doc_id, has_csv, has_xbrl, edinet_url

GET /api/v1/documents/{doc_id}

単一書類詳細。404: 不存在 OR 自然人提出 (PII フィルタ)。

GET /api/v1/companies/search?q=...

会社名・銘柄コード曖昧サジェスト。Web UI のオートコンプリートで利用。最大 8 件。

curl "https://yuho-db-api-7oq53ssyja-an.a.run.app/api/v1/companies/search?q=トヨタ"

GET /api/v1/companies/{sec_code}/documents

銘柄コード固定の書類一覧 (ショートカット)。内部的に /api/v1/documents?sec_code=... と同等。

GET /api/v1/stats

DB の統計情報 (Firebase ランディング LIVE STATS で利用)。docs_indexed, filers, last_doc_date, last_updated, period_years

ライブで試す

下のフォームに入れてボタンを押すと、実際の API レスポンスが下に表示されます (このページから直接 API を叩きます)。

— Try /api/v1/documents


    

サンプルコード

Python (httpx)

import httpx

r = httpx.get(
    "https://yuho-db-api-7oq53ssyja-an.a.run.app/api/v1/documents",
    params={"q": "トヨタ", "period": "3y", "doc_type": "120,140"},
)
data = r.json()
print(data["total"], "results")
for d in data["results"]:
    print(d["submit_date"], d["doc_id"], d["doc_description"])

JavaScript (fetch)

const r = await fetch(
  'https://yuho-db-api-7oq53ssyja-an.a.run.app/api/v1/documents?q=トヨタ&period=3y'
);
const data = await r.json();
console.log(data.total);

EDINET 書類本体の取得 (自分で API キー取得が必要)

YUHO DB は本体 ZIP/CSV/XBRL を配信していません。EDINET 公式 API キーを取得して直接ダウンロードしてください:

import httpx

api_key = "..."  # https://api.edinet-fsa.go.jp で取得
doc_id = "S100ABCD"

# type=5: CSV / type=2: PDF + 添付 / type=1: 書類本体
r = httpx.get(
    f"https://api.edinet-fsa.go.jp/api/v2/documents/{doc_id}",
    params={"type": 5, "Subscription-Key": api_key},
)
with open(f"{doc_id}.zip", "wb") as f:
    f.write(r.content)

エラー

Status意味対応
200成功
400不正なクエリ (cursor デコード失敗等)パラメータを確認
404不存在 OR PII レコードdoc_id を確認
429レート制限Retry-After 秒待つ
500サーバー内部エラー少し時間を置いて再試行

ライセンス

本サービスは EDINET 公式とは無関係の非公式サービスです。 データ出典: 金融庁 EDINET (PDL1.0 / CC BY 4.0 互換)。 個人情報保護のため、自然人提出者の書類はレスポンスから除外されます。

コード: MIT。データ: 公共データ利用規約 (PDL1.0)。 利用時は出典として「YUHO DB / 出典: EDINET」を表示してください。