Financial Modeling Prep
- Free allowance
- Basic plan USD 0/month: 250 API calls per day, end-of-day historical data, profile and reference data, up to 5 years of annual statements for US companies, 500MB of bandwidth over a trailing 30 days
- Verdict
- caveatusable, with a named limit or an unprobed read path
- Cost
- free tier
- Identity
- emailno card, no phone
- Binding limit
- request-rate250 API calls per day on Basic
- Evidence
- documented34 sources; a first-party page was read and the sentence quoted
- Freshness
- stale on 2026-12-04checked 2026-11-03 (live); stale on 2026-12-04
| Free tier | Basic plan USD 0/month: 250 API calls per day, end-of-day historical data, profile and reference data, up to 5 years of annual statements for US companies, 500MB of bandwidth over a trailing 30 days unit requests; metered on request-count; Many endpoints on Basic are limited to a sample symbol set (AAPL, TSLA, AMZN and 84 more) or to US exchanges. There is no free trial of the paid plans. The cheapest paid plan is Starter at USD 19.00/month billed annually with 300 calls per minute and 20GB of trailing 30-day bandwidth; bulk endpoints come with Ultimate at USD 99.00/month billed annually. |
|---|---|
| Price | none stated |
| Limits |
Symbol scope: many Basic endpoints answer only for AAPL, TSLA, AMZN and 84 more, or for US exchanges. History window: 5 years. Bulk path: bulk endpoints are an Ultimate feature (paid); the FAQ paces them at once per 10 seconds, and profile or ETF bulk at once per 60 seconds. |
| Binding | request-rate 250 calls a day is reached before 500MB a month for quote and statement calls; the sample symbol set narrows what those calls can reach. |
| Identity | email The create-account form asks for an email and a password, or a Google sign-in; the page says no card is required. |
| Egress | 500MB of API bandwidth over a trailing 30 days on the free plan; 20GB on Starter, 50GB on Premium, 150GB on Ultimate free allowance: 500MB per trailing 30 days |
| Per-object cap | not stated per call; history reaches 5 years on Basic and Starter |
| Interface | rest GET https://financialmodelingprep.com/stable/... with ?apikey= on every request; a call with the key demo answered HTTP 401 Invalid API KEY, so no keyless or demo route was found. endpoint: https://financialmodelingprep.com/stable |
| Tooling | curl or any HTTP client |
| Composes with | Statements and ratios for a sample of large US names at 250 calls a day; for prices it sits beside Tiingo's deeper end-of-day history, and FRED covers the macro side. |
| Reliability | A call past the rate answers HTTP 429; bandwidth is counted over a trailing 30 days rather than reset on a date. |
| Notes | 250 calls a day with no card, but the free plan reaches many endpoints only for a sample of large symbols, and history stops at 5 years; bulk delivery is paid. |
| Evidence note | documented The daily calls, bandwidth, symbol scope and signup fields are documented on the pricing, FAQ and register pages. A probe measured that the demo key is refused with HTTP 401. The 429 status is documented; the daily-limit body, its reset moment and the symbols that answer outside the sample set need a free key to measure (unverified: behind a sign-up). |
| Parsed numbers |
|
Evidence 34
| date | source | what it proved |
|---|---|---|
| 2026-10-31 | site.financialmodelingprep.com/pricing-plans | Basic allows 250 calls per day |
| 2026-10-31 | site.financialmodelingprep.com/pricing-plans | Basic includes end-of-day historical data |
| 2026-10-31 | site.financialmodelingprep.com/pricing-plans | history reaches 5 years on Basic and Starter and 30+ years above |
| 2026-10-31 | site.financialmodelingprep.com/pricing-plans | the free plan has 500MB of bandwidth over a trailing 30 days |
| 2026-10-31 | site.financialmodelingprep.com/pricing-plans | many endpoints are limited to a sample symbol set |
| 2026-10-31 | site.financialmodelingprep.com/pricing-plans | Starter is USD 19.00/month billed annually |
| 2026-10-31 | site.financialmodelingprep.com/pricing-plans | Starter allows 300 calls per minute |
| 2026-10-31 | site.financialmodelingprep.com/pricing-plans | Ultimate is USD 99.00/month billed annually |
| 2026-10-31 | site.financialmodelingprep.com/pricing-plans | bulk and batch delivery is listed under the Ultimate plan |
| 2026-10-31 | site.financialmodelingprep.com/faqs | the free plan allows 250 requests per day and 5 years of annual statements for US companies |
| 2026-10-31 | site.financialmodelingprep.com/faqs | bulk endpoints are paced at once per 10 seconds, profile and ETF bulk at once per 60 seconds |
| 2026-10-31 | site.financialmodelingprep.com/faqs | there is no free trial of the paid plans |
| 2026-10-31 | site.financialmodelingprep.com/register | the free key needs no card |
| 2026-10-31 | site.financialmodelingprep.com/register | the create-account form has an email field |
| 2026-10-31 | site.financialmodelingprep.com/register | the create-account form has a password field |
| 2026-10-31 | site.financialmodelingprep.com/register | a Google sign-up is offered |
| 2026-10-31 | site.financialmodelingprep.com/terms-of-service | received data, cached data included, is deleted when the agreement ends |
| 2026-10-31 | site.financialmodelingprep.com/terms-of-service | not published |
| 2026-10-31 | site.financialmodelingprep.com/developer/docs/quickstart | every request carries the key as an apikey parameter |
| 2026-10-31 | site.financialmodelingprep.com/terms-of-service | the terms anticipate FMP data held in the customer's storage locations |
| 2026-10-31 | site.financialmodelingprep.com/pricing-plans | not published |
| 2026-10-31 | site.financialmodelingprep.com/developer/docs/quickstart | a call past the rate limit answers HTTP 429 |
| 2026-10-31 | probe: https://financialmodelingprep.com/stable/quote?symbol=AAPL&apikey=demo | the demo key answered HTTP 401 |
| 2026-10-31 | probe: https://financialmodelingprep.com/stable/quote?symbol=AAPL&apikey=demo | the API refuses the demo key and points to a free key |
| 2026-11-02 | site.financialmodelingprep.com/faqs | bandwidth is a rolling 30-day limit with no restore date |
| 2026-11-02 | site.financialmodelingprep.com/developer/docs/changelog | keys over the bandwidth limit are restricted |
| 2026-11-02 | site.financialmodelingprep.com/how-to/five-key-steps-to-inte | the 250 daily requests reset daily |
| 2026-11-02 | site.financialmodelingprep.com/developer/docs/quickstart | HTTP 429 is the rate-limit answer |
| 2026-11-02 | site.financialmodelingprep.com/faqs | a request with many symbols or dates counts as one call |
| 2026-11-02 | github.com/JerBouma/FinanceToolkit/discussions/171 | a key over the bandwidth limit received this message |
| 2026-11-02 | pypi.org/pypi/parsimony-fmp/json | a third party reports 403 or 402 for a plan restriction |
| 2026-11-02 | pypi.org/pypi/parsimony-fmp/json | the sample symbol list is not published |
| 2026-11-02 | pypi.org/pypi/parsimony-fmp/json | an unknown symbol answers 200 with an empty list |
| 2026-11-02 | site.financialmodelingprep.com/faqs | the free plan is unchanged: 250 requests a day |
More fields 6
| bulk path | bulk endpoints on the Ultimate plan only (paid); no bulk path on Basic |
|---|---|
| history depth | 5 years on Basic and Starter; 30+ years on Premium and Ultimate |
| symbol scope | many Basic endpoints limited to AAPL, TSLA, AMZN and 84 more, or to US exchanges |
| cutoff resets | The 250 daily requests reset daily; bandwidth is a rolling 30-day limit that updates daily with no specific restore date, and keys over the bandwidth limit are restricted. |
| cutoff body reported | Bandwidth limit, as shown in a third-party discussion: {"Error Message": "Bandwidth Limit Reach . Please upgrade your plan or visit our documentation for more details at https://site.financialmodelingprep.com/"}; the status and the daily-limit body are not in the source |
| symbol outside sample reported | A client package README, checked against a live Basic key on 2026-07-23, says: the 87-symbol sample list is not published; a plan restriction answers HTTP 403 (402 also occurs); an unknown symbol answers HTTP 200 with an empty list |
Unknown values 1
- retention stated: the field does not apply to this kind of offer