Dukascopy Historical Price API
Pricing
$0.20 / 1,000 price bars
Dukascopy Historical Price API
Historical daily OHLCV for any Dukascopy instrument (FX, metals, commodities, indices) over any date range, from Dukascopy's public feed. No login, no proxies. Returns all available data even when the requested range exceeds coverage.
Pricing
$0.20 / 1,000 price bars
Rating
0.0
(0)
Developer
Pepe Schuster
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
Historical daily OHLCV for any Dukascopy instrument — FX, metals, commodities, and indices — over any date range, straight from Dukascopy's public feed. No login, no API key, no proxies.
Getting clean historical price history usually means a $100–$500 dataset or a paid data terminal. This Actor gives you the same thing pay-as-you-go: pass a list of instruments and a date range, and get back tidy daily open / high / low / close / volume bars you can download as JSON, CSV, or Excel — or pull straight from the API.
Features
- 🌍 Any asset class — FX pairs (EURUSD, GBPUSD, USDJPY…), metals (XAUUSD gold, XAGUSD silver), commodities (LIGHTCMDUSD WTI, COPPERCMDUSD), and indices (USA500IDXUSD, DEUIDXEUR DAX…).
- 📅 Any date range — decades of history in a single run.
- 🛡️ Graceful by design — ask for a range wider than the data goes back, and you get all the data that exists plus a clear log of coverage — never a hard error or an empty crash.
- 🎯 Correctly scaled prices — per-instrument decimal handling, so gold reads ~2000 and EURUSD reads ~1.08, out of the box.
- 💾 Any format — JSON, CSV, Excel, or the dataset API; schedule it for a rolling update.
Who it's for
Quant researchers and algo traders (backtesting), fintech builders and dashboards, analysts, and anyone who needs affordable, structured price history without a data-vendor contract.
Input
| Field | Type | Description |
|---|---|---|
instruments | array | Dukascopy instrument codes, e.g. EURUSD, XAUUSD, LIGHTCMDUSD, USA500IDXUSD. Required. |
fromDate | string | Start date, YYYY-MM-DD. |
toDate | string | End date, YYYY-MM-DD (default: today). |
priceType | string | bid (default) or ask. |
decimalFactor | integer | Advanced: override the price scale for an unlisted instrument. Leave empty otherwise. |
Example input
{"instruments": ["EURUSD", "XAUUSD"],"fromDate": "2015-01-01","toDate": "2023-12-31","priceType": "bid"}
Output
One record per instrument per trading day:
{"instrument": "EURUSD","date": "2023-01-02","open": 1.07007,"high": 1.07087,"low": 1.06499,"close": 1.06765,"volume": 132616.06}
Pricing
Pay-per-result — billed per daily bar returned. A full decade of one instrument is roughly 2,600 bars, so you pay cents where a historical dataset would cost hundreds of dollars. No subscription, and out-of-range requests that return nothing cost nothing.
FAQ
Do I need a Dukascopy account or key? No — it reads Dukascopy's public data feed.
What if I request dates before the data starts? You get everything that exists for that instrument; the Actor never errors on an out-of-range request.
Which instruments are supported? Any Dukascopy instrument code. Common ones (FX, metals, WTI, copper, major indices) are scaled automatically; for an exotic one, set decimalFactor if the price looks off.
Can I schedule it? Yes — run it daily/weekly to keep a rolling price history up to date.
Bid or ask? Either — set priceType.
Notes
Prices are Dukascopy's public spot/CFD feed (not exchange settlement data). Please use responsibly and within Dukascopy's terms of service.