Yahoo Finance Scraper - Quotes and OHLCV History avatar

Yahoo Finance Scraper - Quotes and OHLCV History

Pricing

$1.00 / 1,000 item returneds

Go to Apify Store
Yahoo Finance Scraper - Quotes and OHLCV History

Yahoo Finance Scraper - Quotes and OHLCV History

Get Yahoo Finance quotes and OHLCV history. No API key. Search a ticker, or read the current quote with change %. You also get the previous close and the 52-week range. It also covers SPY, ^GSPC, EURUSD=X and BTC-USD. Prices are delayed, as Yahoo delays them. $1.00 per 1,000 rows.

Pricing

$1.00 / 1,000 item returneds

Rating

5.0

(1)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

12 hours ago

Last modified

Share

Yahoo Finance Scraper: quotes, OHLCV history and ticker lookup, no API key

Three things in one actor. Look up a ticker symbol from a company name, take a price snapshot for a list of symbols, or pull OHLCV bars over a range you choose. Stocks, indices like ^GSPC, FX pairs like EURUSD=X and crypto like BTC-USD all work the same way.

Prices are delayed exactly as Yahoo delays them. This is not an exchange feed and it should not be used as one.

InputA company name, or a list of ticker symbols
OutputOne row per symbol, or one row per price bar
Ceiling1,000 rows per run
Account neededNone, and no API key
Price$1.00 per 1,000 rows, flat on every plan

๐Ÿ” What Yahoo Finance Scraper does

Search mode takes a name like vanguard s&p 500 and gives you back the symbols that match, with the exchange, the instrument type and, for companies, the sector and industry. It is the mode to run first when you have names rather than tickers.

Quote mode takes symbols and returns the current price, the currency, the exchange, the previous close, the percentage change and the 52-week high and low.

History mode takes the same symbols and returns one row per bar: date, open, high, low, close and volume. Bars with nothing in them at all are skipped rather than delivered as a row of nulls.

Two settings shape history: Range, how far back to go, and Interval, how big each bar is. Minute and five-minute bars only exist for short ranges, which is Yahoo's rule rather than this actor's.

๐Ÿ“ฅ What you give it

{
"mode": "history",
"symbols": ["AAPL", "MSFT", "BTC-USD"],
"range": "6mo",
"interval": "1d",
"maxItems": 500
}
FieldDefaultWhat it is
modequotesearch to find symbols, quote for a price snapshot, history for OHLCV bars.
querybox starts at appleThe name to look up. Used by search mode only.
symbolsbox starts at AAPL, MSFT, BTC-USDThe symbols to fetch. Used by quote and history. A comma-separated string works too.
range1mo1d, 5d, 1mo, 3mo, 6mo, 1y, 5y or max. Read the note below, it affects quote mode as well.
interval1d1m, 5m, 1d, 1wk or 1mo. The intraday sizes need a short range.
maxItems100How many rows to return, up to 1,000.
notionConnectornoneOptional. Writes each row into your Notion once the run finishes.
notionParentIdnoneOptional. The Notion data source to write into.
proxyConfigurationoffOptional network settings. Off by default, and a normal run does not need it.

range changes what changePct means in quote mode. The previous close is taken from just before the start of the range you asked for, so with the default one-month range you get the move over that month, not the move today. Set range to 1d when you want the day's change.

In history mode the cap keeps the first rows, and the first rows are the oldest. Asking for 5y of daily bars with maxItems: 100 returns the oldest hundred days of the first symbol, not the latest hundred, and later symbols in the list can be cut off entirely. Pick a range that fits inside your cap, or run one symbol at a time.

๐Ÿ“ค What you get back

A real quote row from a recent run:

{
"ok": true,
"symbol": "AAPL",
"price": 332.27,
"currency": "USD",
"exchange": "NMS",
"previousClose": 304.91,
"changePct": 8.9731,
"fiftyTwoWeekHigh": 344.57,
"fiftyTwoWeekLow": 235.03,
"marketTime": "2026-09-11T20:00:01.000Z"
}

The row shape follows the mode.

ModeFields
searchsymbol, name, exchange, quoteType, sector, industry
quotesymbol, price, currency, exchange, previousClose, changePct, fiftyTwoWeekHigh, fiftyTwoWeekLow, marketTime
historysymbol, date, open, high, low, close, volume
FieldWhat it is
marketTimeWhen Yahoo last updated that price, as an ISO timestamp. Worth checking before you treat a number as fresh.
previousCloseThe close before the start of your range, not always yesterday. See the note above.
changePctComputed from price and previousClose, to four decimal places.
dateThe bar's own timestamp in history mode. Bars come back oldest first.
volumeRounded to a whole number. null where Yahoo published none.
sector, industrySearch mode only, and only for companies. Funds, indices and crypto leave them null.

๐Ÿงพ Reading the output

Two kinds of row land in your dataset, and ok tells them apart.

RowHow to spot itCharged
A quote, bar or search hitok: trueyes
A diagnosticok: false and an errorCodeno

A bad symbol does not stop the good ones. You get real rows for the symbols that worked and one uncharged diagnostic row per symbol that did not, with symbol on the row naming it.

The overview table in the Apify console shows the price columns only, so a diagnostic row appears there as a line with just the symbol filled in. Switch to the JSON or All fields view to read it.

CodeWhat it means
BAD_INPUTsearch mode with no query, or quote and history with no symbols.
NOT_FOUNDYahoo has nothing under that symbol. It also shows up when the interval and range you picked are not a pair Yahoo supports, so check both before assuming the symbol is wrong.
NO_RESULTSThe symbols resolved and Yahoo returned no rows for them.
RATE_LIMITEDYahoo asked for a slower pace than the run could keep. Try fewer symbols.
SERVER_ERRORYahoo answered 5xx. Usually passes.
BLOCKEDYahoo refused the request. Re-run it.
NETWORKYahoo was unreachable. Re-run it.

โ–ถ๏ธ How to run it

  1. Open Yahoo Finance Scraper and click Try for free.
  2. Pick a Mode. Start with quote if you already know your symbols, search if you do not.
  3. Fill in Symbols, or Search query in search mode.
  4. For history, set Range and Interval so the number of bars fits inside Max items.
  5. Click Start, then download the dataset as JSON, CSV or Excel, or read it from the Apify API.

๐Ÿ’ฐ How much does it cost?

$1.00 per 1,000 rows. Flat on every Apify plan, no volume tiers.

A quote row, a history bar and a search hit all count the same. Duplicate rows are dropped before they are counted, diagnostic rows are not charged, and a run that returns no data is not charged.

๐Ÿ’ก What people use it for

  • Turning a watchlist of company names into ticker symbols, then feeding those symbols back in.
  • A daily snapshot of a portfolio, scheduled, with range set to 1d so the change is the day's.
  • Pulling six months of daily bars for a backtest without applying for a data licence.
  • Tracking an FX pair or a crypto symbol alongside equities, since they all use the same fields.
  • Giving a model a small, clean price table instead of a page of finance HTML.

๐Ÿšง What it does not do

  • Prices are delayed, exactly as Yahoo delays them. Do not trade off this.
  • No fundamentals. No earnings, balance sheets, dividends, splits or analyst numbers.
  • 1,000 rows per run. A long daily history will not fit in one run, and the cap keeps the oldest rows, not the newest.
  • Intraday bars need a short range. Minute data over a year does not exist to be returned.
  • Quote mode measures change against your range, so the default is a monthly move rather than a daily one.
  • Every symbol is fetched before the cap is applied, so a long list still takes the time even when most of it is trimmed.
  • These are Yahoo's public endpoints, not a contracted feed, and Yahoo can change them.
  • No order book, no trades, no options chains.

๐Ÿงญ Which market data scraper do you need?

If you wantUse
Quotes, OHLCV history and ticker lookupThis one
SEC filings by phrase, ticker or CIKSEC EDGAR Scraper
Crypto prices and market rankingsCoinGecko Scraper
Trades disclosed by members of CongressCongress Stock Trades Scraper
Prediction market odds and volumeKalshi Markets Scraper

โ“ Questions people ask

Do I need a Yahoo account or key? No. Nothing to apply for and no quota to watch.

Is this real time? No. The prices carry Yahoo's delay, and marketTime tells you how old each one is.

Why is my percentage change so large? Because range was left at a month. Set it to 1d for the day's move.

Why did the last symbol in my list return nothing? The row cap is shared across the whole run and is applied in list order. Raise maxItems, shorten the range, or run the symbols separately.

Why did a valid symbol come back NOT_FOUND? Check the interval and range together. Yahoo reports an unsupported pair the same way it reports an unknown symbol.

Can I get dividends or earnings? Not from this one. It covers quotes, bars and symbol lookup.

๐Ÿ†˜ If something breaks

Open the Issues tab on the actor page. Send the run ID, the mode and the symbols you used. The errorCode on the diagnostic row usually names the problem on its own.