alterlab-edgartools について
edgartoolsを使ってSEC提出書類を取得し、財務情報や提出者データを構造化して取り出すスキルです。提出書類単位の情報を必要とする研究者やアナリスト向けで、財務諸表、XBRLファクト、保有状況、インサイダー取引を扱います。
主な機能
- 01企業とSEC提出書類の検索
- 02財務諸表とXBRLファクトの抽出
- 03フォーム別提出データの解析
- 04提出書類のテキスト、HTML、Markdown表示
活用シーン
- 01企業の10-Kまたは10-Qの取得
- 02インサイダー取引や機関投資家の保有状況の分析
- 03委任状説明書の報酬や議決項目の確認
MCP 対応
READMEではAI/MCP設定ドキュメントに言及していますが、MCP固有の機能は説明されていません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alterlab-ieu/ alterlab-academic-skills --skill alterlab-edgartoolsインストール後、Claude Code で/alterlab-edgartoolsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/evals.jsonreferences/ai-integration.mdcompanies.mddata-objects.mdentity-facts.mdfilings.mdfinancial-data.mdxbrl.md詳細
edgartools — SEC EDGAR データ
1994 年以降のすべての SEC 提出書類にアクセスし、構造化データを抽出できる Python ライブラリです。
このスキルを使用する場合
- 企業または期間を指定して、特定の提出書類(10-K、10-Q、8-K、DEF 14A、S-1、13F、Form 4、SC 13D/G、Form D)を取得する場合
- 複数期間にわたるデータをつなぎ合わせる処理を含め、提出時のままの財務諸表や XBRL ファクトを抽出する場合
- 提出者レベルのインサイダー取引、機関投資家保有、または委任状/報酬データを取得する場合
- EDGAR から企業のメタデータ(CIK、SIC、会計年度末、提出者のステータス)を取得する場合
該当しない場合
| シナリオ | 代わりに使用 |
|---|---|
| 市場価格、OHLCV、相場情報、またはテクニカル指標 | alterlab-alpha-vantage |
| FRED シリーズ ID によるマクロ経済時系列データ(GDP、企業利益、金利) | alterlab-fred |
| OFR が公開する Form PF に基づくヘッジファンドの集計統計 | alterlab-hedgefund-monitor |
| 連邦債務、財務省の報告書、またはオークション結果 | alterlab-usfiscaldata |
認証(必須)
API にアクセスするには、SEC が識別情報を要求します。操作を行う前に、必ず識別情報を設定してください。
from edgar import set_identity
set_identity("Your Name [email protected]")
ハードコードを避けるには、環境変数で設定します:EDGAR_IDENTITY="Your Name [email protected]"。
edgartools はこの識別情報を、SEC が求める HTTP User-Agent("Sample Company Name AdminContact@.com")として送信し、デフォルトでリクエスト数を毎秒 9 件(EDGAR_RATE_LIMIT_PER_SEC)に制限します。これは SEC の公平なアクセス上限である毎秒 10 件を下回る設定です。上限を超える IP アドレスは SEC にブロックされることがあるため、sec.gov ではこのデフォルト設定を維持してください。
インストール
uv pip install edgartools
# For AI/MCP features:
uv pip install "edgartools[ai]"
ここに記載する API の例は、edgartools 5.58.0(2026-09 時点の最新バージョン)で動作確認されています。仮想環境を使わずに一度だけ実行するには、uv run --with edgartools python ... を使用します。5.x では、cashflow_statement() は非推奨のエイリアスです(6.0 で削除)。cash_flow_statement() を使用してください。
基本的なワークフロー
企業を検索する
from edgar import Company, find
company = Company("AAPL") # by ticker
company = Company(320193) # by CIK (fastest)
results = find("Apple") # by name search
提出書類を取得する
# Company filings
filings = company.get_filings(form="10-K")
filing = filings.latest()
# Global search across all filings
from edgar import get_filings
filings = get_filings(2024, 1, form="10-K")
# By accession number
from edgar import get_by_accession_number
filing = get_by_accession_number("0000320193-23-000106")
構造化データを抽出する
# Form-specific object (most common approach)
tenk = filing.obj() # Returns TenK, EightK, Form4, ThirteenF, etc.
# Financial statements (10-K/10-Q)
financials = company.get_financials() # annual
financials = company.get_quarterly_financials() # quarterly
income = financials.income_statement()
balance = financials.balance_sheet()
cashflow = financials.cash_flow_statement()
# XBRL data
xbrl = filing.xbrl()
income = xbrl.statements.income_statement()
提出書類の内容にアクセスする
text = filing.text() # plain text
html = filing.html() # HTML
md = filing.markdown() # markdown (good for LLM processing)
filing.open() # open in browser
主な企業プロパティ
company.name # "Apple Inc."
company.cik # 320193
company.get_ticker() # "AAPL" (primary); company.tickers -> list
company.industry # "ELECTRONIC COMPUTERS"
company.sic # "3571"
company.shares_outstanding # 15115785000.0
company.public_float # 2899948348000.0
company.fiscal_year_end # "0930"
company.get_exchanges() # ["Nasdaq"]
Form → オブジェクトの対応表
| Form | オブジェクト | 主なプロパティ |
|---|---|---|
| 10-K | TenK | financials、income_statement、balance_sheet、risk_factors |
| 10-Q | TenQ | financials、income_statement、balance_sheet |
| 8-K | EightK | items、press_releases |
| Form 4 | Form4 | reporting_owners、insider_name、market_trades、to_dataframe() |
| 13F-HR | ThirteenF | infotable、total_value、holdings |
| DEF 14A | ProxyStatement | executive_compensation、voting_proposals、peo_total_comp |
| SC 13D/G | Schedule13D / Schedule13G | total_shares、total_percent、items(13D) |
| Form D | FormD | offering_data、related_persons、primary_issuer |
重要: filing.financials は存在しません。filing.obj().financials を使用してください。
よくある注意点
filing.financials→ AttributeError が発生します。filing.obj().financialsを使用してくださいget_filings()にlimitパラメーターはありません。.head(n)または.latest(n)を使用してください- 複数期間の分析では、
amendments=Falseを推奨します(修正後の提出書類には不完全なものがある場合があります) - オプションのデータにアクセスする前に、必ず
Noneでないことを確認してください
リファレンスファイル
詳細情報が必要な場合は、以下を読み込んでください。
- companies.md — 企業の検索、スクリーニング、一括検索、Company API
- filings.md — 提出書類、添付資料、別紙、Filings collection API の操作
- financial-data.md — 財務諸表、便利なメソッド、DataFrame へのエクスポート、複数期間の分析
- xbrl.md — XBRL の解析、事実データのクエリ、複数期間の結合、標準化
- data-objects.md — サポートされているすべてのフォームタイプと、その構造化オブジェクト
- entity-facts.md — EntityFacts API、FactQuery、FinancialStatement、FinancialFact
- ai-integration.md — MCP サーバーのセットアップ、Skills のインストール、
.docsおよび.to_context()プロパティ
報告するすべての数値について、提出書類(企業、フォーム、アクセッション番号、提出日)を引用してください。
AlterLab Academic Skills スイートの一部です。