Comparison
A yfinance alternative you can build on.
yfinance is a useful open-source library. FinzData is licensed market data with the same one-line workflow — plus history, fundamentals and positioning that yfinance does not carry.
For backtesting, the difference that matters most: Yahoo Finance generally has no data for delisted tickers, and its fundamentals show today's figures rather than what was known on a past date. FinzData keeps delisted names and serves fundamentals and macro data as they stood on each date, so a backtest only sees what an investor could have seen.
The fair version
yfinance is an open-source library that reads Yahoo Finance's public endpoints. Its own README says it is not affiliated with Yahoo and is intended for research and educational, personal use. Because those endpoints are not a contracted API, the library can break or be rate-limited when Yahoo changes something.
FinzData is a data provider. You get licensed data behind an API key, an SLA on the Institutional plan, survivorship-free history, point-in-time fundamentals, COT positioning, and Parquet bulk downloads. If you outgrow personal research, that difference matters.
Side by side
| yfinance | FinzData | |
|---|---|---|
| Data rights | Personal, research/educational use per its README; not affiliated with Yahoo | Licensed data with redistribution rights per plan |
| Stability | Can break when Yahoo changes public endpoints | Contracted API; SLA on Institutional |
| History incl. delisted | Active symbols only in practice | Survivorship-free daily and minute history |
| Point-in-time fundamentals | Current snapshot only | Point-in-time by default |
| COT / positioning | Not covered | COT positioning; GEX and 13F soon |
| Bulk downloads | Per-ticker requests | Parquet bulk files |
| Rate limits | Unofficial throttling by Yahoo | Documented limits per plan |
| Support | Community issue tracker | Email support; dedicated on Institutional |
| Price | Free, open source | Free tier; paid plans from $39/mo |
Switch in one line
Keep your code. Change the import.
# before
import yfinance as yf
yf.Ticker("AAPL").history(period="1y")
# after
import finzdata as yf
yf.Ticker("AAPL").history(period="1y")The FinzData client mirrors the yfinance call pattern for common endpoints, then adds datasets yfinance does not have.
Frequently asked questions
Is FinzData a drop-in replacement for yfinance?
For common workflows, yes. Change the import and calls like yf.Ticker("AAPL").history(period="1y") keep working. FinzData then adds licensed data and datasets yfinance does not cover.
Why does yfinance break or get rate-limited?
It reads Yahoo Finance's public endpoints, which are not a contracted API. When Yahoo changes an endpoint or tightens throttling, the library can fail until it is patched. FinzData serves data from its own licensed infrastructure with documented rate limits.
Can I use FinzData data in a commercial product?
Yes. FinzData data is licensed for redistribution within the terms of your plan. yfinance's own README states it is intended for research and educational, personal use.
Try it on your own symbols
The free tier includes daily history and COT data. No card required.