There is no official
Yahoo Finance API.

Yahoo shut the public endpoints down in 2017 and never replaced them. What everyone calls the Yahoo Finance API today is a set of undocumented URLs that open-source libraries read for you, and yfinance is the one most projects settle on. It is genuinely good at prices. News is where it thins out, and that is the only half we are here to argue about.

Straight answer before you read further: alphai does not serve quotes, OHLCV, fundamentals, or options. If that is what brought you here, keep yfinance. The rest of this page is about the news and filings side.

import os
import requests
import yfinance as yf

# Prices: yfinance still does this well, so keep it.
history = yf.Ticker("NVDA").history(period="1mo")
print(history["Close"].iloc[-1])

# News: scored and ticker-linked, which .news does not give you.
res = requests.get(
    "https://api.alphai.io/api/news/",
    params={"symbol": "NVDA", "min_relevance": 6},
    headers={"Authorization": f"Bearer {os.environ['ALPHAI_API_KEY']}"},
    timeout=10,
)
res.raise_for_status()
for item in res.json()["results"]:
    print(item["enrichment"]["relevance_score"],
          item["original"]["title"])

What you are actually calling.

The original Yahoo Finance API ran on YQL and was retired in 2017. Nothing supported took its place. The endpoints that yfinance and its cousins read are the ones the Yahoo Finance website calls for itself, which means they carry no published contract and no promise to keep working.

In practice that is a tolerable trade for a backtest or a side project, and a real risk for anything on a schedule. When Yahoo changes a response shape, every library reading it breaks at once, and the repair lands whenever a volunteer maintainer gets to it. Teams that cannot wait usually keep a documented source alongside it.

None of that is an argument against yfinance. It is an argument for knowing which parts of your stack sit on an undocumented endpoint, so you can decide where a supported one is worth paying for.

Coverage, honestly

Historical OHLCV
Yes, the core use case
Not served
Live quotes
Yes, delayed
Not served
Fundamentals and financials
Yes
Not served
Options chains
Yes
Not served
Company news
A short recent list, unscored
Full feed, 1 to 10 relevance score, category, tickers
SEC Form 4 insider events
Not served
One structured JSON event per filing
Push delivery
Not served, poll it yourself
Email alerts, and signed webhooks on Pro
Agent access
Not served
MCP server at mcp.alphai.io
Stability contract
Undocumented endpoints, no SLA
Documented API under a key, OpenAPI 3.1 schema

Four of those rows are a flat no on our side. We would rather you read that here than find it after signing up.

Why .news is not enough.

Ticker.news gives you a handful of recent links. Nothing in the payload tells you whether a story is a routine reprint or a disclosure that moves the position, so any filtering has to be rebuilt on your side from headlines.

A score, not a pile

Every article carries a 1 to 10 relevance score and a category, so min_relevance=6 is a working filter instead of a keyword regex you maintain forever.

Tickers that were checked

Tickers come from the article body and are validated against the symbol table before they stick, so a story about Bodycote does not arrive tagged with a Canadian telco.

Filings in the same shape

SEC Form 4 events arrive through the same envelope as news, with side, shares, average price, value and a 10b5-1 flag in a structured block. One parser reads both.

You can stop polling

Email alerts on any ticker, HMAC-signed webhooks on Pro, and an MCP server if the consumer is an agent rather than a cron job.

Questions, answered.

What happened to the official API, whether yfinance still works, and where the line runs between what it covers and what we do.

Is there an official Yahoo Finance API?

No. Yahoo shut down the public YQL endpoints behind the old Yahoo Finance API in 2017 and has not shipped a supported replacement. What circulates today as "the Yahoo Finance API" is a set of undocumented endpoints that the site itself uses, read by open-source libraries on your behalf. There is no published contract, no versioning, and no support channel if one of them changes.

Is yfinance still working?

Generally yes, and it remains the most practical way to pull Yahoo price data in Python. Because it depends on endpoints Yahoo does not document, it breaks from time to time when those change, and the fix arrives whenever a maintainer ships one. Projects that cannot absorb an occasional outage usually keep a second source ready.

Why does yfinance news return so little?

News is not what the library is built around. Ticker.news hands back a short list of recent headlines with links, and the payload shape has changed across releases. There is no relevance signal, so a routine reprint and a material disclosure look identical, and there is no reliable ticker tagging beyond the symbol you asked for. For a price series that is fine. For anything that has to decide whether a story matters, it isn't enough.

Do you provide stock prices too?

No, and that is a deliberate scope. alphai does not serve quotes, historical OHLCV, fundamentals, or options chains. If prices are what you came for, keep yfinance or a dedicated market-data vendor. What we cover is the other half: financial news and SEC filings, scored for relevance and linked to tickers.

What can I use instead of Yahoo Finance for news?

For the news half specifically, alphai serves a REST API and an MCP server over a feed where every article carries a 1 to 10 relevance score, a category, and the tickers it actually concerns, plus SEC Form 4 insider events as structured JSON. The Free plan is one key at 20 requests a minute and 100 a day with no credit card, which is enough to compare it against what you get from yfinance today.

Keep yfinance. Fix the news.

One key, 20 requests a minute and 100 a day on the Free plan, no credit card. Enough to run it next to what you have and see the difference on your own tickers.

Get API key