Precious metals API: gold and silver prices per gram
Gold and silver prices by karat and fineness, per gram in SAR and USD, with spot price and daily change. Platinum and palladium are on the way.
One precious metals API for gold and silver, with more metals planned
Our precious metals API gives you gold and silver prices the way shops and apps in the Gulf and South Asia sell them: per gram, by karat or fineness, in Saudi riyals and US dollars. One key and one JSON format cover both metals, and /v1/snapshot returns them together with exchange rates in a single request.
Gold comes in eight karats from 24K to 10K and silver in four grades from 999 to 800, each with the spot price per troy ounce, the daily change and updatedAt. Platinum and palladium are planned; the table below shows exactly what is available today.
Spot prices for precious metals are set on international markets such as the LBMA; the API turns them into the per-gram figures your customers ask for.

What you get
- Gold: 24K, 22K, 21K, 20K, 18K, 16K, 14K and 10K per gram
- Silver: 999, 925, 900 and 800 per gram
- Every price in SAR and USD, other currencies via our exchange rates
- Spot price per troy ounce, daily change and day range
- Gold, silver and exchange rates together in
/v1/snapshot
Endpoints
| Method | Path | Returns |
|---|---|---|
| GET | /v1/metals/gold | Gold, all karats |
| GET | /v1/metals/silver | Silver, all grades |
| GET | /v1/metals/{metal}/sar, /usd | One currency only |
| GET | /v1/snapshot | Gold, silver and rates in one call |
Supported metals
| Data | Status | Notes |
|---|---|---|
| Gold (XAU) | Available | 8 karats per gram, spot per troy ounce, SAR and USD |
| Silver (XAG) | Available | 4 fineness grades per gram, spot per troy ounce, SAR and USD |
| Platinum (XPT) | Planned | Per gram and per troy ounce |
| Palladium (XPD) | Planned | Per gram and per troy ounce |
| Historical metal prices | Planned | Daily prices by date |
Waiting for platinum, palladium or history? Tell us and you will be first to know when they go live.
Gold today
| Karat | SAR per gram | USD per gram |
|---|---|---|
| 24K | 482.14 | 128.46 |
| 22K | 441.98 | 117.76 |
| 21K | 421.87 | 112.40 |
| 20K | 401.77 | 107.04 |
| 18K | 361.61 | 96.34 |
| 16K | 321.44 | 85.64 |
| 14K | 281.23 | 74.93 |
| 10K | 200.91 | 53.53 |
Updated 2 hours ago. Live from GET /v1/metals/gold.
Silver today
| Fineness | SAR per gram | USD per gram |
|---|---|---|
| 999 | 6.509 | 1.734 |
| 925 | 6.026 | 1.606 |
| 900 | 5.864 | 1.562 |
| 800 | 5.212 | 1.389 |
Updated 5 hours ago. Live from GET /v1/metals/silver.
Call the precious metals API in four languages
Send your key in the X-API-Key header. Every response uses the same envelope: success, data, error and meta.
curl "https://api.metalrates.cloud/v1/snapshot?currencies=PKR,INR" \
-H "X-API-Key: YOUR_API_KEY"const res = await fetch("https://api.metalrates.cloud/v1/snapshot?currencies=PKR,INR", {
headers: { "X-API-Key": process.env.METALRATES_API_KEY }
});
const { success, data, meta } = await res.json();
console.log(data);import os, requests
res = requests.get(
"https://api.metalrates.cloud/v1/snapshot?currencies=PKR,INR",
headers={"X-API-Key": os.environ["METALRATES_API_KEY"]},
timeout=10,
)
body = res.json()
print(body["data"])<?php
$ch = curl_init("https://api.metalrates.cloud/v1/snapshot?currencies=PKR,INR");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('METALRATES_API_KEY')],
CURLOPT_TIMEOUT => 10,
]);
$body = json_decode(curl_exec($ch), true);
print_r($body['data']);{
"success": true,
"data": {
"gold": {
"available": true,
"label": "Gold 24K",
"pricePerGramSar": 482.14,
"pricePerGramUsd": 128.4561,
"spotPriceSar": 14996.32,
"changePercent": 0,
"changeDirection": "flat",
"isStale": false,
"updatedAt": "27 Oct 2026, 03:08 PM",
"updatedIso": "2026-10-27T12:08:19.4654293Z"
},
"silver": {
"available": true,
"label": "Silver 999",
"pricePerGramSar": 6.5085,
"pricePerGramUsd": 1.7341,
"spotPriceSar": 202.64,
"changePercent": 0,
"changeDirection": "flat",
"isStale": false,
"updatedAt": "27 Oct 2026, 12:44 PM",
"updatedIso": "2026-10-27T09:44:57.4401314Z"
},
"forex": {
"available": true,
"baseCurrency": "SAR",
"rates": [
{
"currency": "PKR",
"label": "PKR / SAR",
"rate": 73.8929,
"perSar": 73.8929
},
{
"currency": "INR",
"label": "INR / SAR",
"rate": 25.4058,
"perSar": 25.4058
}
],
"updatedAt": "27 Oct 2026, 03:03 AM",
... (truncated, the full response has more fields)Built for
Jewellery and bullion shops
Price gold and silver stock from one feed.
Investment and savings apps
Value customers’ gold and silver holdings in their currency.
Marketplaces
Update gold and silver product prices automatically.
Precious metals API FAQ
Do you support platinum and palladium?
Not yet. Gold and silver are available today; platinum and palladium are planned.
Is the precious metals API free?
There is a free plan with 100 requests a day for gold, silver and exchange rates. Paid plans raise the daily limit.
How do I authenticate?
Every request carries your key in the X-API-Key header. Keys look like mr_live_.... Keep the key on your server; do not ship it in browser or mobile code.
What are the limits?
Free keys get 100 requests a day, Starter 500, Pro 5,000 and Business about 33,000; Enterprise is unlimited. Each response returns X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers. Going over returns HTTP 429 with a Retry-After header.
Start with a free key today
100 requests a day, every endpoint, no card required. Upgrade when your traffic grows.
