Historical Market Data CSV & JSON Format Explained
Before you download, it helps to know exactly what you're getting. Here's the column layout of MarketData Hub's CSV and JSON exports for both OHLC candles and raw tick data — plus how to load them into the most common tools.
Open the data downloader →OHLC candle CSV
Candle exports (1-minute through monthly) use one row per bar with a UTC timestamp and the four classic price fields, plus volume where available:
timestamp,open,high,low,close,volume
2024-01-02 00:00:00,1.10423,1.10489,1.10401,1.10455,1843.0
2024-01-02 00:01:00,1.10455,1.10472,1.10440,1.10461,1210.0
open is the first price of the bar, high/low the extremes, and close the last price. You choose bid or ask prices at download time.
Tick CSV
Tick exports record every quote, so there is no open/high/low/close — just the timestamp (to the millisecond) with bid and ask:
timestamp,bid,ask,bidVolume,askVolume
2024-01-02 00:00:00.123,1.10423,1.10425,1.5,2.0
2024-01-02 00:00:00.318,1.10424,1.10426,1.0,1.2
JSON format
The same data is available as JSON — an array of objects with the same keys — if you'd rather not parse CSV in code.
Import into Excel or Google Sheets
CSV opens directly. Use Data → From Text/CSV (Excel) or File → Import (Sheets) and the columns map automatically.
Import into Python (pandas)
import pandas as pd
df = pd.read_csv("eurusd_m1.csv", parse_dates=["timestamp"], index_col="timestamp")
Import into MetaTrader, NinjaTrader & TradingView
The CSV layout matches what MetaTrader's History Center, NinjaTrader and most charting platforms expect; map the timestamp and OHLC columns in their import dialog. Ready to grab a file? Open EUR/USD or browse all instruments.
Frequently asked questions
- What columns are in the CSV file?
- OHLC files contain timestamp, open, high, low, close and (where available) volume. Tick files contain timestamp, bid, ask and bid/ask volume. Timestamps are UTC.
- Are the timestamps in UTC?
- Yes. Timestamps are in UTC, so data lines up consistently across instruments and sessions regardless of your local timezone.
- Can I load the data into pandas?
- Yes. Use pandas.read_csv with parse_dates on the timestamp column. The JSON export also loads directly with pandas.read_json or json.load.
- Is the data bid or ask price?
- You choose. Both bid and ask are available; select the side you need at download time. Tick exports include both bid and ask on every row.