20 % off all paid plans with code

Finance · Yahoo Finance

Yahoo Finance Market Data API

The Yahoo Finance Market Data API gets you live Yahoo Finance data the moment you ask, as clean, structured data – ready for your own app, a spreadsheet or an AI assistant. No scraping, nothing to maintain.

100 free requests every month · no credit card · one API key for all platforms

Key facts

Updated

Market data is more than a price series. A trader's chart needs the meta block with the 52-week band and exchange name, timestamps aligned with the exchange calendar, dividend and split markers, and often a benchmark index overlay. Analysts also want the option chain, who holds the stock, what insiders are doing and where consensus sits. everydata.io serves each of those Yahoo Finance views as a GET endpoint under /yho, in Yahoo's own JSON shape, refreshed at request time.

Main endpoint
/stock-v3-get-chart
Quota per call
1 request
Free plan
100 req / monththen from €30 / month
What you get

Yahoo Finance data, ready to use

The chart endpoint is the workhorse. /stock-v3-get-chart requires symbol, range and interval and returns chart.result[0] with three parts: meta (currency, exchangeName, fullExchangeName, regularMarketPrice, regularMarketChangePercent, fiftyTwoWeekHigh, fiftyTwoWeekLow, regularMarketVolume, chartPreviousClose, dataGranularity, validRanges), a timestamp[] array in epoch seconds, and indicators.quote[] with parallel open/high/low/close/volume arrays plus indicators.adjclose[]. Add events=div,split,earn to receive dividend, split and earnings markers, comparisons=^GDAXI,^FCHI to overlay indices, and includePrePost=true for extended-hours bars.

Five sibling endpoints complete the market picture. /stock-v3-get-options returns optionChain.result[] with expirationDates, strikes and per-expiry straddles alongside a quote block; /stock-v3-get-holders lists institutional and fund holders; /stock-v2-get-insider-transactions gives recent insider buys and sells; /stock-v2-get-analysis carries recommendationTrend and earningsTrend; /stock-v3-get-insights adds Yahoo's technical and fundamental read on the symbol.

  • Chart meta: regularMarketPrice, fiftyTwoWeekHigh/Low, regularMarketDayHigh/Low, exchangeName, timezone, dataGranularity
  • timestamp[] plus indicators.quote[] OHLCV arrays and indicators.adjclose[] for any range/interval pair
  • Event markers via events=div,split,earn and overlays via comparisons (e.g. ^GDAXI,^FCHI)
  • Pre- and post-market bars with includePrePost=true where the exchange supports them
  • Option chains with expirationDates, strikes and straddle rows per expiry
  • Institutional and fund holders, insider transactions, recommendation and earnings trends, Yahoo insights
  • Region parameter (US, DE, GB, HK, IN and eight more) to select the Yahoo edition
Use cases

What teams build with this

Interactive price charts

Render candlesticks from indicators.quote[] with dividend and split markers from events, and let users toggle an index overlay via comparisons – the same data Yahoo's own chart draws.

Options analytics

Pull the full chain for a symbol, compute implied-volatility skews and open-interest walls per expiry, and refresh the front months intraday within your rate limit.

Ownership and insider monitoring

Track changes in institutional holders and recent insider transactions across a coverage list, alerting when a director sells or a fund position jumps.

Sell-side consensus tracking

Store recommendationTrend and earningsTrend snapshots each week to show how strongBuy/hold/sell counts and EPS estimates drift into earnings season.

How it works

Example request and response

Unlike the historical-data endpoint, range and interval are mandatory here because they define the granularity of the series. Combine them as Yahoo does: 1d with 1m or 5m for an intraday view, 1mo with 1d for a month of daily bars, 5y with 1wk for a long-term chart. Check meta.validRanges in the response to learn which ranges the instrument supports.

GET /yho/stock-v3-get-chart

curl "https://api.everydata.io/yho/stock-v3-get-chart?symbol=AAPL&range=1mo&interval=1d&region=US&events=div%2Csplit" \
  -H "x-api-key: YOUR_API_KEY"

Response (shortened)

200 OK · application/json
{
  "chart": {
    "result": [
      {
        "meta": {
          "currency": "USD",
          "symbol": "AAPL",
          "exchangeName": "NMS",
          "fullExchangeName": "NasdaqGS",
          "instrumentType": "EQUITY",
          "regularMarketTime": 1789761602,
          "timezone": "EDT",
          "regularMarketPrice": 336.13,
          "regularMarketChangePercent": -0.258,
          "fiftyTwoWeekHigh": 344.57,
          "fiftyTwoWeekLow": 243.42,
          "regularMarketDayHigh": 338.49,
          "regularMarketDayLow": 332.53,
          "regularMarketVolume": 86241049,
          "longName": "Apple Inc.",
          "chartPreviousClose": 310.03,
          "dataGranularity": "1d",
          "range": "1mo",
          "validRanges": [
            "1d",
            "5d",
            "1mo",
            "3mo",
            "6mo",
            "1y",
            "2y",
            "5y",
            "10y",
            "ytd",
            "max"
          ]
        },
        "timestamp": [
          1787146200,
          1787232600
        ],
        "indicators": {
          "quote": [
            {
              "open": [
                332.1,
                334.77
              ],
              "high": [
                335.2,
                338.34
              ],
              "low": [
                329.9,
                330.18
              ],
              "close": [
                333.4,
                337
              ],
              "volume": [
                41230100,
                36700200
              ]
            }
          ],
          "adjclose": [
            {
              "adjclose": [
                333.4,
                337
              ]
            }
          ]
        }
      }
    ]
  }
}

Read the series column-wise: timestamp[i] belongs to indicators.quote[0].close[i]. Yahoo leaves null for intervals without a trade, so filter nulls before charting. With events requested, an events object keyed by timestamp appears next to meta; with comparisons set, each extra symbol arrives in a comparisons array on the same timestamp grid, ready for a relative-performance overlay.

Option chains are large. optionChain.result[0].expirationDates lists every expiry as epoch seconds and options[] holds one entry per expiry with straddles rows pairing the call and put at each strike. Holders, insider transactions and analysis return the corresponding quoteSummary modules – institutionOwnership, insiderTransactions, recommendationTrend, earningsTrend – with the usual {raw, fmt} values.

Two honest limits. Four catalogue endpoints – market-get-watchlist-detail, market-get-watchlist-performance, conversations-count and conversations-v2-list – answer with HTTP 501 because Yahoo retired its public watchlist and conversation (Canvass) services; the routes stay so clients fail cleanly. And this is the market data Yahoo shows publicly: realtime or delayed depending on the exchange, built for research, dashboards and screeners, not as a licensed feed for executing orders.

Related endpoints

GET/yho/stock-v3-get-chart

Chart. Chart series with events and comparisons.

GET/yho/stock-v3-get-options

Options. Option chain.

GET/yho/stock-v3-get-holders

Holders. Institutional & fund holders.

GET/yho/stock-v2-get-insider-transactions

Insider transactions. Recent insider trades.

GET/yho/stock-v2-get-analysis

Analysis. Earnings & recommendation trends.

Full API reference
Pricing

Pay per request, every platform included

A chart call with events and two comparison indices is still one request, as is a full option chain. Intraday dashboards that refresh 20 symbols every five minutes during a 7-hour session need roughly 1,700 requests a day – the Production plan (50,000 requests, €80, 100 per minute) covers that comfortably; Business (300,000, €300, 250 per minute) scales it to a small trading desk. Requests that fail on Yahoo's side with a 5xx are not counted.

Free
100 req / month
Starter
5,000 req · €30
Production
50,000 req · €80
Business
300,000 req · €300

Yahoo Finance Market Data API: frequently asked questions

Which range and interval combinations are valid?

range accepts 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd and max; interval accepts 1m, 2m, 5m, 15m, 30m, 60m, 1d, 1wk and 1mo. Minute intervals only work with short ranges (1m for up to 7 days). meta.validRanges in every response lists what the instrument supports.

Can I get pre-market and after-hours prices?

Yes. Add includePrePost=true to the chart request for symbols where meta.hasPrePostMarketData is true. Extended-hours bars appear in the same arrays and currentTradingPeriod tells you the pre, regular and post session boundaries.

How do I add dividend and split markers to a chart?

Pass events=div,split (add earn for earnings dates). The response gains an events object keyed by timestamp with the amount for dividends and the numerator/denominator for splits.

Why do some endpoints return HTTP 501?

market-get-watchlist-detail, market-get-watchlist-performance, conversations-count and conversations-v2-list depend on Yahoo services that no longer exist publicly. They return 501 with an explanatory message instead of fabricated data, and they are never billed.

Is the data suitable for live trading?

It is the publicly displayed Yahoo Finance data, realtime for some exchanges and delayed 15 to 20 minutes for others. It is well suited to research, analytics and dashboards; for order execution use a licensed exchange feed.

Draw your first chart from live data

Sign up for free and call GET /yho/stock-v3-get-chart?symbol=AAPL&range=1mo&interval=1d – the full meta, timestamp and OHLCV arrays arrive as one JSON document.