Yahoo Finance Quotes & History avatar

Yahoo Finance Quotes & History

Pricing

from $0.63 / 1,000 quote rows

Go to Apify Store
Yahoo Finance Quotes & History

Yahoo Finance Quotes & History

Live quotes and daily or intraday price history for any Yahoo Finance ticker - stocks, ETFs, indices, FX and crypto. One flat row per ticker per period.

Pricing

from $0.63 / 1,000 quote rows

Rating

0.0

(0)

Developer

Superslow Sloth

Superslow Sloth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Live quotes and price history for anything Yahoo Finance lists — US and non-US equities, ETFs, indices, FX pairs and crypto — as one flat table.

Two modes from one actor:

  • Quote snapshot — one row per ticker: price, change and change percent, open, day high and low, previous close, volume, market capitalisation.
  • Historical chart — one row per ticker per period, each carrying its own date, open, high, low, close, volume and the change against the period before it.

Both modes emit the same columns, so a snapshot and a price history can live in one dataset and be told apart by the mode field.

Input

FieldTypeDefaultWhat it does
tickersarrayRequired. Yahoo symbols: AAPL, MSFT, 7203.T, BMW.DE, PTT.BK, BRK-B, SPY, ^GSPC, ^N225, EURUSD=X, BTC-USD. A full Yahoo quote URL is accepted and reduced to the ticker. Duplicates are removed before anything is charged.
modeselectquotequote for the live snapshot, historical for dated bars.
rangeselect1moHistorical mode only. 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max.
intervalselect1dHistorical mode only. 1m90m, 1h, 1d, 5d, 1wk, 1mo, 3mo. Intraday intervals are only served for recent ranges — one-minute bars go back about a week.
requestIntervalSecsinteger1Pause between requests. Yahoo rate-limits per exit address.
proxyConfigurationproxyresidentialRequired in practice — see below.

Output

One record per row:

symbol the Yahoo ticker, upper-cased
mode "quote" or "historical"
name e.g. "Apple Inc."
exchange short code, e.g. "NMS"
full_exchange_name readable name, e.g. "NasdaqGS"
currency the currency every monetary field below is in
quote_type EQUITY, ETF, INDEX, CURRENCY, CRYPTOCURRENCY, FUTURE, ...
date YYYY-MM-DD, in the exchange's own timezone
timestamp ISO-8601 UTC observation time
price last price (quote) or the period close (historical)
change against previous_close
change_percent the same, as a percentage
open
high
low
previous_close prior close (quote) or the previous period's close
volume
market_cap quote mode only — see below

Dates are the exchange's, not UTC

A Tokyo session opens at 00:00 UTC. Dating those bars by UTC would file every Japanese trading day one day early — a whole-column error that only surfaces when the data is joined against something else. date is therefore computed with the exchange's own offset; timestamp remains plain UTC so rows from different exchanges still sort correctly against each other.

Nulls are real, and they stay null

  • market_cap is null on every historical row. Yahoo publishes only today's shares outstanding, so a historical market cap would be a number nobody measured.
  • market_cap is also null for instruments that have none — indices, FX pairs, most ETFs.
  • A period Yahoo pads with no trade at all (a closed hour in an FX series, a halt) is skipped, not emitted as a row of zeros.

A zero in a price or capitalisation column reads as a measurement. Anyone screening on "market cap below X" would otherwise pick up every index in the run.

Throughput and proxies

Yahoo rate-limits per exit address and answers HTTP 429 to a burst from a datacenter IP. This actor therefore:

  • uses a residential proxy by default and takes a fresh address between tickers, not only after a failure;
  • classifies 429, 403 and 5xx as retryable, and backs off with jitter onto a new address;
  • classifies an unknown or delisted ticker (HTTP 404, "No data found, symbol may be delisted") as permanent and reports it rather than retrying — a different address will never make it a company, and retrying would spend your money to learn nothing.

Turning the proxy off will produce 429s rather than data.

Quote mode batches up to 50 tickers into a single request, so a 200-ticker snapshot is four requests. Historical mode is one request per ticker, regardless of how many bars come back.

Market cap and the crumb handshake

Yahoo's quote endpoint — the only public source of marketCap — refuses a cold call with HTTP 401. This actor performs the cookie-plus-crumb handshake to get it rather than dropping the field.

If that handshake ever fails, the run does not fail: it falls back to the chart endpoint, which carries every column above except market_cap, and that column comes back null. A row with one honest null beats no row.

Billing

Pay per event:

  • actor-start, once per run, charged only after the input parses — a run rejected for a malformed input costs nothing.
  • quote-scraped, once per row written. Duplicated tickers are removed before charging, so a ticker listed twice is billed once.

Nothing is charged for a ticker that produced no row.