現地通貨での1グラムあたりの金価格:INR・AED・TRYをAPIで取得
INR、AED、TRY、EUR、GBP、SAR、PKR建ての1グラムあたりの金価格をAPIで取得する方法。10グラムやトラあたりの価格の求め方と、現地の小売価格がスポット価格と異なる理由も解説します。
現地通貨での1グラムあたりの金価格
1グラムあたりの金価格は、多くの購入者が注目する数字です。チェンナイの宝石商も、ドバイのゴールドスークの買い物客も、イスタンブールでグラム金(gram altın)の相場を確認する貯蓄者も、グラム単位と自国通貨で考えます。一方、国際市場では、金は1トロイオンスあたりの米ドル建てで取引されています。この2つをつなぐのが、トロイオンスからグラムへの換算と、ドルから現地通貨への換算という2つの換算です。
1グラムあたりの金価格(現地通貨)=1トロイオンスあたりの米ドル建て価格÷31.1034768×1米ドルあたりの現地通貨額
このガイドでは、その数値をMetalAPIから取得する方法、一部の市場で使われる10グラムあたりやトラあたりの価格を導く方法、現地の読者向けに書式を整える方法、そして現地の店頭価格がスポット価格の換算値とほとんど一致しない理由を説明します。
APIで1グラムあたりの金価格を取得する
MetalAPIは、両方の換算をサーバー側で行います。unit=gramでトロイオンスあたりの価格をグラムあたりの価格に変換し、baseで通貨を指定します。どちらもFreeを含むすべてのプランで使えます:
curl "https://metalapi.com/api/v1/latest?base=INR¤cies=XAU&unit=gram" \
-H "X-API-Key: $METALAPI_KEY"価格は、基準通貨とシンボルをつなげたキー、ここではINRXAUに入っています。純金1グラムあたりのルピー建て価格です。次のレスポンスでは、ドキュメントの例の金価格である1トロイオンスあたり3,997.89米ドルと、1ドル=88.00ルピーという仮定のレートを使っています。どちらも説明用の値で、リアルタイムの相場ではありません:
{
"success": true,
"timestamp": 1792834892,
"date": "2026-10-24",
"base": "INR",
"unit": "gram",
"rates": {
"XAU": 0.00008840878563,
"INRXAU": 11311.09304
}
}- 1つのスナップショット。 金価格と為替レートは同じ時点のものなので、通貨のために別の呼び出しをする必要はなく、両者の間にずれも生じません。
- 接頭辞のないキーは逆数。 ここでの
XAUは、1ルピーあたりの金のグラム数です。表示には接頭辞付きのキーを使ってください。両方向についてはデータ形式ガイドで説明しています。 - トラや10グラムの単位はない。
unitに指定できるのはtroy_oz(デフォルト)、gram、kilogram、ounce、pound、metric_ton、short_tonで、それ以外はエラー209(invalid_unit)になります。どちらも、グラムあたりの価格に1回掛け算をするだけで求められます。
市場別の1グラムあたりの金価格:計算式
小売価格の表示方法は国によって異なります。次の表は、いくつかの大きな市場での一般的な表示方法と、APIの24Kのグラムあたり価格からそれを導く方法を示しています。その他のカラットではK÷24を掛けるか、有料プランで/caratを使ってください。
| 市場 | base | 一般的な小売価格の表示 | APIのグラム価格からの計算 |
|---|---|---|---|
| インド | INR | 24Kと22K、1グラムあたりと10グラムあたり | 10 gなら×10、22Kなら×22÷24 |
| パキスタン | PKR | 24Kと22K、1トラあたりと10グラムあたり | 1トラなら×11.6638038、10 gなら×10 |
| UAE(ドバイ) | AED | 24K、22K、21K、18Kの1グラムあたり | ×K÷24、または/carat?carat=all |
| サウジアラビア | SAR | 24K、22K、21K、18Kの1グラムあたり | ×K÷24、または/carat?carat=all |
| トルコ | TRY | グラム金(gram altın):24Kの1グラムあたり | 返されたグラム価格そのまま |
| ユーロ圏 | EUR | 1グラムあたり、投資用金はバー1本あたり | ×バーの重量(グラム) |
| イギリス | GBP | 1グラムあたりと1トロイオンスあたり | グラム価格、またはunitを省略 |
例の金価格にこれらの計算式を当てはめると、次の数値になります。為替レートは説明用の仮定の値ですが、ユーロのレートだけはドキュメントの例の値(1ユーロ=1.1642米ドル)です:
| 通貨 | 1米ドルあたりの仮定レート | 24Kの1グラムあたり | 22Kの1グラムあたり | 24Kの10 gあたり | 24Kの1トラあたり |
|---|---|---|---|---|---|
| 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 |
グラムとトラの列の計算に使った正確な係数は、単位換算の記事に掲載しています。
インドルピー建ての1グラムあたりの金価格
インドでは通常、24カラット(999)の金と、ジュエリーの標準である22カラット(916)の金の価格が表示されます。base=INR&unit=gramは、24Kの1グラムあたりの価格を返します。22Kの場合は22÷24を掛けるか、有料プランで/caratから取得してください:
curl "https://metalapi.com/api/v1/carat?carat=22&unit=gram&base=INR" \
-H "X-API-Key: $METALAPI_KEY"説明用のレートでは、24Kの金1グラムあたり11,311.09ルピーは、22Kでは1グラムあたり10,368.50ルピーになります。純度の係数や、916、750などの品位表示については、カラット別の金価格の解説をご覧ください。
10グラムあたりの金価格
インドの多くの価格表、新聞、比較サイトは10グラムあたりで金価格を表示しており、パキスタンの相場でも、トラあたりの価格の横に10グラムあたりの価格が並ぶことがよくあります。グラム単位でリクエストして10を掛けてください。その際は、丸める前に掛け算をします。先にグラム価格を1ルピー単位に丸めてしまうと、10グラムあたりの価格が最大5ルピーずれることがあります。
import os
from decimal import Decimal, ROUND_HALF_UP
import requests
TOLA_G = Decimal("11.6638038") # 180グレーン
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、1グラムあたりのルピー
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)}"
)上の説明用のレスポンスでは、24Kについて11311、113111、131930ルピー、22Kについて10369、103685、120936ルピーと出力されます。parse_float=Decimalを使うと価格が2進数の浮動小数点数にならないため、数値が請求書に載る段階では重要になります。
1トラあたりの金価格
トラは南アジアの伝統的な金の重量単位で、パキスタンやネパール、そして湾岸諸国の市場で今も広く使われています。湾岸では、10トラのバー(116.64 g)がおなじみの商品です。トラは180グレーンと定義されており、厳密に11.6638038グラム、つまり3/8トロイオンスです。APIにはトラの単位がないため、次のどちらかの方法で換算します:
1トラあたりの価格=1グラムあたりの価格×11.6638038=1トロイオンスあたりの価格×0.375
例の価格では、どちらも1トラあたり1,499.21米ドルになります。価格表や契約で丸めたトラの重量を使う場合は、そのグラム数を設定値にしてページに表示し、1つの表の中で厳密なトラと混在させないでください。
ドバイの1グラムあたりの金価格(AED)
ドバイの金販売店や公表される価格表は、ディルハム建ての1グラムあたりの価格を、通常は24K、22K、21K、18Kについて表示しています。有料プランなら、1回の/caratリクエストですべてのカラットが返されます。Freeでは、/latestにbase=AED&unit=gramでリクエストし、K÷24を自分で掛けてください:
curl "https://metalapi.com/api/v1/carat?carat=all&unit=gram&base=AED" \
-H "X-API-Key: $METALAPI_KEY"UAEディルハムは1米ドル=3.6725ディルハムで米ドルにペッグされているため、ディルハム建ての金価格はドル建て価格とほぼ1対1で連動します。例の価格では、24Kで1グラムあたり約472.05 AED、22Kで432.71 AEDです。サウジアラビア・リヤル(3.75でペッグ)、カタール・リヤル、バーレーン・ディナール、オマーン・リアルも米ドルにペッグされています。それでも、ペッグ値をハードコードせずにAPIのレートを使ってください。そうすれば、どの通貨でもコードは同じままです。
グラム金(gram altın):トルコリラ建ての1グラムあたりの金価格
トルコでは、24カラットの金1グラムのリラ建て価格であるグラム金(gram altın)が、チェイレク(çeyrek)などの金貨の価格と並んで、最も注目される金相場です。base=TRY&unit=gramを指定すると、TRYXAUとして返されます。例の金価格と1ドル=42.00リラという仮定のレートでは、1グラムあたり5,398.48リラです。
リラ建ての金価格は、ドル建ての金価格とリラ建てのドル相場を組み合わせたものなので、金そのものの価格が横ばいでも上昇することがあります。値動きを説明するには、デフォルトの基準通貨USDのまま/change?currencies=XAU,TRYをリクエストします。2つの日付の間の、ドル建て金価格(USDXAU)と1ドルあたりのリラ(TRY)の変動率が返されます。グラム金の変動率は、(1+金の変動率)×(1+通貨の変動率)−1です。
コード例:複数の市場を1回のリクエストで取得する
複数の国の価格を並べるボードでも、通貨ごとに呼び出す必要はありません。デフォルトの基準通貨USDのまま、1グラムあたりの金価格と各通貨をまとめてリクエストします。unitが変えるのは金属の価格だけで、rates.INRのような各通貨のキーには、1ドルあたりのその通貨の額が入っています。両者の積が現地通貨での1グラムあたりの価格になり、ボード全体で1リクエストしかかかりません:
const TOLA_GRAMS = 11.6638038;
// 各市場:通貨、表示用ロケール、表示するカラットと重量(グラム)
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"); // 影響するのはXAUのみ。通貨のレートは変わらない
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の金、1グラムあたりの米ドル
for (const m of MARKETS) {
const perUsd = data.rates[m.currency]; // 1米ドルあたりの通貨の額
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); // 丸めるのはformat()だけ
console.log(`${m.currency} ${karat}K per ${label}: ${fmt.format(price)}`);
}
}
}
// 例:説明用の1米ドル=88.00 INRでは "INR 24K per 10 g: ₹1,13,110.93"
console.log("As of", new Date(data.timestamp * 1000).toISOString());現地の金価格がスポット価格の換算値と異なる理由
APIが返すのは、純金の国際的なスポット価格を市場の為替レートで換算したものです。宝石商の価格表や地金協会が発表する日々の相場は、この基準価格に現地のコストを上乗せしたものなので、通常はそれより高くなります:
- 輸入関税。 金の大半を輸入に頼る国では関税が課されることが多く、現地の卸売価格は国際価格の換算値より高くなります。税率は予算や通商政策によって変わります。
- GSTとVAT。 インドは金にGSTを課し、UAEやサウジアラビアなどの湾岸諸国はVATを課しています。EUでは投資用金はVATが免除されますが、ジュエリーは免除されません。多くの制度では、地金や金貨と、ジュエリーや加工賃とで扱いが異なります。
- 加工賃と目減り分。 加工賃は1グラムあたり、価格に対する割合、または1点あたりで請求され、目減り分(wastage)を上乗せする市場もあります。
- 販売業者のプレミアムとスプレッド。 販売業者は基準価格より高く売り、低く買い取ります。また、小さなバーや金貨は、大きなバーよりグラムあたりのプレミアムが高くなります。
- 現地の需給。 需要が強い場合や輸入制限がある場合は、現地価格が輸入コスト込みの国際価格を上回るプレミアムになることがあり、需要が弱い場合はディスカウントになることがあります。
- タイミングと為替レート。 現地の相場は、1日に1回または数回、銀行や協会独自の為替レートで決められることが多い一方、スポット価格は絶えず動いています。
- 純度。 現地の相場は995のバーや22Kのジュエリー用の金を指していることがありますが、
INRXAUは純金の価格です。同じ条件のもの同士を比較してください。
これらは不透明な1つの上乗せ率にまとめるのではなく、APIの価格に加える、名前の付いた文書化されたパラメーターとしてモデル化してください。関税や税率は、公式の情報源や税理士から入手しましょう。そして、公表する数値には正確なラベルを付けてください。「国際スポット価格をINRに換算したもの」と「本日のムンバイの金相場」は、同じ意味ではありません。
この記事は計算方法を説明するものです。投資、価格設定、税務に関する助言ではありません。
表示のヒント:現地の数値書式
- ロケールの数値書式を使う。 インド英語では数字をラークとクロールで区切り(₹1,13,110.93)、トルコ語では千の位にピリオド、小数点にカンマを使い(₺5.398,48)、ドイツ語ではユーロ記号を後ろに置きます(110,41 €)。これは
Intl.NumberFormatやプラットフォームのロケールライブラリに任せましょう。 - 桁数を意識して選ぶ。 ほとんどの通貨は小数点以下2桁ですが、クウェート・ディナール、バーレーン・ディナール、オマーン・リアルは3桁です。10グラムあたりやトラあたりのルピーの価格表は整数のルピーで表示するのが一般的なので、その場合は
maximumFractionDigits: 0を指定します。 - 数字の字形を選ぶ。
ar-SAなど一部のアラビア語ロケールは、デフォルトでアラビア・インド数字を使います。ラテン数字にするには、ar-SA-u-nu-latnのようなロケールを使ってください。 - カラット、重量、通貨を明記する。 「22K、10 gあたり、INR」と書けば、誤解の余地がありません。
- 現地時間を表示する。
timestampはUTCです。Asia/Kolkata、Asia/Dubai、Europe/Istanbulなどのタイムゾーンで書式を整えてください。スポット金はニューヨーク時間の金曜17:00に取引を終え、日曜17:00に再開するため、週末の価格は市場の終値であることを明示しましょう。
現地通貨での1グラムあたりの金の過去価格
baseとunitは過去データのエンドポイントでも使えるため、ルピー建てやディルハム建ての1グラムあたりの金価格のチャートも、追加の換算なしで作成できます。日次の履歴は、すべてのプランで、金属は2000年、通貨は1999年までさかのぼれます。1回の/timeframeリクエストでカバーできるのは、Freeで最大30日、有料プランで最大365日です:
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"値は日次の終値です。週末や祝日は欠落することがあります。また、2026年10月より前の金属価格は期近の先物から算出されているため、スポット価格とわずかに異なる場合があります。
自分の市場向けに1グラムあたりの金価格を取得する
現地の金相場ページを作るには、登録して無料のキーを取得し、baseに自国の通貨を指定してunit=gramをリクエストし、上で示したように10グラム、トラ、カラット別の価格を導きます。Freeプランには月100リクエストと毎日の更新が含まれており、構築とテストには十分です。リアルタイムの価格ボードには、30分ごとに更新され/caratが使えるLite、10分ごとに更新されBidとAskの価格が加わるStandardがあり、最速のプランでは5秒ごとに更新されます。プランの比較は料金ページ、対応するすべての通貨はシンボルページでご確認ください。
よくある質問
APIはトラあたりや10グラムあたりの金価格を返しますか?
単位としては返しません。unit=gramでリクエストして10を掛けるか、トラなら11.6638038を掛けてください。または、デフォルトのトロイオンスあたりの価格に0.375を掛けます。unit=tolaはエラー209を返します。
APIの価格が地元の宝石店の金相場より低いのはなぜですか?
APIが返すのは、純金の国際スポット価格を市場の為替レートで換算したものです。現地の相場には、輸入関税、GSTやVAT、加工賃、販売業者のプレミアム、現地の需給が加わります。また、より低い純度や、より早い時点の値決めを基準にしている場合もあります。
どの現地通貨に対応していますか?
57通貨に対応しています。南アジアのINR、PKR、BDT、LKR、湾岸諸国のAED、SAR、QAR、KWD、BHD、OMRのほか、TRY、EGP、EUR、GBPなどです。どれもbaseとして使えます。/api/v1/symbolsは、クォータにカウントされずに全リストを返します。
1グラムあたりの金価格はどのくらいの頻度で更新されますか?
プランが許す頻度で更新されます。Freeでは毎日、Liteでは30分ごと、Standardでは10分ごと、AdvancedとProでは60秒ごと、UltraとBusinessでは15秒ごと、Enterpriseでは5秒ごとです。週末は、価格は金曜日の終値のままです。
自国通貨建てで22Kや21Kの1グラムあたりの金価格を取得できますか?
はい。有料プランでは、/caratにcarat=22、carat=21、carat=allのいずれかと、unit=gram、baseを指定すると、カラット別の価格がそのまま返されます。Freeでは、24Kのグラム価格にK÷24を掛けてください。
関連記事
XAU/USDの意味:XAU・XAG・XPT・XPDが表すもの
XAU/USDの意味を解説します。金にISO 4217の通貨コードがある理由、XAG・XPT・XPDの意味、価格やAPIデータでの表示方向の読み方までわかります。
無料の金価格API:月100リクエストでできること
無料の金価格APIを正直に解説します。MetalAPIのFreeプランの内容、キャッシュとまとめ取得で月100リクエストを有効に使う方法、アップグレードの目安を紹介します。
Pythonで金価格APIを使う:価格の取得、キャッシュ、グラフ化
Pythonで金価格APIを使う方法を解説します。requestsでの最新価格の取得、エラー処理とリトライ、レスポンスのキャッシュ、pandasの時系列とmatplotlibによるグラフ化まで紹介します。