Tony Wang5 min de lecturaCómo extraer datos de Yahoo Finance en 2026 (API y Python)
Extrae datos de Yahoo Finance en 2026: Python con yfinance, sin código, o una API estructurada para cotizaciones e histórico.
La forma más rápida de extraer datos de Yahoo Finance en 2026 es llamar a una API estructurada que devuelve JSON normalizado — cotizaciones, precios históricos, fundamentales y búsqueda — en lugar de saturar los endpoints no oficiales de Yahoo con yfinance y gestionar los bloqueos por límite de tasa. Puedes hacerlo tú mismo con yfinance, pero extrae datos de una API no documentada que limita fuertemente el tráfico, y no hay una API pública oficial de Yahoo Finance a la que recurrir. Esta guía cubre los tres enfoques, qué devuelve cada uno, dónde falla cada uno, y lo básico.
¿Por qué extraer datos de Yahoo Finance?
Yahoo Finance es la fuente de datos de mercado amplia más accesible, lo que la hace útil para:
- Investigación cuantitativa y backtesting — OHLCV histórico en muchos tickers.
- Dashboards y watchlists — cotizaciones y variaciones diarias para una cartera.
- Screening fundamental — estados financieros, ratios y screeners para filtrar un universo.
- Monitoreo de mercado — movers, calendarios de earnings, desempeño por sector y noticias.
¿Es legal extraer datos de Yahoo Finance?
Opción 1: Hazlo tú mismo en Python (y por qué falla)
yfinance es la ruta DIY de facto — un wrapper limpio sobre la API interna de Yahoo:
import yfinance as yf
hist = yf.Ticker("AAPL").history(period="1y") # OHLCV DataFrame
Funciona en tu laptop y luego falla en producción:
- Límite de tasa 429.
yfinancellama a los endpoints no oficiales y sin licencia de Yahoo, así que el uso intensivo parece un DDoS y Yahoo devuelve429 Too Many Requestsy bloquea tu IP temporalmente. Las soluciones — pausas aleatorias de 1 a 3 segundos, evitar llamadas redundantes y cachear conrequests-cache— limitan tu throughput. - No hay API oficial. Yahoo retiró YQL y nunca lanzó un reemplazo público, así que no hay endpoint documentado, credencial ni SLA; la forma del JSON interno cambia sin previo aviso.
- La librería se rompe entre versiones. Cuando Yahoo cambia su API interna o agrega autenticación por crumb/cookie,
yfinancese rompe hasta que se parchea — así que terminas persiguiendo actualizaciones de la librería en lugar de recopilar datos. - Escalar significa pagar de todas formas. Para volumen real, el consejo común es migrar a una API paga documentada (Alpha Vantage, Polygon, Tiingo) — lo que significa reescribir contra un esquema diferente.
Opción 2: Herramientas sin código
Los complementos de hojas de cálculo y las herramientas de navegador pueden traer una cotización o una tabla, pero rara vez te dan una serie histórica limpia que puedas almacenar, unir y programar. Para cualquier cosa que alimente un pipeline, quieres el JSON.
Opción 3: Una API estructurada de Yahoo Finance
Para flujos de trabajo repetibles, una API de Yahoo Finance devuelve JSON normalizado sin limitaciones que gestionar. Obtén una serie histórica:
curl "https://api.crawlora.net/api/v1/yahoo-finance/ticker/AAPL/history?period=1y&interval=1d" \
-H "x-api-key: $CRAWLORA_API_KEY"
Cotización, historial y búsqueda en Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/yahoo-finance"
quote = requests.get(f"{base}/ticker/AAPL/quote", headers=h).json()["data"]
history = requests.get(f"{base}/ticker/AAPL/history", headers=h,
params={"period": "1y", "interval": "1d"}).json()["data"]
hits = requests.get(f"{base}/search", headers=h, params={"q": "apple"}).json()["data"]
Una respuesta de historial es JSON normalizado que puedes almacenar directamente (los campos son ilustrativos — confirma el esquema en la documentación):
{
"code": 200,
"msg": "OK",
"data": {
"symbol": "AAPL",
"interval": "1d",
"rows": [
{ "date": "2026-05-01", "open": 212.4, "high": 215.1, "low": 211.8, "close": 214.7, "volume": 48213000 }
]
}
}
Más allá de los precios, la misma clave da acceso a fundamentales y acciones corporativas:
info = requests.get(f"{base}/ticker/AAPL/info", headers=h).json()["data"]
financials = requests.get(f"{base}/ticker/AAPL/financials", headers=h).json()["data"]
dividends = requests.get(f"{base}/ticker/AAPL/dividends", headers=h).json()["data"]
news = requests.get(f"{base}/ticker/AAPL/news", headers=h).json()["data"]
El historial acepta period (por ejemplo, 1mo, 1y, max) o start/end, además de interval (1d, 1wk, 1mo). Usa /yahoo-finance/search o /yahoo-finance/lookup para resolver el nombre de una empresa a un símbolo bursátil, y /yahoo-finance/screener para universos filtrados. Almacena una fila por fecha y vuelve a extraer según un calendario.
Qué puedes recopilar
Por símbolo bursátil: una cotización casi en tiempo real; OHLCV histórico con dividendos y splits; información corporativa y estados financieros; datos de analistas, holders y opciones; fechas de earnings; y noticias. Además, datos a nivel de mercado: resúmenes de índices y mercados, sectores e industrias, screeners y calendarios. Solo datos de mercado públicos.
Limitaciones y desafíos comunes
- No hay API oficial en la que confiar. Yahoo retiró YQL y no ofrece API pública ni SLA;
yfinanceextrae datos de endpoints no oficiales que cambian y bloquean con429bajo carga — una API estructurada absorbe la limitación de tasa y el parsing detrás de una sola clave. - Los datos son informativos, no asesoría. Trata los valores como insumos de datos, no como recomendaciones, y confirma cualquier cosa material contra una fuente autorizada.
- La redistribución puede requerir una licencia. Recopilar datos de mercado públicos para investigación es una cosa; redistribuir comercialmente datos de Yahoo o de una bolsa puede requerir licenciamiento — revisa los términos.
- Los valores cambian rápido. Las cotizaciones y los datos intradía se mueven continuamente, así que vuelve a extraer con la frecuencia que necesite tu caso de uso y almacena las marcas de tiempo en cada fila.
Dónde se usa esto
- Flujos de datos financieros — cotizaciones, precios históricos, screeners y módulos de tickers. Consulta la página de API de Yahoo Finance.
- Investigación cuantitativa y backtesting — construye conjuntos de datos OHLCV históricos en varios tickers.
- Monitoreo de mercado — sigue movers, earnings, sectores y noticias según un calendario.
Fuentes
Empieza a recopilar
Pruébalo primero, gratis: ejecuta cualquier URL pública en el Free Web Scraper, o verifica si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba los endpoints de tickers en el Playground, revisa el esquema en la documentación de la API y consulta los precios. Consulta también la guía de la API de Google Finance y la API de Google Finance como segunda fuente. Los precios solo te dicen qué pasó, así que ponlos junto a la demanda y las conversaciones: cómo extraer datos de Google Trends muestra si el interés por un ticker o una empresa está subiendo, y cómo extraer datos de Reddit captura la discusión de los inversionistas minoristas que suele adelantarse al gráfico. Para la clase de activos que Yahoo cubre poco, cómo extraer datos de CoinGecko maneja precios de criptomonedas, capitalizaciones de mercado y datos de exchanges, mientras que cómo extraer datos de SEC EDGAR cubre el lado de los filings de la misma empresa — lo que divulgó oficialmente, no solo lo que el mercado pagó por ella. Y para un fundamental que se reporta trimestralmente pero cambia semanalmente, cómo extraer datos de ofertas de empleo convierte las vacantes abiertas de una empresa en una señal de headcount que puedes leer meses antes de que aparezca en un informe de earnings. Para el contexto de costo de vida detrás de los tickers orientados al consumidor, cómo extraer datos de Numbeo rastrea precios ciudad por ciudad. Consulta el caso de uso más amplio de datos financieros y de mercado para ver cómo encajan estas fuentes entre sí. Para el conjunto de herramientas más amplio, cómo elegir una API de web scraping, y ¿es legal el web scraping?.
Parte de nuestra serie de guías how-to-scrape — todas las plataformas que cubrimos, en un solo índice.
Preguntas frecuentes
Is there an official Yahoo Finance API?
No. Yahoo retired YQL and never shipped a public replacement, so there's no documented endpoint, credential, or SLA. Libraries like yfinance scrape Yahoo's unofficial internal API, which changes without notice and rate-limits — so reliable collection means either self-throttling heavily or using a structured scraper API.
Why does yfinance keep getting rate-limited?
yfinance calls Yahoo's unofficial, unlicensed endpoints, so heavy use looks like a DDoS and Yahoo returns 429 Too Many Requests and temporarily blocks your IP. The usual mitigations — random 1–3s sleeps, avoiding redundant calls, and requests-cache — work but cap throughput; a structured API handles throttling behind one key.
How do I get historical prices?
Call /yahoo-finance/ticker/{symbol}/history with a period (e.g. 1mo, 1y, max) or start/end, plus an interval (1d, 1wk, 1mo). It returns an OHLCV series with dividends and splits that you can store one row per date.
How do I find a ticker symbol?
Use /yahoo-finance/search or /yahoo-finance/lookup to resolve a company name to its ticker symbol, then address quotes, history, and fundamentals by that symbol.
What Yahoo Finance data can I collect?
Per symbol: quotes, historical OHLCV, company info and financials, analyst data, holders, options, earnings dates, and news; plus market-level summaries, sectors and industries, screeners, and calendars — all as normalized JSON.
Is scraped market data investment advice?
No. It's data for your own analysis, not a recommendation — confirm anything material against an authoritative source. Note too that redistributing Yahoo or exchange data commercially may require a license.
How often can I refresh?
Quotes and intraday data move continuously, so re-pull on the cadence your use case needs and store a timestamp with each row, within your plan and responsible-use limits.