Yahoo Finance Quotes & History
Pricing
from $0.63 / 1,000 quote rows
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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
| Field | Type | Default | What it does |
|---|---|---|---|
tickers | array | — | Required. 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. |
mode | select | quote | quote for the live snapshot, historical for dated bars. |
range | select | 1mo | Historical mode only. 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max. |
interval | select | 1d | Historical mode only. 1m…90m, 1h, 1d, 5d, 1wk, 1mo, 3mo. Intraday intervals are only served for recent ranges — one-minute bars go back about a week. |
requestIntervalSecs | integer | 1 | Pause between requests. Yahoo rate-limits per exit address. |
proxyConfiguration | proxy | residential | Required in practice — see below. |
Output
One record per row:
symbol the Yahoo ticker, upper-casedmode "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 inquote_type EQUITY, ETF, INDEX, CURRENCY, CRYPTOCURRENCY, FUTURE, ...date YYYY-MM-DD, in the exchange's own timezonetimestamp ISO-8601 UTC observation timeprice last price (quote) or the period close (historical)change against previous_closechange_percent the same, as a percentageopenhighlowprevious_close prior close (quote) or the previous period's closevolumemarket_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_capis null on every historical row. Yahoo publishes only today's shares outstanding, so a historical market cap would be a number nobody measured.market_capis 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.