金融与市场数据
Financial Modeling Prep API: 价格、限制与示例
了解 FMP 的当前端点、认证、价格、限额、Python 示例和数据验证,接入前核对生产授权。
发布日期:2026年4月12日 · QVeris团队制作

FMP 覆盖广、容易测试,但生产可用性取决于套餐权限与数据语义
Financial Modeling Prep 通过 JSON API 提供股票报价、历史价格、公司资料、财务报表、比率、日历、新闻、监管文件等数据。Basic 套餐适合评估和小型个人工作流;商业产品上线前应核对端点权限、历史深度、时效、带宽、展示权和再分发条款。
适合希望通过一个 API 覆盖基本面、价格、日历、公司资料和新闻的团队。
不要假设所有文档端点、市场、历史范围或展示用途都包含在每个套餐中。
随数据返回来源、代码、交易所、币种、事件时间、财报期、单位和时效。
谁适合使用 Financial Modeling Prep API?
需要通过熟悉的 REST 端点获取公司资料、报价、财务报表、指标和日历的团队。
构建财报、文件、新闻、价格或基本面定时工作流的分析团队。
能在模型总结或执行动作前验证结构化结果的 Agent 开发团队。
Financial Modeling Prep 价格与免费额度
以下个人使用价格和限制于 2026 年 7 月 30 日根据 FMP 官方价格页核验。价格、端点权限和授权可能变化,购买或上线前请再次确认官方页面。
| 套餐 | 页面价格 | 调用限制 | 适用起点 |
|---|---|---|---|
| Basic | 免费 | 250 次/天 | 测试、学习、个人原型、日终与参考数据 |
| Starter | $22/month* | 300 次/分钟 | 美国基本面、历史价格、新闻、加密货币和外汇 |
| Premium | $59/month* | 750 次/分钟 | 更长历史、更多地区、盘中图表、技术指标和公司日历 |
| Ultimate | $149/month* | 3,000 次/分钟 | 全球覆盖、电话会记录、持仓、批量交付和更深权限 |
*核验时 FMP 页面展示的是按年计费的月均价格。FMP 还规定滚动 30 天带宽限制,并区分个人和商业使用;展示或再分发 FMP 数据可能需要额外协议。
FMP API 提供哪些数据和端点?
FMP API 分步接入方法
从公司资料、报价、利润表或财报日历等范围明确的操作开始。
从环境变量读取,并作为 apikey 查询参数发送。
区分 HTTP 错误、FMP 错误响应、空结果、分页不完整和有效记录。
保留端点、供应商、请求代码、获取时间、来源时间戳和套餐相关警告。
报价、日历、公司资料、财报和电话会记录不应使用同一个缓存时间。
向模型提供类型明确、参数受限的操作,而不是任意 URL 或原始 API Key。
curl "https://financialmodelingprep.com/stable/quote?symbol=AAPL&apikey=YOUR_API_KEY"
const url = new URL("https://financialmodelingprep.com/stable/profile");
url.searchParams.set("symbol", "AAPL");
url.searchParams.set("apikey", process.env.FMP_API_KEY);
const response = await fetch(url, { signal: AbortSignal.timeout(8000) });
if (!response.ok) throw new Error(`FMP HTTP ${response.status}`);
const rows = await response.json();
if (!Array.isArray(rows) || rows.length === 0) {
throw new Error("FMP returned no company profile");
}
const result = {
provider: "financial-modeling-prep",
endpoint: "profile",
requestedSymbol: "AAPL",
retrievedAt: new Date().toISOString(),
data: rows[0]
};
Agent 使用 FMP 数据前的验证清单
| 检查项 | 验证内容 | 忽略后的风险 |
|---|---|---|
| 证券身份 | 代码、交易所、CIK、证券类型 | 匹配到错误公司或上市地 |
| 时间 | 事件时间、获取时间、时区、交易时段 | 把旧数据描述为当前数据 |
| 财报期 | 财年、季度、申报日期、接受日期 | 混用年度与季度数据 |
| 单位 | 币种、数量级、百分比、每股口径 | 百万与个位或币种错误 |
| 完整性 | 空值、分页、记录限制、历史窗口 | 把残缺结果当成完整结果 |
| 市场语义 | 实时或延迟、复权或未复权、场所与覆盖 | 无效比较和误导性告警 |
直接接入 FMP、使用 MCP,还是通过 QVeris 路由?
| 方式 | 适用情况 | 需要自行负责 |
|---|---|---|
| 直接调用 FMP API | 应用只有一组固定端点和一个主要供应商。 | 认证、客户端代码、验证、重试、缓存和结构变化。 |
| FMP MCP Server | 兼容 MCP 的客户端需要在受控助手工作流中使用 FMP 工具。 | 服务器运行、凭据、工具结构、策略和供应商错误。 |
| QVeris 能力路由 | Agent 需要跨多种金融能力完成发现、检查、比较和调用。 | 业务策略与验证规则;QVeris 提供统一发现和执行层。 |
安全、成本与延迟控制
- 把 FMP Key 存放在服务端密钥系统。
- 对日志中的 URL 和查询参数脱敏。
- 只允许批准的端点,并限制代码、日期和分页大小。
- 缓存变化较慢的公司资料与财报。
- 仅在套餐和端点允许时批量请求代码。
- 跟踪每日调用、滚动带宽、重试和响应大小。
- 为报价、日历、公司资料和财报设置不同 TTL。
- 设置连接与总超时。
- 供应商失败后不要静默返回过期缓存。
FMP API 常见故障排查
| 现象 | 可能原因 | 首要动作 |
|---|---|---|
| 401 / 403 | Key 无效、端点不可用或套餐限制 | 在官方文档中测试 Key,并检查端点的套餐权限。 |
| 429 | 达到每日、每分钟或工作流重试限制 | 停止自动重试,增加退避与缓存,并检查用量。 |
| 空数组 | 代码错误、市场不支持、无记录或历史范围受限 | 先解析证券身份,再用已知代码和日期测试。 |
| 数值不一致 | 财报期、币种、单位、复权或更新时间不同 | 先比较原始记录和元数据,不要先改提示词。 |
| Agent 自信地给出错误答案 | 工具返回数据时缺少证据、警告或验证状态 | 返回来源和验证字段,验证失败时阻止模型生成结论。 |
FMP 替代方案:按具体工作流选择
不要只根据端点数量选择供应商。应比较应用真正需要的市场、字段、更新周期、历史深度、限制、授权和失败行为。
FMP 金融 Agent 的 QVeris 实现模式
把 FMP 作为供应商支持的能力,而不是允许模型任意构造 URL。生产流程应分离意图、发现、检查、执行、验证和最终总结。
判断用户需要报价、财报、日历、公司资料、新闻,还是多来源研究工作流。
调用前确认必需参数、供应商说明、结果字段、时效预期和成本。
调用选定能力,验证身份、时间、单位、报告期和完整性,并保留执行记录。
Financial Modeling Prep API 常见问题
Financial Modeling Prep API 免费吗?
FMP API 如何认证?
apikey 查询参数添加到 Stable 端点。密钥应存放在服务端,不应打包进浏览器代码。FMP 提供实时股票价格吗?
FMP 提供财报日历吗?
AI Agent 应验证 FMP 数据的哪些内容?
什么时候应将 QVeris 与 FMP 一起使用?
常见的 Financial Modeling Prep 替代方案有哪些?
FMP 官方资料与 QVeris 相关指南
先验证一个 FMP 工作流,再逐步扩展
选择一个端点、一个已知代码和一个预期结果。验证证券身份、时间、单位、套餐权限、错误处理和来源后,再增加更多数据集或允许 Agent 动态选择能力。
档案链接有效不代表已获访问权限、字段可用、价格确定或当前调用成功;执行前须检查当前契约。
