The Best Financial Data APIs for AI Workflows, Compared
Financial Modeling Prep, Fiscal.ai, Alpha Vantage, Finnhub, Polygon/Massive, EODHD and SEC EDGAR compared on what matters when Claude is making the calls: rate-limit shape, standardized fundamentals, MCP access and licensing. Plus a test to run before you commit.
This post contains affiliate links. If you sign up through one, we may earn a commission at no extra cost to you. How we handle this.
Most "best financial data API" lists are written for someone building an app. If Claude Code is the one making the calls, the criteria change. An agent loops, retries and fetches ten companies when you asked for one. It will find the edges of a rate limit faster than you would, and it will quietly trust whatever field name looks right. So the useful questions are different: how does the limit work, how standardized are the fundamentals, can the data arrive over MCP, and does the licence allow what you are doing?
We compare the main options on those terms. One note on method: we have built working workflows on Financial Modeling Prep and Fiscal.ai for this site. For the others, we are relying on published documentation and third-party summaries, and prices and limits change often. That is why the post ends with a test you can run yourself instead of a verdict.
What Matters When an Agent Is Calling
- Rate-limit shape. A daily cap (say 250 calls a day) rewards caching and punishes exploration. A per-minute cap lets you spend freely but stalls bursts. Know which one you have before you hand Claude a watchlist.
- Standardized fundamentals. As-reported statements differ across companies. A provider that standardizes them saves you the work, and you are trusting their standardization.
- MCP or plain REST. An MCP server lets Claude discover and call tools directly. REST is more work to set up and easier to cache and audit.
- Licence. Free tiers are often personal and non-commercial. Redistribution, client work and published output can trigger a different plan.
- Coverage and history. Exchanges, years of history and quarterly versus annual data vary by plan, and are the things most likely to block you after you have started.
New Claude workflows for finance professionals, every week
One email a week with the newest playbooks. Free, like everything here.
No spam. Unsubscribe anytime.
The Comparison
Figures below come from provider pages and third-party summaries as of October 2026. Treat them as orientation and confirm on each provider's pricing page.
| Provider | Best for | Free tier | Paid from (approx.) | The catch |
|---|---|---|---|---|
| FMP | Statements, ratios and DCF data behind one key | 250 calls/day, no card | $22/mo (billed annually) | History and coverage depend on plan. Key travels in the URL. |
| Fiscal.ai | Standardized financials and transcripts over hosted MCP | Free plan with limited coverage and calls; trial available | Paid plans; confirm what API and MCP access each includes | Free coverage is large caps. Check your universe. |
| Alpha Vantage | Prices, technicals and macro series | 25 requests/day, 5/min | About $50/mo for 75/min | Free daily cap is tight for any loop. Real-time US data needs an entitlement. |
| Finnhub | Quotes, news and basic fundamentals | Reported near 60 calls/min, personal use | Fundamentals about $50/mo per market | Free key is non-commercial. Free-tier limits vary by source. |
| Polygon.io (now Massive) | Market data: prices, trades, options | 5 calls/min, end-of-day, about 2 years | About $29/mo | Fundamentals are not the focus. Financials sit on the top tier. |
| EODHD | Global end-of-day prices and fundamentals | 20 calls/day, end-of-day only | Fundamentals about $60/mo | Free tier has no fundamentals. Sources quote the fundamentals price in different currencies. |
| SEC EDGAR | As-reported US filings | Free, no key, about 10 requests/sec | Free | No prices or EV, and tags vary between companies. You standardize. |
| yfinance | Prototyping | Free | Not applicable | Unofficial and can break. Fine to learn on, risky to rely on. |
Two notes on this table. A few providers are reported to offer MCP servers (Alpha Vantage and FMP among them), but we haven't confirmed the endpoints or terms for those, so check their documentation. Fiscal.ai's hosted MCP is the one we have used directly. And Koyfin isn't in the table because it isn't an API: it is an analysis platform, and its fundamentals can't be exported, which is the reason it plays a screening role in our workflows and not a data-feed role.
Which One for Which Job
Fundamentals-driven models: DCF, comps, screening
FMP is the default we reach for, since statements, ratios and a DCF cross-check sit behind one key and a free tier lets you build before paying. See the DCF walkthrough and the comps workflow. The DCF Model Builder playbook then turns the data into a workbook.
Research notes that need transcripts and standardized financials together
Fiscal.ai over MCP, because the transcript and the matching statements arrive in the same session. It is the setup in our earnings note and earnings season posts.
Price history, technicals, intraday
A market-data specialist such as Polygon/Massive, or Alpha Vantage for lighter needs. These aren't where you build a valuation.
Verifying anyone else's numbers
SEC EDGAR. It is free, it is the source, and a spot-check against it is how you find out whether a vendor's standardization is right for your company.
Learning and throwaway analysis
The Financial Data Collector playbook uses yfinance and tags every field with its source or marks it missing. It is a good free starting point, with the reliability caveat above.
The Test to Run Before You Commit
Pick five companies you know well, including one awkward one (a recent IPO, a foreign filer or a company with a restatement). Pull the same four figures for the same period from your candidate APIs and from the filings: revenue, operating income, total debt and cash. Then compare them. This function does the comparison:
from statistics import median
def spread(values, tol=0.01):
"""values: {source: number}. Flags disagreement beyond tol
(a fraction of the median)."""
nums = {k: v for k, v in values.items() if v is not None}
if len(nums) < 2:
return {"status": "single-source", "sources": sorted(nums)}
m = median(nums.values())
worst = max(abs(v - m) / abs(m) for v in nums.values()) if m else None
return {"status": "ok" if worst is not None and worst <= tol else "disagree",
"median": m,
"worst": round(worst, 4) if worst is not None else None}On sample numbers, three sources within 0.4% of each other come back ok; a source 8% off the median comes back disagree, and a single source is reported as single-source and not as agreement. Real disagreements usually trace to definitions (does debt include leases?), to period or restatement differences, or to a currency mismatch, and each is worth knowing about before you build on that provider.
For AAPL, NKE, and [three more tickers], fetch revenue, operating income, total debt and cash for the last fiscal year from each API I have a key for and from the SEC filings. Run spread() on each field. For every disagreement over 1%, tell me which source differs and the most likely reason. Don't reconcile by choosing a number; list what you found.
Also test the failure behavior. Ask for a ticker the provider doesn't cover, and deliberately exceed the rate limit once. You want a clear error and a Claude that stops, not a silent empty result and a model built on nothing. The caching helper in our DCF post exists for exactly this reason.
Putting the Data on a Dashboard Safely
If the end product is a dashboard, the Interactive Dashboard Builder produces a self-contained HTML file with charts and filters that opens in any browser. One rule applies to API-backed dashboards: fetch the data in a script and embed only the results. Never put an API key in the HTML. Those files get emailed and uploaded, and a key in the source is a key you have published. Tell Claude so, and check the file before you share it.
The Short Version
- Choose on rate-limit shape, standardization, MCP access and licence, not on the longest endpoint list.
- Use FMP or Fiscal.ai for fundamentals-driven work, a market-data specialist for prices, and SEC EDGAR to check anyone's numbers.
- Run the five-company test and compare to the filings before you build on a provider.
- Keep keys out of URLs you log and out of any HTML you share.
This article is for education and isn't investment advice. Prices, limits and licence terms are from provider pages and third-party summaries as of October 2026, change often, and should be confirmed on each provider's site before you rely on them.