Historical Stock, ETF & Futures Data in Parquet

Split/dividend-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.

We wanted reliable split-adjusted OHLCV parquet data for backtesting. Couldn't find it. Everything was either scattered across unreliable sources, unadjusted prices, or only available as CSVs. So we built MarketParquet.

> Start downloading free Free daily sample. No credit card required.

[ 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) -- 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.

[ MCP Server ] new

MarketParquet speaks MCP. Your coding agent answers market questions with server-side DuckDB SQL over 26 years of data — and bulk-downloads any range to run full backtests locally. Included with Keep Current ($15/mo); any free API key can connect.

> Claude Code

claude mcp add --transport http marketparquet \
    https://marketparquet.com/labs/mcp \
    --header "Authorization: Bearer bt_YOUR_KEY"

> Codex CLI (~/.codex/config.toml)

[mcp_servers.marketparquet]
url = "https://marketparquet.com/labs/mcp"
http_headers = { Authorization = "Bearer bt_YOUR_KEY" }

> Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "marketparquet": {
      "url": "https://marketparquet.com/labs/mcp",
      "headers": { "Authorization": "Bearer bt_YOUR_KEY" }
    }
  }
}

> opencode (opencode.json)

{
  "mcp": {
    "marketparquet": {
      "type": "remote",
      "url": "https://marketparquet.com/labs/mcp",
      "headers": { "Authorization": "Bearer bt_YOUR_KEY" }
    }
  }
}

> Kimi CLI (~/.kimi/mcp.json)

{
  "mcpServers": {
    "marketparquet": {
      "url": "https://marketparquet.com/labs/mcp",
      "headers": { "Authorization": "Bearer bt_YOUR_KEY" }
    }
  }
}

> Any MCP client

endpoint: https://marketparquet.com/labs/mcp   (MCP Streamable HTTP)
header:   Authorization: Bearer bt_YOUR_KEY

> Full setup, tools & MCP pricing

[ Data Inventory ]

Timeframe Files Date Range Total Size
1-Min 6,766 2000-01-03 .. 2026-07-24 89.9 GB
5-Min 6,766 2000-01-03 .. 2026-07-24 31.9 GB
30-Min 6,766 2000-01-03 .. 2026-07-24 9.4 GB
1-Hour 6,766 2000-01-03 .. 2026-07-24 6.1 GB
Daily 6,794 2000-01-03 .. 2026-07-24 1.2 GB
Timeframe Files Date Range Total Size
1-Min 6,680 2000-01-03 .. 2026-07-24 15.2 GB
5-Min 6,680 2000-01-03 .. 2026-07-24 6.6 GB
30-Min 6,680 2000-01-03 .. 2026-07-24 2.3 GB
1-Hour 6,680 2000-01-03 .. 2026-07-24 1.5 GB
Daily 6,680 2000-01-03 .. 2026-07-24 341 MB
Timeframe Files Date Range Total Size
1-Min 5,808 2007-12-31 .. 2026-07-24 3.3 GB
5-Min 5,808 2007-12-31 .. 2026-07-24 1.2 GB
30-Min 5,808 2007-12-31 .. 2026-07-24 415 MB
1-Hour 5,808 2007-12-31 .. 2026-07-24 262 MB
Daily 4,831 2007-12-31 .. 2026-07-24 44 MB

[ 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 ]

  # Python
  import pandas as pd
  df = pd.read_parquet("stock_1min_2024-01-15.parquet")
  spy = df[df.symbol == "SPY"]

  # API -- list available assets (any tier)
  curl -H "Authorization: Bearer bt_YOUR_KEY" \
    https://marketparquet.com/api/v1/assets

  # API -- list dates
  curl -H "Authorization: Bearer bt_YOUR_KEY" \
    https://marketparquet.com/api/v1/dates/stock_1min

  # API -- get download URL
  curl -H "Authorization: Bearer bt_YOUR_KEY" \
    https://marketparquet.com/api/v1/download/stock_1min/2024-01-15