# Yahoo Finance Data API

Open, no-auth access to Yahoo Finance data via yfinance: historical prices (OHLCV and adjusted close), annual and quarterly financial statements (income, balance sheet, cash flow), detailed company info, market data, dividends, splits and corporate actions, in JSON and Excel-friendly formats.

## Quick start

Every endpoint is a plain `GET` and needs no key. One request, two tickers:

```
https://yfin-h.tigzig.com/v1/get-market-data/?tickers=AAPL,RELIANCE.NS
```

**Send your symbols together, not one per request.** Every endpoint here is batch-capable up to 25 tickers, and looping one ticker per call is the single most expensive mistake callers make - it is slower for you and it is what exhausts your rate-limit budget.

## Symbols and parameters

Every endpoint takes `?tickers=` with one or more comma-separated Yahoo Finance symbols. Symbols follow the Yahoo Finance convention, so non-US listings carry an exchange suffix: RELIANCE.NS (India NSE), .BO (BSE), .L (London), .HK (Hong Kong), .T (Tokyo). Indices look like ^NSEI and FX like EURUSD=X. Broker, scheme or company names such as 'IRBINVITFUND' do not resolve. Dates are YYYY-MM-DD.

### Endpoints that also need dates

`/v1/get-adj-close/`, `/v1/get-all-prices/` additionally require `&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD`. Every other endpoint takes tickers alone.

## Response types

- The MCP-exposed endpoints all return **JSON**, including the `/excel/` financial-statement endpoints (structured `{dates, data}`).
- A separate, non-MCP set of plain statement endpoints (`/v1/get-income-statement/` and siblings) returns pipe-delimited (`|`) **CSV text** instead.
- Each endpoint's own description below states its response shape and flags per-ticker latency.

## Request limits

- Up to **25 tickers per request** on every endpoint. Sending more returns a clear 400 asking you to split the batch.
- Calls are lightly paced at roughly 1 second per ticker, so a large batch takes proportionally longer rather than failing.
- A ticker with no data returns a short per-ticker note rather than failing the whole request, so one bad symbol never costs you the other results.
- **Read your budget off the response headers, do not hard-code a number**: `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset` are on every response and come out of the running limiter, so they cannot go stale. `GET /` returns the same limits as JSON.

## Errors

Every 4xx and 5xx returns `{error: {code, message}, help: {docs, openapi, catalog}}`.

Where the endpoint is known and the request shape is what failed - a 422, or a wrong method - the body also carries `example`, **a complete working URL for that same endpoint**, built from the parameter examples in this spec. Copy it, run it, then adapt it. `GET /` returns the full endpoint index as JSON.

More Tigzig tools: https://api.tigzig.com/.well-known/api-catalog

## Root

`GET /`

What this API is, where the docs are, and your current request limits.

Returns the base URL, links to the docs and the OpenAPI spec, the MCP endpoint, and
a limits block with your per-IP budget and the maximum tickers per request.

## Get Income Statement Endpoint

`GET /v1/get-income-statement/`

Annual income statement (P&L) for one or more Yahoo Finance tickers.

RESPONSE IS TEXT, NOT JSON. Returns a pipe-delimited ('|') CSV string. The first
column is `Ticker`, the second is the line-item name, and each remaining column is
a fiscal-period end date. Multiple tickers are returned as consecutive blocks in
one string. A ticker with no data yields the line
`No income statement data available for <TICKER>`.

LATENCY: roughly 1 second per ticker (up to 25 per request). Tickers with no data
come back with a short note, not a failure of the whole request; sending more than
25 returns a clear message to split the batch.

Params: `tickers` - comma-separated symbols (e.g. `AAPL,MSFT`). Use the Yahoo
symbol convention (`RELIANCE.NS`, `^NSEI`).

## Get Cash Flow Endpoint

`GET /v1/get-cash-flow/`

Annual cash-flow statement for one or more Yahoo Finance tickers.

RESPONSE IS TEXT, NOT JSON. Returns a pipe-delimited ('|') CSV string. First column
`Ticker`, second the line-item name, remaining columns are fiscal-period end dates.
Multiple tickers come back as consecutive blocks in one string. A ticker with no
data yields `No cash flow data available for <TICKER>`.

LATENCY: roughly 1 second per ticker (up to 25 per request). Tickers with no data
come back with a short note, not a failure of the whole request; sending more than
25 returns a clear message to split the batch.

Params: `tickers` - comma-separated symbols (e.g. `AAPL,MSFT`).

## Get Quarterly Income Statement Endpoint

`GET /v1/get-quarterly-income-statement/`

QUARTERLY income statement (P&L) for one or more Yahoo Finance tickers.

Same shape as the annual endpoint, but columns are quarter-end dates instead of
fiscal years. RESPONSE IS TEXT, NOT JSON: a pipe-delimited ('|') CSV string with
`Ticker` as the first column. Multiple tickers are consecutive blocks in one string.

LATENCY: roughly 1 second per ticker (up to 25 per request). Tickers with no data
come back with a short note, not a failure of the whole request; sending more than
25 returns a clear message to split the batch.

Params: `tickers` - comma-separated symbols (e.g. `AAPL,MSFT`).

## Get Quarterly Cash Flow Endpoint

`GET /v1/get-quarterly-cash-flow/`

QUARTERLY cash-flow statement for one or more Yahoo Finance tickers.

Same shape as the annual endpoint, but columns are quarter-end dates. RESPONSE IS
TEXT, NOT JSON: a pipe-delimited ('|') CSV string with `Ticker` as the first column.
Multiple tickers are consecutive blocks in one string.

LATENCY: roughly 1 second per ticker (up to 25 per request). Tickers with no data
come back with a short note, not a failure of the whole request; sending more than
25 returns a clear message to split the batch.

Params: `tickers` - comma-separated symbols (e.g. `AAPL,MSFT`).

## Get Balance Sheet Endpoint

`GET /v1/get-balance-sheet/`

Annual balance sheet for one or more Yahoo Finance tickers.

RESPONSE IS TEXT, NOT JSON. Returns a pipe-delimited ('|') CSV string. First column
`Ticker`, second the line-item name, remaining columns are fiscal-period end dates.
Multiple tickers come back as consecutive blocks in one string. A ticker with no
data yields `No balance sheet data available for <TICKER>`.

LATENCY: roughly 1 second per ticker (up to 25 per request). Tickers with no data
come back with a short note, not a failure of the whole request; sending more than
25 returns a clear message to split the batch.

Params: `tickers` - comma-separated symbols (e.g. `AAPL,MSFT`).

## Get Adj Close Endpoint

`GET /v1/get-adj-close/`

Adjusted closing prices for one or more tickers over a date range.

Unlike the statement endpoints, this one DOES return JSON: an object keyed by date
(`"YYYY-MM-DD"`), whose value is an object of `{ticker: adjusted_close}`. A ticker
with no price on a given date is `null` (a real trading gap, e.g. a market holiday
in one country but not another); a ticker absent from the whole fetch is the string
`"Data not available"`. Handle BOTH cases when parsing.

Dates are NOT sparse-filled across tickers - when comparing markets with different
holidays, align on the date keys rather than assuming equal-length series.

Params:
  `tickers`    - comma-separated symbols (e.g. `AAPL,MSFT`)
  `start_date` - `YYYY-MM-DD` (required)
  `end_date`   - `YYYY-MM-DD` (required)
Dates must be YYYY-MM-DD. Anything else returns HTTP 400 with an error naming the
parameter at fault. An end_date before start_date is also a 400.

## Get Market Data

`GET /v1/get-market-data/`

Fetches key market data metrics for specified stock tickers from Yahoo Finance.

This endpoint provides three essential market metrics for each ticker:
- `market_cap`: The total market value of all outstanding shares in USD
- `free_float`: The number of shares available for public trading (excluding restricted shares)
- `total_shares_outstanding`: The total number of shares issued by the company

These metrics help assess company size, liquidity, and ownership structure.

### Example

```
https://yfin-h.tigzig.com/v1/get-market-data/?tickers=AAPL,MSFT
```

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get All Prices Endpoint

`GET /v1/get-all-prices/`

Fetches comprehensive historical price data for specified Yahoo Finance tickers.

This endpoint retrieves complete historical price data including:
- Open prices
- High prices
- Low prices
- Close prices
- Trading volumes
- Dividend payments
- Stock splits

Data is returned in a JSON format organized by date, with each date containing
data for all requested tickers. For each ticker, all available price metrics
are provided. This gives a complete picture of price movement and trading activity
over the specified time period.

The data can be used for:
- Technical analysis and charting
- Performance tracking
- Dividend history analysis
- Trading volume analysis
- Volatility calculations

### Example

```
https://yfin-h.tigzig.com/v1/get-all-prices/?tickers=AAPL,MSFT&start_date=2025-01-02&end_date=2025-01-31
```

TSV format example: get-all-prices?tickers=AAPL&start_date=2023-01-01&end_date=2023-01-31&format=tsv
TSV response returns a compact tab-delimited string inside JSON, optimized for LLM/Excel consumption.

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Detailed Info Endpoint

`GET /v1/get-detailed-info/`

Retrieves comprehensive company information and data points from Yahoo Finance.

Note: Returns roughly 1 second per ticker (up to 25 per request). Tickers with no data come back with a short note, not a failure of the whole request.

This endpoint returns approximately 200 structured data points organized across 11 key categories:

1. Company Information - Basic details about the company, sector, industry, etc.
2. Stock Price & Market Activity - Current and historical price information
3. Valuation & Ratios - P/E ratio, PEG, price-to-book, etc.
4. Dividend Information - Yield, payment history, ex-dividend dates
5. Earnings & Financials - EPS, revenue, profit margins, etc.
6. Share Statistics - Float, outstanding shares, short interest
7. Analyst Price Targets - Consensus targets, recommendations
8. Technical Indicators - Moving averages, relative strength
9. Earnings Call / Fiscal Calendar - Upcoming events and dates
10. Other - Miscellaneous financial metrics and data
11. Key Executives - Information about company leadership

The data is structured with 'main_info' containing all general data points and 'officers' 
containing information about key executives.

### Example

```
https://yfin-h.tigzig.com/v1/get-detailed-info/?tickers=AAPL,MSFT
```

Max 25 tickers per request.

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Income Statement Excel Endpoint

`GET /v1/excel/get-income-statement/`

Retrieves annual income statements for specified Yahoo Finance tickers in a structured JSON format.

This endpoint pulls complete annual income statement data from Yahoo Finance with all available line items, including:
- Total Revenue
- Cost of Revenue
- Gross Profit
- Operating Expenses
- Operating Income
- Net Income
- EPS metrics
- And many more financial metrics

Data is returned in a well-structured JSON format optimized for analysis and presentation:
- 'dates': An array of reporting period dates
- 'data': An array of objects, each containing a financial metric and its values across reporting periods

The structured format makes it easy to:
- Compare performance across different years
- Analyze financial trends
- Calculate financial ratios
- Generate reports or visualizations

### Example

```
https://yfin-h.tigzig.com/v1/excel/get-income-statement/?tickers=AAPL,MSFT
```

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Balance Sheet Excel Endpoint

`GET /v1/excel/get-balance-sheet/`

Retrieves annual balance sheets for specified Yahoo Finance tickers in a structured JSON format.

This endpoint pulls complete annual balance sheet data from Yahoo Finance with all available line items, including:
- Assets (Current Assets, Long-term Assets)
- Liabilities (Current Liabilities, Long-term Debt)
- Shareholders' Equity
- Cash and Equivalents
- Inventory
- Accounts Receivable/Payable
- And many more balance sheet items

Data is returned in a well-structured JSON format optimized for analysis and presentation:
- 'dates': An array of reporting period dates
- 'data': An array of objects, each containing a financial metric and its values across reporting periods

The structured format makes it easy to:
- Assess financial position at different points in time
- Calculate financial ratios (quick ratio, debt-to-equity, etc.)
- Evaluate liquidity and solvency
- Track changes in company financial structure

### Example

```
https://yfin-h.tigzig.com/v1/excel/get-balance-sheet/?tickers=AAPL,MSFT
```

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Cash Flow Excel Endpoint

`GET /v1/excel/get-cash-flow/`

Retrieves annual cash flow statements for specified Yahoo Finance tickers in a structured JSON format.

This endpoint pulls complete annual cash flow data from Yahoo Finance with all available line items, including:
- Operating Cash Flow
- Investing Cash Flow
- Financing Cash Flow
- Capital Expenditures
- Dividends Paid
- Stock Repurchases
- Free Cash Flow
- And many more cash flow metrics

Data is returned in a well-structured JSON format optimized for analysis and presentation:
- 'dates': An array of reporting period dates
- 'data': An array of objects, each containing a financial metric and its values across reporting periods

The structured format makes it easy to:
- Analyze cash generation and usage over time
- Assess operational efficiency
- Evaluate investment and financing activities
- Determine sustainability of dividends and share repurchases

### Example

```
https://yfin-h.tigzig.com/v1/excel/get-cash-flow/?tickers=AAPL,MSFT
```

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Quarterly Income Statement Excel Endpoint

`GET /v1/excel/get-quarterly-income-statement/`

Retrieves quarterly income statements for specified Yahoo Finance tickers in a structured JSON format.

This endpoint pulls complete quarterly income statement data from Yahoo Finance with all available line items, including:
- Total Revenue
- Cost of Revenue
- Gross Profit
- Operating Expenses
- Operating Income
- Net Income
- EPS metrics
- And many more financial metrics

Data is returned in a well-structured JSON format optimized for analysis and presentation:
- 'dates': An array of quarterly reporting period dates
- 'data': An array of objects, each containing a financial metric and its values across quarters

The structured format makes it easy to:
- Identify seasonal patterns in business performance
- Track quarter-over-quarter growth rates
- Analyze short-term business trends
- Compare quarterly results to analyst expectations
- Detect turning points in business performance more quickly than annual data

### Example

```
https://yfin-h.tigzig.com/v1/excel/get-quarterly-income-statement/?tickers=AAPL,MSFT
```

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Quarterly Cash Flow Excel Endpoint

`GET /v1/excel/get-quarterly-cash-flow/`

Retrieves quarterly cash flow statements for specified Yahoo Finance tickers in a structured JSON format.

This endpoint pulls complete quarterly cash flow data from Yahoo Finance with all available line items, including:
- Operating Cash Flow
- Investing Cash Flow
- Financing Cash Flow
- Capital Expenditures
- Dividends Paid
- Stock Repurchases
- Free Cash Flow
- And many more cash flow metrics

Data is returned in a well-structured JSON format optimized for analysis and presentation:
- 'dates': An array of quarterly reporting period dates
- 'data': An array of objects, each containing a financial metric and its values across quarters

The structured format makes it easy to:
- Identify seasonal patterns in cash generation
- Track quarter-over-quarter cash flow trends
- Analyze short-term liquidity changes
- Compare quarterly cash flow to analyst expectations
- Detect changes in capital allocation more quickly than annual data

### Example

```
https://yfin-h.tigzig.com/v1/excel/get-quarterly-cash-flow/?tickers=AAPL,MSFT
```

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Quarterly Balance Sheet Excel Endpoint

`GET /v1/excel/get-quarterly-balance-sheet/`

QUARTERLY balance sheet for one or more Yahoo Finance tickers, structured JSON.

Same {dates, data} shape as the annual /excel/get-balance-sheet endpoint, but the
columns are quarter-end dates. LATENCY: roughly 1 second per ticker (up to 25 per request).
A ticker with no data (or a commodity / crypto / index) returns {"error": "..."}.

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Analyst Price Targets Endpoint

`GET /v1/get-analyst-price-targets/`

Analyst price targets (current / high / low / mean / median) for one or more tickers.

Values are in the stock's quote currency. A ticker with no analyst coverage - or a
commodity, crypto or index - returns {"error": "..."} for that ticker.

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Recommendations Endpoint

`GET /v1/get-recommendations/`

Analyst recommendation trend for one or more tickers: monthly tallies of
strongBuy / buy / hold / sell / strongSell (current month and the prior three).

A ticker with no coverage returns {"error": "..."} for that ticker.

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Calendar Endpoint

`GET /v1/get-calendar/`

Upcoming corporate calendar for one or more tickers: next earnings date(s),
ex-dividend and dividend dates, and the consensus earnings / revenue estimate
({high, low, average}) for the next report.

ALL DATES ARE UTC CALENDAR DATES (YYYY-MM-DD), with no time of day. Yahoo timestamps
each event to an exact instant; this endpoint reports the UTC date of that instant.
For a US issuer reporting after about 8pm Eastern the instant crosses midnight UTC, so
the UTC date is the following day - convert from your own timezone accordingly rather
than assuming it is the US trading date.

Missing fields are null; a ticker with none returns {"error": "..."}. Past dividend and
ex-dividend dates are reported as null, since this endpoint covers upcoming events -
for dividend history use /v1/get-dividends/ or /v1/get-actions/.

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Estimates Endpoint

`GET /v1/get-estimates/`

Forward analyst estimates for one or more tickers, EARNINGS and REVENUE together
in one response. Each is a list of period rows (0q current quarter, +1q next quarter,
0y current year, +1y next year) with avg / low / high, numberOfAnalysts, growth, and
the year-ago comparison.

A ticker with no coverage returns {"error": "..."} for that ticker.

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Major Holders Endpoint

`GET /v1/get-major-holders/`

Ownership breakdown for one or more tickers: percent held by insiders and by
institutions (decimals, e.g. 0.66 = 66%), the institutional float percentage, and
the number of institutional holders.

A ticker with no ownership data returns {"error": "..."} for that ticker.

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Dividends Endpoint

`GET /v1/get-dividends/`

Full dividend payment history for one or more tickers, straight from Yahoo Finance.

Returns a date -> amount-per-share map per ticker (e.g. {"2026-05-11": 0.27}), covering
everything Yahoo holds (decades for large caps). Amounts are in the ticker's own currency
and are reported exactly as Yahoo publishes them: nothing is summed, annualised, adjusted
or converted, so no yield or payout ratio is derived here.

Works for stocks, ETFs and non-US listings (e.g. VUSA.L, RELIANCE.NS). A ticker that has
never paid a dividend returns {"error": "..."} for that ticker while the others still
return data. Max 25 tickers per request.

For dividends and splits together in one call, use get_actions.

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Splits Endpoint

`GET /v1/get-splits/`

Full stock-split history for one or more tickers, straight from Yahoo Finance.

Returns a date -> ratio map per ticker (e.g. {"2020-08-31": 4.0} = a 4-for-1 split on that
date), covering everything Yahoo holds. Ratios are reported exactly as Yahoo publishes
them; no price adjustment is applied here.

A ticker that has never split returns {"error": "..."} for that ticker while the others
still return data. Max 25 tickers per request.

For dividends and splits together in one call, use get_actions.

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt

## Get Actions Endpoint

`GET /v1/get-actions/`

Corporate actions (dividends AND splits together) for one or more tickers, straight
from Yahoo Finance.

Returns a date -> action-row map per ticker, e.g.
{"2026-05-11": {"Dividends": 0.27, "Stock Splits": 0.0}}. Values are passed through
exactly as Yahoo publishes them, with no derived or adjusted figures.

THE COLUMN SET VARIES BY TICKER: a stock with both has 'Dividends' and 'Stock Splits',
an ETF that has never split may have only 'Dividends' (e.g. VUSA.L), and a company that
has never paid a dividend may have only 'Stock Splits' (e.g. TSLA). Read by key rather
than assuming both are present.

A ticker with no corporate actions at all returns {"error": "..."} for that ticker while
the others still return data. Max 25 tickers per request. For one or the other on its
own, use get_dividends or get_splits.

Part of Tigzig: free interactive tools, open-source repos, APIs and MCP servers for
analytics and live data across global and Indian markets, macro indicators and
filings. Catalog: https://api.tigzig.com/.well-known/api-catalog
Guide: https://www.tigzig.com/llms.txt
