Metadata-Version: 2.4
Name: parsimony-eodhd
Version: 0.0.1
Summary: EODHD connector for the parsimony framework
Project-URL: Homepage, https://eodhd.com
Project-URL: Repository, https://github.com/ockham-sh/parsimony-connectors
Project-URL: Issues, https://github.com/ockham-sh/parsimony-connectors/issues
Author-email: "Ockham.sh" <team@ockham.sh>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: connectors,data,eodhd,finance,parsimony
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: pandas<3,>=2.3.0
Requires-Dist: parsimony-core>=0.0.1
Requires-Dist: pydantic<3,>=2.11.1
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=9.0.3; extra == 'dev'
Requires-Dist: respx>=0.22.0; extra == 'dev'
Requires-Dist: ruff>=0.15.10; extra == 'dev'
Description-Content-Type: text/markdown

# parsimony-eodhd

EODHD connector — end-of-day, intraday, fundamentals, news, calendars, macro and technical indicators from the EODHD REST API.

Part of the [parsimony-connectors](https://github.com/ockham-sh/parsimony-connectors) monorepo. Distributed standalone on PyPI as `parsimony-eodhd`.

## Connectors

17 connectors grouped by capability:

| Name | Kind | Description |
|---|---|---|
| `eodhd_search` | fetch | Resolve company names / partial tickers to EODHD ticker codes (`AAPL.US`). |
| `eodhd_exchanges` | fetch | List supported exchanges. |
| `eodhd_exchange_symbols` | fetch | List all symbols on an exchange. |
| `eodhd_eod` | fetch | End-of-day OHLCV for a ticker (daily/weekly/monthly). |
| `eodhd_live` | fetch | Live (real-time or 15-min delayed) quote. |
| `eodhd_intraday` | fetch | Intraday OHLCV at 1m / 5m / 1h. |
| `eodhd_bulk_eod` | fetch | EOD prices for every symbol on an exchange in one request. |
| `eodhd_dividends` | fetch | Dividend history for a ticker. |
| `eodhd_splits` | fetch | Stock split history for a ticker. |
| `eodhd_fundamentals` | fetch | Full fundamentals for a stock or ETF (raw nested dict). |
| `eodhd_calendar` | fetch | Earnings / IPO / analyst trends / splits calendars. |
| `eodhd_news` | fetch | Financial news, optionally filtered by ticker. |
| `eodhd_macro` | fetch | Single macro indicator time series for a country. |
| `eodhd_macro_bulk` | fetch | All available macro indicators for a country. |
| `eodhd_technical` | fetch | Technical indicators (SMA, EMA, MACD, BBANDS, ADX, etc.). |
| `eodhd_insider` | fetch | Insider (executive / director) transactions. |
| `eodhd_screener` | fetch | Screen stocks by structured filter triples. |

Several endpoints require paid EODHD plans (EOD+Intraday, Fundamentals); per-connector docstrings tag the minimum plan as `[Free+]`, `[EOD+Intraday+]`, or `[Fundamentals+]`. On a free key a plan-gated endpoint returns HTTP 403 (or 423 for bulk), surfaced as `PaymentRequiredError` — not an auth error.

## Install

```bash
pip install parsimony-eodhd
```

Pulls in `parsimony-core>=0.7,<0.8` automatically. Verify discovery:

```bash
python -c "from parsimony import discover; print([p.name for p in discover.iter_providers()])"
```

## Configuration

Set the following environment variable:

```bash
export EODHD_API_KEY="<your-key>"
```

Get a key at https://eodhd.com/register.

## Quick start

```python
import os
from parsimony_eodhd import load

# load() binds the API key off the call surface (and out of provenance).
connectors = load(api_key=os.environ["EODHD_API_KEY"])
result = connectors["eodhd_eod"](ticker="AAPL.US")
print(result.data.head())
```

For multi-plugin composition:

```python
from parsimony import discover
connectors = discover.load_all()
```

## Provider

- Homepage: https://eodhd.com
- API docs: https://eodhd.com/financial-apis/

## License

See [LICENSE](./LICENSE).
