用途
EdgarTools 用于查询和分析 SEC(美国证券交易委员会)申报文件与财务报表。通过它,可以获取公司数据、各类申报文件、XBRL 财务数据,并进行多公司分析。
主要能力
- 获取公司资料:通过股票代码创建 Company 对象,查看公司名称、CIK、交易所、行业、财年结束日等信息。
- 获取申报文件:支持三种方式——已发布申报文件(按季度索引,适合跨公司筛选与历史研究)、当前申报文件(SEC RSS 源,最近约 24 小时,适合实时监控)、公司申报文件(已知公司代码或名称时使用)。可按表单类型、年份、日期范围、股票代码等条件过滤。
- 获取财务报表:支持两种方式——Entity Facts API(单次 API 调用,预聚合数据,适合多期对比与趋势分析)和 Filing XBRL(特定申报文件的 XBRL 文件,适合单期详细分析,包含全部行项目)。可获取利润表、资产负债表、现金流量表,支持年度与季度数据。
- 搜索申报文件内容:filing.search(query) 使用 BM25 相关性排序搜索申报文件正文,返回带评分的 DocSection 对象,适合查找关键词、主题或章节。
- 搜索 API 文档:filing.docs.search(query) 用于查找 Filing 类的方法用法,而非申报文件内容。
- 多公司分析:提供 compare_companies_revenue 等辅助函数。
- 表单类型查询:describe_form() 或参考表单类型目录(共 311 种表单)。
使用方式
安装与设置:需先设置身份(SEC 要求):
from edgar import set_identity
set_identity("Your Name your@email.com")
未设置时所有 API 调用会报错 "User-Agent identity is not set"。
获取公司:
from edgar import Company
company = Company("AAPL")
print(company.to_context())
获取申报文件:
from edgar import get_filings, get_current_filings
filings = get_filings(2023, 1, form="10-K")
current = get_current_filings()
company_filings = company.get_filings(form="10-K")
获取财务报表:
income = company.income_statement(periods=3)
balance = company.balance_sheet(periods=3)
cash_flow = company.cash_flow_statement(periods=3)
quarterly_income = company.income_statement(periods=4, annual=False)
通过 Filing XBRL 获取:
filing = company.get_filings(form="10-K")[0]
xbrl = filing.xbrl()
income = xbrl.statements.income_statement()
搜索申报文件内容:
results = filing.search("executive compensation")
搜索 API 文档:
help_text = filing.docs.search("how to get XBRL")
以编程方式读取文档(供 AI 代理使用):
from edgar.ai import get_skill
skill = get_skill("EdgarTools")
common_questions = skill.get_document_content("common-questions")
可用文档:SKILL、common-questions、advanced-guide、quickstart-by-task、objects、workflows、form-types-reference、readme。
适用场景
- 跨公司筛选与批量分析
- 实时监控最新申报活动
- 已知公司的申报文件与财务数据分析
- 多期财务数据对比与趋势分析
- 单期申报文件的详细行项目分析
- 在大型申报文件中定位特定主题或章节
- 内部交易查询(Form 4)
限制
- 使用前必须调用 set_identity() 设置身份,否则所有 API 调用失败。
- 内置 SEC 速率限制(每秒 10 次请求),大批量操作可能因速率限制而耗时较长。
- 提供请求缓存以减少 API 调用。
- 需注意区分 filing.search()(搜索申报文件内容)与 filing.docs.search()(搜索 API 文档),误用会返回空结果。
- 建议优先使用 .to_context() 方法以节省 token。
- 关于收费、价格、平台支持等具体信息,资料中暂未提供。