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/events | 8-K 事项:基于申报文件的事件流 |
GET /v1/news | 全部覆盖公司的 8-K 文件,按时间倒序,附事件类型和重要性 |
GET /v1/search/filings | 2001 年以来 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/funds | Form N-PORT 基金及其最新报告 |
GET /v1/fund/holdings | 单只基金的 Form N-PORT 持仓 |
GET /v1/company/kpis | 公司自行披露的调整后指标与经营指标,均附出处 |
GET /v1/company/dividend_events | 按申报口径的现金股息及其日期 |
GET /v1/company/ownership/insider_holdings | Form 3、4、5 中的持股行 |
GET /v1/fund/profile | 基金类型(N-CEN)及各份额类别费用 |
GET /v1/company/identifiers | LEI 与 FIGI 标识及其依据 |
GET /v1/company/stock_prices | 仅由 IEX 成交构建的日线。不是全市场合并行情,也未复权 |
GET /v1/screen | 按最新期间指标筛选所有已覆盖公司 |
POST /v1/verify | 把一个数字与申报值核对 |
GET /v1/changes | 某一时间之后新得知的事实 |
POST /v1/request-data | 告诉我们你需要但没找到的数据。无需密钥,不收费,每周审阅。见如何申请 |
GET /v1/request-data | POST /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错误
错误的格式是 { "error": { code, message, docs, request_id, remedies } }。remedies 列表说明下一步该怎么做。错误说明解释每个错误码。