Historical Stock, ETF & Futures Data in Parquet
Split-adjusted OHLCV for backtesting — 1-minute to daily bars since 2000, delisted tickers included.
> try it — free, no signup:
curl -LO https://marketparquet.com/api/data/download/stock_daily/2026-09-25.parquet
2026-09-25 close · download
also free, no signup: intraday sample pack · 1 week of 1-min to 1-hour bars, 30 symbols (zip, 3.6 MB)
on a phone? register free and the welcome email carries the download commands for your computer
| date | symbol | open | high | low | close | volume |
|---|---|---|---|---|---|---|
| 2026-09-25 | AAPL | 336.04 | 341.67 | 334.53 | 341.07 | 30002507.0 |
| 2026-09-25 | MSFT | 499.035 | 519.4 | 497.25 | 516.17 | 38193112.0 |
| 2026-09-25 | NVDA | 225.13 | 226.94 | 223.1329 | 225.07 | 89947712.0 |
| 2026-09-25 | AMZN | 248.56 | 250.8775 | 247.18 | 249.67 | 34263902.0 |
| 2026-09-25 | GOOGL | 342.35 | 347.03 | 341.11 | 343.92 | 21880846.0 |
real rows from this file · see all 50 rows →
We couldn't find reliable split-adjusted Parquet data for backtesting, so we built it — 26 years of US historical market data, one file per trading day.
Pricing
Buy the archive once -- no subscription. See pricing.
| Feature | Free sample | Complete Archive ($79) |
|---|---|---|
| Daily (EOD) data | Last 1 year | Full history |
| Intraday (1min-1hour) | sample pack (1 week, 30 symbols) | Full history |
| Asset types | Stock, ETF, Futures | Stock, ETF, Futures |
| Downloads | Unlimited | Unlimited |
| API access | 60 req/min | 600 req/min |
* Optional add-on: Keep Current -- $15/mo rolls your archive forward each trading day. Cancel anytime.
Data Inventory
Updated every trading day — stocks current through 2026-09-25 · ETFs through 2026-09-25 · futures through 2026-09-25.
STOCK
| Timeframe | Files | Date Range | Total Size |
|---|---|---|---|
| 1-Min | 6,810 | 2000-01-03 .. 2026-09-25 | 89.2 GB |
| 5-Min | 6,810 | 2000-01-03 .. 2026-09-25 | 31.3 GB |
| 30-Min | 6,810 | 2000-01-03 .. 2026-09-25 | 9.3 GB |
| 1-Hour | 6,810 | 2000-01-03 .. 2026-09-25 | 6.1 GB |
| Daily | 6,838 | 2000-01-03 .. 2026-09-25 | 1.2 GB |
ETF
| Timeframe | Files | Date Range | Total Size |
|---|---|---|---|
| 1-Min | 6,724 | 2000-01-03 .. 2026-09-25 | 15.6 GB |
| 5-Min | 6,724 | 2000-01-03 .. 2026-09-25 | 6.8 GB |
| 30-Min | 6,724 | 2000-01-03 .. 2026-09-25 | 2.3 GB |
| 1-Hour | 6,724 | 2000-01-03 .. 2026-09-25 | 1.5 GB |
| Daily | 6,724 | 2000-01-03 .. 2026-09-25 | 348 MB |
FUTURES
Schema
path: by_date/{asset}_{timeframe}/YYYY-MM-DD.parquet
compression: snappy
assets: stock, etf, futures
timeframes: 1min, 5min, 30min, 1hour, daily
columns:
timestamp TIMESTAMP[us] -- bar open time (US/Eastern)
symbol STRING -- ticker symbol
asset_type STRING -- "Stock", "ETF", or contract code
open FLOAT64 -- open price
high FLOAT64 -- high price
low FLOAT64 -- low price
close FLOAT64 -- close price
volume FLOAT64 -- bar volume
Quick Start
# no account, no key -- daily files from the last 7 days are free
curl -LO https://marketparquet.com/api/data/download/stock_daily/2026-09-25.parquet
# or always-newest (302 to the dated file; saves as latest.parquet)
curl -LO https://marketparquet.com/api/data/download/stock_daily/latest.parquet
# Python
import pandas as pd
df = pd.read_parquet("stock_1min_2024-01-15.parquet")
aapl = df[df.symbol == "AAPL"] # SPY/QQQ live in the etf_* files
# API -- one file (full API reference: /documentation)
curl -H "Authorization: Bearer bt_YOUR_KEY" \
https://marketparquet.com/api/v1/download/stock_1min/2024-01-15
# API -- every file in a date range in one call (presigned URLs, valid 60 min)
curl -H "Authorization: Bearer bt_YOUR_KEY" \
"https://marketparquet.com/api/v1/manifest/stock_daily?start=2024-01-01&end=2024-12-31"
One Parquet file per trading day, read with pd.read_parquet(...). > API reference & code samples
> see inside a file -- live preview of the latest daily parquet
Split-adjusted OHLCV bars, 1-minute to daily, US stocks & ETFs from 2000 and futures from 2007, survivorship-bias-free with delisted tickers, updated after market close -- one Parquet file per trading day, loads straight into pandas/Polars/DuckDB.