market-data-sourcinglisted
Install: claude install-skill howard-lynn-ye/fin-skills
# Market data sourcing
Pick the source from the constraint that actually binds — usually *survivorship coverage* or
*licence*, not price or convenience. Then read that library's reference file before writing code;
every one of them has a default that is wrong for research.
## 1. Pick a source
| Your binding constraint | Use | Why |
|---|---|---|
| Free, exploratory, US/global equities | `yfinance` | Best-maintained (1.7.0, 2026-08-26), broadest coverage, no key |
| Free but **429s keep killing me** | `defeatbeta-api`, or `yfinance-cache` | defeatbeta serves a HuggingFace parquet snapshot via DuckDB — **no scraping, no rate limit**; refreshed ~weekly |
| **Survivorship-free universe on a budget** | **EODHD** (~$20–100/mo) | `get_list_of_tickers(code, delisted=1)`. The only cheap genuinely bias-free equity universe |
| Institutional survivorship-free | CRSP (via `wrds`), Norgate, Polygon | |
| Vendor-cleaned EOD, quality reputation | Tiingo | 30+ yrs on free tier — but ToS is **internal use only, no sharing or display** |
| One code path across many vendors | `openbb` | 🚨 **AGPL-3.0** since 2024-05-14. Network copyleft |
| **Free tick-level FX** | `findatapy` (DukasCopy backend) | Nothing else in the free tier offers tick data |
| **Point-in-time macro** | `findatapy` (ALFRED) or `fredapi` | → `fundamental-and-macro-data` |
| Tick/full-depth US equities & futures | `databento` | Actively released (2026-09-01); pay-per-use |
| Options chains, aggregates, delisted | `polygon-