Financial Modeling Prep
Financial Modeling Prep
REST API for financial statements, stock prices, analyst estimates, and market data. Free tier available with 250 API calls per day.
Coverage
Paid plans: US stocks (Starter), plus UK and Canada (Premium), global (Ultimate); also forex, crypto, financial statements, analyst estimates and economic data. Free Basic plan: end-of-day data only (no intraday), up to 5 years of history. Most stock endpoints (prices, statements, quotes, market cap) are limited to a sample of about 87 US symbols ("AAPL, TSLA, AMZN and 84 more"). Statements return at most 5 periods per call, and key metrics and ratios are annual only. The free plan also covers about 97 crypto pairs, 10 forex pairs, 9 indexes and 4 commodities.
Verdict
Good for learning and personal research. FMP's free Basic plan falls under its Personal Use license: individuals only, "strictly for their own personal, non-business and non-commercial purposes", with no use on behalf of a company. Showing FMP data on a website, app or other multi-user product requires a separate Data Display and Licensing Agreement with FMP, even if the product is free or internal. Not suitable for company work, client tools or anything public-facing. 250 calls/day and up to 5 years of end-of-day data are enough to try the API on a small sample of large US stocks. Full US coverage starts at the $29/mo Starter plan.
Get the free weekly email
Free weekly email of newly verified free data. Unsubscribe by emailing us.
By entering your email and clicking Subscribe, you agree to receive the Signal Lab weekly email from Quantum Data Technologies Ltd., 3200-650 West Georgia Street, Vancouver, BC V6B 4P7, Canada (signal-lab@qdt.ai). You can unsubscribe at any time: reply "unsubscribe" to any email or write to signal-lab@qdt.ai. See our Privacy Policy.
Use in your agent
Load FMP end-of-day prices into pandas and Parquet for personal use. Checked against the provider's documentation on Oct 29, 2026.
Access
- A Basic API key is required. Put it in FMP_API_KEY.
- The Personal Use license is limited to individual, non-business, non-commercial use.
Request
curl 'https://financialmodelingprep.com/stable/historical-price-eod/full?symbol=AAPL&from=2026-10-01&to=2026-10-29&apikey='$FMP_API_KEYFormat
JSON array with date, OHLC, volume, change, changePercent and vwap fields.
Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
"""FMP end-of-day AAPL prices -> pandas -> Parquet. Personal use."""
import os
import requests
import pandas as pd
params = {"symbol": "AAPL", "from": "2026-10-01", "to": "2026-10-29",
"apikey": os.environ["FMP_API_KEY"]}
r = requests.get("https://financialmodelingprep.com/stable/historical-price-eod/full",
params=params, timeout=30)
r.raise_for_status()
df = pd.DataFrame(r.json())
df["date"] = pd.to_datetime(df["date"])
df = df.sort_values("date")
df.to_parquet("fmp_aapl_eod.parquet", index=False)
print(len(df), "rows", df["date"].min().date(), "to", df["date"].max().date())Needs a personal API key; not run.
Limits
- Basic: 250 calls per day and end-of-day data.
- The free plan has a 500 MB trailing-30-day bandwidth limit.
Quirks
- Most stock endpoints on Basic are limited to a sample symbol set.
- Use the stable endpoint family; legacy endpoint shapes differ.
- Display or multi-user use needs a separate data agreement.
Terms and attribution
- Personal Use is for individuals and strictly personal, non-business and non-commercial purposes.
- Sharing an API key is prohibited.
- Display or redistribution requires the applicable agreement.
Sources
- https://site.financialmodelingprep.com/developer/docs/pricing: “250 Calls / Day”
- https://site.financialmodelingprep.com/terms-of-service: “strictly for their own personal, non-business and non-commercial purposes”
- https://site.financialmodelingprep.com/terms-of-service: “Sharing your account login or API Key”
Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer