Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
Yahoo Finance Scraper icon

Yahoo Finance Scraper

Get Yahoo Finance quotes and OHLCV history with no API key. Ticker search, current quote with change % and the 52-week range. $1.00 per 1,000 rows.

5 from 1 review on Apify 317 runs on Apify $0.001 per item ($1 / 1,000)
Run this in the cloudRun on Apify →

News & Finance Data

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust mode, query, symbols (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.001 per item = $1 per 1,000

You are charged forWhenPrice
Item returnedCharged per quote/history row returned.$0.001

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-06-12, and they are what you are actually charged.

Inputs

FieldWhat it doesType
modeWhat to fetch. "search" = find ticker symbols by name (uses Query). "quote" = current price snapshot for each Symbol. "history" = OHLCV price history for each Symbol over Range/Interval.string
queryCompany or asset name to search ticker symbols for, e.g. "apple", "vanguard s&p 500", "bitcoin". Only used when Mode is "search".string
symbolsOne or more ticker symbols to fetch, e.g. AAPL, MSFT, ^GSPC (S&P 500 index), EURUSD=X (FX), BTC-USD (crypto). Used by "quote" and "history" modes.array
rangeHow far back the price history goes (history mode). Longer ranges return more rows.string
intervalThe candle size / sampling interval for history. Intraday intervals (1m, 5m) only work with short ranges (about 1d-1mo).string
maxItemsMaximum number of result rows to return and charge for (caps history bars and search results). Quotes return one row per symbol.integer
notionConnectorOptional. Write each item as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default), results are always saved to the dataset regardless.string
notionParentIdOptional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead.string

What you get

A structured dataset — each result includes fields like:

changePctclosecurrencydateexchangefiftyTwoWeekHighfiftyTwoWeekLowhighindustrylowmarketTimenameopenpreviousClosesymbolpricevolume

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

3 ready-to-run use cases

Ticker Symbol Lookup: Find a Symbol by Company Name

Type a company, fund or ETF name and get the matching symbols back with exchange and quote type. For when you have the name but not the ticker.

AAPL Stock Price as JSON: One Row per Quote

Apple's latest price, currency, exchange, previous close, percent change and 52-week high and low. One row, re-run whenever you want it fresh.

Download Historical Stock Data: TSLA Daily OHLCV

One year of daily Tesla bars, one row each: date, open, high, low, close and volume. Change the range and interval for a different window.

Related tools in News & Finance Data

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

CoinGecko Crypto Market Scraper iconNews & Finance Data

CoinGecko Crypto Market Scraper

Scrape CoinGecko crypto market data with no API key. Get top coins, price, volume, 24h and 7d change, supply, ATH and ATL. $2.00 per 1,000 coins.

3 use cases

SEC EDGAR Filings Scraper iconNews & Finance Data

SEC EDGAR Filings Scraper

Search all SEC EDGAR filings by keyword, ticker or CIK. Get form, company, CIK, date and document link. $2.00 per 1,000.

2 use cases

Google News Scraper iconNews & Finance Data

Google News Scraper

Track Google News by keyword or topic. Get real publisher URLs, source, date and snippet. $3.00 per 1,000 articles.

22 use cases

GDELT Worldwide News Scraper iconNews & Finance Data

GDELT Worldwide News Scraper

Search worldwide news via GDELT 2.0: headline, URL, domain, country, language and date. 250 articles per query. $2.00 per 1,000.

2 use cases

See all News & Finance Data →

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.