Financial Modeling Prep API: Pricing, Limits & ExamplesFinancial Modeling Prep API:价格、限制与示例
A practical guide to FMP pricing, free-tier limits, Stable API endpoints, authentication, code examples, validation, alternatives, and production use with AI agents.
一份面向开发者的 FMP 实用指南,涵盖价格、免费额度、Stable API 端点、认证、代码示例、数据验证、替代方案及 AI Agent 生产接入。
FMP is broad and easy to test, but production fit depends on plan access and data semantics
FMP 覆盖广、容易测试,但生产可用性取决于套餐权限与数据语义
Financial Modeling Prep provides stock quotes, historical prices, company profiles, financial statements, ratios, calendars, news, filings, and other market datasets through JSON APIs. The Basic plan is useful for evaluation and small personal workflows; commercial products should verify endpoint access, history, freshness, bandwidth, display rights, and redistribution terms before launch.
Financial Modeling Prep 通过 JSON API 提供股票报价、历史价格、公司资料、财务报表、比率、日历、新闻、监管文件等数据。Basic 套餐适合评估和小型个人工作流;商业产品上线前应核对端点权限、历史深度、时效、带宽、展示权和再分发条款。
A practical fit when one API must cover fundamentals, prices, calendars, profiles, and news.
适合希望通过一个 API 覆盖基本面、价格、日历、公司资料和新闻的团队。
Do not assume every documented endpoint, market, history window, or display use is included in every plan.
不要假设所有文档端点、市场、历史范围或展示用途都包含在每个套餐中。
Return source, symbol, exchange, currency, event time, fiscal period, units, and freshness with the data.
随数据返回来源、代码、交易所、币种、事件时间、财报期、单位和时效。
Who should use the Financial Modeling Prep API?
谁适合使用 Financial Modeling Prep API?
Teams that need familiar REST endpoints for profiles, quotes, statements, metrics, and calendars.
需要通过熟悉的 REST 端点获取公司资料、报价、财务报表、指标和日历的团队。
Analysts building scheduled earnings, filings, news, price, or fundamental-data workflows.
构建财报、文件、新闻、价格或基本面定时工作流的分析团队。
Agent builders that can validate structured results before a model summarizes or acts on them.
能在模型总结或执行动作前验证结构化结果的 Agent 开发团队。
Financial Modeling Prep pricing and free-tier limits
Financial Modeling Prep 价格与免费额度
The following personal-use prices and limits were checked against FMP’s official pricing page on July 30, 2026. Pricing, endpoint access, and licensing can change; confirm the official page before purchasing or launching.
以下个人使用价格和限制于 2026 年 7 月 30 日根据 FMP 官方价格页核验。价格、端点权限和授权可能变化,购买或上线前请再次确认官方页面。
| Plan套餐 | Listed price页面价格 | Call limit调用限制 | Best starting point适用起点 |
|---|---|---|---|
| Basic | Free免费 | 250 calls/day250 次/天 | Testing, learning, personal prototypes, end-of-day and reference data测试、学习、个人原型、日终与参考数据 |
| Starter | $22/month* | 300 calls/minute300 次/分钟 | US fundamentals, historical prices, news, crypto, and forex美国基本面、历史价格、新闻、加密货币和外汇 |
| Premium | $59/month* | 750 calls/minute750 次/分钟 | Longer history, more regions, intraday charts, indicators, and corporate calendars更长历史、更多地区、盘中图表、技术指标和公司日历 |
| Ultimate | $149/month* | 3,000 calls/minute3,000 次/分钟 | Global coverage, transcripts, holdings, bulk delivery, and deeper access全球覆盖、电话会记录、持仓、批量交付和更深权限 |
*Prices shown by FMP for annual billing when checked. FMP also documents trailing 30-day bandwidth limits and separate personal versus commercial use. Displaying or redistributing FMP data may require an additional agreement.
*核验时 FMP 页面展示的是按年计费的月均价格。FMP 还规定滚动 30 天带宽限制,并区分个人和商业使用;展示或再分发 FMP 数据可能需要额外协议。
What data and endpoints does the FMP API provide?
FMP API 提供哪些数据和端点?
Use quote, batch quote, end-of-day history, and intraday chart endpoints for market snapshots and time series.
使用报价、批量报价、日终历史和盘中图表端点获取市场快照与时间序列。
Validate: venue, delay, session, adjustment验证:场所、延迟、时段、复权Retrieve income statements, balance sheets, cash flows, key metrics, ratios, growth, and reported financials.
获取利润表、资产负债表、现金流量表、关键指标、比率、增长和原始财报数据。
Validate: period, currency, units, restatements验证:报告期、币种、单位、重述Track earnings, dividends, splits, IPOs, and economic releases. FMP lists earnings-calendar refreshes every three hours.
跟踪财报、分红、拆股、IPO 和经济数据发布。FMP 的更新周期页列出财报日历约每三小时更新。
Validate: timezone, announced date, update time验证:时区、公告日期、更新时间Add company identity, market capitalization, industry, news, press releases, SEC material, analyst data, and transcripts where the plan permits.
在套餐允许时补充公司身份、市值、行业、新闻、新闻稿、SEC 材料、分析师数据和电话会记录。
Validate: source, publication time, entitlement验证:来源、发布时间、权限Step-by-step FMP API implementation
FMP API 分步接入方法
Start with a narrow operation such as company profile, quote, income statement, or earnings calendar.
从公司资料、报价、利润表或财报日历等范围明确的操作开始。
Load it from an environment variable and append it as the apikey query parameter.
从环境变量读取,并作为 apikey 查询参数发送。
Distinguish HTTP errors, FMP error payloads, empty results, incomplete pages, and valid records.
区分 HTTP 错误、FMP 错误响应、空结果、分页不完整和有效记录。
Preserve endpoint, provider, requested symbol, retrieval time, source timestamps, and plan-dependent warnings.
保留端点、供应商、请求代码、获取时间、来源时间戳和套餐相关警告。
Quotes, calendars, profiles, statements, and transcripts should not share one cache TTL.
报价、日历、公司资料、财报和电话会记录不应使用同一个缓存时间。
Give the model typed operations and bounded parameters rather than arbitrary URLs or raw API keys.
向模型提供类型明确、参数受限的操作,而不是任意 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]
};
Validation checklist before an agent uses FMP data
Agent 使用 FMP 数据前的验证清单
| Check检查项 | What to verify验证内容 | Failure if skipped忽略后的风险 |
|---|---|---|
| Identity证券身份 | Symbol, exchange, CIK, instrument type代码、交易所、CIK、证券类型 | Wrong company or listing匹配到错误公司或上市地 |
| Time时间 | Event time, retrieval time, timezone, market session事件时间、获取时间、时区、交易时段 | Old data described as current把旧数据描述为当前数据 |
| Financial period财报期 | Fiscal year, quarter, filing date, accepted date财年、季度、申报日期、接受日期 | Mixing annual and quarterly values混用年度与季度数据 |
| Units单位 | Currency, scale, percentage, per-share basis币种、数量级、百分比、每股口径 | Million-versus-unit or currency errors百万与个位或币种错误 |
| Completeness完整性 | Nulls, pagination, record limits, historical window空值、分页、记录限制、历史窗口 | Partial results that look complete把残缺结果当成完整结果 |
| Market semantics市场语义 | Real-time or delayed, adjusted or unadjusted, venue and coverage实时或延迟、复权或未复权、场所与覆盖 | Invalid comparisons and misleading alerts无效比较和误导性告警 |
Direct FMP integration, MCP, or QVeris routing?
直接接入 FMP、使用 MCP,还是通过 QVeris 路由?
| Approach方式 | Use when适用情况 | You own需要自行负责 |
|---|---|---|
| Direct FMP API直接调用 FMP API | The application has a fixed set of known endpoints and one primary provider.应用只有一组固定端点和一个主要供应商。 | Authentication, client code, validation, retries, caching, and schema changes.认证、客户端代码、验证、重试、缓存和结构变化。 |
| FMP MCP serverFMP MCP Server | An MCP-compatible client needs FMP-backed tools inside a controlled assistant workflow.兼容 MCP 的客户端需要在受控助手工作流中使用 FMP 工具。 | Server operation, credentials, tool schemas, policy, and provider-specific errors.服务器运行、凭据、工具结构、策略和供应商错误。 |
| QVeris capability routingQVeris 能力路由 | The agent must discover, inspect, compare, and call across multiple financial capabilities.Agent 需要跨多种金融能力完成发现、检查、比较和调用。 | Business policy and validation rules; QVeris provides a common discovery and execution layer.业务策略与验证规则;QVeris 提供统一发现和执行层。 |
Security, cost, and latency controls
安全、成本与延迟控制
- Keep FMP keys in server-side secret storage.把 FMP Key 存放在服务端密钥系统。
- Redact URLs and query strings from logs.对日志中的 URL 和查询参数脱敏。
- Allowlist endpoints and bound symbols, dates, and page sizes.只允许批准的端点,并限制代码、日期和分页大小。
- Cache slow-changing profiles and statements.缓存变化较慢的公司资料与财报。
- Batch symbols only where the plan and endpoint allow it.仅在套餐和端点允许时批量请求代码。
- Track daily calls, rolling bandwidth, retries, and response size.跟踪每日调用、滚动带宽、重试和响应大小。
- Use separate TTLs for quotes, calendars, profiles, and statements.为报价、日历、公司资料和财报设置不同 TTL。
- Set connection and total timeouts.设置连接与总超时。
- Do not silently serve stale cache after a provider failure.供应商失败后不要静默返回过期缓存。
Troubleshooting common FMP API failures
FMP API 常见故障排查
| Symptom现象 | Likely cause可能原因 | First action首要动作 |
|---|---|---|
| 401 / 403 | Invalid key, unavailable endpoint, or plan restrictionKey 无效、端点不可用或套餐限制 | Test the key in the official docs and inspect endpoint plan access.在官方文档中测试 Key,并检查端点的套餐权限。 |
| 429 | Daily, per-minute, or workflow retry limit reached达到每日、每分钟或工作流重试限制 | Stop automatic retries, add backoff, cache, and inspect usage.停止自动重试,增加退避与缓存,并检查用量。 |
| Empty array空数组 | Wrong symbol, unsupported market, no record, or restricted history代码错误、市场不支持、无记录或历史范围受限 | Resolve the instrument first and test a known symbol and date.先解析证券身份,再用已知代码和日期测试。 |
| Values disagree数值不一致 | Different fiscal period, currency, units, adjustment, or update time财报期、币种、单位、复权或更新时间不同 | Compare raw records and metadata before changing prompts.先比较原始记录和元数据,不要先改提示词。 |
| Agent gives a confident wrong answerAgent 自信地给出错误答案 | The tool returned data without evidence, warnings, or validation status工具返回数据时缺少证据、警告或验证状态 | Return provenance and validation fields, and block synthesis on failed checks.返回来源和验证字段,验证失败时阻止模型生成结论。 |
FMP alternatives: choose by the exact workflow
FMP 替代方案:按具体工作流选择
Do not choose a provider from endpoint count alone. Compare the markets, fields, update cycles, history, limits, licensing, and failure behavior your application actually needs.
不要只根据端点数量选择供应商。应比较应用真正需要的市场、字段、更新周期、历史深度、限制、授权和失败行为。
Compare fundamentals-oriented breadth with market-data depth, latency, and asset coverage.
比较偏基本面的广度与市场数据深度、延迟和资产覆盖。
Compare free access, technical indicators, fundamentals, history, and production limits.
比较免费权限、技术指标、基本面、历史范围和生产限制。
Compare real-time workflows, news, alternative signals, fundamentals, and commercial fit.
比较实时工作流、新闻、另类信号、基本面和商业适配。
A QVeris implementation pattern for FMP-backed agents
FMP 金融 Agent 的 QVeris 实现模式
Keep FMP as a provider-backed capability, not as an arbitrary URL the model can construct. A production flow should separate intent, discovery, inspection, execution, validation, and final synthesis.
把 FMP 作为供应商支持的能力,而不是允许模型任意构造 URL。生产流程应分离意图、发现、检查、执行、验证和最终总结。
Determine whether the user needs a quote, statement, calendar, profile, news item, or multi-source research workflow.
判断用户需要报价、财报、日历、公司资料、新闻,还是多来源研究工作流。
Confirm required parameters, provider notes, result fields, freshness expectations, and cost before calling.
调用前确认必需参数、供应商说明、结果字段、时效预期和成本。
Call the selected capability, validate identity, time, units, period, completeness, and preserve the execution record.
调用选定能力,验证身份、时间、单位、报告期和完整性,并保留执行记录。
Financial Modeling Prep API FAQ
Financial Modeling Prep API 常见问题
Is the Financial Modeling Prep API free?Financial Modeling Prep API 免费吗?
How do I authenticate an FMP API request?FMP API 如何认证?
apikey query parameter to a Stable endpoint. Keep the key in a server-side secret rather than shipping it in browser code.把 API Key 作为 apikey 查询参数添加到 Stable 端点。密钥应存放在服务端,不应打包进浏览器代码。Does FMP provide real-time stock prices?FMP 提供实时股票价格吗?
Does FMP provide an earnings calendar?FMP 提供财报日历吗?
What should an AI agent validate in FMP data?AI Agent 应验证 FMP 数据的哪些内容?
When should I use QVeris with FMP?什么时候应将 QVeris 与 FMP 一起使用?
What are common Financial Modeling Prep alternatives?常见的 Financial Modeling Prep 替代方案有哪些?
Official FMP sources and related QVeris guides
FMP 官方资料与 QVeris 相关指南
Prove one FMP workflow before expanding
先验证一个 FMP 工作流,再逐步扩展
Choose one endpoint, one known symbol, and one expected result. Validate identity, time, units, plan access, error handling, and provenance before adding more datasets or allowing an agent to select capabilities dynamically.
选择一个端点、一个已知代码和一个预期结果。验证证券身份、时间、单位、套餐权限、错误处理和来源后,再增加更多数据集或允许 Agent 动态选择能力。
