跳到正文

API 与 MCP 文档

FinancialMD 提供基于 SEC 申报文件的财务报表。每个数字都能追到它出自的申报文件,也都能按任意日期当时已知的样子读取。无需账号。

第一次调用

API 通过 HTTPS 返回 JSON。下面这次调用返回苹果公司最近五个年度的利润表,不需要密钥。

curl "https://api.financial.md/v1/company/financials/income_statement/standardized?company=ticker:AAPL&period_type=annual&limit=5"

报表可以是 income_statement、balance_sheet、cash_flow 或 supplemental。期间类型可以是 annual、quarterly、ltm 或 ytd。

指定公司

每个公司路由都接受 company 参数。

  • ticker:AAPL,或用 ticker:AAPL.XNAS 指明交易所
  • cik:320193,即 SEC 的公司编号
  • fmd_<id>,即 FinancialMD 给公司的标识

只写 AAPL 会被当作股票代码,只写数字会被当作 CIK。响应在 meta.company.matched_by 中说明匹配方式。

读取数值

成功的响应是 { data, meta }。data 里的数字从不是裸数字,而是一个数值对象:

{
  "value": 391035000000,
  "unit": "USD",
  "currency": "USD",
  "decimals": -6,
  "period": { "start": "2023-10-01", "end": "2024-09-28", "type": "annual", "fiscal_year": 2024, "fiscal_period": "FY" },
  "known": { "from": "YYYY-MM-DDThh:mm:ssZ", "to": null },
  "restated": false,
  "method": "as_filed",
  "calc_type": "as_filed",
  "proof": { "id": "p_...", "accession": "0000320193-24-000123", "form": "10-K", "filed": "2024-11-01", "taxonomy": "us-gaap", "tag": "...", "source_url": "https://www.sec.gov/..." }
}

known 是这个数字作为最新申报数字的时间段。只有当之后的申报文件改动了这个数字时,restated 才为 true,此时 restatement_kind 说明改动方式。proof.id 可在 GET /proof/{id} 查到对应的申报文件和原始事实。

按当时已知的样子读取过去

  • 在任何读取路由上加 as_of=2024-06-30,返回那一刻已知的内容。
  • original=true 返回每个期间首次申报的版本。
  • history=true 返回每个期间的所有版本,从旧到新。
  • GET /v1/changes?since=<timestamp> 列出此后新得知的事实。

路由

路由返回内容
GET /v1/companies公司目录,支持筛选和分页
GET /v1/company/profile公司资料、上市信息和可用数据集
GET /v1/company/metrics公司模板中的概念行
GET /v1/company/financials/{statement}/standardized标准化报表
GET /v1/company/financials/{statement}/as_reported申报人自己的科目行及其标签
GET /v1/company/ratios由报表计算的比率,附带各项输入的证明
GET /v1/company/ratios/daily/{ratio_id}单个比率按期间的序列
GET /v1/company/filings公司的申报文件索引
GET /v1/filing/{accession}单份申报文件
GET /v1/filing/{accession}/facts一份申报文件中所有已映射的事实
GET /v1/filing/{accession}/document申报文件在 EDGAR 上的页面链接,或其主文档
GET /v1/company/ownership/insiders来自表格 3、4、5 的内部人交易
GET /v1/company/ownership/institutional按季度列出的 13F 机构持有人
GET /v1/ownership/institutional/holders提交 13F 的管理人
GET /v1/ownership/institutional/holdings某个管理人某季度的 13F 持仓
GET /v1/company/splits申报的股票拆分,以及价格是否印证
GET /v1/company/dividends各期申报的每股已宣派或已支付股息
GET /v1/events_calendar业绩发布(已提交 8-K 第 2.02 项)及模型预计日期
GET /v1/company/events8-K 事项:基于申报文件的事件流
GET /v1/news全部覆盖公司的 8-K 文件,按时间倒序,附事件类型和重要性
GET /v1/search/filings2001 年以来 EDGAR 文档全文检索(SEC EDGAR 全文检索)
GET /v1/coverage每个数据集的状态:已提供、不覆盖(授权数据)或尚未构建,以及替代方案
GET /v1/company/estimates不覆盖:一致预期属于授权数据。返回 404 not_covered 及替代方案
GET /v1/company/analyst_ratings不覆盖:分析师评级属于授权数据。返回 404 not_covered
GET /v1/company/transcripts不覆盖:电话会议记录属于授权数据。返回 404 not_covered
GET /v1/company/stock_prices/intraday不覆盖:实时与盘中价格属于授权数据。返回 404 not_covered
GET /v1/company/logo不覆盖:标志需先完成商标审查。返回 404 not_covered
GET /v1/politician_trades不覆盖:等待法律审查。返回 404 not_covered
GET /v1/fund_letters尚未构建。返回 404 not_covered
GET /v1/company/segments按申报口径的分部数据(业务、地区、产品)
GET /v1/company/ownership/insider_holders每位内部人士最近一次 Form 4 或 5 交易后的持股
GET /v1/company/ownership/funds在最新 Form N-PORT 中持有该公司的基金
GET /v1/fundsForm N-PORT 基金及其最新报告
GET /v1/fund/holdings单只基金的 Form N-PORT 持仓
GET /v1/company/kpis公司自行披露的调整后指标与经营指标,均附出处
GET /v1/company/dividend_events按申报口径的现金股息及其日期
GET /v1/company/ownership/insider_holdingsForm 3、4、5 中的持股行
GET /v1/fund/profile基金类型(N-CEN)及各份额类别费用
GET /v1/company/identifiersLEI 与 FIGI 标识及其依据
GET /v1/company/stock_prices仅由 IEX 成交构建的日线。不是全市场合并行情,也未复权
GET /v1/screen按最新期间指标筛选所有已覆盖公司
POST /v1/verify把一个数字与申报值核对
GET /v1/changes某一时间之后新得知的事实
POST /v1/request-data告诉我们你需要但没找到的数据。无需密钥,不收费,每周审阅。见如何申请
GET /v1/request-dataPOST /v1/request-data 接受的请求体
GET /v1/request-data/{id}申请的状态:new、triaged、planned、done 或 wontfix
GET /v1/requested申请与上线:已审阅的申请及计数,不含申请者信息
GET /proof/{id}某个数值的证明

OpenAPI 文档列出了全部参数和响应结构。llms.txt 和技能文件面向智能体说明同样的内容。

核对一个数字

curl -X POST "https://api.financial.md/v1/verify" -H "content-type: application/json" \
  -d '{"company":"ticker:AAPL","concept":"income_statement_total_revenues","period":"FY2024","value":391035000000}'

返回内容包括 verdict(matches、differs 或 unknown)、带证明的申报值、差额,以及当你的数字差了十的整数次幂时给出的 scale_hint。

限额

不带密钥的调用按 IP 地址、按天限额。

  • 25 次计量调用:比率、筛选和核验
  • 1,000 次申报层读取:报表、原始申报事实、申报文件、持股和价格
  • 1,000 次元数据读取:目录、公司资料、指标、证明和变更

每个响应都带有 RateLimit-Limit、RateLimit-Remaining 和 RateLimit-Reset。429 响应带有 Retry-After。

更高限额的 API 密钥尚未发放,见 API 密钥。api.financial.md 上的调用免费。智能体可以在 agent.financial.md 上按次付费,见价格。

覆盖范围

目前覆盖向 SEC 申报、且现在在美国交易所上市的公司。

  • 按美国公认会计准则(US GAAP)申报的公司有标准化报表。
  • 按国际财务报告准则(IFRS)申报的公司,例如许多提交 20-F 或 40-F 的外国公司,有申报文件,但暂时没有标准化报表。
  • 已退市的公司尚未收录。
  • 持股数据来自 2026 年 7 月 1 日以来提交的申报,每天 UTC 13:00 从 EDGAR 每日索引更新:已覆盖公司的表格 3、4、5 内部人交易,以及全部 13F-HR,新季度的 13F 报告随管理人提交陆续收录。只有当某份 13D 或 13G 封面载明某只证券时,13F 持仓才会归到对应公司。截至 2026 年 6 月 30 日的季度,按申报市值计,已归属的部分占 80%;其余持仓在管理人的持仓列表中按申报的发行人名称列出。
  • 不提供一致预期和业绩电话会议记录:两者都属于授权数据。分部数据按申报原样提供,新闻是 8-K 申报文件的信息流。

如果公司已收录但缺少某个数据集,API 返回 not_covered,并列出它已有的数据集。

MCP 服务

MCP 服务把同一套 API 包装成 36 个只读工具。它使用 MCP Streamable HTTP,无需账号。

https://mcp.financial.md/mcp

MCP 指南列出了这些工具。服务卡片供注册表使用。

错误

错误的格式是 { "error": { code, message, docs, request_id, remedies } }。remedies 列表说明下一步该怎么做。错误说明解释每个错误码。