finyahoo
English | 한국어
Read prices and fundamentals from Yahoo Finance.
Daily, weekly, and monthly open/high/low/close and volume, the adjusted close, dividends and splits, company fundamentals (sector, market cap, valuation, ...), live quotes, options, screeners, and news.
1. Install
pip install finyahoo
Requires Python 3.11+.
2. Quickstart
from finyahoo import YahooClient
yahoo = YahooClient()
history = yahoo.fetch_history("AAPL", start="2020-01-01")
latest = history.bars[-1]
print(latest.trade_date, latest.close, latest.adj_close, latest.volume)
print(len(history.splits), "splits,", len(history.dividends), "dividends")
profile = yahoo.fetch_profile("AAPL")
print(profile.sector, profile.market_cap, profile.trailing_pe)
Symbols are Yahoo tickers: a US stock is bare (AAPL), a Korean one carries the
market suffix (005930.KS KOSPI, .KQ KOSDAQ), an index is caret-prefixed
(^GSPC). A delisted or unknown ticker raises YahooRequestError, not an empty
result.
3. Client options
YahooClient takes two optional keyword-only settings:
| argument | default | what it does |
|---|---|---|
timeout |
30.0 |
per-request timeout, in seconds |
delay_seconds |
0.5 |
pause between consecutive requests; raise it if reading many symbols in a row runs into rate limits |
yahoo = YahooClient(timeout=10, delay_seconds=1.0)
4. Methods
| method | returns |
|---|---|
fetch_history(symbol, *, start, end, timeframe) |
PriceHistory — OHLCV bars + Split/Dividend events |
fetch_profile(symbol) |
Profile — current fundamentals snapshot |
fetch_quotes(symbols) |
tuple[Quote] — live snapshot per symbol |
fetch_search(query, *, quotes_count, news_count) |
Search — symbol matches + related news |
fetch_timeseries(symbol, metric_types, *, start, end) |
tuple[FinancialSeries] — dated financial line items |
fetch_spark(symbols, *, period, interval) |
tuple[Spark] — compact close series per symbol |
fetch_options(symbol, *, expiration) |
OptionChain — calls/puts for one expiration |
fetch_recommendations(symbol) |
tuple[Recommendation] — similar symbols |
fetch_insights(symbol) |
Insights — analyst target, valuation, outlooks, reports |
fetch_screener(screen_id, *, page_size) |
Screen — a predefined screen's members (as Quotes) |
The two core reads
fetch_history— aPriceHistory: OHLCV bars (closesplit-adjusted,adj_closealso dividend-adjusted), plus theSplitandDividendevents that fell in the same span, carried as data. Both bounds inclusive; both default to the widest window Yahoo has.fetch_profile— aProfile: the company's current fundamentals (sector, size, valuation, growth, margins). A snapshot as of now, not history; every numeric field is optional and a missing one isNone, never0.
5. DataFrames
Every result record is a dataclass, so pandas or polars tabulates it directly:
import pandas as pd
prices = pd.DataFrame(history.bars).set_index("trade_date")
import polars as pl
prices = pl.DataFrame(history.bars)
The same works for history.splits, history.dividends, a screen's members, or a
fetch_quotes(...) result.
6. Command line
Installing the package puts a finyahoo command on PATH (also python -m finyahoo):
finyahoo history AAPL --start 2024-01-01 # OHLCV bars + split/dividend events
finyahoo history ^GSPC --timeframe week # weekly bars for an index
finyahoo profile AAPL # current fundamentals
finyahoo profile 005930.KS --json # full snapshot as JSON
Both subcommands print a readable summary by default and the full result with
--json; finyahoo history --help / finyahoo profile --help list the flags.
7. Use it from an AI coding agent
This repo doubles as a plugin marketplace for Claude Code and Codex, exposing
history and profile as skills that shell out to the finyahoo command — so
install the package first (above); no key or login is involved.
7.1. Claude Code
/plugin marketplace add seokhoonj/finyahoo
/plugin install finyahoo@finyahoo
Then ask in plain words ("show AAPL's profile"), or invoke a skill explicitly —
/finyahoo:history ^GSPC, /finyahoo:profile AAPL.
7.2. Codex
codex plugin marketplace add seokhoonj/finyahoo
codex plugin add finyahoo@finyahoo
The history / profile skills trigger on a symbol, or run finyahoo history <symbol>
directly.
Prefer no plugin? Symlink a skill into your skills directory and call it bare (/history):
ln -s "$PWD/plugins/finyahoo/skills/history" ~/.claude/skills/history
8. License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file finyahoo-0.1.0.tar.gz.
File metadata
- Download URL: finyahoo-0.1.0.tar.gz
- Upload date:
- Size: 54.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2877bdf3510ab0486379d4a0d427bf2f1d8c5019642e13858910068fc9c4371c
|
|
| MD5 |
48d3bd6607d63fab37f7a046c006f109
|
|
| BLAKE2b-256 |
550bf45c0ba144cd8057dc108ab4ff87bd3a000368716566c99e36d4d2d7e731
|
Provenance
The following attestation bundles were made for finyahoo-0.1.0.tar.gz:
Publisher:
publish.yml on seokhoonj/finyahoo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
finyahoo-0.1.0.tar.gz -
Subject digest:
2877bdf3510ab0486379d4a0d427bf2f1d8c5019642e13858910068fc9c4371c - Sigstore transparency entry: 2280908202
- Sigstore integration time:
-
Permalink:
seokhoonj/finyahoo@da02df767a03ed2106049f154f8d71f75b4eb403 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/seokhoonj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@da02df767a03ed2106049f154f8d71f75b4eb403 -
Trigger Event:
release
-
Statement type:
File details
Details for the file finyahoo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: finyahoo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 37.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97327e826e07089ead62bbae69e5d1b255036c75461a8e1231da9554107c9b25
|
|
| MD5 |
185aa45f751dc0d241a8bc2aa9403933
|
|
| BLAKE2b-256 |
cbe7e2bd0a6960bda7702315eee36d65301610cc9de495f701e79f01961c0a3d
|
Provenance
The following attestation bundles were made for finyahoo-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on seokhoonj/finyahoo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
finyahoo-0.1.0-py3-none-any.whl -
Subject digest:
97327e826e07089ead62bbae69e5d1b255036c75461a8e1231da9554107c9b25 - Sigstore transparency entry: 2280908221
- Sigstore integration time:
-
Permalink:
seokhoonj/finyahoo@da02df767a03ed2106049f154f8d71f75b4eb403 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/seokhoonj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@da02df767a03ed2106049f154f8d71f75b4eb403 -
Trigger Event:
release
-
Statement type: