Next free-source hunt
We check for new free financial data every Wednesday.
Datasets / Market Data
finnhub.io/

Finnhub

Freemiumauth: free API keyProvider terms#market-data#fundamentals#news#alt-data✓ verified Oct 28, 2026

Finnhub

REST and WebSocket API for stock prices, company fundamentals, estimates, news, and alternative data. Free tier with 60 API calls per minute.

Coverage

US and international stocks, forex (10+ brokers) and crypto (15+ exchanges); financial statements (30+ years), estimates, earnings, news, ETFs, indices, mutual funds, bonds, economic data and alternative data including congressional trading and social sentiment. Free plan: no historical price candles (premium-only), US-only fundamentals and estimates, 1 year of company news, last 4 quarters of EPS surprises, 1 month of earnings calendar, 50 WebSocket symbols, personal use. Global coverage and long history need the $3,500/mo All-In-One plan.

Verdict

Strong free tier for personal dashboards and prototypes: real-time US quotes, 50 WebSocket symbols, 1 year of company news, US fundamentals/estimates. Free plan has no historical OHLC candles (premium). Not suitable as a free backtesting price feed.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Load Finnhub US company profiles into pandas and Parquet for personal use. Checked against the provider's documentation on Oct 29, 2026.

Raw skill file (/skills/finnhub.md)Also in our MCP server: call get_ingestion_skill with {"slug": "finnhub"}.

Access

  • A free API token is required. Put it in FINNHUB_API_KEY.
  • Listed plans are for personal use unless explicitly stated otherwise.

Request

bash
curl 'https://finnhub.io/api/v1/stock/profile2?symbol=AAPL&token='$FINNHUB_API_KEY

Format

JSON object with company profile fields including ticker, name, country, currency, exchange, ipo, marketCapitalization and shareOutstanding.

Load into pandas and Parquet

Needs Python 3 with requests, pandas and pyarrow.

python
"""Finnhub US company profiles -> pandas -> Parquet. Personal use."""
import os
import requests
import pandas as pd

rows = []
for symbol in ("AAPL", "MSFT"):
    r = requests.get("https://finnhub.io/api/v1/stock/profile2",
                     params={"symbol": symbol, "token": os.environ["FINNHUB_API_KEY"]}, timeout=30)
    r.raise_for_status()
    rows.append(r.json())
df = pd.DataFrame(rows)
df["ipo"] = pd.to_datetime(df["ipo"], errors="coerce")
df.to_parquet("finnhub_company_profiles.parquet", index=False)
print(len(df), "companies;", ", ".join(df["ticker"]))

Needs a personal API key; not run.

Limits

  • Free: 60 API calls per minute.

Quirks

  • Historical price candles are not included on the free plan.
  • The free fundamentals and estimates coverage is US-only.
  • Do not share data or derived results without written approval.

Terms and attribution

  • Plans listed on Finnhub are strictly for personal use unless explicitly stated otherwise.
  • A personal plan cannot be used by a business, even internally, without written approval.
  • Redistribution or sharing data or derived results requires written approval.

Sources

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer