API Dokümantasyonuna Genel Bakış
MetalAPI REST API'sinin tek sayfalık özeti: temel URL, kimlik doğrulama, parametreler, yanıt formatı, hatalar, istek limitleri ve farklı dillerde kod örnekleri.
Temel URL
Tüm istekler HTTPS üzerinden https://metalapi.com/api/v1/ adresine gönderilir ve GET yöntemini kullanır. Yanıtlar, success alanı içeren JSON belgeleridir.
Bu sayfa hızlı bir tanıtımdır. Tüm parametreleri içeren eksiksiz referans API dokümantasyonunda yer alır.
Kimlik doğrulama
API anahtarınızı bir sorgu parametresi, Bearer token veya X-API-Key header'ı olarak gönderin. Anahtarlar mk_live_ ve ardından gelen 32 karakterden oluşur. Anahtarlarınızı gizli tutun; bkz. Kimlik doğrulama.
# Sorgu parametresi
GET https://metalapi.com/api/v1/latest?api_key=YOUR_API_KEY
# Authorization header'ı
GET https://metalapi.com/api/v1/latest
Authorization: Bearer YOUR_API_KEY
# X-API-Key header'ı
GET https://metalapi.com/api/v1/latest
X-API-Key: YOUR_API_KEYEndpoint'ler
/latest: güncel fiyatlar/{YYYY-MM-DD},/yesterdayveya/historical?date=: geçmiş bir günün kapanış fiyatları/convert?from=&to=&amount=: herhangi bir tutarı dönüştürür, isteğe bağlı olarak geçmiş birdateile/timeframe?start_date=&end_date=(takma adı/timeseries): bir tarih aralığı için günlük fiyatlar/change?start_date=&end_date=: iki gün arasındaki değişim/ohlc?date=: bir günün açılış, en yüksek, en düşük ve kapanış değerleri/carat?carat=24veyacarat=all: ayara göre altın fiyatları (ücretli planlar)/symbols: desteklenen semboller (ücretsiz, kotadan düşülmez)/usage: kotanız (ücretsiz, kotadan düşülmez)/stream: gerçek zamanlı Server-Sent Events (Pro ve üzeri planlar)
Her birinin parametreleri ve örnekleri Kullanılabilir endpoint'ler rehberindedir.
İstek parametreleri
api_key: anahtarınız (header ile göndermiyorsanız)base: döndürülen fiyatların para birimi, varsayılan olarakUSDcurrenciesveyasymbols: döndürülecek sembollerin virgülle ayrılmış listesi. Varsayılan olarak tüm semboller.unit: metaller için kütle birimi.troy_oz(varsayılan),gram,kilogram,ounce,pound,metric_tonveyashort_tondeğerlerinden biri.
GET /api/v1/latest?api_key=YOUR_API_KEY&base=EUR¤cies=XAU,XAG,USD,GBP&unit=gramYanıt formatı
Başarılı yanıtlar success: true, verinin kendisi ve bir rate_limit bloğu içerir. Her sembol iki kez yer alır: XAU (baz para biriminin bir birimi başına troy ons) ve USDXAU (bir troy onsun baz para birimi cinsinden fiyatı). Bkz. Veri formatları ve birimler.
{
"success": true,
"timestamp": 1792765800,
"date": "2026-10-23",
"base": "USD",
"rates": {
"EUR": 0.8589589418,
"USDEUR": 1.1642,
"XAG": 0.01853911754,
"USDXAG": 53.94,
"XAU": 0.0002501319446,
"USDXAU": 3997.89
},
"rate_limit": {
"limit": 10000,
"remaining": 9876,
"reset": 1793491200,
"used": 124,
"plan": "Standard",
"reset_date": "2026-11-01T00:00:00.000Z"
}
}Hatalar
Hatalar, bir HTTP hata durum kodu ve sayısal bir kod, bir tür ve bir mesaj içeren success: false gövdesi döndürür. Tam liste Hata yönetimi rehberindedir.
{
"success": false,
"error": {
"code": 102,
"type": "invalid_api_key",
"info": "User did not supply an access key or supplied an invalid access key"
}
}İstek limitleri
Her planın her ayın 1'inde 00:00 UTC'de sıfırlanan bir aylık kotası ve bir dakika başına limiti vardır. Kimliği doğrulanmış her yanıt şunları içerir:
- Aylık kota için
X-RateLimit-Limit,X-RateLimit-RemainingveX-RateLimit-Used - Kotanın ne zaman sıfırlanacağı için
X-RateLimit-ResetveX-RateLimit-Reset-Date - Plan adınızla birlikte
X-RateLimit-Plan - Dakika başına limit için
X-RateLimit-Minute-LimitveX-RateLimit-Minute-Remaining
Aynı değerler rate_limit JSON bloğunda da bulunur. Bkz. İstek limitleri ve planlar.
Desteklenen semboller
- Değerli metaller:
XAU,XAG,XPT,XPD - Endüstriyel metaller:
XCU,ALU,ZNC,HRC - Enerji:
WTI,BRENT,NATURALGAS,GASOLINE,HEATINGOIL - Para birimleri:
USD,EUR,GBP,JPY,CHF,CAD,AUDveCNYdahil yaklaşık 55 para birimi - Kripto:
BTC,ETH,SOL,USDTveUSDCdahil 13 kripto para
Tümünü semboller sayfasında inceleyebilirsiniz.
Node.js örneği
Yerleşik fetch ile (Node.js 18+):
const API_KEY = process.env.METALAPI_KEY;
const BASE_URL = "https://metalapi.com/api/v1";
async function getLatestRates(currencies = "XAU,XAG,EUR") {
const res = await fetch(`${BASE_URL}/latest?currencies=${currencies}`, {
headers: { Authorization: `Bearer ${API_KEY}` },
});
const data = await res.json();
if (!data.success) throw new Error(`${data.error.code}: ${data.error.info}`);
return data.rates;
}
const rates = await getLatestRates();
console.log("Gold (USD/oz):", rates.USDXAU);
console.log("Silver (USD/oz):", rates.USDXAG);PHP örneği
cURL ile PHP kullanarak:
<?php
$apiKey = getenv('METALAPI_KEY');
$curl = curl_init('https://metalapi.com/api/v1/latest?currencies=XAU,XAG');
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => ["X-API-Key: {$apiKey}"],
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
exit("cURL error: {$error}\n");
}
$data = json_decode($response, true);
if (!$data['success']) {
exit("API error {$data['error']['code']}: {$data['error']['info']}\n");
}
echo "Gold (USD/oz): " . $data['rates']['USDXAU'] . "\n";
echo "Silver (USD/oz): " . $data['rates']['USDXAG'] . "\n";Python örneği
requests kütüphanesiyle:
import os
import requests
API_KEY = os.environ["METALAPI_KEY"]
BASE_URL = "https://metalapi.com/api/v1"
def get_metal_rates(currencies="XAU,XAG,XPT"):
"""MetalAPI'den en güncel metal fiyatlarını getirir."""
response = requests.get(
f"{BASE_URL}/latest",
params={"currencies": currencies},
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=10,
)
data = response.json()
if not data["success"]:
raise RuntimeError(f"{data['error']['code']}: {data['error']['info']}")
return data["rates"]
rates = get_metal_rates()
print(f"Gold: {rates['USDXAU']} USD/oz")
print(f"Silver: {rates['USDXAG']} USD/oz")
print(f"Platinum: {rates['USDXPT']} USD/oz")Örnek istek
1.000 ABD dolarını troy ons cinsinden altına dönüştürme:
curl "https://metalapi.com/api/v1/convert?api_key=YOUR_API_KEY&from=USD&to=XAU&amount=1000"Örnek yanıt
result dönüştürülmüş tutarı, info.rate ise uygulanan kuru gösterir:
{
"success": true,
"query": { "from": "USD", "to": "XAU", "amount": 1000 },
"info": { "timestamp": 1792765800, "rate": 0.0002501319446, "quote": 0.0002501319446 },
"date": "2026-10-23",
"result": 0.2501319446,
"rate_limit": {
"limit": 10000,
"remaining": 9876,
"reset": 1793491200,
"used": 124,
"plan": "Standard",
"reset_date": "2026-11-01T00:00:00.000Z"
}
}İ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.