← FXAbsolute Resource

Where to Get Free M1 Forex Data

Published 2026-08-17 · Updated 2026-08-28 · FXAbsolute

One-minute forex history is genuinely free from several places — the differences are in how much work it takes to get it out and what breaks along the way. This page is the practical route list: access method, format, realistic effort, and the specific trap in each.

The routes, ranked by effort

RouteDepthHow you get itEffort
FXAbsolute2021–2026, 15 instrumentsOpen the site — already loadedNone
MCP serverSame archiveCoding agent queries it directlyMinimal
HistDataBack to 2000Monthly ZIP downloads, manual assemblyModerate
Broker MT4/MT5Broker-dependentTerminal history centre, then exportModerate
DukascopyBack to ~2003, tickAPI or downloader, then aggregate to M1High
Alpha VantageShallowAPI, key requiredCapped at 25 req/day
Yahoo FinanceNot suitableyfinance libraryShort intraday retention only

Pick by what you are actually doing. If you want to practise, you do not need files at all — the first two rows put the data in front of you. If you are building a research pipeline or training something, you need real files, and HistData is the least painful source of those.

If you just want to practise: no download at all

Most people searching for M1 data want to backtest, not to own CSV files. Downloading and assembling gigabytes is a detour if that is your goal.

FXAbsolute has 28,412,683 one-minute bars across 15 forex, index and crypto instruments spanning 2021 to 2026 already loaded and replaying in the browser. No account, no download, no key. Bar-by-bar replay, drawing tools, limit orders, an automatic journal and live statistics.

Per-instrument depth, for reference:

InstrumentM1 barsRange
BTCUSD2,627,5492021-07-24 → 2026-07-23
ETHUSD2,270,8192021-01-01 → 2026-08-03
GBPJPY1,939,0252021-01-03 → 2026-04-30
USDCAD1,936,7312021-01-03 → 2026-04-30
EURUSD1,911,1412021-01-03 → 2026-04-30
XAUUSD1,871,4872021-01-03 → 2026-04-30
SPX5001,390,1772021-01-04 → 2026-08-03
NAS1001,383,4982021-01-04 → 2026-08-03
For coding agents specifically: the same archive is exposed over MCP, so Claude, Cursor or any MCP-capable agent can query real candles directly — no API key, no request cap. That is the distinguishing feature against Alpha Vantage's 25-requests-per-day free tier, which cannot realistically deliver years of M1 for a single instrument.

HistData — the easiest real files

If you need actual files on disk, start here. Free, no account, M1 data back to 2000, delivered as monthly ZIP archives containing CSV.

What to expect: one ZIP per instrument per month. Five years of one pair is roughly sixty downloads, so scripting the fetch and the unzip is worth the ten minutes it takes. The CSV format is straightforward and consistent, which is more than can be said for API-based routes.

The traps: timestamps are in a specific timezone that you must confirm rather than assume, since silently mismatching it shifts every session boundary in your analysis. And concatenating months naively can leave duplicate or missing bars at boundaries — always de-duplicate on timestamp and then check bar counts per day.

Skip the download entirely 28.4 million one-minute bars already loaded and replaying in your browser — no account, no key, no assembly.
Start free — no account →

Dukascopy — deepest, hardest

The deepest free source: tick data with bid and ask going back to roughly 2003, no account, no key, no cap. Most free forex archives, including ours, are built from it. Getting it out is genuinely difficult, and these are the specific failure modes rather than general warnings.

That third point is not theoretical. An audit of our own Dukascopy-derived archive found 7 coverage holes of 3 to 5 days across five years of EURUSD, six of them caused by exactly this behaviour. The full audit is published here.

Also upstream and unfixable: Dukascopy genuinely holds no index data for 10–18 March 2021, so index instruments carry an eight-day hole no amount of retrying will fill.

Two routes that will disappoint you

Alpha Vantage

The free tier is capped at 25 requests per day with an API key required. Downloading five years of one-minute history for a single instrument at that rate takes longer than anyone will persist with. It is a reasonable API for occasional quotes and the wrong tool for bulk history.

Yahoo Finance

Fast, free, easy through the yfinance library — and it retains only a short recent window of intraday data. You cannot pull years of M1 forex from it. Use it for daily bars, correlation work and quick prototypes, where it is genuinely good. Compared in detail here.

Or let your coding agent query it The same archive over MCP: real candles for Claude or Cursor with no API key and no request cap.
Open the free backtester →

Verify whatever you download

Three checks, a few minutes, and they catch the failures that silently ruin backtests.

  1. Count bars per trading day. A complete M1 day is 1,440 bars. Sort ascending; days far below that are partial, and zeros inside the trading week are holes.
  2. Difference consecutive timestamps. Anything longer than a normal weekend needs an explanation before you test across it.
  3. Confirm the timezone against a known event — a major release with a known publication time is ideal. Getting this wrong shifts every session-based conclusion you draw.

A quick sanity check on top: related pairs should stay related. Across 1,536 overlapping trading days, EURUSD and GBPUSD daily returns correlate at r = 0.77, moving the same direction 77.72% of the time. Sharp disagreement between two files on the same day means one of them is wrong.

If the data is for a script or an agent, skip the download

Everything above assumes you want files. If the data is destined for code — a notebook, a script, or an AI agent — there is a route that skips the download, the unzip and the CSV parsing entirely.

claude mcp add fxabsolute -- npx -y fxabsolute-mcp

That installs a published npm package which serves 28,412,683 one-minute bars across 15 instruments (2021 to 2026) to any MCP-capable client, with no key and no rate limit. Aggregation to M5 through W1 happens on request, on true clock boundaries.

Two properties matter more than convenience here. First, higher timeframes are bucketed on floor(ts / period) rather than by counting bars, so a weekend gap never smears an "H1 candle" across two sessions — a failure mode that silently corrupts a lot of homemade aggregation. Second, coverage is reported rather than assumed: ask for a range and the response tells you how many weekdays in it produced no data at all.

The archive carries no volume — a record is a timestamp plus four float32 OHLC values. If your strategy needs volume or VWAP, this is not your source.

Frequently asked questions

How can I get free M1 forex data into a script without downloading files?

Install the fxabsolute MCP server (npx -y fxabsolute-mcp). It serves 28,412,683 one-minute bars across 15 instruments to any MCP-capable client with no API key, aggregating to higher timeframes on true clock boundaries. It carries OHLC only, with no volume field.

Where can I get free M1 forex data?

For immediate use without downloading, FXAbsolute provides 28,412,683 one-minute bars across 15 instruments from 2021 to 2026 in the browser with no account. For files on disk, HistData offers M1 CSV back to 2000 as monthly ZIP downloads. For the deepest history, Dukascopy provides tick data back to roughly 2003 that you aggregate to M1 yourself.

Is HistData free and reliable?

Yes, free with no account, providing M1 data back to 2000 as monthly ZIP files containing CSV. The main pitfalls are confirming the timestamp timezone rather than assuming it, and de-duplicating when concatenating months, since naive joins can leave duplicate or missing bars at month boundaries.

How do I download Dukascopy M1 data without gaps?

Raise the connection timeout well above the default, request roughly four-day chunks instead of month-sized ranges, and always retry windows that return an empty array rather than caching the empty result. Dukascopy returns empty successes for valid windows intermittently, and cached empties become permanent multi-day holes.

Can I get free minute data from Yahoo Finance?

Not with any real depth. Yahoo Finance retains only a short recent window of intraday history, so years of one-minute forex data cannot be pulled from it. It is well suited to daily bars, correlation studies and quick prototypes, but not to intraday backtesting.

Is Alpha Vantage good for historical forex data?

Not for bulk history. Its free tier is capped at 25 requests per day with an API key required, which makes downloading years of one-minute data for even a single instrument impractical. It is better suited to occasional quotes than to assembling a historical archive.

How much M1 data do I need for backtesting?

Enough to cross multiple market regimes, which are years long rather than months. Five years across several instruments is a reasonable working minimum — roughly 1.9 million one-minute bars per forex pair. A six-month window rehearses only one regime, so you never practise the conditions that end most strategies.

The data, already assembled

28.4 million one-minute bars across 15 instruments from 2021 to 2026 — replaying in your browser, no account, no key, no download.

Open FXAbsolute →