# MarketParquet

> Historical OHLCV (open, high, low, close, volume) market data for US stocks, ETFs, and futures, delivered as Apache Parquet files. Split-adjusted (dividends are not embedded in prices), survivorship-bias-free (delisted tickers included), multiple timeframes, 2000-present. Buy the archive once -- no subscription.

MarketParquet sells ready-to-use historical price data for quantitative research and backtesting. Data ships as date-partitioned Parquet files (one file per trading day containing every symbol), so it loads directly into pandas, polars, DuckDB, or Spark with no parsing or cleanup. Site: https://marketparquet.com

## For AI agents
- Need one thing, not the whole file? GET https://marketparquet.com/llms?query=<topic> returns only the matching sections of this document as plain text (JSON: /llms/json?query=<topic>). Examples: ?query=pricing, ?query=parquet schema, ?query=delisted, ?query=futures.
- The full text (this index plus FAQ, comparisons and a Python quick start) is https://marketparquet.com/llms-full.txt.

## Pricing
- Free Sample -- $0: recent daily (EOD) bars, unlimited downloads, API at 60 requests/min.
- Complete Archive -- $79 one-time: full history on all timeframes including intraday (1-min, 5-min, 30-min, 1-hour) and daily (EOD) back to 2000, all asset classes, perpetual access.
- Keep Current -- $15/month (optional add-on): each new trading day's bars going forward after purchase.
There is no subscription for the historical archive; you buy once and keep the data forever.

## Data coverage
- US Stocks: 23,000+ tickers including delisted (NYSE, NASDAQ, AMEX), daily history from January 2000.
- US ETFs: 9,500+ tickers including delisted (sector, leveraged, bond, and more), from January 2000.
- Futures: ~130 of the most active contracts (ES, NQ, CL, GC, ZN, ...), continuous ratio-adjusted, from December 2007.
- Timeframes: 1-minute, 5-minute, 30-minute, 1-hour, and daily (EOD).
- Stocks and ETFs are split-adjusted; dividends are not embedded in prices. Delisted securities are included (no survivorship bias).
- New data is added the same night after every trading session, typically by midnight ET.

## Parquet schema
- Intraday files (1min/5min/30min/1hour) columns: timestamp (TIMESTAMP[us], US/Eastern bar open time), symbol (STRING), asset_type (STRING), open, high, low, close, volume (all FLOAT64).
- Daily files: a date (DATE) column in place of timestamp, then symbol, asset_type, open, high, low, close, volume. (Daily files dated before 2026-03-27 use a legacy timestamp (TIMESTAMP[us]) column instead of date; normalize with union_by_name + COALESCE when spanning the boundary.)
- File path convention: by_date/{asset}_{timeframe}/YYYY-MM-DD.parquet (snappy-compressed), e.g. by_date/stock_1min/2024-01-15.parquet.

## Key pages
- [Historical US stock data](https://marketparquet.com/data/stocks): 23,000+ tickers, 1-min to daily, 2000-present.
- [Historical US ETF data](https://marketparquet.com/data/etfs): 9,500+ tickers, 1-min to daily, 2000-present.
- [Historical futures data](https://marketparquet.com/data/futures): ~130 contracts, continuous ratio-adjusted, Dec 2007-present.
- [Delisted stock data](https://marketparquet.com/data/stocks/delisted): survivorship-bias-free stock history with delisted tickers included.
- [Intraday stock data](https://marketparquet.com/data/stocks/intraday): US stock 1-minute, 5-minute, 30-minute, and 1-hour bars.
- [Continuous futures data](https://marketparquet.com/data/futures/continuous): ratio-adjusted futures history from Dec 2007-present.
- [Data quality](https://marketparquet.com/data-quality): gap detection, duplicate screening, price validation, and volume-consistency checks.
- [Changelog](https://marketparquet.com/changelog): dated record of split adjustments applied and delisted tickers added, listed by ticker with ratio and effective date.
- [Guide: yfinance limitations for backtesting](https://marketparquet.com/guides/yfinance-limitations-backtesting): when a reproducible Parquet archive is a better yfinance alternative.
- [Guide: DuckDB stock data Parquet](https://marketparquet.com/guides/duckdb-stock-data-parquet): query OHLCV Parquet files directly with SQL.
- [Guide: Polars market data Parquet](https://marketparquet.com/guides/polars-market-data-parquet): lazy-load market data with Polars.
- [Guide: build a local market data lake](https://marketparquet.com/guides/build-local-market-data-lake): organize stock, ETF, and futures files by date locally.
- [Pricing](https://marketparquet.com/pricing): Free Sample, Complete Archive ($79 one-time), and optional Keep Current ($15/month).
- [FAQ](https://marketparquet.com/faq): data quality, adjustments, format, timezones, pricing, coverage.
- [Documentation](https://marketparquet.com/documentation): file format and Python (pandas/polars/DuckDB) + API usage.
- [About](https://marketparquet.com/about): what MarketParquet is and what's included.

## Comparisons
Honest side-by-side comparisons of MarketParquet vs other market data providers (full index: https://marketparquet.com/vs):
- [MarketParquet vs Massive (formerly Polygon.io)](https://marketparquet.com/vs/polygon): bulk Parquet archive vs real-time market-data API; also explains the October 2025 Polygon.io -> Massive rebrand.
- [MarketParquet vs Databento](https://marketparquet.com/vs/databento): flat-fee bulk Parquet vs usage-priced, exchange-direct HFT data (US-equity tick history from 2018).
- [MarketParquet vs FirstRate Data](https://marketparquet.com/vs/firstrate): two bulk historical-file vendors compared -- Parquet and $79 vs zipped CSV with broader assets and tick data.
- [MarketParquet vs Kibot](https://marketparquet.com/vs/kibot): Parquet plus complete delisted coverage vs very deep, cheap CSV history (daily back to 1962).
- [MarketParquet vs Norgate Data](https://marketparquet.com/vs/norgate): intraday Parquet at a one-time price vs an end-of-day-only subscription for AmiBroker/RealTest.
- [MarketParquet vs Tiingo](https://marketparquet.com/vs/tiingo): bulk Parquet vs API-first EOD + news data.
- [MarketParquet vs EODHD](https://marketparquet.com/vs/eodhd): bulk US Parquet vs a global EOD + fundamentals API subscription.
- [MarketParquet vs Alpha Vantage](https://marketparquet.com/vs/alpha-vantage): bulk download vs rate-limited free API.
- [MarketParquet vs Finnhub](https://marketparquet.com/vs/finnhub): bulk OHLCV vs an API that moved US stock candles behind a paywall (~2025); Finnhub is strong on fundamentals and alternative data.
- [MarketParquet vs Twelve Data](https://marketparquet.com/vs/twelve-data): bulk Parquet with deep intraday vs a credit-metered multi-asset API (intraday only from ~2022).
- [MarketParquet vs Financial Modeling Prep (FMP)](https://marketparquet.com/vs/fmp): bulk price Parquet vs a fundamentals-first API (30-year history on paid tiers).
- [MarketParquet vs Intrinio](https://marketparquet.com/vs/intrinio): one-time bulk Parquet vs a premium API platform (SEC-sourced fundamentals; was IEX Cloud's referral partner).
- [MarketParquet vs Alpaca](https://marketparquet.com/vs/alpaca): bulk backtesting archive (history from 2000) vs a live-trading market-data API (from 2016).
- [MarketParquet vs Yahoo Finance / yfinance](https://marketparquet.com/vs/yahoo-finance): reliable archive vs free unofficial scraper.
- [MarketParquet vs Nasdaq Data Link (formerly Quandl)](https://marketparquet.com/vs/quandl): a live, daily-updated Parquet archive vs a dataset marketplace whose free WIKI feed froze in 2018.
- [MarketParquet vs IEX Cloud](https://marketparquet.com/vs/iex-cloud): a historical-data replacement for IEX Cloud, which shut down on August 31, 2024.

## API
- Base URL: https://marketparquet.com/api/v1
- Auth: HTTP header `Authorization: Bearer bt_YOUR_KEY` (create a key on the account page).
- Rate limits: 60 requests/min (free), 600 requests/min (paid).
- Endpoints: GET /api/v1/assets (list asset/timeframe slots), GET /api/v1/dates/{asset_type} (list available dates), GET /api/v1/download/{asset_type}/{date} (returns a 60-second presigned download URL for that day's Parquet file).

## Frequently asked questions

Q: What data does MarketParquet provide?
A: Historical OHLCV data for US Stocks, ETFs, and Futures in five timeframes (1-minute, 5-minute, 30-minute, 1-hour, daily), delivered as Apache Parquet files partitioned by date.

Q: What is the date range?
A: Stock and ETF data covers January 2000 to present. Futures data covers December 2007 to present. New data is added the same night after each session, typically by midnight ET.

Q: How is data quality ensured?
A: An automated pipeline runs gap detection, duplicate screening, price-anomaly validation, and volume-consistency checks. A small number of zero-volume bars (~0.1% of rows in a typical 1-minute file) are preserved and passed through unmodified rather than silently deleted; gaps reflect normal low-liquidity periods.

Q: How are stock splits and dividends handled?
A: Stock and ETF prices are split-adjusted: historical prices are retroactively adjusted for splits so series are continuous and directly comparable over time. Dividends are deliberately not embedded in the price series -- prices reflect what the instrument actually traded at, and you can apply dividend adjustments in your own pipeline if your strategy requires total-return series.

Q: What timezone is the data in?
A: All timestamps are US/Eastern. Regular market hours are 9:30 AM-4:00 PM ET. 1-minute data includes pre-market (from 4:00 AM) and after-hours (to 8:00 PM) sessions where available.

Q: Why Parquet format?
A: Parquet is ~5-10x smaller than CSV, has typed columns, supports column pruning, and loads natively in pandas, polars, DuckDB, and Spark.

Q: What file structure do you use?
A: by_date/{asset}_{timeframe}/YYYY-MM-DD.parquet. Each file contains all symbols for a single trading day, which makes cross-sectional and time-series loads easy.

Q: How many symbols are covered?
A: Recent files contain 6,500+ stocks, 4,000+ ETFs, and ~130 futures contracts. Historical files additionally include delisted securities, for survivorship-bias-free backtesting (cumulative coverage is 23,000+ stocks and 9,500+ ETFs).

Q: How does pricing work?
A: Free sample (recent daily data, API at 60 req/min). Buy the Complete Archive once -- $79 for full history on all timeframes, daily and intraday -- with perpetual access and no subscription. Optional Keep Current ($15/mo) adds each new trading day's bars going forward.

Q: How do I download data?
A: Browse by asset type and date and click download, or use the API with your key to list assets and dates and fetch a 60-second presigned download URL.

Q: How quickly is new data available?
A: The pipeline runs nightly after our vendor finalizes the session; new data is typically live by midnight ET, always before the next market open. Weekends and market holidays are skipped.

## How MarketParquet compares

vs Massive (formerly Polygon.io; rebranded October 30, 2025): Massive is a real-time + historical market-data API (REST/WebSocket) with broad asset coverage (stocks, options, forex, crypto). MarketParquet is narrower (US stocks/ETFs/futures only) but ships bulk Parquet files purpose-built for backtesting. Pick Massive if you need real-time feeds, options chains, tick data, or non-equity assets. Pick MarketParquet for bulk historical research where one download fetches a whole trading day and you want a one-time price instead of a subscription.

vs Tiingo: Tiingo offers EOD prices, news, and IEX intraday via REST/JSON. MarketParquet focuses on OHLCV as Parquet with full consolidated-tape intraday and futures. Pick Tiingo for news, fundamentals, or IEX-only intraday. Pick MarketParquet for full-tape intraday history, bulk loads, or futures coverage.

vs Yahoo Finance (yfinance): yfinance is a free, unofficial scraper of Yahoo's web endpoints -- convenient for casual exploration but unstable, rate-limited unpredictably, and inconsistent on delisted tickers and adjustments. MarketParquet is a documented, reproducible archive with delisted tickers included and a stated adjustment policy. Pick yfinance for prototyping or one-off analysis; pick MarketParquet for reliable, reproducible backtests.

vs Alpha Vantage: Alpha Vantage is a free-tier API with technical indicators and FX, but tight rate limits. MarketParquet provides bulk Parquet downloads with no per-call limits. Pick Alpha Vantage for indicators/FX on a handful of symbols; pick MarketParquet for bulk historical downloads across thousands of tickers.

## Python quick start

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

    # Via the API (any tier; create a key on the account page)
    # curl -H "Authorization: Bearer bt_YOUR_KEY" https://marketparquet.com/api/v1/assets
    # curl -H "Authorization: Bearer bt_YOUR_KEY" https://marketparquet.com/api/v1/dates/stock_1min
    # curl -H "Authorization: Bearer bt_YOUR_KEY" https://marketparquet.com/api/v1/download/stock_1min/2024-01-15
