QVeris

金融与市场数据

面向 AI Agent 的 财务报表 API

比较面向 AI Agent 的财务报表 API:供应商覆盖、规范化结构、Python 代码、会计校验、来源追踪与生产控制。

发布日期:2026年4月12日 · QVeris团队制作

结合财务报告、计算记录和市场证据开展分析
结合财务报告、计算记录和市场证据开展分析

核心结论:先确定报表契约,再选择供应商

简短结论

Financial Datasets 适合需要标准化美国报表与 Filing 来源追溯的团队;FMP 适合希望在一个全球 API 中获得标准化、TTM、增长和 As-reported 报表的工作流;SEC EDGAR 是权威的美国 XBRL 证据层,但需要团队自行负责标准化;Alpha Vantage 适合简单原型;需要全球发行人覆盖时可评估 EODHD 与 Finnhub。生产选择最终取决于期间语义、重述、标识、来源、许可和实测字段完整度。

Normalized USFinancial Datasets

一次获取利润表、资产负债表和现金流量表,并提供报告期间筛选与 Filing 元数据。

Broad API stackFinancial Modeling Prep

在完整金融 API 中提供标准化、TTM、Growth、Bulk 和 As-reported 端点。

Primary evidenceSEC EDGAR

当权威性比现成报表表格更重要时,使用 Company Facts 与 Filing Submissions。

Global coverageEODHD or Finnhub

需要带交易所身份的全球证券和非美国报表历史时进行评估。

搜索“财务报表 API”的人真正需要什么

这个搜索并不是在询问“什么是利润表”。用户通常需要选择数据源、获取三张报表、对齐期间、处理修订,并让每个计算都能追溯到 Filing。只列字段或只宣传路由层,并没有解决实现问题。

避免关键词内耗

本页负责供应商中立的选型与架构;独立的 FMP 财务报表指南 继续承担品牌专属的端点与验证教程。

适用人群与前置条件

本指南适合构建股票研究 Agent、选股器、估值系统、契约监控、组合复盘和可追溯金融 Copilot 的工程师。默认目标不是拿到一次 Demo 响应,而是应对特殊财年、供应商修正、字段缺失和审计问题。

  • 测试集至少包含普通公司、银行、保险公司、ADR、非自然年公司、亏损公司和近期重述公司。
  • 取数前把年度、季度、YTD 和 TTM 定义为不同契约。
  • API 凭证只放在服务端,并把套餐权限与代码分开记录。
  • 提前确定标准化数值与 Filing 不一致时的权威来源。

年度、季度、TTM 与 As-reported 是不同契约

契约含义常见错误
年度一个已披露财年,不一定在 12 月结束。只按自然年标记。
季度单季度数值,或由供应商推导出的季度。把单季度值与 Filing 的年初至今值混用。
TTM由最近期间滚动求和或取得最新时点。把 TTM 当成公司直接披露的报表。
As-reported接近原始 Filing 分类体系的发行人标签与数值。假设字段天然可跨公司比较。
标准化供应商映射到统一 Schema 的结果。丢掉解释映射的原始 Tag 与来源。

Agent 可用的财务报表 API 选型标准

  • 覆盖:发行人、交易所、在市/退市证券、历史深度、银行、保险和外国发行人。
  • 期间语义:财年、财季、起止日、Filing Date、Accepted Date,以及单季/YTD。
  • 报表模式:标准化、As-reported、年度、季度、TTM、Bulk、分部与重述历史。
  • 证据:Accession Number、Filing URL、Source Tag、单位、币种、获取时间与版本身份。
  • 运维:限额、Bulk 行为、修正策略、缓存和再分发权、状态报告与支持。

财务报表 API 供应商对比

方案适用场景官方能力上线前验证
Financial Datasets带 Filing 追溯的美国公司标准化报表一次获取三表;年度、季度、TTM;期间筛选;Accession 与 Filing 字段美国市场边界、套餐限制、特殊行业完整度与修订行为
FMP Stable广泛金融数据栈与多种报表模式利润表、资产负债表、现金流、TTM、Growth、Bulk、报告日期与 As-reported套餐权限、地区深度、字段空值率与 Point-in-time 行为
SEC EDGAR美国第一方 Filing 与 XBRL 证据Submissions、Company Facts、Company Concept、Frames、实时更新与夜间 Bulk自定义 Tag、单位、Context、财年、公平访问运维及无浏览器 CORS
Alpha Vantage简单原型与标准化年度/季度报表利润表、资产负债表和现金流函数,并映射 GAAP/IFRS Taxonomy配额、证券范围、字段映射、空值处理与刷新时间
EODHD带交易所身份的全球基本面版本化 Fundamentals 端点、交易所后缀、部分字段过滤与全球报表 Sections具体交易所覆盖、套餐权限、Payload 大小与各发行人缺失字段
Finnhub连接全球基本面、预期与行情全球公司长历史报表,以及 Estimates、Transcript、Revenue Segment 与 KPI端点权限、标准化/原始语义与分地区覆盖

按工作流选型,而不是按功能数量选型

Screening优先稳定的标准化字段

跨公司筛选需要可预测的字段名、单位、期间和覆盖统计,同时保留 Raw Link 供下钻。

Audit优先第一方 Filing 身份

重要结论需要 Accession Number、已披露事实、Source Tag 和可复现取数路径。

Global research先测试发行人身份

跨交易所只用 Ticker 并不安全,应映射发行人、证券、上市地、交易所、币种和供应商 Symbol。

Point in time保存每个版本快照

回测和历史 Agent 答案需要“当时已知”的数据,而不是今天修正后的旧期间数值。

供应商中立的财务报表架构

解析身份

映射发行人、证券、上市地、交易所、可用的 CIK/LEI/ISIN 以及供应商 Symbol。

保存原始证据

转换前保存响应、可安全记录的请求参数与 Header、获取时间、状态和内容哈希。

标准化契约

映射身份、期间、币种、单位倍率、报表类型、标准字段、原始字段、数值与来源。

对齐并验证

只连接兼容期间,执行会计与语义校验,再把数据包标记为通过、警告或拒绝。

计算并回答

只用通过验证的输入计算比率,并把引用、公式、单位和校验结果附到 Agent 答案。

获取三张报表并保留证据 Envelope

下面以 Financial Datasets 为例,因为官方端点可一次返回三张报表。真正重要的是 Evidence Envelope:每个供应商 Adapter 都应使用同样模式。

Python · fetch + immutable evidence envelope
import hashlib
import json
import os
from datetime import datetime, timezone

import requests

def fetch_statement_bundle(ticker: str, period: str = "annual", limit: int = 8):
    endpoint = "https://api.financialdatasets.ai/financials"
    params = {"ticker": ticker, "period": period, "limit": limit}
    response = requests.get(
        endpoint,
        params=params,
        headers={"X-API-KEY": os.environ["FINANCIAL_DATASETS_API_KEY"]},
        timeout=30,
    )
    response.raise_for_status()
    raw = response.json()
    stable = json.dumps(raw, sort_keys=True, separators=(",", ":"))

    return {
        "provider": "financial_datasets",
        "endpoint": endpoint,
        "request": params,
        "retrievedAt": datetime.now(timezone.utc).isoformat(),
        "rawSha256": hashlib.sha256(stable.encode()).hexdigest(),
        "raw": raw,
        "statements": raw.get("financials", raw),
    }

bundle = fetch_statement_bundle("AAPL", period="annual")
print(bundle["rawSha256"], bundle["statements"].keys())
生产规则

绝不记录 API Key;只对有限的瞬时失败进行有界重试;遵守限额 Header;标准化前先写入 Raw Snapshot,避免映射变化抹掉原始证据。

先使用长表 Fact Schema,再重建报表

供应商的宽表响应便于展示,但不适合多供应商标准化。应先把每个数值转换成 Fact Record,完成身份和期间验证后再 Pivot 成报表。

字段组必需字段作用
身份issuerId, securityId, listingId, providerSymbol避免 ADR、双重上市和 Ticker 重用错误。
期间periodType, startDate, endDate, fiscalYear, fiscalQuarter区分年度、单季、YTD、Instant 与 TTM。
数值statement, canonicalField, rawField, value, currency, unitScale让转换过程明确且可逆。
证据provider, filingDate, accession, sourceUrl, retrievedAt, rawSha256复现答案并识别后续修正。

连接三张报表前,先对齐身份与期间

不要只用 Ticker 与年份连接。应使用发行人身份、期间类型、Period End、财年、财季、币种和 Filing Version。利润表与现金流量表多为 Duration Fact,资产负债表很多项目是 Instant Fact;仅有自然季度标签不足以证明它们属于同一数据包。

保留供应商原始期间

映射到内部财务期间模型前,保存原始标签与日期。

让 TTM 推导可见

记录组成季度、公式、缺失季度策略和推导时间。

区分 Filing Date 与 Report Date

财务期间先结束,之后 Filing 才提交并被接收。

不要用零填补缺失

零是已披露数值;Null 可能表示缺失、不适用、未映射或不可用。

把会计关系转化为验证测试

Python · accounting and semantic checks
def close_enough(left, right, abs_tol=1_000, rel_tol=0.002):
    scale = max(abs(left), abs(right), 1)
    return abs(left - right) <= max(abs_tol, rel_tol * scale)

def validate_period(bundle):
    errors, warnings = [], []
    bs, cf = bundle["balance"], bundle["cashFlow"]

    if not close_enough(
        bs["totalAssets"],
        bs["totalLiabilities"] + bs["totalEquity"],
    ):
        errors.append("balance_sheet_equation_failed")

    if all(cf.get(k) is not None for k in
           ["beginningCash", "changeInCash", "endingCash"]):
        if not close_enough(
            cf["beginningCash"] + cf["changeInCash"],
            cf["endingCash"],
        ):
            warnings.append("cash_rollforward_failed")

    if len({bundle[x]["currency"] for x in
            ["income", "balance", "cashFlow"]}) != 1:
        errors.append("currency_mismatch")

    if len({bundle[x]["periodEnd"] for x in
            ["income", "balance", "cashFlow"]}) != 1:
        errors.append("period_end_mismatch")

    return {"valid": not errors, "errors": errors, "warnings": warnings}
  • 同时使用绝对与相对容差;四舍五入和供应商展示方式会产生小差异。
  • 核对 Capex、发债、回购和分红前先确认正负号规则。
  • 只有组件定义和范围一致时才重新计算小计。
  • 按期间记录校验状态,单个失败季度不能静默污染多年趋势。

重述与供应商修正需要版本化历史

同一 Report Period 可能出现在原始 Filing、修订文件和后续报表的比较列中;供应商也可能在首次取数后改进 Taxonomy 映射。覆盖旧行会破坏 Point-in-time 可复现性。建议使用“发行人 + 期间 + 报表模式 + Filing/Accession + 供应商版本 + 获取快照”的只追加键。

答案策略

当前答案优先使用最新通过验证的版本,并披露发生过重述;历史回测应使用模拟决策时点当时可获得的版本。

安全、成本、延迟与许可控制

按不可变性缓存

特定 Filing Snapshot 可长期缓存;Latest Statement 别名需要重新验证和修正检测。

证券池使用 Bulk

存在 Bulk 或夜间 Archive 时,不要对数千 Symbol 并发逐个请求。

分离凭证与权限

Secret 证明身份;Plan Record 决定允许的端点、历史深度与用途。

审查再分发权限

内部分析、终端展示、衍生数据、缓存和转售可能对应不同合同权限。

常见财务报表失败模式

现象可能原因修复
Revenue 大约放大四倍把 YTD 当单季,或对季度值重复年化保存 Duration 起止日与推导方法,不只依赖 Q 标签
资产不等于负债加权益期间、单位、币种、范围混用,或映射不完整拒绝该 Join Bundle,计算前检查 Raw Field
历史答案静默变化重述或供应商修正覆盖旧行使用只追加版本、Hash、Effective Time 与 Observed Time
银行或保险比率异常把工业公司 Schema 套到特殊行业报表按行业 Schema 路由并执行行业专属验证
缺失值变成有效的零解析或 Prompt 中把 Null 强制转换为零使用可空类型和明确的 Missing Reason Code

QVeris 模式:Discover → Inspect → Call

QVeris 位于供应商端点之上,承担能力发现与路由,而不会变成金融数据来源。Agent 先发现“带 Filing URL 的年度标准化报表”等能力,检查 Schema、覆盖、限制和权限,再用受控输入调用选定工具;标准化响应仍必须保留底层供应商与 Filing 证据。

Discover

按报表模式、地区、财务期间、来源与延迟搜索能力。

Inspect

检查标识、字段定义、Null 行为、权限、限额和证据字段。

Call

调用最小范围,保留 Raw Response,验证标准化 Bundle,并引用来源。

财务报表 API 常见问题

哪种财务报表 API 最适合 AI Agent?

没有通用赢家。Financial Datasets 擅长标准化美国报表与来源;FMP 提供广泛的标准化和 As-reported 端点;SEC EDGAR 是美国第一方 XBRL 证据;EODHD 或 Finnhub 更适合扩展全球覆盖。

Agent 应使用标准化还是 As-reported 报表?

筛选和跨公司比较使用标准化报表;审计、特殊项目和重要结论应保留 As-reported Fact 与 Filing 引用。

年度、季度与 TTM 报表可以混用吗?

不可以。它们是不同的期间契约。应保存期间类型、起止日、财年、财季和 Filing Date,只比较兼容期间。

Agent 应如何验证资产负债表?

使用明确容差检查资产约等于负债加权益,同时保留原始币种、单位、来源和已披露数值。

为什么报表发布后数值还会变化?

公司可能修订 Filing,供应商可能修正映射,后续报表也可能重述比较期间。应保存只追加快照,并区分 Report Period、Filing Date 与 Retrieval Time。

只使用 SEC EDGAR 足够构建生产金融 Agent 吗?

它可以作为权威美国证据层,但多数团队仍需要标识映射、XBRL 标准化、缓存、Taxonomy 处理和报表组装。

每个标准化数值应保留哪些来源字段?

保留供应商、端点、发行人和证券标识、Report Period、Filing Date、Accession 或 Source URL、币种、单位倍率、Raw Field、获取时间与 Raw Payload Hash。

QVeris 位于财务报表工作流的哪一层?

QVeris 帮助 Agent 发现、检查和调用供应商工具;供应商响应与底层 Filing 仍是记录源。

官方资料与相关实现指南

覆盖、Schema、配额和商业权限会变化。确定供应商前,请核对当前官方文档,并运行代表性发行人测试集。

让每个财务结论都可复现

使用 QVeris 发现并检查报表能力,并在整个工作流中保留供应商身份、财务期间语义、原始证据、验证状态与 Filing 引用。

开始使用 QVeris

档案链接有效不代表已获访问权限、字段可用、价格确定或当前调用成功;执行前须检查当前契约。

面向 AI Agent 的 财务报表 API | QVeris Guides