API ドキュメント

金融庁EDINETの開示書類を、ZIPやXBRLを解析せずにJSONで取得できます。すべてのデータに出典の書類ID(doc_id)と原典URLが付きます。

OpenAPI仕様(YAML)OpenAPI仕様(JSON)料金プラン(7日間無料)

AIトレード・Python向け:オルタナティブデータの一括取得

株価以外の公式イベントデータを、統一スキーマで取得できます。対象は収録済みの年次開示索引・入札公告・海外議会/法案のメタデータで、リアルタイム市場価格や売買シグナルは含まれません。

# 1回で最大1,000イベントをCSV形式で取得
curl -H "Authorization: Bearer vivl_live_..." \
  "https://vivlica.vivlica.workers.dev/v1/alternative-data?dataset=all&format=csv&limit=1000" \
  -o alternative-events.csv

# Python (認証情報は環境変数で管理)
import os, requests, pandas as pd
base = "https://vivlica.vivlica.workers.dev/v1/alternative-data"
headers = {"Authorization": "Bearer " + os.environ["VIVL_API_KEY"]}
rows, offset = [], 0
while True:
    resp = requests.get(base, headers=headers,
      params={"dataset": "all", "limit": 1000, "offset": offset}, timeout=30)
    resp.raise_for_status()
    payload = resp.json()
    rows.extend(payload["data"])
    offset = payload["meta"]["next_offset"]
    if offset is None: break
df = pd.DataFrame(rows)
print(df[["dataset", "source", "event_on", "company_code"]].head())

絞り込み: dataset=annual_reports|tender_notices|policy_events、code=7203、source=KKJ、topic=水素、linked_only=true(証券コード確定紐付けだけ)、from=YYYY-MM-DD、to=YYYY-MM-DD、observed_before=YYYY-MM-DD(PIT保証ではありません)。 レスポンスの meta.next_offset を指定して続きを取得します。

APIの source と topic は原典とテーマで絞り込むための条件です。 国会・入札公告のテーマ一致は、銘柄との確定関係を意味しません。linked_only=true は未確認の紐付けを除外するため、年次開示以外の件数が0件でも不存在は意味しません。

まずは AIトレード向けクイックスタートから。サンプルCSV(無料・公式メタデータ6件) とPython標準ライブラリの取得スクリプトを用意しています。

注意:データ提供元のイベント日と、vivlicaの取得日時は異なります。初回市場到達日時・過去時点の銘柄ユニバース・訂正履歴が揃った完全なPITバックテスト用データではありません。公開日の情報漏洩(ルックアヘッド)に注意してください。

1. 認証

料金プランから購入すると、vivl_live_で始まるAPIキーが発行されます。Authorization: Bearerヘッダーで送ってください(x-api-key ヘッダーも可)。

curl -H "Authorization: Bearer vivl_live_..." \
  "https://<ドメイン>/v1/large-holdings?date=2026-10-01"

2. エンドポイント

GET/v1/alternative-data株価以外のデータを一括取得。EDINET・入札公告・海外政策イベントをJSON / CSVで(最大1,000件/ページ)
GET/v1/filings指定日の提出書類を全件、提出時刻順に(分類・証券コードで絞り込み可)
GET/v1/large-holdings大量保有報告書・変更報告書(誰が・どの銘柄を)
GET/v1/tender-offers公開買付(TOB)関連書類(届出・撤回・報告・意見表明)
GET/v1/financials/{code}有価証券報告書の財務・非財務データ(証券コード+年)
GET/v1/companies/{code}収録銘柄の指標(PER・PBR・ROE・配当利回りなど)
GET/v1/entities?q=...再配布可能な法人情報を検索(出典・帰属表記つき)
GET/v1/entities/{entityId}法人の履歴・公開書類・出典を取得
POST/mcpMCPサーバー(AIアシスタントからツールとして呼び出し)
# 今日の大量保有報告書
curl -H "Authorization: Bearer $VIVL_KEY" "https://<ドメイン>/v1/large-holdings"

# 特定銘柄に関するTOB書類(対象会社として)
curl -H "Authorization: Bearer $VIVL_KEY" "https://<ドメイン>/v1/tender-offers?date=2026-10-01&code=7203"

# 2025年3月期の有報から売上高・営業利益・平均年収だけ
curl -H "Authorization: Bearer $VIVL_KEY" \
  "https://<ドメイン>/v1/financials/7203?year=2025&metrics=sales,op,avgSalary"
# 法人名・法人番号・証券コードを検索(検索語2文字以上、最大100件)
curl -H "Authorization: Bearer $VIVL_KEY" \
  "https://<ドメイン>/v1/entities?q=7203&limit=20"

# 検索結果の entity_id を使って詳細を取得
curl -H "Authorization: Bearer $VIVL_KEY" \
  "https://<ドメイン>/v1/entities/jcn%3A1234567890123"

法人APIは、データ元の最新の利用条件で再配布が認められた行だけを返します。個人に関する行と、利用条件が不明または再配布不可の情報は除外します。 検索結果の sources に出典・必要な帰属表記・利用条件のURLが含まれます。法人データ用のCloudflare D1読み取り専用トークンが未設定の場合、503 not_configured になります。

/v1/financials の項目キー一覧(23項目)
sales — 売上高(億円)
op — 営業利益(億円)
np — 当期純利益(親会社株主帰属)(億円)
salesGrowth — 売上高成長率(前期比)(%)
equity — 自己資本比率(%)
roe — ROE(自己資本利益率)(%)
per — PER(提出時点)(倍)
payout — 配当性向(%)
employees — 従業員数(連結)(名)
avgSalary — 平均年間給与(提出会社)(万円)
avgAge — 平均年齢(提出会社)(歳)
rdExpenses — 研究開発費(億円)
capex — 設備投資額(億円)
totalAssets — 総資産(億円)
dps — 1株当たり配当額(円)
tsr — 株主総利回り(%)
shareholders — 株主数(名)
avgTenure — 平均勤続年数(提出会社)(年)
femaleManagerRatio — 女性管理職比率(%)
maleChildcareLeave — 男性育児休業取得率(%)
genderPayGap — 男女間賃金格差(女性/男性)(%)
crossHoldingsCount — 政策保有株式 銘柄数(上場株)(銘柄)
crossHoldingsValue — 政策保有株式 計上額(上場株)(億円)

3. レスポンス形式

成功時は data と meta、失敗時は error です。

{
  "data": [
    {
      "doc_id": "S100ABCD",
      "submitted_at": "2026-10-01T15:00:00+09:00",
      "doc_type": { "code": "350", "name": "大量保有報告書" },
      "category": "largeHolding",
      "report_kind": "change",
      "title": "変更報告書",
      "filer":  { "name": "〇〇アセットマネジメント株式会社", "edinet_code": "E00000", "stock_code": null, "corporate_number": "..." },
      "issuer": { "edinet_code": "E02144", "stock_code": "7203", "name": "トヨタ自動車株式会社" },
      "url": "https://disclosure2.edinet-fsa.go.jp/WZEK0040.aspx?S100ABCD"
    }
  ],
  "meta": { "source": "EDINET", "date": "2026-10-01", "count": 1, "finalized": true, "fetched_at": "2026-10-02T09:00:00.000Z" }
}
{ "error": { "code": "rate_limited", "message": "レート制限に達しました(Proプラン: 60リクエスト/分)。", "limit_per_minute": 60 } }

エラーコード — 分岐は message ではなく code で行ってください

codeHTTP意味・対処
invalid_request400パラメータが不正。message に理由、param に対象のパラメータ名
unauthorized401APIキーが送られていない
invalid_api_key401APIキーが不正(改ざん・打ち間違い)
subscription_inactive402解約済み・支払い未完了。/billing/manage で支払い方法を更新
forbidden403権限がない操作
not_found404該当データなし
method_not_allowed405許可されていないHTTPメソッド
rate_limited429分間のレート制限超過。Retry-After 秒後に再試行
plan_limit429今月のリクエスト上限に到達。翌月1日(JST)にリセット、または上位プランへ変更
internal_error500サーバー内部のエラー
upstream_error502EDINETからの取得に失敗。時間をおいて再試行
billing_unavailable503契約状態を一時的に確認できない。課金状態の問題ではないので再試行
not_configured503サーバー側の設定不足(運営側の問題)
sales_paused503

4. レート制限

  • Pro: 60回/分・月 10,000 回まで
  • Ultra: 300回/分・月 100,000 回まで
  • Mega: 600回/分・月 1,000,000 回まで

分間の上限を超えると 429 rate_limited、月間の上限を超えると 429 plan_limit が返ります(どちらも Retry-After ヘッダー付き)。 月間の上限は毎月1日0時(日本時間)にリセットされます。REST と MCP の呼び出しは合算されます。 成功したレスポンスには残り回数がヘッダーで付きます。

x-ratelimit-limit: 60                         # 1分あたりの上限
x-quota-limit: 10000                          # 今月の上限
x-quota-remaining: 9873                       # 今月の残り
x-quota-reset: 2026-10-31T15:00:00.000Z       # 次のリセット(= 11/1 0:00 JST)

5. MCPサーバー(Claude などのAIから使う)

同じAPIキーで、MCP(Model Context Protocol)サーバーも使えます。AIアシスタントに「今日の大量保有報告書をまとめて」と頼むと、 このAPIを直接呼んで一次情報から答えます。追加料金はかかりません。

# Claude Code
claude mcp add --transport http vivldatabase https://<ドメイン>/mcp \
  --header "Authorization: Bearer vivl_live_..."

# 設定ファイルに書く場合(Claude Desktop 等)
{
  "mcpServers": {
    "vivldatabase": {
      "type": "http",
      "url": "https://<ドメイン>/mcp",
      "headers": { "Authorization": "Bearer vivl_live_..." }
    }
  }
}
get_alternative_dataEDINET年次開示・政府入札公告・海外議会/法案の公式メタデータを統一した形式で返します。株価は含まず、過去の初回市場到達時刻は未検証です。
list_filings指定日にEDINETへ提出された開示書類を、提出時刻順に全件返します。分類や証券コードで絞り込めます。
list_large_holdings大量保有報告書・変更報告書を返します。誰が(filer)どの銘柄を(issuer)報告したかが分かります。
list_tender_offers公開買付届出書・撤回届出書・報告書・意見表明報告書などを返します。買付けの対象会社は target に入ります。
get_financials証券コードと年を指定して、有価証券報告書(XBRL)から抽出した売上高・営業利益・ROE・平均年収などを返します。
get_company収録銘柄のPER・PBR・ROE・配当利回りなどの指標を返します(EDINETへの通信なし・高速)。
search_entities法人名、法人番号、証券コードで、再配布条件を満たす法人情報を検索します。個人のデータは返しません。sources に出典と必要な帰属表記を含みます。
get_entity主体IDを指定して、公開可能な法人情報、履歴、書類、大量保有情報と出典を取得します。個人データや再配布不可の行は除外されます。

6. バージョニング

URLの /v1/ がAPIのバージョンです。v1 の中では、項目の追加は予告なく行うことがありますが、 既存の項目の削除・名前変更・型変更は行いません。互換性のない変更は /v2/ として別に提供します。

データの信頼性について

  • 出所の追跡: すべてのデータに書類管理番号(doc_id)と原典URLが付き、開示書類まで遡れます。
  • 推定しない: 開示書類から抽出できなかった項目は null で返し、推測で補完しません。
  • 全件: /v1/filings はその日の提出を種別を問わず全件返します(間引きません)。

本APIのデータは投資勧誘を目的とするものではありません。投資判断はご自身の責任で行ってください。