QVeris
研究、合规与风险

面向 AI Agent 的最佳 SEC 申报 API

按文档覆盖、标识符、时间戳、解析、溯源与故障处理比较 SEC 申报 API。

发布日期:2026年3月26日 · QVeris团队制作

SEC 文件 API 实战指南
面向 AI Agent 的最佳 SEC 文件 API

一份面向 2026 年生产环境的实用对比:覆盖 EDGAR、Financial Modeling Prep、Finnhub 与 sec-api.io,并给出 Filing Agent 真正需要的证据字段、代码和验证控制。

更新于 2026 年 7 月 30 日 •阅读约 12 分钟 •10-K · 10-Q · 8-K · XBRL
真正有用的交付物不是一段摘要,而是绑定 CIK、Accession Number、来源 URL、文件版本和可复核证据的摘要。
Best SEC Filings APIs for AI Agents financial research workflow
面向 AI Agent 的最佳 SEC 申报 API 的金融研究场景;图片为工作流示意,并非产品界面。

要点速览:按工作流选,不要按品牌选

我们的简短结论

SEC EDGAR 适合作为第一方记录源;当 Filing 已经属于金融数据栈的一部分时,FMP 更省集成成本;若 Filing 只是综合市场数据产品的一种输入,可考虑 Finnhub;需要复杂搜索、实时流、附件和章节提取时,sec-api.io 是这里更专业的选择。QVeris 用于帮助 Agent 发现并调用合适工具,但不会替代来源归属。

第一方SEC EDGAR

适合重视权威来源,并能自行承担解析、缓存与访问控制的团队。

托管金融数据栈Financial Modeling Prep

适合希望用股票代码、CIK 或表单类型检索,并与其他标准化财务接口共用一套数据栈的团队。

综合数据产品Finnhub

当 SEC Filing 需要与全球公司和市场数据共用认证与运维体系时,值得测试。

Filing 专业服务sec-api.io

更适合全文查询、实时 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 的文件。

供应商详解:各自真正擅长什么

SEC EDGAR当来源权威性最重要时使用

Submissions API 按 10 位 CIK 返回提交历史;Company Facts 与 Company Concept 提供标准化 XBRL Facts。接口无需认证且全天更新,但较早历史可能位于响应中指向的附加文件。

FMP Stable API当你想减少集成面时使用

FMP Stable 文档提供按 Symbol、CIK、Form Type 检索,以及 8-K 和财务 Filing 端点。若应用已经使用其标准化公司与财务数据,集成会更直接。

Finnhub当 Filing 只是多种数据域之一时使用

已经使用 Finnhub Token、SDK 和市场数据工作流的团队,可能更容易接入。正式采用前,应测试修订标记、附件链接、全文访问、字段稳定性、历史深度及套餐权限。

sec-api.io当你需要 Filing 原生能力时使用

其文档覆盖元数据查询、全文搜索、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 · submissions history
curl --compressed \
  -H "User-Agent: ResearchAgent/1.0 contact@example.com" \
  -H "Accept-Encoding: gzip, deflate" \
  "https://data.sec.gov/submissions/CIK0000320193.json"
Python · resolve the filing and preserve evidence
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 回答什么问题

10-K

年度业务、风险、审计财务数据、内部控制和长篇叙述,适合建立公司基线。

10-Q

季度更新、中期财务、风险变化和管理层讨论,适合环比监控。

8-K

重大事件。Item 编号和附件通常比泛化的全文摘要更重要。

10-K/A · 10-Q/A

修订文件。保留两个版本、计算差异,并重新验证受影响结论。

Form 4

内部人交易。需解析交易代码、持有类型、股份、价格和脚注。

DEF 14A

委托书,涵盖公司治理、投票事项、持股和高管薪酬背景。

Agent 回答前的验证清单

  • CIK 对应目标法定实体,而不只是匹配了 Ticker 字符串。
  • Accession Number 格式正确,并能解析到 Filing Index 或主文档。
  • Form 策略明确包含或排除修订文件。
  • 提交日期、报告期、接收时间和财政期间没有混为一谈。
  • 所需附件已经获取,并关联到父 Filing。
  • XBRL Facts 的 Taxonomy、单位、时长或时点、维度和期间一致。
  • 每条生成结论都有来源 URL 和精确证据位置。
  • 存储的哈希和抓取时间能让输入被复现。

安全、成本与延迟控制

SEC 当前要求自动化用户总计不超过每秒 10 次请求,并可能阻止过量或无法识别的 Bot。应把这个数字当作上限而非目标。使用共享限流器、可识别 User-Agent、缓存、指数退避、抖动,并在大规模历史回补时使用 Bulk Archive。

缓存不可变 Filing

以 Accession Number 和 URL 作为文档存储键;元数据与正文分别复核。

限制 Agent 扇出

一次用户请求不应触发不受控的逐章节或逐 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 来源。

Discover

按能力搜索:Filing 发现、XBRL Facts、章节提取、附件或实时提醒。

Inspect

检查必需标识、日期语义、响应 Schema、来源字段、限额和错误行为。

Call

调用满足需求的最小查询,验证响应,并把结果写入证据契约。

常见问题

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 指南
面向 AI Agent 的最佳 SEC 文件 API | QVeris Guides