yfinance is fine for after-work learning with a disk cache—not a live feed. Layer keyed REST (Massive, ex-Polygon), FRED, and SEC EDGAR; use Stooq CSV failover; migrate api.polygon.io on a checklist. Not investment advice.
yfinance still downloads daily bars for a first after-work script. That does not make it a production feed. In 2026 the honest answer is layered: keep Yahoo-backed pulls for learning with a disk cache, move research to keyed REST when you need stable history, and put macro and filings on FRED and SEC EDGAR — free, official, and built for scripts. Polygon.io also rebranded to Massive; if your notebooks still say polygon, you need a migration checklist, not a panic rewrite.
This is for employed people studying Python after work. It is not investment advice, not a broker plug, and not a promise of live fills. Check the course page for enrollment windows; this article will not invent fake download counts or countdown urgency.
Reliability for a 45-minute evening is not the same as reliability for a paper-trading loop.
| Layer | Job | Typical stack |
|---|---|---|
| Learn | Prove pip, import, and a CSV on disk | yfinance + local cache |
| Research | Repeatable OHLCV with a vendor SLA mindset | Keyed REST (Massive / other licensed APIs) |
| Macro / filings | Rates, releases, 10-K / 10-Q / 8-K text | FRED API + SEC EDGAR |
| Failover | One backup when Yahoo throttles | Stooq CSV (direct), not an unofficial mega-wrapper |
Secondary 2026 commentary still treats Yahoo Finance / yfinance as free, unofficial, rate-limited, and fine for learning — not production (youngju.dev). Verify on your own machine.
If Python is not installed yet, finish Set up Python after work in 30 minutes first. Your first library evening is Your first Python program that uses a library — yfinance is optional; pandas alone is enough.
Use yfinance when the goal is fluency: install a package, call an API-shaped helper, land a DataFrame, save a file. Then stop hitting the network.
Practical habits that keep learning evenings calm:
data/ (parquet or CSV).Do not build live order logic on this layer. Unofficial chart sources are not fills. If an AI-written notebook claims perfect overnight equity from Yahoo bars alone, read AI-written backtests and look-ahead bias before you trust the chart.
When you need the same history tomorrow, pay for (or register) a vendor that issues API keys, documents rate limits, and owns the redistribution license. Massive (formerly Polygon.io) is one common choice for US equities and related markets; others exist. The point is the contract: a key in an environment variable, retries you control, and logs you can read.
Keep keys out of git. Prefer os.environ["MASSIVE_API_KEY"] (or your vendor’s name) over hard-coded strings. Pin the client library version so a silent SDK default change does not rewrite your base URL mid-project.
On 30 October 2025 at 4 PM ET, Polygon.io renamed to Massive.com (official announcement). Product behaviour stayed the same that day; branding and domains moved.
Use this checklist; do not invent a big-bang cutover:
api.polygon.io continued for an extended period; api.massive.com is the new base. Plan a controlled switch, not a surprise outage.polygon.io redirects to massive.com; update bookmarks and docs links you own.polygon clients keep routing to the old base; new massive SDKs default to api.massive.com. Both were maintained in parallel; upgrades may need import tweaks only if you choose to switch packages.@polygon.io addresses forward to @massive.com; prefer the new domain in new tickets (support@massive.com per the post).Re-run one golden script after migration: same symbol and range, check row counts and a close checksum.
Price bars alone do not teach macro or disclosure hygiene. Two free official stacks cover that gap without a paid market-data bill.
FRED (St. Louis Fed). The FRED® API requires an API key. You request keys from a fredaccount.stlouisfed.org login; Version 1 passes api_key as a query parameter (32-character lowercase alphanumeric). See API Keys, FRED API Version 1. Version 2 uses a Bearer token in the Authorization header. One key per application; do not share a single key across unrelated tools.
SEC EDGAR. Filings and JSON submissions APIs are free; there is no SEC API key. Fair-access rules matter: declare a descriptive User-Agent (company/app name + contact email), and stay within the published 10 requests per second ceiling (Accessing EDGAR Data). Missing or generic agents often yield HTTP 403. Cache submissions locally; do not crawl the archive like a search engine.
For context only: QuantConnect’s docs change log added Fama–French Factors docs on 12 August 2026 and European Central Bank datasets (Euro Yield Curve, Policy Rates, Systemic Stress) on 25 August 2026 (change log). The after-work stack is broader than one equity CSV; you do not need any platform tonight.
When Yahoo throttles, a simple failover is Stooq historical CSV for many equities and FX symbols: fetch the CSV yourself, parse with pandas, store beside your Yahoo cache. Align columns and calendars explicitly; do not assume identical corporate-action handling.
Do not reach for unofficial “yfinance-compatible” mega-wrappers that hop Yahoo → Stooq → SEC → crypto behind one import. Learning needs visible primary and backup paths.
Official HTTP surfaces care who you are:
User-Agent.A polite agent string and a local cache beat rotating proxies. Fair-access blocks waste more evenings than typing a header once.
Install or confirm Python, then write one script that (1) loads a cached daily series, (2) pulls one FRED series with your own key, or (3) fetches one EDGAR submissions JSON with a proper User-Agent. Stop there. The enrollable path for language foundations is Introduction to Python Programming — short lessons for evenings, not a trading-signal product.
Disclaimer: Educational content only. Not investment, trading, or legal advice. Data vendors change terms; re-read primary docs before you ship anything that touches money.