MetalAPI
XAU3,997.89−1.54%XAG53.936−1.51%XPT1,554.47−0.83%XPD1,047.03−0.44%XCU6.5080+2.29%WTI103.27+3.82%BRENT111.70−1.30%EUR1.120400−0.01%GBP1.337500−0.01%JPY0.0063761+0.14%CHF1.213445−0.25%TRY0.020125−0.12%BTC80,329.75−0.55%ETH2,329.36−1.13%
すべての記事
金ジュエリーチュートリアル

金のカラット別価格を解説:24K・22K・18Kと価格の計算方法

24K・22K・18Kの意味、916や750といった品位表示との関係、カラット別の金価格を1グラムあたりで計算する方法、金価格APIから取得する方法をわかりやすく解説します。

執筆:MetalAPI Team··9分で読めます

カラットと純度

カラットは金の重さではなく、純度を表す単位です。純金は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分率)
24K1.0000100%1000(地金は999または999.9)
23K0.958395.8%958.3
22K0.916791.7%916.7(刻印は916)
21K0.875087.5%875
20K0.833383.3%833.3
18K0.750075.0%750
16K0.666766.7%666.7
14K0.583358.3%583.3(刻印は585)
12K0.500050.0%500
10K0.416741.7%416.7(刻印は417)
9K0.375037.5%375
8K0.333333.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. 純金1グラムあたりの価格:3,997.89 ÷ 31.1034768 = 128.5351 USD。
  2. 22Kの金1グラムあたりの価格:128.5351 × 22 ÷ 24 = 117.8239 USD。
  3. 18Kの金1グラムあたりの価格:128.5351 × 18 ÷ 24 = 96.4014 USD。

同じ計算をJavaScriptで書くと、次のようになります。カラットではなく品位で価格を求める関数も追加しています:

karat.mjs
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(任意)。
bash
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をキーとし、価格、単位、カラット、適用された純度を含みます。次の例は一部を省略しています:

レスポンスの例(carat=all、抜粋)
{
  "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グラムあたり価格として読み取る例です:

carat.mjs
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つのスナップショットから取得されるため、数値は互いに整合しています。

bash
# すべてのカラットを、インドルピー建ての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を使っているため、請求書の端数まで合計が正確に一致します:

quote.py
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ガイドをご覧ください。ご自身の商品カタログで試すには、登録してキーを取得してください。

ご自身のデータで試してみましょう

無料アカウントを作成すれば、2分以内に最初のリクエストを送信できます。月100リクエスト、クレジットカード不要。

関連記事