Historical Market Data CSV & JSON Format Explained
Before you run a download, it helps to know exactly what you're getting. Here's the column layout the MarketData Hub client writes for both OHLC candles and raw tick data — plus how to load the files into the most common tools.
Get the app — €5.60 →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.