Dukascopy's free tick and one-minute history, including XAUUSD gold going back to 2003.
Dukascopy — the instrument manifest behind the historical archive.
/v1/finance:dukascopy/instrument-list1d cache2 paramschecking key…// npm i zpi-sdk
import { ZpiClient } from "zpi-sdk";
const client = new ZpiClient({ apiKey: "zpi_xxxxxxxxxxxxxxxxxxxxxxxx" });
const data = await client.run("finance:dukascopy", "instrument-list", {
"query": "gold",
"limit": 100
});
console.log(data);/v1/finance:dukascopy/instrument-listDukascopy — the instrument manifest behind the historical archive.
querystringoptionallimitnumberoptionalcurl -X GET "https://api.zapi.ink/v1/finance:dukascopy/instrument-list?query=gold&limit=100" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"{
"count": 33,
"items": [
{
"tags": [
""
],
"symbol": "GDXUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "GDX.US/USD",
"description": "VanEck Vectors Gold Miners ETF",
"baseCurrency": "GDX.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2017-03-01T18:00:00.000Z",
"m1HistoryStart": "2017-03-01T18:12:00.000Z",
"tickHistoryStart": "2017-03-01T18:13:24.243Z"
},
{
"tags": [
""
],
"symbol": "GDXJUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "GDXJ.US/USD",
"description": "VanEck Vectors Junior Gold Miners ETF ",
"baseCurrency": "GDXJ.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2017-03-01T18:00:00.000Z",
"m1HistoryStart": "2017-03-01T18:12:00.000Z",
"tickHistoryStart": "2017-03-01T18:13:02.678Z"
},
{
"tags": [
""
],
"symbol": "GLDUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "GLD.US/USD",
"description": "SPDR Gold Shares ETF",
"baseCurrency": "GLD.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2017-03-01T18:00:00.000Z",
"m1HistoryStart": "2017-03-01T18:12:00.000Z",
"tickHistoryStart": "2017-03-01T18:13:07.724Z"
},
{
"tags": [
""
],
"symbol": "GSUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "GS.US/USD",
"description": "Goldman Sachs Group Inc/The",
"baseCurrency": "GS.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2017-03-01T18:00:00.000Z",
"m1HistoryStart": "2017-03-01T18:12:00.000Z",
"tickHistoryStart": "2017-03-01T18:12:59.163Z"
},
{
"tags": [
""
],
"symbol": "IGLNUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "IGLN.US/USD",
"description": "iShares Physical Gold ETC - IGLN",
"baseCurrency": "IGLN.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2024-03-11T07:00:00.000Z",
"m1HistoryStart": "2024-03-11T07:50:00.000Z",
"tickHistoryStart": "2024-03-11T07:50:00.000Z"
},
{
"tags": [
""
],
"symbol": "RGLDUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "RGLD.US/USD",
"description": "ROYAL GOLD INC",
"baseCurrency": "RGLD.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2022-05-13T14:00:00.000Z",
"m1HistoryStart": "2022-05-13T14:04:00.000Z",
"tickHistoryStart": "2022-05-13T14:04:53.418Z"
},
{
"tags": [
""
],
"symbol": "SGLDUSUSD",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "SGLD.US/USD",
"description": "Invesco Physical Gold ETC",
"baseCurrency": "SGLD.US",
"quoteCurrency": "USD",
"h1HistoryStart": "2024-03-18T05:00:00.000Z",
"m1HistoryStart": "2024-03-18T05:00:00.000Z",
"tickHistoryStart": "2024-03-18T05:00:04.000Z"
},
{
"tags": [
""
],
"symbol": "XAUAED",
"pipValue": 0.01,
"priceStep": 0.001,
"instrument": "XAU/AED",
"description": "Gold vs UAE Dirham",
"baseCurrency": "XAU",
"quoteCurrency": "AED",
"h1HistoryStart": "2024-09-17T09:00:00.000Z",
"m1HistoryStart": "2024-09-17T09:39:00.000Z",
"tickHistoryStart": "2024-09-17T09:39:43.255Z"
}
],
"query": "gold",
"total": 33,
"dataset": "instruments",
"hasMore": false,
"provider": "dukascopy"
}/v1/finance:dukascopy/m1-candlesDukascopy — one-minute OHLC history from the public tick archive.
instrumentstringrequiredfromstringrequiredtostringoptionalfrom. A long range can come back partial — resume from nextFrom when hasMore is truesideenumoptionalcurl -X GET "https://api.zapi.ink/v1/finance:dukascopy/m1-candles?instrument=XAU%2FUSD&from=2024-01-15&to=2024-01-17&side=bid" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"{
"to": "2024-01-15",
"from": "2024-01-15",
"side": "bid",
"count": 1440,
"items": [
{
"low": 2046.815,
"date": "2024-01-15T00:00:00.000Z",
"high": 2047.675,
"open": 2047.525,
"close": 2046.935,
"volume": 0.01064,
"timestamp": 1705276800000
},
{
"low": 2046.695,
"date": "2024-01-15T00:01:00.000Z",
"high": 2047.005,
"open": 2046.855,
"close": 2046.915,
"volume": 0.00878,
"timestamp": 1705276860000
},
{
"low": 2046.935,
"date": "2024-01-15T00:02:00.000Z",
"high": 2047.445,
"open": 2046.945,
"close": 2047.035,
"volume": 0.00876,
"timestamp": 1705276920000
},
{
"low": 2046.885,
"date": "2024-01-15T00:03:00.000Z",
"high": 2047.155,
"open": 2046.985,
"close": 2046.945,
"volume": 0.00465,
"timestamp": 1705276980000
},
{
"low": 2046.445,
"date": "2024-01-15T00:04:00.000Z",
"high": 2047.015,
"open": 2047.015,
"close": 2046.445,
"volume": 0.00717,
"timestamp": 1705277040000
},
{
"low": 2046.345,
"date": "2024-01-15T00:05:00.000Z",
"high": 2046.818,
"open": 2046.465,
"close": 2046.745,
"volume": 0.00798,
"timestamp": 1705277100000
},
{
"low": 2046.155,
"date": "2024-01-15T00:06:00.000Z",
"high": 2046.748,
"open": 2046.695,
"close": 2046.265,
"volume": 0.01471,
"timestamp": 1705277160000
},
{
"low": 2045.675,
"date": "2024-01-15T00:07:00.000Z",
"high": 2046.355,
"open": 2046.255,
"close": 2045.735,
"volume": 0.01739,
"timestamp": 1705277220000
}
],
"symbol": "XAUUSD",
"dataset": "m1-candles",
"hasMore": false,
"nextFrom": null,
"provider": "dukascopy",
"instrument": "XAU/USD",
"daysCovered": 1,
"rateLimited": false
}/v1/finance:dukascopy/ticksDukascopy — raw ticks for one UTC hour, straight from the public archive.
instrumentstringrequireddatestringrequiredhournumberrequiredcurl -X GET "https://api.zapi.ink/v1/finance:dukascopy/ticks?instrument=XAU%2FUSD&date=2024-01-15&hour=10" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"{
"date": "2024-01-15",
"hour": 10,
"count": 4022,
"items": [
{
"ask": 2055.235,
"bid": 2054.925,
"date": "2024-01-15T10:00:00.113Z",
"spread": 0.31,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312800113
},
{
"ask": 2055.245,
"bid": 2054.935,
"date": "2024-01-15T10:00:00.867Z",
"spread": 0.31,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312800867
},
{
"ask": 2055.285,
"bid": 2054.985,
"date": "2024-01-15T10:00:01.219Z",
"spread": 0.3,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312801219
},
{
"ask": 2055.345,
"bid": 2055.045,
"date": "2024-01-15T10:00:01.370Z",
"spread": 0.3,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312801370
},
{
"ask": 2055.295,
"bid": 2055.005,
"date": "2024-01-15T10:00:03.629Z",
"spread": 0.29,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312803629
},
{
"ask": 2055.325,
"bid": 2055.035,
"date": "2024-01-15T10:00:03.932Z",
"spread": 0.29,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312803932
},
{
"ask": 2055.315,
"bid": 2055.015,
"date": "2024-01-15T10:00:03.985Z",
"spread": 0.3,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312803985
},
{
"ask": 2055.335,
"bid": 2055.035,
"date": "2024-01-15T10:00:04.089Z",
"spread": 0.3,
"askVolume": 0.00012,
"bidVolume": 0.00012,
"timestamp": 1705312804089
}
],
"symbol": "XAUUSD",
"dataset": "ticks",
"provider": "dukascopy",
"instrument": "XAU/USD"
}/v1/finance:dukascopy/sentiment-indexDukascopy — the current retail long/short split across the whole quoted universe.
typeenumoptionalswfx quotes by traded pair (EUR/USD), ccy by underlying (0700.HK). Default swfx Values: swfx, ccy.querystringoptionallimitnumberoptionalcurl -X GET "https://api.zapi.ink/v1/finance:dukascopy/sentiment-index?type=swfx&query=EUR&limit=100" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"{
"asOf": "2026-08-21T02:00:00.000Z",
"type": "swfx",
"count": 100,
"items": [
{
"instrument": "0700.HK/HKD",
"longPercent": 72.23,
"instrumentId": "35136",
"shortPercent": 27.77,
"netShortPercent": -44.46
},
{
"instrument": "AON.US/USD",
"longPercent": 70.14,
"instrumentId": "86258",
"shortPercent": 29.86,
"netShortPercent": -40.28
},
{
"instrument": "AOS.US/USD",
"longPercent": 72.21,
"instrumentId": "86362",
"shortPercent": 27.79,
"netShortPercent": -44.42
},
{
"instrument": "ARKI.US/USD",
"longPercent": 70.08,
"instrumentId": "99630",
"shortPercent": 29.92,
"netShortPercent": -40.16
},
{
"instrument": "ASML.NL/EUR",
"longPercent": 72.43,
"instrumentId": "72048",
"shortPercent": 27.57,
"netShortPercent": -44.86
},
{
"instrument": "AUD/CAD",
"longPercent": 26.38,
"instrumentId": "2050",
"shortPercent": 73.62,
"netShortPercent": 47.24
},
{
"instrument": "AUD/CHF",
"longPercent": 55.87,
"instrumentId": "2052",
"shortPercent": 44.13,
"netShortPercent": -11.74
},
{
"instrument": "AUD/DKK",
"longPercent": 70.94,
"instrumentId": "2256",
"shortPercent": 29.06,
"netShortPercent": -41.88
}
],
"query": null,
"total": 312,
"dataset": "sentiment-index",
"provider": "dukascopy"
}/v1/finance:dukascopy/sentiment-historyDukascopy — how retail crowding sat at four fixed look-backs: now, 6 hours,
querystringoptionallimitnumberoptionalcurl -X GET "https://api.zapi.ink/v1/finance:dukascopy/sentiment-history?query=EUR%2FUSD&limit=100" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"{
"count": 1,
"items": [
{
"last": {
"longPercent": 28.64,
"shortPercent": 71.36,
"netShortPercent": 42.72
},
"oneDay": {
"longPercent": 30.96,
"shortPercent": 69.04,
"netShortPercent": 38.08
},
"fiveDays": {
"longPercent": 37.07,
"shortPercent": 62.93,
"netShortPercent": 25.86
},
"sixHours": {
"longPercent": 29.89,
"shortPercent": 70.11,
"netShortPercent": 40.22
},
"instrument": "EUR/USD",
"nameTruncated": false
}
],
"query": "EUR/USD",
"total": 1,
"dataset": "sentiment-history",
"provider": "dukascopy"
}