Yahoo APIca.finance.yahoo.com ↗
Get real-time Bitcoin prices, all-time high stock screener results, and detailed multi-symbol quote data from Yahoo Finance via a clean REST API.
What is the Yahoo API?
This API exposes 3 endpoints against Yahoo Finance Canada, returning live market data across equities and crypto. The get_bitcoin_price endpoint delivers BTC-USD spot price, change amount, and percentage change in a single call. The get_all_time_high_stocks endpoint surfaces screener results for equities currently trading at historical highs, and get_stock_quote accepts a comma-separated list of ticker symbols and returns up to 10 fields per quote including market cap and volume.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/ea5d3c8b-294d-4c28-a670-c58efe208822/get_bitcoin_price' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace ca-finance-yahoo-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.yahoo_finance_api import YahooFinance, Quote, ScreenerStock, BitcoinPrice, AllTimeHighScreener
client = YahooFinance()
# Get Bitcoin price
btc = client.bitcoinprices.get()
print(btc.symbol, btc.current_price, btc.currency, btc.change_percent)
# Get all-time high stocks screener
screener = client.alltimehighscreeners.get()
print(screener.count, screener.total_in_screener)
for stock in screener.stocks:
print(stock.ticker, stock.name, stock.current_price, stock.volume)
# Get quotes for specific symbols
for quote in client.quotes.list(symbols="AAPL,MSFT,GOOG"):
print(quote.symbol, quote.long_name, quote.regular_market_price, quote.currency)
Extract the current price of Bitcoin (BTC-USD) from Yahoo Finance. Returns real-time price, change amount, and percentage change. A single-resource fetch that returns one quote for BTC-USD without any input parameters.
No input parameters required.
{
"type": "object",
"fields": {
"name": "string, asset name",
"change": "number, price change amount",
"symbol": "string, trading symbol (BTC-USD)",
"currency": "string, currency code (USD)",
"market_time": "integer, Unix timestamp of last market update",
"current_price": "number, current BTC price in USD",
"change_percent": "number, percentage change"
},
"sample": {
"data": {
"name": "Bitcoin USD",
"change": -1473.87,
"symbol": "BTC-USD",
"currency": "USD",
"market_time": 1781085207,
"current_price": 61208.04,
"change_percent": -2.35
},
"status": "success"
}
}About the Yahoo API
Bitcoin Price Endpoint
The get_bitcoin_price endpoint returns a snapshot of BTC-USD at the time of the request. The response includes current_price (number, USD), change (the raw price movement), change_percent, currency, symbol (BTC-USD), and market_time as a Unix timestamp. There are no input parameters — the endpoint is fixed to BTC-USD.
All-Time High Stock Screener
The get_all_time_high_stocks endpoint wraps Yahoo Finance's built-in all-time-high screener. The response contains a stocks array where each object carries ticker, name, current_price, volume, all_time_high_value, fifty_two_week_high, and fifty_two_week_low. Two counts are returned: total_in_screener reflects the raw screener pool before filters, while count reflects the number of stocks that passed volume and price filters. No input parameters are required, though screener filters can be adjusted via screener configuration at the API level.
Multi-Symbol Stock Quote
The get_stock_quote endpoint accepts a symbols string — a comma-separated list of ticker symbols such as AAPL,MSFT,GOOG — and returns a quotes array. Each quote object includes symbol, longName, shortName, regularMarketPrice, regularMarketChange, regularMarketChangePercent, currency, and additional market fields. This endpoint is suitable for monitoring a watchlist or populating a dashboard without needing one call per ticker.
The Yahoo API is a managed, monitored endpoint for ca.finance.yahoo.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ca.finance.yahoo.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official ca.finance.yahoo.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display a live BTC-USD price widget using
current_price,change, andchange_percentfromget_bitcoin_price. - Screen for equities at all-time highs and rank by volume using the
stocksarray fromget_all_time_high_stocks. - Populate a multi-stock portfolio dashboard by passing a watchlist to
get_stock_quoteas a comma-separatedsymbolsparameter. - Compare
fifty_two_week_highvsall_time_high_valueacross screener results to identify recent breakout candidates. - Track intraday price movement on a basket of tech stocks using
regularMarketChangeandregularMarketChangePercentfromget_stock_quote. - Trigger alerts when a stock in
get_all_time_high_stockscrosses a volume threshold using thevolumefield. - Log Bitcoin
market_timetimestamps alongsidecurrent_priceto build a lightweight BTC price history dataset.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Yahoo Finance have an official developer API?+
What does `get_all_time_high_stocks` return, and how is `count` different from `total_in_screener`?+
total_in_screener is the raw number of equities Yahoo Finance's all-time-high screener identifies before any additional filtering. count reflects the subset that passes the volume and price filters applied by this endpoint's configuration. The stocks array contains only the filtered set, each with fields including all_time_high_value, fifty_two_week_high, fifty_two_week_low, volume, current_price, ticker, and name.Does `get_stock_quote` support equity types other than US-listed common stocks — for example, ETFs, ADRs, or Canadian TSX-listed tickers?+
symbols parameter, so ETFs and ADRs that have Yahoo Finance listings should resolve. However, the API was designed and tested around standard US equity symbols. Coverage of TSX-listed or other exchange-specific tickers may be inconsistent. You can fork this API on Parse and revise it to add explicit handling or validation for non-US symbols.Is historical OHLCV or earnings data available through this API?+
How fresh is the data from `get_bitcoin_price`?+
market_time field in the response is a Unix timestamp indicating when Yahoo Finance last recorded the price update. BTC-USD trades continuously, so data freshness depends on when the request is made relative to Yahoo Finance's own feed latency. The endpoint does not cache results across calls; each request retrieves the current value at call time.