نظرة عامة على توثيق API
جولة في صفحة واحدة على واجهة MetalAPI REST API: عنوان URL الأساسي والمصادقة والمعاملات وصيغة الاستجابة والأخطاء وحدود المعدل وأمثلة الشيفرة.
عنوان URL الأساسي
تُرسل جميع الطلبات إلى https://metalapi.com/api/v1/ عبر HTTPS وتستخدم GET. والاستجابات بصيغة JSON وتتضمن الحقل success.
هذه الصفحة جولة سريعة، أما المرجع الكامل بكل المعاملات ففي توثيق API.
المصادقة
أرسل مفتاح API كمعامل استعلام، أو كرمز Bearer، أو في ترويسة X-API-Key. تكون المفاتيح على شكل mk_live_ يليها 32 حرفًا. احتفظ بها سرية؛ راجع المصادقة.
# Query parameter
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_KEYنقاط النهاية
/latest: الأسعار الحالية/{YYYY-MM-DD}أو/yesterdayأو/historical?date=: أسعار الإغلاق ليوم سابق/convert?from=&to=&amount=: تحويل أي مبلغ، اختياريًا بسعر تاريخ سابق عبرdate/timeframe?start_date=&end_date=(الاسم البديل/timeseries): الأسعار اليومية لنطاق من التواريخ/change?start_date=&end_date=: التغيّر بين يومين/ohlc?date=: سعر الافتتاح والأعلى والأدنى والإغلاق ليوم ما/carat?carat=24أوcarat=all: أسعار الذهب حسب العيار (الخطط المدفوعة)/symbols: الرموز المدعومة (مجانية، لا تُحتسب من الحصة)/usage: حصتك (مجانية، لا تُحتسب من الحصة)/stream: بث Server-Sent Events لحظي (خطة Pro وما فوقها)
تجد معاملات كل منها وأمثلتها في نقاط النهاية المتاحة.
معاملات الطلب
api_key: مفتاحك، ما لم ترسله في ترويسةbase: عملة الأسعار المُرجعة، وUSDهي القيمة الافتراضيةcurrenciesأوsymbols: الرموز المطلوبة مفصولة بفواصل، وتُرجع جميع الرموز افتراضيًا.unit: وحدة الكتلة للمعادن، وهي إحدى القيمtroy_oz(الافتراضية) أوgramأوkilogramأوounceأوpoundأوmetric_tonأوshort_ton.
GET /api/v1/latest?api_key=YOUR_API_KEY&base=EUR¤cies=XAU,XAG,USD,GBP&unit=gramصيغة الاستجابة
تتضمن الاستجابات الناجحة success: true والبيانات وكتلة rate_limit. يظهر كل رمز مرتين: XAU (عدد أونصات التروي مقابل وحدة واحدة من عملة الأساس) وUSDXAU (سعر أونصة تروي واحدة بعملة الأساس). راجع صيغ البيانات والوحدات.
{
"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"
}
}الأخطاء
تُرجع الأخطاء حالة خطأ HTTP وجسمًا يحتوي على success: false مع رمز رقمي ونوع ورسالة. القائمة الكاملة في معالجة الأخطاء.
{
"success": false,
"error": {
"code": 102,
"type": "invalid_api_key",
"info": "User did not supply an access key or supplied an invalid access key"
}
}تحديد المعدل
لكل خطة حصة شهرية تُعاد تعيينها في اليوم الأول من الشهر الساعة 00:00 UTC، وحد للطلبات في الدقيقة. وتتضمن كل استجابة لطلب مُصادَق ما يلي:
X-RateLimit-LimitوX-RateLimit-RemainingوX-RateLimit-Usedللحصة الشهريةX-RateLimit-ResetوX-RateLimit-Reset-Dateلموعد إعادة تعيين الحصةX-RateLimit-Planمع اسم خطتكX-RateLimit-Minute-LimitوX-RateLimit-Minute-Remainingلحد الطلبات في الدقيقة
القيم نفسها موجودة في كتلة JSON rate_limit. راجع حدود المعدل والخطط.
الرموز المدعومة
- المعادن الثمينة:
XAU،XAG،XPT،XPD - المعادن الصناعية:
XCU،ALU،ZNC،HRC - الطاقة:
WTI،BRENT،NATURALGAS،GASOLINE،HEATINGOIL - العملات: نحو 55 عملة، منها
USDوEURوGBPوJPYوCHFوCADوAUDوCNY - العملات المشفرة: 13 عملة، منها
BTCوETHوSOLوUSDTوUSDC
تصفّحها جميعًا في صفحة الرموز.
مثال Node.js
باستخدام الدالة المدمجة fetch (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
باستخدام PHP مع cURL:
<?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
باستخدام مكتبة requests:
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"):
"""Fetch the latest metal prices from MetalAPI."""
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")مثال على طلب
تحويل 1,000 دولار أمريكي إلى أونصات تروي من الذهب:
curl "https://metalapi.com/api/v1/convert?api_key=YOUR_API_KEY&from=USD&to=XAU&amount=1000"مثال على استجابة
result هو المبلغ بعد التحويل، وinfo.rate هو السعر الذي طُبّق:
{
"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"
}
}أدلة ذات صلة
هل أنت مستعد لبدء التطوير؟
أنشئ حسابًا مجانيًا للحصول على مفتاح API، أو استكشف جميع نقاط النهاية في مرجع API.