面向 AI Agent 的最佳 SEC 申报 API
按文档覆盖、标识符、时间戳、解析、溯源与故障处理比较 SEC 申报 API。
发布日期:2026年3月26日 · QVeris团队制作
精选 Provider 与官方来源
生产使用前,请核对接口覆盖、字段、时效、权限与许可。
SEC EDGAR
一份面向 2026 年生产环境的实用对比:覆盖 EDGAR、Financial Modeling Prep、Finnhub 与 sec-api.io,并给出 Filing Agent 真正需要的证据字段、代码和验证控制。

本页目录
要点速览:按工作流选,不要按品牌选
SEC EDGAR 适合作为第一方记录源;当 Filing 已经属于金融数据栈的一部分时,FMP 更省集成成本;若 Filing 只是综合市场数据产品的一种输入,可考虑 Finnhub;需要复杂搜索、实时流、附件和章节提取时,sec-api.io 是这里更专业的选择。QVeris 用于帮助 Agent 发现并调用合适工具,但不会替代来源归属。
适合重视权威来源,并能自行承担解析、缓存与访问控制的团队。
适合希望用股票代码、CIK 或表单类型检索,并与其他标准化财务接口共用一套数据栈的团队。
当 SEC Filing 需要与全球公司和市场数据共用认证与运维体系时,值得测试。
更适合全文查询、实时 Filing 流、附件获取、章节提取与 XBRL 转换。
这份指南适合谁
本文适合构建研究 Copilot、事件监控 Agent、财报工作流、合规审阅或检索系统的工程师,尤其是输出必须附带第一方证据的场景。你需要具备 HTTPS 请求、标准化 JSON 存储以及定时任务或队列的基础能力。
准备一个可识别的 User-Agent、稳定的公司身份映射、持久化证据存储、重试与缓存控制,以及修订文件和附件的处理策略。
AI Agent 真正需要 Filing API 提供什么
“能返回 10-K”并不是完整需求。生产级 Agent 必须确认发行人身份,区分提交日期与报告期,保留修订版本,获取主文件和附件,并证明每条结论来自哪份原始材料。
- 身份:以 CIK 作为稳定 SEC 主键,Ticker 和法定名称作为别名。
- 发现:按表单、发行人、提交日期、报告期和修订状态过滤。
- 文档:主 HTML/TXT、Filing Index、附件、Inline XBRL 及其他提交材料。
- 证据:Accession Number、规范来源 URL、抓取时间、内容哈希和引用章节。
- 运维:明确的限额、重试、缓存、历史回补和可预测的错误行为。
SEC 文件 API 对比
| 选项 | 最适场景 | 优势 | 主要代价 |
|---|---|---|---|
| SEC EDGAR | 第一方来源采集 | 无需 API Key;Submissions 与 XBRL;实时更新 | 需自行处理身份映射、解析、缓存、历史文件与公平访问规范 |
| FMP Stable API | 托管型金融应用 | 支持 Symbol、CIK、Form 检索,可接入更广泛财务接口 | 需要针对业务量验证套餐限制和供应商标准化规则 |
| Finnhub | 全球数据栈中的 Filing 输入 | 在同一供应商体系内组合公司、市场及 Filing 数据 | 需用代表性样本确认字段、历史深度、授权和吞吐 |
| sec-api.io | 高级 Filing 搜索与提取 | 查询、全文、实时流、下载、附件、XBRL 转换和 Item 提取 | 商业依赖;应按实际用量核对覆盖和价格 |
不要只看功能表。应把相同的 25–50 份文件交给每个候选供应商测试:近期与历史 10-K、10-Q、带附件的 8-K、修订文件、公司更名、Ticker 变更,以及至少一份含自定义 Taxonomy Fact 的文件。
供应商详解:各自真正擅长什么
Submissions API 按 10 位 CIK 返回提交历史;Company Facts 与 Company Concept 提供标准化 XBRL Facts。接口无需认证且全天更新,但较早历史可能位于响应中指向的附加文件。
FMP Stable 文档提供按 Symbol、CIK、Form Type 检索,以及 8-K 和财务 Filing 端点。若应用已经使用其标准化公司与财务数据,集成会更直接。
已经使用 Finnhub Token、SDK 和市场数据工作流的团队,可能更容易接入。正式采用前,应测试修订标记、附件链接、全文访问、字段稳定性、历史深度及套餐权限。
其文档覆盖元数据查询、全文搜索、WebSocket 实时流、Filing 与附件下载、10-K/10-Q/8-K Item 提取和 XBRL-to-JSON,可显著减少 Agent 管线的解析工作。
带来源证据的 Filing Agent 参考架构
将用户输入或 Ticker 映射到法定实体,并保存补零后的 10 位 CIK。
按 Form、提交日期、报告期和修订策略筛选,并保留供应商原始响应。
获取 Filing Index、主文档、相关附件和结构化 Facts;不要假设主 HTML 包含所有重要材料。
生成干净文本和 Fact 记录,同时保留 Accession Number、来源 URL、章节边界、单位、期间和原始载荷。
拒绝身份不匹配、Accession 格式错误、来源缺失、版本重复以及单位或期间不兼容的 Facts。
输出答案、引用或结构化证据、Filing 元数据,以及审阅者可直接打开的规范链接。
分步实现:从 EDGAR 获取最新 10-K
SEC Submissions API 是很好的基线,因为它迫使工作流保留第一方标识。请使用包含组织与联系方式的可识别 User-Agent,缓存响应,并低于 SEC 公布的公平访问上限。
curl --compressed \
-H "User-Agent: ResearchAgent/1.0 contact@example.com" \
-H "Accept-Encoding: gzip, deflate" \
"https://data.sec.gov/submissions/CIK0000320193.json"
import hashlib
import requests
from datetime import datetime, timezone
CIK = "0000320193"
HEADERS = {
"User-Agent": "ResearchAgent/1.0 contact@example.com",
"Accept-Encoding": "gzip, deflate",
}
submissions_url = f"https://data.sec.gov/submissions/CIK{CIK}.json"
data = requests.get(submissions_url, headers=HEADERS, timeout=30)
data.raise_for_status()
payload = data.json()
recent = payload["filings"]["recent"]
rows = [dict(zip(recent, values)) for values in zip(*recent.values())]
filing = next(row for row in rows if row["form"] == "10-K")
accession = filing["accessionNumber"]
accession_path = accession.replace("-", "")
cik_path = str(int(CIK))
primary = filing["primaryDocument"]
source_url = (
f"https://www.sec.gov/Archives/edgar/data/"
f"{cik_path}/{accession_path}/{primary}"
)
document = requests.get(source_url, headers=HEADERS, timeout=30)
document.raise_for_status()
evidence = {
"cik": CIK,
"accessionNumber": accession,
"form": filing["form"],
"filingDate": filing["filingDate"],
"reportDate": filing["reportDate"],
"primaryDocument": primary,
"sourceUrl": source_url,
"retrievedAt": datetime.now(timezone.utc).isoformat(),
"sha256": hashlib.sha256(document.content).hexdigest(),
}
示例刻意只选择精确的 10-K。如果工作流需要包含修订文件,应将 10-K/A 建模为独立版本,并定义它如何影响此前结论。
在调用模型前先定义证据契约
| 字段 | 为什么重要 |
|---|---|
cik |
稳定的 SEC 实体身份;不要只依赖 Ticker。 |
accessionNumber |
唯一 Filing 身份,也是构造 EDGAR Archive 路径的关键。 |
form / isAmendment
|
防止 10-K/A 或 10-Q/A 在无提示情况下覆盖原文件。 |
filingDate / reportDate
|
区分公开时间和财务报告所属期间。 |
sourceUrl / retrievedAt
|
让审阅者复现 Agent 在何时看到了什么。 |
sha256 |
检测内容漂移,并支持不可变审计记录。 |
section / quoteRange
|
把生成结论绑定到精确的叙述性证据。 |
taxonomy / concept / unit / period
|
让 XBRL Fact 具备可解释性,而不只是一串数字。 |
先明确不同 Filing 回答什么问题
年度业务、风险、审计财务数据、内部控制和长篇叙述,适合建立公司基线。
季度更新、中期财务、风险变化和管理层讨论,适合环比监控。
重大事件。Item 编号和附件通常比泛化的全文摘要更重要。
修订文件。保留两个版本、计算差异,并重新验证受影响结论。
内部人交易。需解析交易代码、持有类型、股份、价格和脚注。
委托书,涵盖公司治理、投票事项、持股和高管薪酬背景。
Agent 回答前的验证清单
- CIK 对应目标法定实体,而不只是匹配了 Ticker 字符串。
- Accession Number 格式正确,并能解析到 Filing Index 或主文档。
- Form 策略明确包含或排除修订文件。
- 提交日期、报告期、接收时间和财政期间没有混为一谈。
- 所需附件已经获取,并关联到父 Filing。
- XBRL Facts 的 Taxonomy、单位、时长或时点、维度和期间一致。
- 每条生成结论都有来源 URL 和精确证据位置。
- 存储的哈希和抓取时间能让输入被复现。
安全、成本与延迟控制
SEC 当前要求自动化用户总计不超过每秒 10 次请求,并可能阻止过量或无法识别的 Bot。应把这个数字当作上限而非目标。使用共享限流器、可识别 User-Agent、缓存、指数退避、抖动,并在大规模历史回补时使用 Bulk Archive。
以 Accession Number 和 URL 作为文档存储键;元数据与正文分别复核。
一次用户请求不应触发不受控的逐章节或逐 Fact 下载。
商业供应商 Token 应进入 Secret Manager,绝不能出现在浏览器代码或 Prompt 中。
先排队、采集并验证文档,再让模型消费稳定证据库,而不是实时抓取。
常见失败模式与修复方式
| 失败 | 原因 | 修复 |
|---|---|---|
| 公司错误 | 仅按 Ticker 匹配或代码被复用 | 解析并保存 CIK 与法定名称 |
| 历史缺失 | 只读取了 Submissions 的 recent 数组 | 继续读取附加历史文件或 Bulk Archive |
| 结论重复 | 原文件与修订文件被合并 | 按 Accession 建版本并显式建模修订 |
| 财务 Fact 错误 | 忽略单位、期间、维度或 Taxonomy | 对比前验证完整 XBRL Context |
| 摘要不可验证 | 切块时丢失文档元数据 | 给每个 Chunk 和生成结论附加证据字段 |
| 429 或请求被阻止 | 突发流量、无身份标识或低效爬取 | 集中限流、标识客户端、缓存并退避 |
新闻、电话会与行情是辅助层,不是 Filing API
新闻 API 用于解释市场反应,财报电话会文本补充管理层表达,价格与成交量用于衡量响应。但它们都不能替代已提交文件、Accession Number、修订历史或 SEC 来源 URL。应先获取 Filing,再按发行人身份和事件时间连接这些数据集。
QVeris 实现模式:Discover → Inspect → Call
在 Agent 系统中,QVeris 可以位于各供应商端点之上,承担发现与路由。Agent 先发现候选 SEC 工具,再检查输入 Schema 与供应商元数据,最后用受控参数调用所选工具。返回的证据对象仍应注明底层供应商,并保留原始 SEC 来源。
按能力搜索:Filing 发现、XBRL Facts、章节提取、附件或实时提醒。
检查必需标识、日期语义、响应 Schema、来源字段、限额和错误行为。
调用满足需求的最小查询,验证响应,并把结果写入证据契约。
常见问题
SEC EDGAR API 免费吗?
免费,data.sec.gov API 无需 API Key。但自动化访问仍须遵守 SEC 公平访问规范、标识客户端并避免过量流量。
哪种 SEC Filing API 最适合 AI Agent?
没有通用冠军。EDGAR 适合第一方溯源,FMP 适合托管金融工作流,Finnhub 适合更广的数据供应商栈,sec-api.io 适合高级 Filing 原生搜索与提取。
可以用 Ticker 代替 CIK 吗?
供应商可能为了方便接受 Ticker,但生产记录应解析并保存 CIK,因为 Ticker 可能变更或被复用。
SEC Filing 引用应包含什么?
至少包含 CIK、Accession Number、Form、提交日期、来源 URL、抓取时间,以及所用章节、附件或 XBRL Fact。
应如何处理修订文件?
将 10-K/A、10-Q/A 等作为独立版本存储,与原文件比较,并重新评估受变更影响的结论。
只使用 XBRL Facts 足够吗?
不够。XBRL 适合可比 Facts,但叙述章节、脚注、附件、会计政策和事件背景仍需要 Filing 文档。
新闻和电话会 API 算 SEC Filing API 吗?
不算。它们能补充背景,但不能替代原始 Filing 及其来源标识。
QVeris 位于哪一层?
QVeris 是面向 Agent 的工具发现与路由层;被选中的 SEC 或商业供应商仍是记录源。
官方资料与下一步
供应商功能与访问规则可能变化。生产使用前,请核对最新文档、权限和条款。
先构建证据层,再构建答案层
用 QVeris 发现并检查适合 Agent 的工具,并在整个工作流中持续保留 SEC Filing、供应商身份和证据契约。
阅读 REST API 指南