All Posts
ComparisonFMP AlternativesFundamentals APIAPI Comparison

Financial Modeling Prep Alternatives for 2026

Financial Modeling Prep alternatives compared on price, free tier, commercial license, and SEC audit trail, from StockFit and EODHD to SEC EDGAR APIs.

Published October 16, 202617 min readStockFit Engineering
Financial Modeling Prep Alternatives for 2026

Financial Modeling Prep is often the first fundamentals API a developer wires up: a free key, more than 150 endpoints, and paid plans from $19 a month billed annually. The reasons teams start looking for Financial Modeling Prep alternatives usually show up later, when the side project becomes a product: the license, the plan tier a specific dataset sits behind, and the first time a customer asks where a number came from.

We build StockFit, one of the seven FMP alternatives below, and we rank it first for SEC-traceable US fundamentals. Every price, limit, and field name in this post was checked against the vendor's own pricing page, documentation, or a live API response on October 16, 2026, and where another provider is the better fit, we say so. For the wider market, see our roundup of the best fundamentals APIs; for a head-to-head on sector metrics, see StockFit vs FMP on key metrics.

Why developers look for Financial Modeling Prep alternatives

To be fair to FMP first: its free Basic plan includes 250 calls a day and more than 150 endpoints, and the paid plans add real-time market data, up to 30 years of historical data from Premium, global coverage on Ultimate, earnings call transcripts, technical indicators, forex, and crypto, with rate limits from 300 to 3,000 calls a minute. For a personal research project, that is a lot of financial data API for the money. The friction points are specific, and each one comes from FMP's own pricing page and documentation.

1. The license is personal by default

FMP's four self-serve plans sit under a “Personal Use” tab. The “Commercial Use” tab is an Enterprise contact form, and the pricing page states: “Displaying or redistributing data sourced from FMP requires a specific Data Display and Licensing Agreement with FMP.” FMP's own plan guide says to contact sales when a workflow needs redistribution rights. If your app shows fundamentals to its users, the self-serve price is not the price you will pay.

2. Each dataset sits behind a different plan

On the free Basic plan, financial statements cover 87 symbols (“AAPL, TSLA, AMZN and 84 more”) at five records per call, and key metrics and ratios are annual-only. Starter ($29 a month, or $19 billed annually) lists “annual fundamentals and ratios” for US listings with up to five years of history. Premium ($69 a month, or $49 billed annually) lists “full fundamentals and ratios,” up to 30 years, and adds UK and Canada coverage. 13F institutional holdings, ETF and mutual fund holdings, earnings call transcripts, and bulk delivery are Ultimate-only, at $139 a month or $99 billed annually. Every plan also carries a trailing 30-day bandwidth cap, from 500 MB on Basic to 150 GB on Ultimate.

3. A row says when, not which filing

FMP's documented income statement response carries cik, filingDate, and acceptedDate on each row, but no SEC accession number. You can usually find the filing with a second lookup on EDGAR by CIK and acceptance time, but one date per row cannot say which filing supplied each value. That matters the first time a number looks wrong, and for any backtest that has to know what was public on a given day. We show what it looks like on a real Apple row below.

What to look for in an FMP alternative

  • A license that matches your use. Personal research, internal tools, and a product that shows data to customers are three different licenses at most vendors. Price the one you actually need.
  • Fundamentals depth per dollar. Quarterly statements, years of history, and symbol coverage on the plan you can afford, not on the plan in the headline.
  • A source pointer on every value. At minimum a filing date; ideally the SEC accession number, form type, and filing date, so a value can be checked on EDGAR and replayed point-in-time without look-ahead bias.
  • Data coverage that matches your universe. US-only is fine for many apps and a deal-breaker for others.
  • The rest of the stack. Prices, corporate actions, insider trades, 13F, ETF holdings, estimates, and transcripts: decide which ones must come from the same vendor.

Financial Modeling Prep alternatives compared

FMP's own row comes first, so the differences are visible at a glance. Prices are monthly list prices; most vendors discount annual billing.

ProviderFree tierFundamentals
on free
Cheapest paid
with fundamentals
Show data in
your product
Source pointer
on statements
Financial Modeling Prep250 calls/day87 symbols$29/mo¹Separate agreementFiling date per row
StockFit300 calls/dayAll US-listed, 1 year$19/mo²From StarterAccession per value
EODHD20 calls/dayNot included$59.99/mo³Custom planFiling date per period
IntrinioFree trialTrial only$150/mo⁴From $333/moFiling date, version type
Alpha Vantage25 calls/day25 calls/day$49.99/moWritten agreementNone
Massive (ex-Polygon)5 calls/minNot included$29/mo⁵Business plansLatest filing date
Finnhub60 calls/minAs-reported only$3,500/mo⁶Through salesAccession per report
SEC EDGAR APIsFree, 10 req/sRaw XBRLFreePublic dataAccession per fact
yes partial or restricted noSource pointer: what a fundamentals row tells you about the SEC filing it came from.

Notes: ¹ FMP Starter covers annual fundamentals for US listings ($19 a month billed annually); FMP lists full fundamentals from Premium at $69 a month ($49 billed annually). ² StockFit Starter ($15 a month billed annually) adds the commercial license and five years of history; the free tier is personal use. ³ EODHD Fundamentals Data Feed, a personal plan; its $399 a month internal-use package does not allow showing data outside your company. ⁴ Intrinio Individual, personal use with no redistribution or display. ⁵ Massive Financials & Ratios add-on, individual use. ⁶ Finnhub All-In-One, billed annually; the free tier includes financials as reported but not standardized statements. All figures checked against each vendor's pricing page and documentation on October 16, 2026.

Same Apple numbers, different audit trail

Here is the difference on a real row. FMP's income statement documentation uses Apple's fiscal 2025 10-K as its example response. Trimmed to the identity fields and a few values, it reads:

json
// FMP: GET /stable/income-statement?symbol=AAPL (documentation example, excerpt)
{
  "date": "2025-09-27",
  "symbol": "AAPL",
  "cik": "0000320193",
  "filingDate": "2025-10-31",
  "acceptedDate": "2025-10-31 06:01:26",
  "fiscalYear": "2025",
  "period": "FY",
  "revenue": 416161000000,
  "generalAndAdministrativeExpenses": 27601000000,
  "sellingAndMarketingExpenses": 0,
  "netIncome": 112010000000,
  "epsDiluted": 7.46
}

StockFit's /api/financials/income-statement returns the same fiscal year like this, pulled live on October 16, 2026 (trimmed, values unaltered):

json
// StockFit: GET /v1/api/financials/income-statement?symbol=AAPL&period=annual&limit=2 (excerpt)
{
  "fiscalYear": 2025,
  "fiscalPeriod": "FY",
  "dateFiled": "2025-10-31",
  "facts": {
    "revenue": 416161000000,
    "sellingAndMarketingExpenses": 19524000000,
    "generalAndAdministrativeExpenses": 8077000000,
    "netIncome": 112010000000,
    "epsDiluted": 7.46,
    "ebit": 133050000000
  },
  "sources": {
    "0000320193-25-000079": {
      "type": "10-K",
      "dateFiled": "2025-10-31",
      "amendment": false,
      "facts": { "revenue": {}, "sellingAndMarketingExpenses": {}, "generalAndAdministrativeExpenses": {}, "netIncome": {}, "epsDiluted": {} }
    }
  },
  "derived": ["costAndExpenses", "amortization", "ebit", "ebitda"]
}

The headline numbers agree to the dollar: $416,161,000,000 of revenue, $112,010,000,000 of net income, and diluted EPS of $7.46, all of which tie to the XBRL in Apple's 10-K, accession 0000320193-25-000079, filed October 31, 2025. Three things differ.

Every value names its filing

The sources map ties each fact to the accession number, form type, filing date, and amendment flag of the filing that supplied it. Pass the accession to /api/filings/search-by-accession-number and you get the document itself:

json
// GET /v1/api/filings/search-by-accession-number?accessionNumber=0000320193-25-000079 (excerpt)
{
  "type": "10-K",
  "accessionNumber": "0000320193-25-000079",
  "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm",
  "dateFiled": "2025-10-31",
  "xbrl": true,
  "amendment": false,
  "periodEndDate": "2025-09-27"
}

A filing date tells you when; an accession number tells you which document, so the value can be checked against Apple's 10-K on SEC EDGAR in one click.

Mapping choices become checkable

FMP's example books the full $27.601 billion of selling, general and administrative expense as generalAndAdministrativeExpenses and reports sellingAndMarketingExpenses as 0. Apple's 10-K XBRL tags the split: $19.524 billion of selling and marketing and $8.077 billion of general and administrative. Both rows sum to the same SG&A total, so a reconciliation check would never flag it, while a ratio like marketing spend over revenue reads 0% on one and 4.7% on the other. Normalization is a judgment call at every vendor, ours included: our ebit is operating income ($133.050 billion) where FMP's example reports $132.729 billion, which is why StockFit lists computed fields in derived instead of passing them off as filed facts. What a source pointer gives you is the ability to check.

Late facts keep their real filing date

The same call returns fiscal 2024 too, and that row cites two filings:

json
// Same call, fiscal 2024 row (excerpt)
{
  "fiscalYear": 2024,
  "fiscalPeriod": "FY",
  "dateFiled": "2024-11-01",
  "facts": { "revenue": 391035000000, "sellingAndMarketingExpenses": 18639000000, "generalAndAdministrativeExpenses": 7458000000 },
  "sources": {
    "0000320193-24-000123": { "type": "10-K", "dateFiled": "2024-11-01", "amendment": false, "facts": { "revenue": {}, "sellingGeneralAndAdministrativeExpenses": {}, "netIncome": {} } },
    "0000320193-25-000079": { "type": "10-K", "dateFiled": "2025-10-31", "amendment": false, "facts": { "generalAndAdministrativeExpenses": {}, "sellingAndMarketingExpenses": {} } }
  }
}

Most of fiscal 2024 comes from the 10-K filed November 1, 2024. The selling and marketing ($18.639 billion) and general and administrative ($7.458 billion) split was first tagged in the 10-K filed October 31, 2025, a year later, and the row says so. A backtest that treats the whole fiscal 2024 row as known on November 1, 2024 would use two numbers that were not public yet. That is the look-ahead trap covered in our guide to point-in-time data for backtesting, and the reason quant teams use our point-in-time fundamentals API.

“What sets StockFit apart is the audit trail. Every fact in the normalized statements carries its source filing and disclosure date, with derived fields called out separately and amendments handled properly. That's exactly what we want for explainable fundamentals deeper in our stack.”

Christopher Gordon, Founder & CEO, Quantum Trade Intelligence

1. StockFit, best for audit-grade US fundamentals you can ship

StockFit parses fundamentals directly from SEC EDGAR XBRL and returns both the normalized statements and the raw XBRL facts through /api/financials/as-reported, with the source map shown above on every row. The free tier is 300 requests a day (50 a minute) for personal use and already covers every US-listed company: income statement, balance sheet, cash flow, as-reported XBRL, EPS and dividend history, and the SEC filings index, with the latest year of history (one annual period and four quarters). The paid plans price by data depth rather than by request rate:

  • Starter, $19 a month ($15 billed annually): the commercial license, 20,000 requests a day, five years of history, plus sector-aware /api/financials/key-metrics, Piotroski and Altman scores, growth rates, revenue and business segmentation, and quarterly N-PORT fund holdings.
  • Stock, $59 a month ($39 billed annually): 20+ years of history and 100,000 requests a day, plus Form 3, 4, and 5 insider transactions, 13F holders and manager portfolios, 13D and 13G owners, executive pay versus performance, peers, IPO and earnings calendars, and the AI economic model with per-claim filing citations.
  • ETF, $59 a month ($39 billed annually): daily ETF holdings, reverse lookup, overlap, flows, fees, and the fund exposure model.
  • Pro, $99 a month ($69 billed annually): everything in Stock and ETF, plus the footnote suite (debt tranches, leases, pensions, buybacks, fair value hierarchy, and more), Congress trades, and 500,000 requests a day.

Quarterly rows carry the same source map. Q4, which no 10-Q reports, is reconstructed from the 10-K minus nine months, and the row says so in sources (Q4-Recon-FY-9M next to the 10-K accession), so a derived Q4 is never passed off as a filed one. We walk through that math in how to calculate Q4 earnings from SEC filings. For product builders, the financial data API for app developers page shows the rest of the surface, and the same data is available to Claude, Cursor, and VS Code through the StockFit MCP server.

Where it falls short of FMP, plainly: US-listed companies only (NYSE, NASDAQ, and NYSE Arca), price history in daily, weekly, and monthly bars rather than intraday or real-time streams, and no earnings call transcripts, analyst estimate history, forex, crypto, or technical indicators. The free tier is personal use, the same restriction FMP, Alpha Vantage, and Finnhub put on theirs.

2. EODHD, best for global fundamentals on a personal plan

EODHD is the closest like-for-like swap if global coverage is why you chose FMP. Its Fundamentals Data Feed plan, $59.99 a month on personal pricing (two months free on annual billing), covers stock and ETF fundamentals worldwide plus US insider transactions, with US history back to 1985 for major companies and back to 2000 for non-US names. The plan allows 100,000 API calls a day, but each fundamentals request costs 10 calls, so the practical ceiling is 10,000 fundamentals requests. The free plan is 20 calls a day with no fundamentals.

EODHD says its fundamentals are collected from financial news providers, company websites, and annual reports, with direct extraction from sec.gov for US filers, and its statement records carry a filing date rather than an accession number. The license is the catch for product builders: the $399 a month commercial internal-use package does not allow displaying data outside your company, and display rights need a custom plan.

3. Intrinio, best for SEC-sourced data with display rights

Intrinio is the SEC-sourced option with the clearest commercial path. Its US fundamentals feed covers standardized and as-reported financial statements back to 2006, sourced directly from the SEC, with metrics, institutional holdings, and insider transactions in the same feed. It takes point-in-time seriously: each standardized statement carries its filing date and a version type (the documentation sample is a restated version), so revised figures are labeled as such. The pricing reflects that. The Individual plan is $150 a month for personal use only, with no redistribution or display, and the Startup plan that adds commercial use and display rights starts at $333 a month, steps to $666 after six months, and reaches $999 a month after a year, billed quarterly. Enterprise starts at $1,250 a month.

4. Alpha Vantage, best free key for prototypes

Alpha Vantage's free key is the quickest way to prototype: 25 requests a day across most datasets, including normalized income statements, balance sheets, and cash flows, and unlimited requests for verified open-source and educational projects. Premium plans price by rate, from $49.99 a month for 75 requests a minute to $249.99 for 1,200, with no daily cap. Two limits matter for an FMP replacement: statement rows carry fiscalDateEnding and reportedCurrency but no filing date or accession number (we checked the live demo response), and the terms grant a personal, non-commercial license unless you agree otherwise in writing. Its strength is market data: it is a Nasdaq-licensed provider of real-time and 15-minute delayed US quotes on premium plans. We compared it in depth in Alpha Vantage alternatives.

5. Massive (formerly Polygon.io), best when price data comes first

Polygon.io became Massive on October 30, 2025, and existing APIs and keys carried over. It is a market data API first: the free Stocks Basic plan is 5 calls a minute with two years of end-of-day data, and the paid stock plans run from $29 to $199 a month with unlimited calls, flat files, and WebSockets. Fundamentals are an add-on: income statements, balance sheets, cash flows, and ratios through the $29 a month Financials & Ratios expansion or bundled into the $199 Stocks Advanced plan, updated end of day with records back to March 29, 2009, on individual-use licenses.

Its documentation is candid about provenance: filing_date is “the date of the most recent SEC filing that included this period's data. This is not necessarily the date this period was originally filed.” For point-in-time work you would join its EDGAR index endpoint yourself. Massive has also added SEC filings datasets (13F, Forms 3 and 4, 10-K sections, 8-K text) to its docs. If prices and trades are the core of your app and fundamentals are secondary, it is the right shape.

6. Finnhub, best for estimates and global data on an enterprise budget

Finnhub's free tier is more useful for fundamentals than its reputation suggests: 60 calls a minute on US data, including financials as reported, where each report carries its SEC accession number, form, and filing dates, plus key metrics and the SEC filings feed. Standardized statements, ownership, and dividends are not on it. Everything else sits in one All-In-One plan at $3,500 a month, billed annually: 30+ years of standardized statements (annual and quarterly), global coverage, ownership, executive compensation, 20+ years of EPS and revenue estimates with five years forward, and tick-level US market data.

There is no smaller fundamentals plan in between, and both listed plans carry a “Personal Use. Terms apply” license, so commercial terms go through sales. If you need 20+ years of consensus estimates alongside global fundamentals, it is built for exactly that; for fundamentals alone, it is the most expensive option here.

7. SEC EDGAR APIs, the free primary source

If you can build the normalization layer yourself, the primary source is free. SEC's data.sec.gov APIs need no API key, return JSON for every filer's submission history and the XBRL facts from 10-K, 10-Q, 8-K, 20-F, 40-F, and 6-K filings, and update in real time as filings are disseminated, with a nightly bulk ZIP. Every fact carries its accession number, form, and filing date, and SEC's website policy lets you copy and redistribute the information without permission.

The work is everything a vendor does for you: mapping each company's tags onto one schema (Apple reports revenue as RevenueFromContractWithCustomerExcludingAssessedTax), building the quarters no filing reports, and staying under SEC's fair-access limit of 10 requests per second with a declared User-Agent. The XBRL endpoints also include only standard-taxonomy facts that apply to the entire filing entity, so segment breakdowns and company-specific extension tags are out of reach without parsing the filings themselves. Our guide to turning XBRL into JSON covers that build.

Migrating from FMP: an endpoint map

If FMP is already wired into your code, most calls have a one-to-one StockFit endpoint. The table shows which plan each needs on both sides, from FMP's plan matrix and StockFit's tier list as of October 16, 2026, and it cuts both ways: FMP includes insider trades, Congress trades, and peers on cheaper plans than StockFit, while StockFit includes statements, as-reported data, 13F, and ETF holdings on cheaper plans than FMP.

DatasetFMP endpointFMP planStockFit endpointStockFit plan
Income, balance sheet, cash flow/stable/income-statementBasic (87 symbols), Starter (US)/api/financials/income-statementFree (1 year), Starter (5 years), Stock (20+ years)
As-reported statements/stable/income-statement-as-reportedStarter (Basic: annual, 87 symbols)/api/financials/as-reportedFree
Key metrics and ratios/stable/key-metrics, /stable/ratiosStarter (annual only), Premium/api/financials/key-metricsStarter
Piotroski and Altman scores/stable/financial-scoresBasic (87 symbols), Starter (US)/api/financials/scoresStarter
Revenue segmentation/stable/revenue-product-segmentationStarter (annual only), Premium/api/footnotes/revenue-segmentationStarter
Insider trades (Form 4)/stable/insider-trading/searchStarter/api/insider-transactionsStock
13F manager holdings/stable/institutional-ownership/extractUltimate/api/ownership/portfolioStock
ETF holdings/stable/etf/holdingsUltimate/api/fund/holdingsStarter (N-PORT), ETF (daily)
Executive compensation/stable/governance-executive-compensationPremium (87 symbols below it)/api/executives/compensationStock
Peer companies/stable/stock-peersBasic/api/company/peersStock
Senate and House trades/stable/senate-trades, /stable/house-tradesStarter/api/congress/senate/tradesPro
SEC filings by company/stable/sec-filings-search/symbolStarter (Basic: 1 year)/api/filingsFree
End-of-day prices/stable/historical-price-eod/fullBasic (87 symbols), Starter (US)/api/price/historyFree (2 years), Starter (5 years), Stock (full)
Earnings call transcripts/stable/earning-call-transcriptUltimateNo equivalentNot offered
Forex, crypto, technical indicatorsSeveralVaries by datasetNo equivalentNot offered

The request itself changes in two places, the base URL and the auth header:

bash
# FMP
curl "https://financialmodelingprep.com/stable/income-statement?symbol=AAPL&period=quarter&apikey=$FMP_API_KEY"

# StockFit
curl "https://api.stockfit.io/v1/api/financials/income-statement?symbol=AAPL&period=quarter&limit=4" \
  -H "Authorization: Bearer $STOCKFIT_API_KEY"

Plan for two shape changes. StockFit nests values under facts with sources and derived beside them, and a few field names differ: FMP's researchAndDevelopmentExpenses is researchAndDevelopment, and weightedAverageShsOutDil is weightedAverageSharesOutstandingDiluted. FMP returns fiscalYear as a string and the period in period; StockFit returns fiscalYear as a number and the period in fiscalPeriod.

Which FMP alternative should you choose?

  • Audit-grade US fundamentals you can show in your product, on a small budget: StockFit, commercial from $19 a month.
  • Global fundamentals for personal research: EODHD.
  • SEC-sourced fundamentals with display rights and an enterprise budget: Intrinio.
  • A free key to prototype with: Alpha Vantage, or StockFit's free tier if you need every US-listed company.
  • Prices, trades, and quotes first, fundamentals second: Massive.
  • Consensus estimates with global fundamentals in one plan: Finnhub.
  • No vendor at all, and time to build the pipeline: the SEC EDGAR APIs.

And stay on FMP if your app depends on earnings call transcripts, forex, crypto, or technical indicators alongside fundamentals: FMP covers them, and StockFit does not offer those datasets at all. If an audit trail is the reason you are looking, and run the Apple call above against your own account.

FAQ

Q.What is the best alternative to Financial Modeling Prep?
It depends on why you are leaving. For US fundamentals with an SEC audit trail and a commercial license from $19 a month, StockFit. For global fundamentals on a personal plan, EODHD. For SEC-sourced data with display rights on an enterprise budget, Intrinio. For a free prototyping key, Alpha Vantage. For price data first, Massive. For estimates plus global coverage, Finnhub. For no vendor at all, the SEC EDGAR APIs.
Q.Is there a free alternative to Financial Modeling Prep?
Yes. StockFit's free tier gives 300 requests a day for personal use, with statements, as-reported XBRL, and the SEC filings index for every US-listed company and the latest year of history. SEC's own data.sec.gov APIs are free with no key but return raw XBRL you normalize yourself. Alpha Vantage's free key allows 25 requests a day. FMP's own free Basic plan offers 250 calls a day, with financial statements limited to 87 symbols.
Q.Can I use Financial Modeling Prep data in a commercial app?
Not on a self-serve plan alone. FMP lists its Basic, Starter, Premium, and Ultimate plans under Personal Use, and its pricing page states that displaying or redistributing data sourced from FMP requires a specific Data Display and Licensing Agreement, arranged through its Enterprise sales team. StockFit's paid plans, from the $19 a month Starter plan, include a commercial license to use the data in your own product.
Q.How much does Financial Modeling Prep cost in 2026?
As of October 16, 2026, FMP's personal plans are Basic (free, 250 calls a day), Starter ($29 a month, or $19 a month billed annually), Premium ($69 a month, or $49 billed annually), and Ultimate ($139 a month, or $99 billed annually). 13F holdings, ETF holdings, earnings call transcripts, and bulk delivery are included only in Ultimate. Commercial display and redistribution are priced through Enterprise sales.
Q.Does Financial Modeling Prep include SEC accession numbers?
Not in its documented statement responses. The stable income statement example carries cik, filingDate, and acceptedDate on each row but no accession number, and the as-reported example carries no filing reference at all. StockFit maps every value to the accession number, form type, and filing date of the filing that supplied it.
Q.Which financial data APIs include SEC accession numbers?
Of the APIs compared here, StockFit maps an accession number to every value on its normalized statements, SEC's own data.sec.gov APIs attach one to every raw XBRL fact, and Finnhub includes one per report on its financials-as-reported endpoint. FMP, EODHD, Intrinio, and Massive put a filing date rather than an accession number on their statement rows, and Alpha Vantage puts neither.
Q.Which Financial Modeling Prep plan includes 13F and ETF holdings?
Only Ultimate, at $139 a month or $99 a month billed annually. On StockFit, 13F institutional holders and manager portfolios come with the Stock plan ($59 a month, $39 billed annually), and quarterly N-PORT fund holdings start on the Starter plan ($19 a month, $15 billed annually).
Q.How do I migrate from FMP to StockFit?
Swap the base URL for https://api.stockfit.io/v1/api, send your key in an Authorization: Bearer header, and map each endpoint with the table in this post (for example, /stable/income-statement becomes /api/financials/income-statement). Expect two shape changes: values are nested under facts with a sources map beside them, and a few field names differ, such as researchAndDevelopmentExpenses becoming researchAndDevelopment.

Ready to build?

Free API key, no credit card.