---
name: financial-modeling-prep-ingestion
description: "How to get Financial Modeling Prep data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load FMP end-of-day prices into pandas and Parquet for personal use

Source entry: https://signal-lab-jet.vercel.app/datasets/financial-modeling-prep
Provider: https://site.financialmodelingprep.com
Checked against the provider's documentation: 2026-10-29

## 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
```bash
curl 'https://financialmodelingprep.com/stable/historical-price-eod/full?symbol=AAPL&from=2026-10-01&to=2026-10-29&apikey='$FMP_API_KEY
```

## Format
JSON array with date, OHLC, volume, change, changePercent and vwap fields.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""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.
- Terms page: https://site.financialmodelingprep.com/terms-of-service

## 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 for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
