Alpha Vantage
Provides real-time and historical market data for global equities, forex, cryptocurrencies, and US economic indicators via a free REST API. Popular starting point for financial data pipelines and quantitative research.
Current status
100.0% operational in known checks
Checked Jun 16, 9:15 PM
Access
limited
Collection level
L1
Confidence
medium
Recommended next action
Use the official access path with a user-provided key or account; do not run unauthenticated data probes.
Exportable data
free_key_api
Docker fit
worker_ok
Estimated size
medium
Download location
https://www.alphavantage.co/documentation/Cost
Tiered
Access type
open
Signup required
No
Update alerts
Not offered
Coverage
global
Update frequency
real-time
Source Documentation
What You're Getting
Alpha Vantage provides time-series data across equities (US + global), forex, cryptocurrency, and a macro economic indicators endpoint. The economic indicators suite covers US series: real GDP, CPI, inflation, Federal Funds Rate, SOFR, unemployment rate, nonfarm payrolls, and retail sales — each as a standalone JSON endpoint. Equity data covers open/high/low/close/volume at daily, weekly, monthly, and intraday intervals. Fundamental data (income statements, balance sheets) on paid plans.
Ingestion Strategy
Simple REST API with a single API key parameter. JSON responses with a Time Series object keyed by date string. Batch pulls not natively supported — iterate series one at a time. For economic indicators, each series is a separate endpoint.
import requests
import pandas as pd
KEY = "your_key"
BASE = "https://www.alphavantage.co/query"
def fetch_av_indicator(function: str) -> pd.DataFrame:
r = requests.get(BASE, params={"function": function, "apikey": KEY})
data = r.json()
records = data.get("data", [])
return pd.DataFrame(records)
gdp = fetch_av_indicator("REAL_GDP")
print(gdp.head())
def fetch_daily(symbol: str) -> pd.DataFrame:
r = requests.get(BASE, params={
"function": "TIME_SERIES_DAILY_ADJUSTED",
"symbol": symbol,
"outputsize": "full",
"apikey": KEY
})
ts = r.json()["Time Series (Daily)"]
df = pd.DataFrame(ts).T
df.index = pd.to_datetime(df.index)
return df.sort_index()
Rate Limits & API Details
- Free: 25 requests/day, 5 requests/minute
- Premium: 500 req/min, full intraday history
- Functions:
REAL_GDP,CPI,INFLATION,FEDERAL_FUNDS_RATE,UNEMPLOYMENT,NONFARM_PAYROLL,RETAIL_SALES,TIME_SERIES_DAILY_ADJUSTED,FX_DAILY - CSV output via
datatype=csvparam
Schema Stability
Very stable. Function names and response keys consistent for years. Economic indicator responses use a data array of {date, value} objects.
Data Quality Gotchas
- Free tier gaps: intraday history limited to last trading day on free tier
- Adjusted prices: always use
TIME_SERIES_DAILY_ADJUSTEDfor split/dividend-adjusted closes - Economic indicators: sourced from FRED/BLS — same data, slightly delayed vs primary source
- Global equities: coverage outside US is best-effort; some tickers have gaps
Data Formats
API Quickstart
No snippet available yet.
How to Access
- 🌐 end user
- ⚡ automation ready programmable
Notable Datasets
8 total- ▸ US Equities (100,000+ tickers)
- ▸ Global Equities
- ▸ Forex (50+ pairs)
- ▸ Cryptocurrency
- ▸ US Economic Indicators (GDP, CPI, unemployment, payrolls)
- ▸ ETFs and Mutual Funds
- ▸ Options (premium)
- ▸ Fundamentals — Income Statement, Balance Sheet, Cash Flow (premium)
Index entry
Added: May 2, 2026
Last indexed: Jun 16, 2026
Unverified entry