Gold Price per Gram in Local Currency: INR, AED, TRY via API
Get the gold price per gram in INR, AED, TRY, EUR, GBP, SAR or PKR via API, per 10 grams or per tola, and learn why local retail prices differ from spot.
Gold price per gram in your local currency
The gold price per gram is the number most buyers look at. A jeweller in Chennai, a shopper in the Dubai Gold Souk and a saver in Istanbul checking gram altın all think in grams and in their own currency, while the international market quotes gold in US dollars per troy ounce. Two conversions connect them: troy ounces to grams, and dollars to the local currency.
gold price per gram (local) = USD price per troy ounce ÷ 31.1034768 × local currency units per USD
This guide shows how to get that number from MetalAPI, how to derive the per-10-gram and per-tola prices some markets quote, how to format it for local readers, and why a local shop's price rarely equals the converted spot price.
Requesting the gold price per gram via API
MetalAPI does both conversions on the server: unit=gram turns the troy ounce price into a gram price and base sets the currency. Both work on every plan, Free included:
curl "https://metalapi.com/api/v1/latest?base=INR¤cies=XAU&unit=gram" \
-H "X-API-Key: $METALAPI_KEY"The price is in the key that joins the base currency and the symbol, here INRXAU: rupees per gram of pure gold. The response below uses the example gold price from the docs, 3,997.89 USD per troy ounce, and an assumed rate of 88.00 rupees per dollar. Both are illustrations, not live quotes:
{
"success": true,
"timestamp": 1792834892,
"date": "2026-10-24",
"base": "INR",
"unit": "gram",
"rates": {
"XAU": 0.00008840878563,
"INRXAU": 11311.09304
}
}- One snapshot. Gold and the exchange rate come from the same moment, so there is no separate currency call and no drift between the two.
- The plain key is the inverse.
XAUholds grams of gold per rupee here. Display the prefixed key; the data formats guide explains both directions. - There is no tola or 10-gram unit.
unitacceptstroy_oz(default),gram,kilogram,ounce,pound,metric_tonandshort_ton; anything else returns error209(invalid_unit). Both are one multiplication away from the gram price.
Gold price per gram by market: the formulas
Retail conventions differ by country. The table shows the usual quote in several large markets and how to derive it from the API's 24K gram price. For other karats multiply by K ÷ 24, or use /carat on a paid plan.
| Market | base | Typical retail quote | From the API gram price |
|---|---|---|---|
| India | INR | 24K and 22K, per gram and per 10 grams | × 10 for 10 g; × 22 ÷ 24 for 22K |
| Pakistan | PKR | 24K and 22K, per tola and per 10 grams | × 11.6638038 per tola; × 10 for 10 g |
| UAE (Dubai) | AED | 24K, 22K, 21K and 18K per gram | × K ÷ 24, or /carat?carat=all |
| Saudi Arabia | SAR | 24K, 22K, 21K and 18K per gram | × K ÷ 24, or /carat?carat=all |
| Turkey | TRY | Gram altın: 24K per gram | The gram price as returned |
| Euro area | EUR | Per gram, and per bar for investment gold | × bar weight in grams |
| United Kingdom | GBP | Per gram and per troy ounce | The gram price, or omit unit |
Applied to the example gold price, the formulas give these numbers. The exchange rates are assumed for illustration, except the euro rate, which is the example from the docs (1.1642 USD per euro):
| Currency | Assumed units per USD | 24K per gram | 22K per gram | 24K per 10 g | 24K per tola |
|---|---|---|---|---|---|
| INR | 88.00 | 11,311.09 | 10,368.50 | 113,110.93 | 131,930.37 |
| AED | 3.6725 | 472.05 | 432.71 | 4,720.45 | 5,505.84 |
| SAR | 3.75 | 482.01 | 441.84 | 4,820.07 | 5,622.03 |
| TRY | 42.00 | 5,398.48 | 4,948.60 | 53,984.76 | 62,966.77 |
| PKR | 280.00 | 35,989.84 | 32,990.69 | 359,898.41 | 419,778.45 |
| EUR | 0.8590 | 110.41 | 101.21 | 1,104.06 | 1,287.76 |
| GBP | 0.75 | 96.40 | 88.37 | 964.01 | 1,124.41 |
| USD | 1 | 128.54 | 117.82 | 1,285.35 | 1,499.21 |
The unit conversion article has the exact factors behind the gram and tola columns.
Gold price per gram in Indian rupees
In India, gold is usually quoted for 24-karat (999) gold and for 22-karat (916), the jewellery standard. base=INR&unit=gram returns the 24K price per gram. For 22K, multiply by 22 ÷ 24, or ask /carat for it on a paid plan:
curl "https://metalapi.com/api/v1/carat?carat=22&unit=gram&base=INR" \
-H "X-API-Key: $METALAPI_KEY"At the illustrative rate, 11,311.09 rupees per gram of 24K gold becomes 10,368.50 per gram of 22K. Gold karat prices explained covers purity factors and fineness marks such as 916 and 750.
Gold rate per 10 grams
Many Indian rate boards, newspapers and comparison sites quote gold per 10 grams, and Pakistani rates often show a 10-gram price next to the tola price. Request grams and multiply by 10, and multiply before you round: rounding the gram price to a whole rupee first can shift the 10-gram price by up to five rupees.
import os
from decimal import Decimal, ROUND_HALF_UP
import requests
TOLA_G = Decimal("11.6638038") # 180 grains
RUPEE = Decimal("1")
r = requests.get(
"https://metalapi.com/api/v1/latest",
params={"base": "INR", "currencies": "XAU", "unit": "gram"},
headers={"X-API-Key": os.environ["METALAPI_KEY"]},
timeout=10,
)
data = r.json(parse_float=Decimal)
if not data["success"]:
raise RuntimeError(data["error"])
per_gram = data["rates"]["INRXAU"] # 24K, rupees per gram
for karat in (24, 22):
g = per_gram * karat / 24
print(
f"{karat}K 1 g: {g.quantize(RUPEE, ROUND_HALF_UP)}"
f" 10 g: {(g * 10).quantize(RUPEE, ROUND_HALF_UP)}"
f" 1 tola: {(g * TOLA_G).quantize(RUPEE, ROUND_HALF_UP)}"
)With the illustrative response above it prints 11311, 113111 and 131930 rupees for 24K, and 10369, 103685 and 120936 for 22K. parse_float=Decimal keeps prices out of binary floats, which matters once a number reaches an invoice.
Gold price per tola
The tola is the traditional gold weight of South Asia, still widely used in Pakistan and Nepal and in Gulf markets, where ten-tola bars (116.64 g) are a familiar product. It is defined as 180 grains: exactly 11.6638038 grams, or three eighths of a troy ounce. Without a tola unit in the API, convert either way:
price per tola = price per gram × 11.6638038 = price per troy ounce × 0.375
Both give 1,499.21 USD per tola at the example price. If a price list or contract uses a rounded tola weight, make the gram weight a configuration value, show it on the page, and never mix it with the exact tola in one table.
Gold price per gram in Dubai (AED)
Dubai's gold shops and published rate boards list prices per gram in dirhams, usually for 24K, 22K, 21K and 18K. On a paid plan one /carat request returns every karat; on Free, request base=AED&unit=gram from /latest and apply K ÷ 24 yourself:
curl "https://metalapi.com/api/v1/carat?carat=all&unit=gram&base=AED" \
-H "X-API-Key: $METALAPI_KEY"The UAE dirham is pegged to the US dollar at 3.6725, so dirham gold prices move almost one for one with the dollar price: about 472.05 AED per gram of 24K and 432.71 for 22K at the example price. The Saudi riyal (pegged at 3.75), Qatari riyal, Bahraini dinar and Omani rial are also pegged to the dollar. Still use the API's rate rather than a hard-coded peg, so the code stays the same for every currency.
Gram altın: gold price per gram in Turkish lira
In Turkey, gram altın, the price of one gram of 24-karat gold in lira, is the gold quote people follow most closely, alongside coin prices such as the çeyrek. base=TRY&unit=gram returns it as TRYXAU: 5,398.48 lira per gram with the example gold price and an assumed 42.00 lira per dollar.
A lira gold price combines gold in dollars and the dollar in lira, so it can rise while gold itself is flat. To explain a move, /change?currencies=XAU,TRY with the default base USD returns the percentage change of gold in dollars (USDXAU) and of lira per dollar (TRY) between two dates. The change in gram altın is (1 + gold change) × (1 + currency change) − 1.
Code example: several markets in one request
A multi-country board doesn't need one call per currency. Keep the default base USD and request gold per gram together with the currencies: unit changes only the metal price, and each currency key, such as rates.INR, holds units of that currency per dollar. Their product is the local gram price, and the whole board costs one request:
const TOLA_GRAMS = 11.6638038;
// Each market: currency, display locale, karats and weights (in grams) to show
const MARKETS = [
{ currency: "INR", locale: "en-IN", karats: [24, 22], weights: { gram: 1, "10 g": 10 } },
{ currency: "PKR", locale: "en-PK", karats: [24, 22], weights: { tola: TOLA_GRAMS, "10 g": 10 } },
{ currency: "AED", locale: "en-AE", karats: [24, 22, 21, 18], weights: { gram: 1 } },
{ currency: "TRY", locale: "tr-TR", karats: [24], weights: { gram: 1 } },
{ currency: "EUR", locale: "de-DE", karats: [24], weights: { gram: 1 } },
];
const url = new URL("https://metalapi.com/api/v1/latest");
url.searchParams.set("currencies", ["XAU", ...MARKETS.map((m) => m.currency)].join(","));
url.searchParams.set("unit", "gram"); // affects XAU only; currency rates are unchanged
const res = await fetch(url, { 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}`);
const usdPerGram = data.rates.USDXAU; // 24K gold, USD per gram
for (const m of MARKETS) {
const perUsd = data.rates[m.currency]; // units of the currency per 1 USD
if (perUsd === undefined) continue;
const fmt = new Intl.NumberFormat(m.locale, { style: "currency", currency: m.currency });
for (const karat of m.karats) {
for (const [label, grams] of Object.entries(m.weights)) {
const price = usdPerGram * perUsd * grams * (karat / 24); // rounded only by format()
console.log(`${m.currency} ${karat}K per ${label}: ${fmt.format(price)}`);
}
}
}
// e.g. "INR 24K per 10 g: ₹1,13,110.93" at the illustrative 88.00 INR per USD
console.log("As of", new Date(data.timestamp * 1000).toISOString());Why local gold prices differ from the converted spot price
The API returns the international spot price of pure gold, converted at the market exchange rate. A jeweller's board or a bullion association's daily rate starts from that reference and adds local costs, so it is usually higher:
- Import duties. Countries that import most of their gold often levy customs duty on it, lifting the local wholesale price above the converted international price. Rates change with budgets and trade policy.
- GST and VAT. India applies GST to gold, Gulf states such as the UAE and Saudi Arabia apply VAT, and the EU exempts investment gold from VAT but not jewellery. Many regimes treat bars and coins differently from jewellery and making charges.
- Making charges and wastage. Labour is charged per gram, as a percentage or per piece, and some markets add a wastage allowance.
- Dealer premiums and spreads. Dealers sell above and buy back below the reference, and small bars and coins carry higher premiums per gram than large bars.
- Local supply and demand. Strong demand or import restrictions can push the local price to a premium over the landed international price; weak demand, to a discount.
- Timing and exchange rate. Local rates are often set once or a few times a day with a bank's or association's own exchange rate, while spot moves continuously.
- Purity. A local quote may refer to 995 bars or 22K jewellery gold, while
INRXAUis pure gold. Compare like with like.
Model these as named, documented parameters on top of the API price instead of one opaque markup, and take duty and tax rates from official sources or your tax adviser. Then label what you publish accurately: "international spot price, converted to INR" is not the same claim as "today's gold rate in Mumbai".
This article explains calculations. It is not investment, pricing or tax advice.
Display tips: local number formatting
- Use the locale's number format. Indian English groups digits in lakhs and crores (₹1,13,110.93), Turkish uses a dot for thousands and a comma for decimals (₺5.398,48), and German puts the euro sign last (110,41 €). Let
Intl.NumberFormator your platform's locale library do this. - Choose the digits deliberately. Most currencies use two decimals; the Kuwaiti dinar, Bahraini dinar and Omani rial use three. Rupee boards per 10 grams or per tola commonly show whole rupees, so pass
maximumFractionDigits: 0there. - Pick the digit script. Some Arabic locales, such as
ar-SA, default to Arabic-Indic digits. For Latin digits, use a locale such asar-SA-u-nu-latn. - Label karat, weight and currency. "22K, per 10 g, INR" leaves no room for doubt.
- Show local time.
timestampis UTC; format it inAsia/Kolkata,Asia/DubaiorEurope/Istanbul. Spot gold closes on Friday at 17:00 New York time and reopens on Sunday at 17:00, so mark the weekend price as the market close.
Historical gold price per gram in local currency
base and unit work on the historical endpoints too, so a chart of gold per gram in rupees or dirhams needs no extra conversion. Daily history goes back to 2000 for metals and 1999 for currencies on every plan; one /timeframe request covers up to 30 days on Free and 365 on paid plans:
curl "https://metalapi.com/api/v1/timeframe?base=INR¤cies=XAU&unit=gram&start_date=2026-09-24&end_date=2026-10-23" \
-H "X-API-Key: $METALAPI_KEY"Values are daily closes; weekends and holidays can be missing, and metal prices before October 2026 are derived from front-month futures, so they can differ slightly from spot.
Get gold prices per gram for your market
To build a local gold rate page, register for a free key, request unit=gram with your currency as base, and derive 10-gram, tola and karat prices as shown above. The Free plan includes 100 requests a month with daily updates, enough to build and test. For a live board, Lite updates every 30 minutes and adds /carat, Standard updates every 10 minutes and adds bid and ask prices, and the fastest plan updates every 5 seconds. The pricing page compares the plans, and the symbols page lists every supported currency.
FAQ
Does the API return gold prices per tola or per 10 grams?
Not as units. Request unit=gram and multiply by 10, or by 11.6638038 for a tola; or multiply the default troy ounce price by 0.375. unit=tola returns error 209.
Why is the API price lower than my local jeweller's gold rate?
The API returns the international spot price of pure gold at the market exchange rate. Local rates add import duties, GST or VAT, making charges, dealer premiums and local supply and demand, and may refer to a lower purity or an earlier fixing.
Which local currencies are supported?
57 currencies, including INR, PKR, BDT and LKR in South Asia, AED, SAR, QAR, KWD, BHD and OMR in the Gulf, and TRY, EGP, EUR and GBP. Any of them works as base, and /api/v1/symbols returns the full list without counting towards your quota.
How often is the gold price per gram updated?
As often as your plan allows: daily on Free, every 30 minutes on Lite, 10 minutes on Standard, 60 seconds on Advanced and Pro, 15 seconds on Ultra and Business, and 5 seconds on Enterprise. Over the weekend the price stays at Friday's close.
Can I get the 22K or 21K gold price per gram in my currency?
Yes. On paid plans, /carat with carat=22, carat=21 or carat=all, plus unit=gram and your base, returns ready-made karat prices. On Free, multiply the 24K gram price by K ÷ 24.
Try it with your own data
Create a free account and make your first request in under two minutes. 100 requests a month, no credit card.
Keep reading
XAU/USD Meaning: What XAU, XAG, XPT and XPD Stand For
XAU/USD meaning explained: why gold has an ISO 4217 currency code, what XAG, XPT and XPD stand for, and how to read quote direction in prices and API data.
Free Gold Price API: What 100 Requests a Month Can Do
A free gold price API, honestly explained: what MetalAPI's Free plan includes, how to stretch 100 requests a month with caching and batching, when to upgrade.
Gold Price API in Python: Fetch, Cache and Plot Prices
Use a gold price API in Python: get live gold prices with requests, handle errors and retries, cache responses, and plot a pandas time series with matplotlib.