---
name: eod-historical-ingestion
description: "How to get EODHD (EOD Historical Data) data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load EODHD daily prices into pandas and Parquet for private analysis

Source entry: https://signal-lab-jet.vercel.app/datasets/eod-historical
Provider: https://eodhd.com
Checked against the provider's documentation: 2026-10-29

## Access
- A free personal API token is required. Put it in EODHD_API_KEY.
- Free personal data is limited to private, non-commercial use.

## Request
```bash
curl 'https://eodhd.com/api/eod/AAPL.US?from=2025-10-29&fmt=json&api_token='$EODHD_API_KEY
```

## Format
JSON array with date, open, high, low, close, adjusted_close and volume.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""EODHD daily AAPL prices -> pandas -> Parquet. Private, non-commercial use."""
import os
import requests
import pandas as pd

params = {"from": "2025-10-29", "fmt": "json", "api_token": os.environ["EODHD_API_KEY"]}
r = requests.get("https://eodhd.com/api/eod/AAPL.US", params=params, timeout=30)
r.raise_for_status()
df = pd.DataFrame(r.json())
df["date"] = pd.to_datetime(df["date"])
df.to_parquet("eodhd_aapl_daily.parquet", index=False)
print(len(df), "rows", df["date"].min().date(), "to", df["date"].max().date())
```
Needs a personal API key; not run.

## Limits
- Free: 20 API calls per day and one year of end-of-day history.
- Published per-minute figures conflict across EODHD pages, so no numeric per-minute limit is stated here.

## Quirks
- Use the exchange-qualified symbol, such as AAPL.US.
- The free plan does not include fundamentals or intraday data.
- The API can also return CSV when fmt=csv.

## Terms and attribution
- Non-professional users may store, manipulate and analyze data only for private, non-commercial purposes.
- Selling, retransmitting, redistributing or displaying data is prohibited on the personal license.
- Terms page: https://eodhd.com/financial-apis/terms-conditions

## Sources
- https://eodhd.com/financial-apis/terms-conditions: "permitted to store, manipulate, and analyze the data for private, non-commercial purposes"
- https://eodhd.com/financial-apis/terms-conditions: "Selling, reselling, retransmitting, redistributing, displaying, or granting access to the Information or Services"
- https://eodhd.com/pricing: "Once you register you get 20 free API calls per day."

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.
