QVeris

Finance & Market Data

Financial Modeling Prep API: Pricing, Limits & Examples

Compare Financial Modeling Prep API pricing, free-tier limits, endpoints, code examples, validation checks, and production integration patterns for AI agents.

Published: April 12, 2026 · By the QVeris Team

An analyst reviewing financial charts and source data
An analyst reviewing financial charts and source data
TL;DR

FMP is broad and easy to test, but production fit depends on plan access and data semantics

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.

BEST FOR
Prototypes and financial research apps

A practical fit when one API must cover fundamentals, prices, calendars, profiles, and news.

CHECK FIRST
Plan-specific access and licensing

Do not assume every documented endpoint, market, history window, or display use is included in every plan.

AGENT RULE
Keep evidence with every result

Return source, symbol, exchange, currency, event time, fiscal period, units, and freshness with the data.

Who should use the Financial Modeling Prep API?

DEVELOPERS
Dashboards, screeners, and valuation tools

Teams that need familiar REST endpoints for profiles, quotes, statements, metrics, and calendars.

DATA TEAMS
Research and monitoring pipelines

Analysts building scheduled earnings, filings, news, price, or fundamental-data workflows.

AI TEAMS
Financial agents with controlled tools

Agent builders that can validate structured results before a model summarizes or acts on them.

Not a universal fit: verify exchange-grade latency, tick-level streaming, entitlements, and redistribution separately when building execution or public-display products.

Financial Modeling Prep pricing and free-tier limits

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.

PlanListed priceCall limitBest starting point
BasicFree250 calls/dayTesting, learning, personal prototypes, end-of-day and reference data
Starter$22/month*300 calls/minuteUS fundamentals, historical prices, news, crypto, and forex
Premium$59/month*750 calls/minuteLonger history, more regions, intraday charts, indicators, and corporate calendars
Ultimate$149/month*3,000 calls/minuteGlobal 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.

What data and endpoints does the FMP API provide?

QUOTE
Quotes and historical prices
Docs

Use quote, batch quote, end-of-day history, and intraday chart endpoints for market snapshots and time series.

Validate: venue, delay, session, adjustment
FUNDAMENTALS
Statements, ratios, and metrics
Docs

Retrieve income statements, balance sheets, cash flows, key metrics, ratios, growth, and reported financials.

Validate: period, currency, units, restatements
CALENDARS
Earnings and corporate events
Docs

Track earnings, dividends, splits, IPOs, and economic releases. FMP lists earnings-calendar refreshes every three hours.

Validate: timezone, announced date, update time
CONTEXT
Profiles, news, filings, and transcripts
Docs

Add company identity, market capitalization, industry, news, press releases, SEC material, analyst data, and transcripts where the plan permits.

Validate: source, publication time, entitlement

Step-by-step FMP API implementation

STEP 1
Choose one Stable endpoint

Start with a narrow operation such as company profile, quote, income statement, or earnings calendar.

STEP 2
Keep the API key server-side

Load it from an environment variable and append it as the apikey query parameter.

STEP 3
Validate before normalizing

Distinguish HTTP errors, FMP error payloads, empty results, incomplete pages, and valid records.

STEP 4
Attach evidence

Preserve endpoint, provider, requested symbol, retrieval time, source timestamps, and plan-dependent warnings.

STEP 5
Cache by data class

Quotes, calendars, profiles, statements, and transcripts should not share one cache TTL.

STEP 6
Expose a narrow agent tool

Give the model typed operations and bounded parameters rather than arbitrary URLs or raw API keys.

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

CheckWhat to verifyFailure if skipped
IdentitySymbol, exchange, CIK, instrument typeWrong company or listing
TimeEvent time, retrieval time, timezone, market sessionOld data described as current
Financial periodFiscal year, quarter, filing date, accepted dateMixing annual and quarterly values
UnitsCurrency, scale, percentage, per-share basisMillion-versus-unit or currency errors
CompletenessNulls, pagination, record limits, historical windowPartial results that look complete
Market semanticsReal-time or delayed, adjusted or unadjusted, venue and coverageInvalid comparisons and misleading alerts

Direct FMP integration, MCP, or QVeris routing?

ApproachUse whenYou own
Direct FMP APIThe application has a fixed set of known endpoints and one primary provider.Authentication, client code, validation, retries, caching, and schema changes.
FMP MCP serverAn MCP-compatible client needs FMP-backed tools inside a controlled assistant workflow.Server operation, credentials, tool schemas, policy, and provider-specific errors.
QVeris capability routingThe agent must discover, inspect, compare, and call across multiple financial capabilities.Business policy and validation rules; QVeris provides a common discovery and execution layer.

Security, cost, and latency controls

SECURITY
Protect keys and restrict tools
  • Keep FMP keys in server-side secret storage.
  • Redact URLs and query strings from logs.
  • Allowlist endpoints and bound symbols, dates, and page sizes.
COST
Budget calls and bandwidth
  • 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.
LATENCY
Define freshness by workflow
  • Use separate TTLs for quotes, calendars, profiles, and statements.
  • Set connection and total timeouts.
  • Do not silently serve stale cache after a provider failure.

Troubleshooting common FMP API failures

SymptomLikely causeFirst action
401 / 403Invalid key, unavailable endpoint, or plan restrictionTest the key in the official docs and inspect endpoint plan access.
429Daily, per-minute, or workflow retry limit reachedStop automatic retries, add backoff, cache, and inspect usage.
Empty arrayWrong symbol, unsupported market, no record, or restricted historyResolve the instrument first and test a known symbol and date.
Values disagreeDifferent fiscal period, currency, units, adjustment, or update timeCompare raw records and metadata before changing prompts.
Agent gives a confident wrong answerThe tool returned data without evidence, warnings, or validation statusReturn provenance and validation fields, and block synthesis on failed checks.

FMP alternatives: choose by the exact workflow

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.

POLYGON

Compare fundamentals-oriented breadth with market-data depth, latency, and asset coverage.

ALPHA VANTAGE

Compare free access, technical indicators, fundamentals, history, and production limits.

FINNHUB

Compare real-time workflows, news, alternative signals, fundamentals, and commercial fit.

A QVeris implementation pattern for FMP-backed agents

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.

1 · DISCOVER
Resolve the financial task

Determine whether the user needs a quote, statement, calendar, profile, news item, or multi-source research workflow.

2 · INSPECT
Check schema, access, and evidence

Confirm required parameters, provider notes, result fields, freshness expectations, and cost before calling.

3 · CALL + VALIDATE
Execute with bounded inputs

Call the selected capability, validate identity, time, units, period, completeness, and preserve the execution record.

Financial Modeling Prep API FAQ

Is the Financial Modeling Prep API free?
FMP offers a Basic plan with 250 calls per day, end-of-day historical data, profile and reference data, and access to more than 150 endpoints. Endpoint access, history, licensing, and bandwidth vary by plan, so verify the current pricing page before deployment.
How do I authenticate an FMP API request?
Add the API key as the apikey query parameter to a Stable endpoint. Keep the key in a server-side secret rather than shipping it in browser code.
Does FMP provide real-time stock prices?
FMP documents real-time quote endpoints, but access, coverage, delay, and redistribution rights depend on the selected plan and intended use. Verify the plan and feed semantics instead of relying on the endpoint label alone.
Does FMP provide an earnings calendar?
Yes. The Stable Earnings Calendar endpoint covers upcoming and historical announcements with fields such as dates, estimated EPS, and actual EPS. FMP lists an approximately three-hour update cycle; plan access should be verified.
What should an AI agent validate in FMP data?
Validate symbol and exchange, currency and units, event or filing timestamp, fiscal period, adjustment policy, nulls, pagination, source, and freshness before allowing the model to summarize the result.
When should I use QVeris with FMP?
Use direct FMP integration for a fixed set of known endpoints. Use QVeris when an agent needs runtime capability discovery, schema inspection, multi-provider routing, fallback, and an auditable execution record.
What are common Financial Modeling Prep alternatives?
Common alternatives include Polygon, Alpha Vantage, and Finnhub. Compare coverage, freshness, history, rate limits, licensing, and the exact endpoints required by the application.

Official FMP sources and related QVeris guides

START SMALL

Prove one FMP workflow before expanding

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.

A verified profile link does not guarantee entitlement, field availability, price or current execution success; inspect the current contract before calling.