Built and run by one person.

Yahoo Finance Data API - Prices, Statements & Market Data

TigZig API & MCP Hub
REST / HTTP APIMCP Server (AI agents)Data APIOpen - no auth

Open, no-auth HTTP API and MCP server exposing Yahoo Finance data via yfinance - historical prices, full financial statements (balance sheet, income, cash flow; annual and quarterly), analyst price targets, recommendations, earnings/revenue estimates, earnings calendar, major holders, detailed company info and market data for any ticker. Most endpoints return JSON; statements come in two families - a structured-JSON family under /v1/excel/ and a separate plain family that returns pipe-delimited CSV text. Calls are lightly paced at roughly 1 second per ticker with up to 25 tickers per request, so a batch returns in seconds; a ticker with no data comes back as a short per-ticker note rather than failing the whole request, and over 25 tickers returns a clear message to split the batch. Built for AI agents first, humans second: every page here has a Copy-as-Markdown button so you can hand it straight to your agent.

AnyYahoo ticker
3financial statements
Annual + Qperiods
Up to 25tickers per call
MCP + RESTtwo interfaces
No authfully open

Quick start

AI agents: this API is open (no auth). Start with the OpenAPI spec for this API: https://yfin-h.tigzig.com/v1/openapi.json. The RFC 9727 catalog at api.tigzig.com/.well-known/api-catalog is a site-level directory of all TigZig APIs - go there only if you want a different API, not for more detail on this one.
MCP server for AI agents
https://yfin-h.tigzig.com/mcp
Streamable HTTP. Add as a custom connector in Claude.ai, ChatGPT, Cursor, n8n.
REST API base URL
https://yfin-h.tigzig.com/v1

Documentation

For people
yfin-h.tigzig.com/redoc

The full reference. Every endpoint, every field, and every enforced limit with the message you get when you cross it. Rendered from the running service, so it is never a copy that can fall behind.

For AI agents
yfin-h.tigzig.com/openapi.json

The machine contract for this API. The site-wide directory of every TigZig API is the RFC 9727 catalog at api.tigzig.com/.well-known/api-catalog.

What you can call

23 endpoints. Request bodies, every field and every enforced limit are in the full reference.

GET/v1/excel/get-balance-sheet/Get Balance Sheet Excel Endpoint
GET/v1/excel/get-cash-flow/Get Cash Flow Excel Endpoint
GET/v1/excel/get-income-statement/Get Income Statement Excel Endpoint
GET/v1/excel/get-quarterly-balance-sheet/Get Quarterly Balance Sheet Excel Endpoint
GET/v1/excel/get-quarterly-cash-flow/Get Quarterly Cash Flow Excel Endpoint
GET/v1/excel/get-quarterly-income-statement/Get Quarterly Income Statement Excel Endpoint
GET/v1/get-actions/Get Actions Endpoint
GET/v1/get-adj-close/Get Adj Close Endpoint
GET/v1/get-all-prices/Get All Prices Endpoint
GET/v1/get-analyst-price-targets/Get Analyst Price Targets Endpoint
GET/v1/get-balance-sheet/Get Balance Sheet Endpoint
GET/v1/get-calendar/Get Calendar Endpoint
GET/v1/get-cash-flow/Get Cash Flow Endpoint
GET/v1/get-detailed-info/Get Detailed Info Endpoint
GET/v1/get-dividends/Get Dividends Endpoint
GET/v1/get-estimates/Get Estimates Endpoint
GET/v1/get-income-statement/Get Income Statement Endpoint
GET/v1/get-major-holders/Get Major Holders Endpoint
GET/v1/get-market-data/Get Market Data
GET/v1/get-quarterly-cash-flow/Get Quarterly Cash Flow Endpoint
GET/v1/get-quarterly-income-statement/Get Quarterly Income Statement Endpoint
GET/v1/get-recommendations/Get Recommendations Endpoint
GET/v1/get-splits/Get Splits Endpoint

Overview

Connect the MCP server below and let your agent pull statements and prices on its own.

A financial-data extraction service over yfinance. It exposes Yahoo Finance financial statements, market data and OHLCV price histories for any ticker, over the same backend two ways:

  • REST + Swagger at yfin-h.tigzig.com/v1/* for any HTTP client - /v1/get-all-prices/, /v1/get-balance-sheet/, /v1/get-income-statement/, /v1/get-cash-flow/, /v1/get-detailed-info/, /v1/get-market-data/, quarterly variants, and Excel-friendly /v1/excel/* endpoints.
  • MCP for AI agent clients - the same data as tool calls (see below).

Most endpoints take a tickers query param (comma-separated for multiple symbols, up to 25 per request - send more and you get a clear message to split the batch); price endpoints add start_date / end_date. See the full parameter list in the API Endpoints section below or try them in Swagger.

MCP Server (for AI agents)

Connect an AI agent (Claude.ai, Cursor, n8n, custom clients) and let it pull statements and prices directly. No auth. One endpoint:

  • https://yfin-h.tigzig.com/mcp - Streamable HTTP, the recommended transport (MCP spec 2025-03-26).

Add to Claude.ai: Settings -> Connectors -> Add custom connector -> paste the Streamable HTTP URL -> approve. The same URL works for Cursor, n8n, and any MCP client.

What it returns

  • Financial statements - two families. The /v1/excel/ family (income, balance sheet, cash flow; annual + quarterly) returns structured JSON ({dates, data}) and is the MCP-exposed one. A separate plain family (/v1/get-income-statement/, /v1/get-cash-flow/, /v1/get-balance-sheet/ and the two quarterly variants) returns pipe-delimited CSV text.
  • Prices - /v1/get-all-prices/ returns OHLCV where Close is already split- and dividend-adjusted (yfinance auto_adjust; there is no separate "Adj Close" column, so do not re-adjust). Dividends and Stock Splits columns are populated only on the actual event dates, 0.0 otherwise.
  • Company & markets - market data, detailed company info, analyst price targets, analyst recommendations, earnings + revenue estimates (one endpoint), earnings calendar, major holders.
  • FastAPI backend + the fastapi-mcp package (exposes FastAPI endpoints as MCP tools), with Pydantic validation. Deployed on Coolify (Hetzner) behind Cloudflare.

Guides

This page is the reference - what the endpoints are and how to call them. The guides below are the long-form versions, with worked examples and the edges you only meet in real use:

Each is a plain page with a Markdown twin, so you can hand a URL straight to an agent. Come back to this page when you want parameter-level detail.

Rate limits

Published so a well-behaved client can plan around them. These are per-IP limits:

  • Per IP: 100 requests / minute.
  • Up to 25 tickers per request.

You get a 429 with Retry-After and a body explaining how to batch.

Avoiding 429s: Batch tickers instead of looping. One request carrying 25 tickers costs one unit of budget; 25 separate requests cost 25. Nearly every 429 seen on this API comes from one-ticker-per-request spreadsheets.

Every successful response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix epoch seconds), read straight from the running limiter, and Retry-After is set on 429. The current numbers are also published as machine-readable JSON at https://yfin-h.tigzig.com/, derived from live config. Read those at runtime rather than hard-coding the figures above - limits change, and these channels change with them.

Try it

No key, no signup.

Get Income Statement Endpoint
Paste into a browser address bar.
https://yfin-h.tigzig.com/v1/get-income-statement/?tickers=AAPL%2CMSFT
Response first lines of 7 KB
"Ticker|index|2025-09-30 00:00:00|2024-09-30 00:00:00|2023-09-30 00:00:00|2022-09-30 00:00:00|2021-09-30 00:00:00\nAAPL|Tax Effect Of Unusual Items|0.0|0.0|0.0|0.0|\nAAPL|Tax Rate For Calcs|0.156|0.241|0.147|0.162|\nAAPL|Normalized EBITDA|144748000000.0|134661000000.0|125820000000.0|130541000000.0|\nAAPL|Net Income From Continuing Operation Net Minority Interest|112010000000.0|93736000000.0|96995000000.0|99803000000.0|\nAAPL|Reconciled Depreciation|11698000000.0|11445000000.0|11519000000.0|11104000000.0|\nAAPL|Reconciled Cost Of Revenue|220960000000.0|210352000000.0|214137000000.0|223546000000.0|\nAAPL|EBITDA|144748000000.0|134661000000.0|125820000000.0|130541000000.0|\nAAPL|EBIT|133050000000.0|123216000000.0|114301000000.0|119437000000.0|\nAAPL|Net Interest Income|||-183000000.0|-106000000.0|198000000.0\nAAPL|Interest Expense|||3933000000.0|2931000000.0|2645000000.0\nAAPL|Interest Incom
...
Get Cash Flow Endpoint
Paste into a browser address bar.
https://yfin-h.tigzig.com/v1/get-cash-flow/?tickers=AAPL%2CMSFT
Response first lines of 10 KB
"Ticker|index|2025-09-30 00:00:00|2024-09-30 00:00:00|2023-09-30 00:00:00|2022-09-30 00:00:00|2021-09-30 00:00:00\nAAPL|Free Cash Flow|98767000000.0|108807000000.0|99584000000.0|111443000000.0|\nAAPL|Repurchase Of Capital Stock|-90711000000.0|-94949000000.0|-77550000000.0|-89402000000.0|\nAAPL|Repayment Of Debt|-10932000000.0|-9958000000.0|-11151000000.0|-9543000000.0|\nAAPL|Issuance Of Debt|4481000000.0|0.0|5228000000.0|5465000000.0|\nAAPL|Issuance Of Capital Stock|||||1105000000.0\nAAPL|Capital Expenditure|-12715000000.0|-9447000000.0|-10959000000.0|-10708000000.0|\nAAPL|Interest Paid Supplemental Data|||3803000000.0|2865000000.0|2687000000.0\nAAPL|Income Tax Paid Supplemental Data|43369000000.0|26102000000.0|18679000000.0|19573000000.0|\nAAPL|End Cash Position|35934000000.0|29943000000.0|30737000000.0|24977000000.0|\nAAPL|Beginning Cash Position|29943000000.0|30737000000.0|24977000000
...

Open-source edition

There is an open-source edition of this API - an earlier release you can run as your own service or borrow components from. Treat it as a reference implementation rather than a mirror of what is running here: the hosted service has moved on since.

github.com/amararun/shared-yfin-coolify

Built on FastAPI, fastapi-mcp, yfinance, pandas.

Self-hosting a public MCP server is your responsibility for security. A public endpoint needs edge rate limiting, abuse detection and secret hygiene. Full checklist: tigzig.com/security