Geçmiş Verilere Erişim
1999'a uzanan günlük fiyatları sorgulayın, tarih aralıklarını çekin, iki tarihi karşılaştırın, OHLC çubuklarını alın ve metal fiyat trendlerini analiz edin.
Hangi geçmiş veriler mevcut
MetalAPI her sembol ve her gün için bir günlük çubuk (açılış, en yüksek, en düşük ve kapanış) saklar:
- Para birimleri: 1999'dan itibaren
- Değerli metaller, endüstriyel metaller ve enerji: 2000'den itibaren
- Kripto: 2014'ten itibaren
Ekim 2026 öncesine ait metal fiyatları en yakın vadeli kontratlardan türetildiği için aynı günün spot fiyatından biraz farklı olabilir. Tüm planlar geçmiş verinin tamamını sorgulayabilir. Planlar yalnızca tek bir aralık isteğinin kaç günü kapsayabileceği konusunda farklılık gösterir.
Tek bir gün
Yol olarak tarihi, date parametresiyle /historical endpoint'ini ya da /yesterday kullanın. Yanıt, o günün (UTC) kapanış fiyatlarını içerir. GET /api/v1/2026-10-01?currencies=XAU,XAG için:
{
"success": true,
"timestamp": 1790812800,
"historical": true,
"date": "2026-10-01",
"base": "USD",
"rates": {
"XAU": 0.0002583044893,
"USDXAU": 3871.4,
"XAG": 0.02097315436,
"USDXAG": 47.68
}
}/timeframe ile tarih aralıkları
/timeframe, start_date ile end_date arasındaki her gün için tarihe göre anahtarlanmış bir kayıt döndürür. GET /api/v1/timeframe?start_date=2026-10-19&end_date=2026-10-23¤cies=XAU için:
{
"success": true,
"timeframe": true,
"start_date": "2026-10-19",
"end_date": "2026-10-23",
"base": "USD",
"rates": {
"2026-10-19": { "XAU": 0.0002537298285, "USDXAU": 3941.2 },
"2026-10-20": { "XAU": 0.0002526049889, "USDXAU": 3958.75 },
"2026-10-21": { "XAU": 0.0002517369852, "USDXAU": 3972.4 },
"2026-10-22": { "XAU": 0.0002506642603, "USDXAU": 3989.4 },
"2026-10-23": { "XAU": 0.0002501319446, "USDXAU": 3997.89 }
}
}Hafta sonları veya piyasa tatilleri gibi kapanış fiyatı olmayan günler eksik olabilir. Her takvim günü için bir kayıt olacağını varsaymayın. /timeseries, "timeframe": true yerine "timeseries": true döndüren bir takma addır.
Planınızın izin verdiğinden uzun aralıklar
Tek bir istek Free planda en fazla 30 günü, ücretli planlarda ise 365 günü kapsayabilir. Daha uzun aralıklar 207 hatası döndürür. Uzun aralıkları, her biri tek bir istek olacak şekilde parçalara bölün:
const DAY = 86_400_000;
const MAX_DAYS = 365; // Free planda 30
const iso = (d) => d.toISOString().slice(0, 10);
async function fetchRange(start, end, currencies) {
const rates = {};
let from = new Date(`${start}T00:00:00Z`);
const last = new Date(`${end}T00:00:00Z`);
while (from <= last) {
const to = new Date(Math.min(from.getTime() + MAX_DAYS * DAY, last.getTime()));
const params = new URLSearchParams({ start_date: iso(from), end_date: iso(to), currencies });
const res = await fetch(`https://metalapi.com/api/v1/timeframe?${params}`, {
headers: { "X-API-Key": process.env.METALAPI_KEY },
});
const data = await res.json();
if (!data.success) throw new Error(`${data.error.code}: ${data.error.info}`);
Object.assign(rates, data.rates);
from = new Date(to.getTime() + DAY);
}
return rates;
}
// 10 istekte on yıllık günlük altın fiyatları
const gold = await fetchRange("2016-01-01", "2025-12-31", "XAU");İki tarih arasındaki değişim
/change iki günü doğrudan karşılaştırır; böylece aradaki aralığı indirmeniz gerekmez. GET /api/v1/change?start_date=2026-09-30&end_date=2026-10-23¤cies=XAU için:
{
"success": true,
"change": true,
"start_date": "2026-09-30",
"end_date": "2026-10-23",
"base": "USD",
"rates": {
"XAU": { "start_rate": 0.0002591613539, "end_rate": 0.0002501319446, "change": -0.000009029409258, "change_pct": -3.48409 },
"USDXAU": { "start_rate": 3858.6, "end_rate": 3997.89, "change": 139.29, "change_pct": 3.60986 }
}
}Fiyat değişimleri için USDXAU gibi önekli anahtarları kullanın. Ters anahtarlar zıt yönde hareket eder.
Günlük OHLC çubukları
/ohlc bir günün açılış, en yüksek, en düşük ve kapanış değerlerini döndürür; mum grafikleri ve günlük aralıklar için ihtiyacınız olan da budur. GET /api/v1/ohlc?date=2026-10-22¤cies=XAU için:
{
"success": true,
"ohlc": true,
"date": "2026-10-22",
"base": "USD",
"rates": {
"USDXAU": { "open": 3962.1, "high": 4012.75, "low": 3951.3, "close": 3989.4 },
"XAU": { "open": 0.0002523914086, "high": 0.0002530812644, "low": 0.000249205657, "close": 0.0002506642603 }
}
}Geçmiş tarihli dönüştürmeler
Geçmiş bir kapanış fiyatıyla dönüştürmek için /convert isteğine date ekleyin. Örneğin 10 troy ons gümüşün 1 Ekim 2026'daki euro karşılığı şöyle hesaplanır:
GET /api/v1/convert?api_key=YOUR_API_KEY&from=XAG&to=EUR&amount=10&date=2026-10-01Trend analizi
/timeframe yanıtını bir seriye dönüştürmek kolaydır. Bu örnek, altın fiyatının 20 günlük basit hareketli ortalamasını hesaplar:
// data = /timeframe?currencies=XAU yanıtı
const series = Object.entries(data.rates)
.sort(([a], [b]) => a.localeCompare(b))
.map(([date, rates]) => ({ date, price: rates.USDXAU }));
function movingAverage(points, period) {
return points.slice(period - 1).map((point, i) => ({
date: point.date,
sma: points.slice(i, i + period).reduce((sum, p) => sum + p.price, 0) / period,
}));
}
const sma20 = movingAverage(series, 20);Geçmiş günlerin kapanış fiyatları hiçbir zaman değişmez; bu nedenle onları yeniden istemek yerine kalıcı olarak saklayın. Yalnızca bugünün çubuğu hâlâ değişmektedir.
İlgili rehberler
Geliştirmeye başlamaya hazır mısınız?
API anahtarınızı almak için ücretsiz bir hesap oluşturun veya API referansında tüm endpoint'leri inceleyin.