أسعار الذهب في الوقت الفعلي، باستدعاء API واحد.
XAG 53.40
كل ما تحتاجه لتسعير المعادن
واجهة REST API واحدة بسيطة وآمنة — دون الحاجة إلى أي SDK، فقط مفتاح API.
curl "https://grams.today/v1/prices?currency=USD" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
res = requests.get(
"https://grams.today/v1/prices?currency=USD",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
print(res.json())const res = await fetch("https://grams.today/v1/prices?currency=USD", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const data = await res.json();
console.log(data);$ch = curl_init("https://grams.today/v1/prices?currency=USD");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer YOUR_API_KEY",
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);require "net/http"
require "json"
uri = URI("https://grams.today/v1/prices?currency=USD")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
puts JSON.parse(res.body)req, _ := http.NewRequest("GET", "https://grams.today/v1/prices?currency=USD", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://grams.today/v1/prices?currency=USD"))
.header("Authorization", "Bearer YOUR_API_KEY")
.build();
HttpResponse<String> res = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
string json = await client.GetStringAsync("https://grams.today/v1/prices?currency=USD");
Console.WriteLine(json);أسعار في الوقت الفعلي لخمسة معادن
الذهب والفضة والبلاتين والبلاديوم والنحاس — مباشرةً من بيانات السوق المباشرة لدينا، محدّثة باستمرار على الخادم.
- الأونصة + لكل غرام (24k/22k/21k/18k)
- التغير اليومي والنسبة المئوية
- استجابات مخزّنة مؤقتاً بأقل من ثانية
curl "https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
res = requests.get(
"https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
print(res.json())const res = await fetch("https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const data = await res.json();
console.log(data);$ch = curl_init("https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer YOUR_API_KEY",
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);require "net/http"
require "json"
uri = URI("https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
puts JSON.parse(res.body)req, _ := http.NewRequest("GET", "https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR"))
.header("Authorization", "Bearer YOUR_API_KEY")
.build();
HttpResponse<String> res = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
string json = await client.GetStringAsync("https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR");
Console.WriteLine(json);أي عملة، أي وحدة، أي عيار
حوّل الأوزان إلى قيمة فوراً بأكثر من 14+ عملة. غرامات أو أونصات أو كيلوغرامات — مع عيارات الذهب.
- USD · SAR · AED · KWD · QAR · BHD …
- وحدات غ / أونصة / كغ
- 24k · 22k · 21k · 18k
curl "https://grams.today/v1/gold?currency=USD" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
res = requests.get(
"https://grams.today/v1/gold?currency=USD",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
print(res.json())const res = await fetch("https://grams.today/v1/gold?currency=USD", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const data = await res.json();
console.log(data);$ch = curl_init("https://grams.today/v1/gold?currency=USD");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer YOUR_API_KEY",
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);require "net/http"
require "json"
uri = URI("https://grams.today/v1/gold?currency=USD")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
puts JSON.parse(res.body)req, _ := http.NewRequest("GET", "https://grams.today/v1/gold?currency=USD", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://grams.today/v1/gold?currency=USD"))
.header("Authorization", "Bearer YOUR_API_KEY")
.build();
HttpResponse<String> res = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
string json = await client.GetStringAsync("https://grams.today/v1/gold?currency=USD");
Console.WriteLine(json);مبنية للتوسّع ومحمية بالمفتاح
يتم التحقق من كل طلب بمفتاح API الخاص بك ويخضع لرؤوس شفافة لحدود المعدل والحصة. تتبّع الاستخدام مباشرةً من لوحة التحكم.
- حدود معدل لكل دقيقة
- حصص شهرية ورسوم بيانية للاستخدام
- إلغاء / تدوير المفاتيح في أي وقت
استخدمها مع لغتك المفضلة
مقتطفات جاهزة للنسخ لكل بيئة شائعة — دون الحاجة إلى SDK، فقط استدعاء HTTP واحد.
تسعير بسيط ومرن
ابدأ مجاناً. قم بالترقية عند التوسّع. ألغِ في أي وقت.
Black Friday Mega Deal
- Real-time Gold Price
- Multi-Currency Support
- Unlimited API Call
- Single Server Configuration
Ultimate
- Real-time Gold Price
- Multi-Currency Support
- Live Support
- Unlimited API Call
توثيق API
عنوان URL الأساسي https://grams.today/v1 — كل نقطة نهاية هي GET وتُرجع JSON.
🔐 المصادقة
تتطلب جميع نقاط النهاية مفتاح API الخاص بك — احتفظ به سرياً. أرسله بثلاث طرق:
نقاط النهاية
GET /v1/prices — جميع المعادن. GET /v1/gold — الذهب فقط.
GET /v1/convert — قيمة كمية معينة. المعاملات: metal, weight, unit (g/oz/kg), karat, currency.
GET /v1/historical — السجل اليومي. المعاملات: metal, days, currency. GET /v1/symbols — المعادن والعملات المدعومة.
حدود المعدل
X-RateLimit-Limit | الطلبات / الدقيقة حسب خطتك |
X-Quota-Limit / X-Quota-Used | الحصة الشهرية والاستخدام |
تجاوز الحد يُرجع 429. الأخطاء بصيغة { "success": false, "error": { "code", "message" } } مع 401 (المفتاح), 422 (معامل خاطئ), 429 (الحد).
أمثلة برمجية — لكل لغة شائعة
احصل على سعر الذهب المباشر (GET /v1/gold) — بدّل التبويب إلى لغتك:
curl "https://grams.today/v1/gold?currency=USD" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
res = requests.get(
"https://grams.today/v1/gold?currency=USD",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
print(res.json())const res = await fetch("https://grams.today/v1/gold?currency=USD", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const data = await res.json();
console.log(data);$ch = curl_init("https://grams.today/v1/gold?currency=USD");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer YOUR_API_KEY",
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);require "net/http"
require "json"
uri = URI("https://grams.today/v1/gold?currency=USD")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
puts JSON.parse(res.body)req, _ := http.NewRequest("GET", "https://grams.today/v1/gold?currency=USD", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://grams.today/v1/gold?currency=USD"))
.header("Authorization", "Bearer YOUR_API_KEY")
.build();
HttpResponse<String> res = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
string json = await client.GetStringAsync("https://grams.today/v1/gold?currency=USD");
Console.WriteLine(json);