金のカラット別価格を解説:24K・22K・18Kと価格の計算方法
24K・22K・18Kの意味、916や750といった品位表示との関係、カラット別の金価格を1グラムあたりで計算する方法、金価格APIから取得する方法をわかりやすく解説します。
カラットと純度
カラットは金の重さではなく、純度を表す単位です。純金は24カラットなので、合金に含まれる金の割合は、カラット数を24で割った値になります。18カラットの金は、金18に対して、銀、銅、亜鉛、パラジウムなどのほかの金属を6の割合で含みます。これらの金属は合金を硬くし、色を変え、コストを下げます。
英語では、純度を表すkarat(Kまたはkt)と、宝石の重さを量る200ミリグラムの単位であるcarat(ct)を区別しますが、日本語ではどちらも「カラット」と呼ぶため、いっそう混同しやすくなります。米国英語ではkaratが純度、caratが宝石の重さを指しますが、英国英語では両方にcaratを使うことがよくあります。MetalAPIのエンドポイントは広い用法に倣って/caratという名前ですが、返すのは宝石の重さではなく、純度別の金価格です。
カラット別の価格を金市場と結びつける式はシンプルです:
Kカラットの金1グラムあたりの価格 = 1トロイオンスあたりのスポット価格 ÷ 31.1034768 × K ÷ 24
この記事では、式の各要素を説明し、自分で計算する方法とAPIから取得する方法を紹介したうえで、カラット別の金価格と完成したジュエリーの価格の違いについて考えます。
カラット純度と千分率品位
多くの国では、カラットの代わりに、あるいはカラットと併せて、千分率品位(1,000分のうち金が占める割合)で金の純度を表示します。この2つの尺度は直接対応しています:
| カラット | 純度(K ÷ 24) | 金の含有率 | 品位(1,000分率) |
|---|---|---|---|
| 24K | 1.0000 | 100% | 1000(地金は999または999.9) |
| 23K | 0.9583 | 95.8% | 958.3 |
| 22K | 0.9167 | 91.7% | 916.7(刻印は916) |
| 21K | 0.8750 | 87.5% | 875 |
| 20K | 0.8333 | 83.3% | 833.3 |
| 18K | 0.7500 | 75.0% | 750 |
| 16K | 0.6667 | 66.7% | 666.7 |
| 14K | 0.5833 | 58.3% | 583.3(刻印は585) |
| 12K | 0.5000 | 50.0% | 500 |
| 10K | 0.4167 | 41.7% | 416.7(刻印は417) |
| 9K | 0.3750 | 37.5% | 375 |
| 8K | 0.3333 | 33.3% | 333.3(刻印は333) |
この表を価格に置き換えるときに重要な点が2つあります:
- 刻印は最低基準です。 585の刻印は、金が少なくとも58.5%含まれることを意味し、14 ÷ 24 = 58.33%をわずかに上回ります。基準と許容差は国ごとに定められているため、実際の品位はカラットの比率を少し上回ることがあります。
- 純金はぴったり1.0000ではありません。 投資用の地金は、通常999.9または999です。MetalAPIの24K価格は純度をちょうど1として計算するため、スポット価格と等しくなります。
どのカラットが重要かは、販売する地域によって異なります。南アジアや中東の多くの地域では22Kと21Kが伝統的なジュエリーの品位で、ヨーロッパと北米では18Kと14Kが広く普及しており、英国では9Kが一般的です。顧客が実際に購入するものに対応しましょう。
カラット別の価格を自分で計算する
スポット金は、純金1トロイオンスあたりの価格で表示されます。カラット別の1グラムあたりの価格を求めるには、単位を換算してから純度を掛けます。MetalAPIのドキュメントにある例のスポット価格、1トロイオンスあたり3,997.89 USD(リアルタイム価格ではなく例示です)を使うと:
- 純金1グラムあたりの価格:3,997.89 ÷ 31.1034768 = 128.5351 USD。
- 22Kの金1グラムあたりの価格:128.5351 × 22 ÷ 24 = 117.8239 USD。
- 18Kの金1グラムあたりの価格:128.5351 × 18 ÷ 24 = 96.4014 USD。
同じ計算をJavaScriptで書くと、次のようになります。カラットではなく品位で価格を求める関数も追加しています:
const GRAMS_PER_TROY_OZ = 31.1034768;
/** 指定したカラットの金の1グラムあたりの価格(24 = 純金)。 */
export function karatPricePerGram(spotPerTroyOz, karat) {
return (spotPerTroyOz / GRAMS_PER_TROY_OZ) * (karat / 24);
}
/** 585や916など、千分率品位での1グラムあたりの価格。 */
export function finenessPricePerGram(spotPerTroyOz, fineness) {
return (spotPerTroyOz / GRAMS_PER_TROY_OZ) * (fineness / 1000);
}
const spot = 3997.89; // 例示価格(1トロイオンスあたりのUSD)
for (const k of [24, 22, 21, 18, 14, 10, 9]) {
console.log(`${k}K`, karatPricePerGram(spot, k).toFixed(4));
}
// 24K 128.5351, 22K 117.8239, 21K 112.4683, 18K 96.4014, 14K 74.9788, 10K 53.5563, 9K 48.2007
console.log("585", finenessPricePerGram(spot, 585).toFixed(4)); // 75.1931販売通貨建てのスポット価格(base=EUR、base=INRなど)から計算を始めてください。そうすれば、金価格と為替レートが同じ時点のものになります。ドル建てのグラム価格を、別の時点で取得した為替レートで換算すると、金とは無関係な誤差が加わります。
カラットではなく刻印に基づいて価格を決める場合は、品位の関数を使ってください。583.3と585の差は金属価値の約0.3%で、1グラムあたりではわずかですが、重いチェーンでは目に見える差になります。どちらを選ぶにしても、一貫して使い、文書化しておきましょう。
/caratエンドポイントでカラット別の価格を取得する
MetalAPIは、Liteから始まるすべての有料プランで利用できる/caratで、この計算を代わりに行います。パラメーターは次のとおりです:
carat:24(デフォルト)、23、22、21、20、18、16、14、12、10、9、8、またはall。base:価格の通貨。デフォルトはUSD。unit:デフォルトはtroy_oz。ジュエリーでは通常gramを使います。date:過去の日付のカラット別価格を取得する場合に指定するYYYY-MM-DD(任意)。
curl "https://metalapi.com/api/v1/carat?carat=22&unit=gram&base=EUR" \
-H "X-API-Key: $METALAPI_KEY"APIリファレンスの例の値を使ったレスポンスは、次のとおりです:
{
"success": true,
"carat": "22",
"date": "2026-10-24",
"base": "EUR",
"timestamp": 1792834892,
"rates": {
"XAU22K": { "price": 105.5297, "unit": "gram", "carat": "22", "purity": 0.916667 }
}
}carat=allを指定すると、すべてのカラットを1回のリクエストで取得でき、コストは1つのカラットの場合と変わりません。各エントリーはXAU<karat>Kをキーとし、価格、単位、カラット、適用された純度を含みます。次の例は一部を省略しています:
{
"success": true,
"carat": "all",
"date": "2026-10-23",
"base": "USD",
"timestamp": 1792765800,
"rates": {
"XAU24K": { "price": 128.53515, "unit": "gram", "carat": "24", "purity": 1 },
"XAU22K": { "price": 117.82389, "unit": "gram", "carat": "22", "purity": 0.916667 },
"XAU18K": { "price": 96.401361, "unit": "gram", "carat": "18", "purity": 0.75 },
"XAU14K": { "price": 74.978836, "unit": "gram", "carat": "14", "purity": 0.583333 }
}
}Node.js 18以降で、すべてのカラットをUAEディルハム建ての1グラムあたり価格として読み取る例です:
const params = new URLSearchParams({ carat: "all", unit: "gram", base: "AED" });
const res = await fetch(`https://metalapi.com/api/v1/carat?${params}`, {
headers: { "X-API-Key": process.env.METALAPI_KEY },
});
const data = await res.json();
if (!data.success) throw new Error(`${data.error.code} ${data.error.type}: ${data.error.info}`);
for (const row of Object.values(data.rates)) {
console.log(`${row.carat}K: ${row.price.toFixed(2)} ${data.base} per ${row.unit}`);
}Freeプランでは、/caratはエラー106(plan_restriction)をupgrade_urlとともに返します。対応していないカラットを指定すると210(invalid_carat)が返されます。Freeでも、/latestで取得した金価格に上の式を適用すれば計算できます(更新間隔はFreeプランの毎日1回です)。
現地通貨で価格を表示する
ジュエリーは現地通貨で売買されるため、baseには店舗の通貨を設定します。円ならJPY、ルピーならINR、ディルハムならAED、リラならTRY、ポンドならGBPです。対応している57通貨すべてが使え、金と為替レートが1つのスナップショットから取得されるため、数値は互いに整合しています。
# すべてのカラットを、インドルピー建ての1グラムあたり価格で取得
curl "https://metalapi.com/api/v1/carat?carat=all&unit=gram&base=INR" \
-H "X-API-Key: $METALAPI_KEY"
# 過去の日付の22Kを、トルコリラ建ての1グラムあたり価格で取得
curl "https://metalapi.com/api/v1/carat?carat=22&unit=gram&base=TRY&date=2026-10-01" \
-H "X-API-Key: $METALAPI_KEY"トーラ(tola)で価格を表示する市場では、1グラムあたりの価格に11.6638038を、または1トロイオンスあたりの価格に0.375を掛けます。10トーラの地金の重さは116.638 gです。トーラ、テール(両)、ペニーウェイトの正確な換算係数は、単位換算の記事をご覧ください。
実務上のポイントが3つあります:
- 鮮度はプランに準じます。
/caratは、プランで許可される鮮度の価格を返します。Liteは30分ごと、Standardは10分ごと、Enterpriseでは最短5秒ごとです。1日に数回だけ価格表を更新する店舗なら、最速のプランは必要ありません。 - タイムスタンプを表示する。
timestampフィールドを見れば、顧客や監査担当者は価格がいつ取得されたかがわかります。 - 週末。 スポット金はニューヨーク時間の金曜17:00に取引を終え、日曜17:00に再開するため、週末のカラット別価格は金曜の最終価格のままです。
カラット別の価格からジュエリーの価格へ
カラット別の価格は、含まれている金そのものの価値です。完成品の価格にはいくつかの要素が加わり、その計算方法は国、商慣習、事業者によって異なります。一般的な構成要素は次のとおりです:
- 地金価値: 正味の金の重量 × カラット別の1グラムあたり価格。石、真珠、その他の金以外の部分は別に量り、除外します。
- 加工賃: 人件費とデザイン料で、1グラムあたりの額、地金価値に対する割合、または1点あたりの固定額で請求されます。市場によっては、製造時に失われる金属分のロス(wastage)を加算することもあります。
- 石やその他の素材: それぞれ個別に価格を付けます。
- 刻印や鑑定の手数料: 該当する場合に加算します。
- 税金: 消費税、VAT、GST、売上税など。税率やルールは国によって異なり、投資用の金をジュエリーとは別に扱う国もあります。たとえばEUでは、投資用の金には特別なVAT免税制度が適用されますが、ジュエリーは対象外です。
これらの要素を分けて扱う、最小限の見積もり計算機を紹介します。全体でDecimalを使っているため、請求書の端数まで合計が正確に一致します:
from dataclasses import dataclass
from decimal import Decimal, ROUND_HALF_UP
CENT = Decimal("0.01")
@dataclass
class QuoteInput:
weight_g: Decimal # 正味の金の重量(石を除く)
karat_price_per_g: Decimal # /carat?unit=gram から取得、販売通貨建て
making_per_g: Decimal = Decimal("0") # 1グラムあたりの固定加工賃
making_pct: Decimal = Decimal("0") # または地金価値に対する割合
stones: Decimal = Decimal("0") # 別途価格を付ける
tax_rate: Decimal = Decimal("0") # 管轄地域の消費税、VAT、GST、売上税
def jewelry_quote(q: QuoteInput) -> dict:
metal = q.weight_g * q.karat_price_per_g
making = q.weight_g * q.making_per_g + metal * q.making_pct
subtotal = metal + making + q.stones
tax = subtotal * q.tax_rate
parts = {"metal": metal, "making": making, "stones": q.stones, "tax": tax, "total": subtotal + tax}
return {k: v.quantize(CENT, rounding=ROUND_HALF_UP) for k, v in parts.items()}
# 入力値は例示のみ:22Kの金10 g、1グラムあたり117.8239の例示価格、
# 加工賃12%、税率20%。
print(jewelry_quote(QuoteInput(
weight_g=Decimal("10"),
karat_price_per_g=Decimal("117.8239"),
making_pct=Decimal("0.12"),
tax_rate=Decimal("0.20"),
)))これらの入力値では、地金価値1178.24、加工賃141.39、税金263.93、合計1583.55が出力されます。加工賃と税率はプレースホルダーであり、推奨値ではありません。税金がかかるかどうか、どの要素にどの税率で課されるかは、会計士や税理士にご確認ください。
この記事は計算方法を説明するものです。投資、価格設定、税務に関する助言ではありません。
買取価格とスクラップ価値
顧客から金を買い取る場合は、逆向きの計算になります。出発点は同じ地金価値ですが、刻印されたカラットではなく、実際に測定した品位に基づいて計算すべきです:
スクラップ価値 = グラム単位の重量 × 品位 ÷ 1,000 × 1グラムあたりのスポット価格 − 精錬・取扱いの控除額
古い品物は刻印どおりの品位に満たないことがあり、チェーンのろう付け部分は平均純度を下げるため、買い手は通常、蛍光X線(XRF)分析や酸を使った試験などで品位を検査します。控除額は、スポット価格を低く設定することで隠すのではなく、明示的で文書化されたパラメーターとしてコードに持たせてください。そうすれば、見積もりや監査で明確に示せます。
ここでのスポット価格には、24Kの1グラムあたり価格(またはunit=gramを指定した/latest)を使い、測定した品位は自分で適用してください。/caratのカラット別価格は正確にK ÷ 24の比率を前提としており、新品をカラットで値付けするには適していますが、912のような分析結果には適していません。
実装チェックリスト
- カラットごとや商品ごとに呼び出すのではなく、
carat=allを一度リクエストし、プランの更新間隔の間キャッシュしてください。 - 後から数値を説明できるよう、すべての見積もりと注文に、価格、タイムスタンプ、使用した純度を保存してください。
- 古い請求書を再計算する場合など、過去のカラット別価格には
dateを使います。より長い期間やローカルへの保存については、APIで金・銀の過去価格を取得するで解説しています。 - 丸めは表示時にのみ、各通貨の小数桁数に合わせて行ってください。
- APIキーはサーバーに置いてください。コードを書かずにショップのWebサイトに金価格ボードを表示するには、埋め込みウィジェットを使います。
- 必要なカラットが2〜3種類だけなら、
/latestのデータに式を適用する方法がすべてのプランで使えます。/caratは計算の手間を省き、有料プランですぐに使える一貫した数値を返します。
APIドキュメントには/caratのすべてのパラメーターが、料金ページには利用できるプランが掲載されています。キー、エラー、キャッシュ全般については金価格APIガイドをご覧ください。ご自身の商品カタログで試すには、登録してキーを取得してください。
関連記事
金価格API:開発者のための完全ガイド
金価格APIの使い方を解説します。APIキーの取得、curl・JavaScript・Pythonからの呼び出し、レートの正しい読み方から、過去データ、エラー、クォータ、キャッシュの扱いまで網羅しています。
Webサイトに金価格のライブウィジェットを追加する方法
WordPress、Shopify、通常のHTMLに金価格のライブウィジェットを追加する方法。MetalAPIダッシュボードでシンボル、レイアウト、テーマを選び、2行のコードを貼り付けるだけです。
リアルタイム金価格でジュエリー価格計算ツールを作る
グラムあたりのリアルタイム金価格、カラット純度、加工賃、VAT、クォータを守るキャッシュを組み合わせたサーバーサイドのジュエリー価格計算ツールを、TypeScriptとPythonで構築します。