BYTETOOLS

Yahoo Finance Chart API

Free Yahoo Finance chart endpoint with no key: stock quotes, historical OHLC prices and volume for equities, ETFs, indices and currencies. Tested example.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-20

What is the Yahoo Finance Chart API?

The Yahoo Finance chart endpoint is a free, key-free API returning stock market data — current quotes, historical open/high/low/close prices, volume and metadata — for equities, ETFs, indices, currencies and commodities.

Free stock market data is genuinely scarce; nearly every provider gates it behind registration and tight quotas. This Yahoo endpoint remains publicly accessible and covers global equities, ETFs, indices, forex and crypto.

It is undocumented and unsupported, which is the honest caveat. Yahoo has changed and restricted these endpoints before, and it requires a browser-like User-Agent to respond at all. Treat it as convenient rather than dependable, and do not build anything critical on it without a fallback.

Quick facts

Base URL
https://query1.finance.yahoo.com/v8/finance/chart
Authentication
No API key, but a browser-like User-Agent header is required or requests are rejected.
Rate limit
Not published. Aggressive use gets IP-blocked.
Pricing
Free but unofficial. Yahoo's terms restrict redistribution — check before commercial use.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Yahoo Finance Chart API

Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.

1. Fetch stock price data

GET https://query1.finance.yahoo.com/v8/finance/chart/AAPL?range=1d&interval=1d

curl
curl 'https://query1.finance.yahoo.com/v8/finance/chart/AAPL?range=1d&interval=1d' \
  -H 'User-Agent: Mozilla/5.0'
JavaScript (fetch)
const res = await fetch("https://query1.finance.yahoo.com/v8/finance/chart/AAPL?range=1d&interval=1d", {
  headers: {
    "User-Agent": "Mozilla/5.0",
  },
});
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

headers = {
    "User-Agent": "Mozilla/5.0",
}

res = requests.get("https://query1.finance.yahoo.com/v8/finance/chart/AAPL?range=1d&interval=1d", headers=headers, timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "chart": {
    "result": [
      {
        "meta": {
          "currency": "USD",
          "symbol": "AAPL",
          "exchangeName": "NMS",
          "fullExchangeName": "NasdaqGS",
          "instrumentType": "EQUITY",
          "firstTradeDate": 345479400,
          "regularMarketTime": 1787169601,
          "hasPrePostMarketData": true,
          "gmtoffset": -14400,
          "timezone": "EDT",
          "exchangeTimezoneName": "America/New_York",
          "regularMarketPrice": 316.83,
          "fiftyTwoWeekHigh": 344.57,
          "fiftyTwoWeekLow": 223.78,
          "regularMarketDayHigh": 319.28,
          "regularMarketDayLow": 309.6,
          "regularMarketVolume": 50009121,
          "longName": "Apple Inc.",
          "shortName": "Apple Inc.",
          "chartPreviousClose": 310.03,
          "priceHint": 2,
          "currentTradingPeriod": {
            "pre": {
              "timezone": "EDT",
              "start": 1787126400,
              "end": 1787146200,
              "gmtoffset": -14400
            },
            "regular": {
              "timezone": "EDT",
              "start": 1787146200,
              "end": 1787169600,
              "gmtoffset": -14400
            },
            "post": {
              "timezone": "EDT",
              "start": 1787169600,
              "end": 1787184000,
              "gmtoffset": -14400
            }
          },
          "dataGranularity": "1d",
          "range": "1d",
          "validRanges": [
            "1d",
            "5d",
            "1mo",
            "3mo",
            "6mo",

Parameters

ParameterTypeRequiredDescription
<symbol>pathRequiredTicker symbol. AAPL
rangestringOptional1d, 5d, 1mo, 3mo, 6mo, 1y, 5y, max. 1mo
intervalstringOptional1m, 5m, 1h, 1d, 1wk, 1mo. 1d
User-AgentheaderRequiredBrowser-like UA — required. Mozilla/5.0

Response fields

chart.result[].meta.symbolstring
The ticker returned.
chart.result[].meta.regularMarketPricenumber
Current or most recent price.
chart.result[].meta.currencystring
Trading currency.
chart.result[].timestamparray
Unix timestamps for each data point.
chart.result[].indicators.quote[0]object
Parallel arrays of open, high, low, close and volume.
chart.errorobject|null
Error detail when the request fails.

What you can build with the Yahoo Finance Chart API

  • Display stock prices on a portfolio dashboard
  • Chart historical price data for analysis
  • Track index and ETF performance
  • Prototype financial tools before paying for market data

Common errors and how to fix them

401 or 429 without a browser User-Agent

Yahoo rejects default HTTP client user agents.

Fix: Send a browser-like User-Agent header; without it the endpoint refuses to respond.

Parallel arrays are confusing

Timestamps and OHLC values are separate arrays.

Fix: Zip them by index — timestamp[i] corresponds to quote[0].close[i].

Nulls inside the price arrays

Gaps occur on non-trading periods.

Fix: Filter nulls before charting rather than plotting them as zero.

Yahoo Finance Chart API — frequently asked questions

Is the Yahoo Finance API official?

No. These endpoints are undocumented and unsupported. They work today and are widely used, but Yahoo has restricted them before — do not build anything critical on this without a fallback.

Why do my requests get rejected?

Yahoo blocks default HTTP client user agents. Send a browser-like User-Agent header and the endpoint responds normally.

How is the price data structured?

As parallel arrays: `timestamp` alongside separate open, high, low, close and volume arrays. Zip them by index to reconstruct candles.

Can I use this commercially?

Be careful. Yahoo's terms restrict redistribution of market data. For a commercial product, use a licensed market data provider.

Tools that pair with this API

Yahoo Finance Chart is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.