finnhub
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseFinnhub API — Datos Financieros en Tiempo Real
Finnhub API — 实时金融数据
API REST con 32 endpoints gratuitos que cubre: cotizaciones en vivo, velas OHLCV, perfiles de empresa, fundamentales, noticias, forex, crypto, datos económicos, calendario de earnings y WebSocket.
Base URL:
Documentación oficial: finnhub.io/docs/api
Pricing: finnhub.io/pricing
https://finnhub.io/api/v1包含32个免费端点的REST API,覆盖:实时报价、OHLCV蜡烛图、企业资料、基本面数据、新闻、外汇、加密货币、经济数据、财报日历和WebSocket。
⚠️ IMPORTANTE: Endpoints Free vs Premium
⚠️ 重要提示:免费版 vs 付费版端点
Este skill documenta todos los endpoints, pero marca claramente cuáles son:
- ✅ FREE — Funcionan con el plan gratuito (60 calls/min, sin tarjeta)
- 🔒 PREMIUM — Requieren plan pago (Starter $11.99/mes+, Professional $49.99/mes o Enterprise)
NOTA CRÍTICA: El plan gratuito de Finnhub es mucho más limitado de lo que su documentación sugiere. Según pruebas con una API key gratuita real (2026), solo los siguientes endpoints funcionan:
(cotización),/quote(perfil empresa),/stock/profile2(pares),/stock/peers(earnings)/stock/earnings (recomendaciones),/stock/recommendation(métricas),/stock/metric(noticias mercado)/news (noticias empresa),/company-news(búsqueda),/search(estado mercado)/stock/market-statusEndpoints como(velas OHLCV),stock/candle,stock/financials,stock/price-target,stock/dividend,forex/ratesrequieren plan pago.crypto/candleVer la tabla completa en references/ENDPOINTS.md.
本技能文档涵盖所有端点,但会明确标记哪些是:
- ✅ FREE — 免费版可用(每分钟60次调用,无需信用卡)
- 🔒 PREMIUM — 需要付费套餐(入门版$11.99/月起,专业版$49.99/月,企业版)
关键提示: Finnhub的免费版比其文档描述的受限得多。根据2026年使用真实免费API密钥的测试,仅以下端点可用:
(报价)、/quote(企业资料)、/stock/profile2(同行股票)、/stock/peers(财报收益)/stock/earnings (投资建议)、/stock/recommendation(指标数据)、/stock/metric(市场新闻)/news (企业新闻)、/company-news(搜索)、/search(市场状态)/stock/market-status诸如(OHLCV蜡烛图)、stock/candle、stock/financials、stock/price-target、stock/dividend、forex/rates等端点需要付费套餐。crypto/candle完整表格请查看references/ENDPOINTS.md。
Autenticación
身份验证
Obtener API Key (GRATIS, sin tarjeta de crédito)
获取API密钥(免费,无需信用卡)
- Ir a: https://finnhub.io/register
- Crear cuenta (email + contraseña)
- Copiar la API Key del dashboard: https://finnhub.io/dashboard
- Plan gratuito: 60 calls/minuto, 30 calls/segundo máximo
- 访问:https://finnhub.io/register
- 创建账户(邮箱+密码)
- 从控制台复制API密钥:https://finnhub.io/dashboard
- 免费版限制:每分钟60次调用,最多每秒30次调用
Usar la API Key
使用API密钥
python
import os
API_KEY = os.getenv("FINNHUB_API_KEY") # Recomendado (variable de entorno)python
import os
API_KEY = os.getenv("FINNHUB_API_KEY") # 推荐方式(环境变量)O directamente en tests:
或在测试中直接使用:
API_KEY = "tu_api_key_aqui"
API_KEY = "你的API密钥"
```bash
```bashHeader (recomendado)
请求头(推荐)
X-Finnhub-Token: tu_api_key
X-Finnhub-Token: 你的API密钥
O query param
或查询参数
?token=tu_api_key
**⚠️ NUNCA hardcodear la API key en código compartido.**
---?token=你的API密钥
**⚠️ 切勿在共享代码中硬编码API密钥。**
---Rate Limits
调用限制
| Límite | Plan Free | Starter ($11.99/mes) | Professional ($49.99/mes) | Enterprise ($3500/mes) |
|---|---|---|---|---|
| Calls/minuto | 60 | 300+ | 300+ | 900 (market), 300 (fund) |
| Calls/segundo | 30 (global) | 30 (global) | 30 (global) | 30 (global) |
| WebSocket símbolos | 50 | Ilimitado | Ilimitado | Ilimitado |
| Historia OHLCV | Limitada | 30+ años | 30+ años | 30+ años |
| Noticias | 1 año | 20 años | 20 años | 20 años |
| Cobertura fundamental | US | Global | Global | Global |
Tip: si recibís HTTP 429, esperá 1-2 segundos antes de reintentar.
| 限制项 | 免费版 | 入门版($11.99/月) | 专业版($49.99/月) | 企业版($3500/月) |
|---|---|---|---|---|
| 每分钟调用次数 | 60 | 300+ | 300+ | 900(市场数据),300(基本面数据) |
| 每秒调用次数 | 30(全局) | 30(全局) | 30(全局) | 30(全局) |
| WebSocket支持的标的数量 | 50 | 无限制 | 无限制 | 无限制 |
| OHLCV历史数据 | 有限 | 30+年 | 30+年 | 30+年 |
| 新闻数据 | 1年 | 20年 | 20年 | 20年 |
| 基本面数据覆盖范围 | 美股 | 全球 | 全球 | 全球 |
提示: 如果收到HTTP 429错误,请等待1-2秒后重试。
Uso Rápido
快速上手
1. Cotización en tiempo real
1. 实时报价
python
import requests
API_KEY = "tu_api_key"
BASE = "https://finnhub.io/api/v1"
r = requests.get(f"{BASE}/quote", params={"symbol": "AAPL", "token": API_KEY})
quote = r.json()
print(f"AAPL: ${quote['c']:.2f} ({quote['dp']:+.2f}%)")python
import requests
API_KEY = "你的API密钥"
BASE = "https://finnhub.io/api/v1"
r = requests.get(f"{BASE}/quote", params={"symbol": "AAPL", "token": API_KEY})
quote = r.json()
print(f"AAPL: ${quote['c']:.2f} ({quote['dp']:+.2f}%)")2. Perfil de empresa
2. 企业资料
python
r = requests.get(f"{BASE}/stock/profile2", params={"symbol": "AAPL", "token": API_KEY})
profile = r.json()
print(f"{profile['name']} | {profile['finnhubIndustry']} | Market Cap: ${profile['marketCapitalization']/1000:.2f}B")python
r = requests.get(f"{BASE}/stock/profile2", params={"symbol": "AAPL", "token": API_KEY})
profile = r.json()
print(f"{profile['name']} | {profile['finnhubIndustry']} | 市值: ${profile['marketCapitalization']/1000:.2f}B")3. Noticias de una empresa
3. 企业新闻
python
r = requests.get(f"{BASE}/company-news", params={
"symbol": "AAPL", "from": "2025-01-01", "to": "2025-01-15", "token": API_KEY
})
for article in r.json()[:3]:
print(f" {article['headline'][:80]}...")python
r = requests.get(f"{BASE}/company-news", params={
"symbol": "AAPL", "from": "2025-01-01", "to": "2025-01-15", "token": API_KEY
})
for article in r.json()[:3]:
print(f" {article['headline'][:80]}...")4. Velas OHLCV diarias
4. 每日OHLCV蜡烛图
python
import time
end = int(time.time())
start = end - (90 * 86400) # 90 días
r = requests.get(f"{BASE}/stock/candle", params={
"symbol": "AAPL", "resolution": "D",
"from": start, "to": end, "token": API_KEY
})
candles = r.json()
print(f"Status: {candles['s']}, velas: {len(candles['c'])}")python
import time
end = int(time.time())
start = end - (90 * 86400) # 90天
r = requests.get(f"{BASE}/stock/candle", params={
"symbol": "AAPL", "resolution": "D",
"from": start, "to": end, "token": API_KEY
})
candles = r.json()
print(f"状态: {candles['s']}, 蜡烛图数量: {len(candles['c'])}")5. Búsqueda de símbolos
5. 标的搜索
python
r = requests.get(f"{BASE}/search", params={"q": "microsoft", "token": API_KEY})
for result in r.json()["result"]:
print(f"{result['symbol']}: {result['description']} ({result['type']})")python
r = requests.get(f"{BASE}/search", params={"q": "microsoft", "token": API_KEY})
for result in r.json()["result"]:
print(f"{result['symbol']}: {result['description']} ({result['type']})")Scripts Disponibles
可用脚本
| Script | Descripción | Endpoints que usa |
|---|---|---|
| finnhub_client.py | Cliente Python completo con todos los endpoints gratuitos | quote, candle, profile2, peers, metric, financials, earnings, recommendation, price-target, company-news, news, forex, crypto, search, economic, market-status, dividends, splits, calendar |
| finnhub_cli.py | Interfaz de línea de comandos para consultas rápidas | quote, profile2, search, news, peers, earnings, market-status |
| download_multiple.py | Descarga batches de datos por categorías | quote, candle, metric, financials, earnings, recommendation, company-news |
| 脚本 | 描述 | 使用的端点 |
|---|---|---|
| finnhub_client.py | 包含所有免费端点的完整Python客户端 | quote, candle, profile2, peers, metric, financials, earnings, recommendation, price-target, company-news, news, forex, crypto, search, economic, market-status, dividends, splits, calendar |
| finnhub_cli.py | 用于快速查询的命令行界面 | quote, profile2, search, news, peers, earnings, market-status |
| download_multiple.py | 按类别批量下载数据 | quote, candle, metric, financials, earnings, recommendation, company-news |
Cobertura de la API (según pruebas con key gratuita real)
API覆盖范围(基于真实免费密钥测试)
| Categoría | Endpoints | Free | Premium |
|---|---|---|---|
| Cotizaciones | quote | ✅ | — |
| Perfil empresa | profile2, peers | ✅ | — |
| Earnings | earnings (4 quarters free) | ✅ | — |
| Recomendaciones | recommendation (~8 meses) | ✅ | — |
| Métricas (133) | metric (sin historia, solo último valor) | ✅ | — |
| Noticias | company-news, news | ✅ | — |
| Búsqueda | search | ✅ | — |
| Estado mercado | market-status | ✅ | — |
| Velas OHLCV | candle | — | 🔒 Premium |
| Estados financieros | financials, financials-reported, price-target | — | 🔒 Premium |
| Dividendos/Splits | dividend, split | — | 🔒 Premium |
| Forex | rates, candle, exchange, symbol | — | 🔒 Premium |
| Crypto | candle, exchange, symbol | — | 🔒 Premium |
| Económico | economic/code, economic, country | — | 🔒 Premium |
| Símbolos | stock/symbol, market-holiday, ipo-calendar | — | 🔒 Premium |
| WebSocket | Trades (50 símbolos) | — | 🔒 Premium |
| Insider, Ownership | insider-transactions, ownership, etc. | — | 🔒 Premium |
| Estimates | eps-estimate, revenue-estimate, etc. | — | 🔒 Premium |
| ETFs, Índices, Bonos | etf/profile, etf/holdings, index/constituents, bond/price, etc. | — | 🔒 Premium |
| Alternativos | social-sentiment, covid-19, esg-score, etc. | — | 🔒 Premium |
⚠️ Esta tabla está basada en pruebas reales con una API key gratuita en junio 2026. Finnhub cambia su política de acceso periódicamente. Verificar siempre en la documentación oficial.
| 类别 | 端点 | 免费版 | 付费版 |
|---|---|---|---|
| 报价数据 | quote | ✅ | — |
| 企业资料 | profile2, peers | ✅ | — |
| 财报收益 | earnings(免费提供4个季度数据) | ✅ | — |
| 投资建议 | recommendation(约8个月数据) | ✅ | — |
| 指标数据(133项) | metric(无历史数据,仅最新值) | ✅ | — |
| 新闻数据 | company-news, news | ✅ | — |
| 搜索功能 | search | ✅ | — |
| 市场状态 | market-status | ✅ | — |
| OHLCV蜡烛图 | candle | — | 🔒 付费版 |
| 财务报表 | financials, financials-reported, price-target | — | 🔒 付费版 |
| 股息/拆股 | dividend, split | — | 🔒 付费版 |
| 外汇数据 | rates, candle, exchange, symbol | — | 🔒 付费版 |
| 加密货币数据 | candle, exchange, symbol | — | 🔒 付费版 |
| 经济数据 | economic/code, economic, country | — | 🔒 付费版 |
| 标的信息 | stock/symbol, market-holiday, ipo-calendar | — | 🔒 付费版 |
| WebSocket | 交易数据(支持50个标的) | — | 🔒 付费版 |
| 内部交易、持股情况 | insider-transactions, ownership等 | — | 🔒 付费版 |
| 预期数据 | eps-estimate, revenue-estimate等 | — | 🔒 付费版 |
| ETF、指数、债券 | etf/profile, etf/holdings, index/constituents, bond/price等 | — | 🔒 付费版 |
| 另类数据 | social-sentiment, covid-19, esg-score等 | — | 🔒 付费版 |
⚠️ 本表格基于2026年6月使用真实免费API密钥的测试。Finnhub会定期更改访问政策,请始终参考官方文档。
Buenas Prácticas
最佳实践
- Usar variable de entorno en vez de hardcodear
FINNHUB_API_KEY - Cachear resultados: los datos fundamentales cambian poco (especialmente company profile, financials)
- Rate limiting: 60 calls/min gratis = 1 call por segundo como mínimo
- Evitar endpoints premium con key gratuita — recibirás error
"You don't have access to this resource." - WebSocket: solo 1 conexión por API key, 50 símbolos en free
- Reutilizar sesión HTTP para mejor performance ()
requests.Session() - No usar para trading de alta frecuencia: API pública, sin garantía de latencia ultra-baja
- 使用环境变量 而非硬编码密钥
FINNHUB_API_KEY - 缓存结果:基本面数据变化很少(尤其是企业资料、财务报表)
- 遵守调用限制:免费版每分钟60次调用 = 至少每秒1次调用
- 免费密钥避免使用付费端点 — 会收到错误提示
"You don't have access to this resource." - WebSocket:每个API密钥仅支持1个连接,免费版最多50个标的
- 复用HTTP会话以提升性能()
requests.Session() - 勿用于高频交易:公开API,不保证超低延迟
Recursos
资源
- Documentación oficial Finnhub
- Pricing oficial
- Python SDK oficial
- Referencia de endpoints free vs premium
- Dashboard (API key)
- Estado del servicio
- Finnhub官方文档
- 官方定价
- 官方Python SDK
- 免费vs付费端点参考
- 控制台(API密钥)
- 服务状态