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, как рассчитать цену грамма золота по каратам и как получить её через API цен на золото.

Автор: MetalAPI Team··9 мин чтения

Карат и чистота золота

Карат — мера чистоты золота, а не его массы. Чистое золото — это 24 карата, поэтому доля золота в сплаве равна числу карат, делённому на 24. Золото 18 карат — это 18 частей золота и 6 частей других металлов, например серебра, меди, цинка или палладия, которые делают сплав твёрже, меняют его цвет и снижают стоимость.

В английском языке легко перепутать karat (K или kt) и carat (ct). В американском английском karat — это чистота, а carat — единица массы драгоценных камней, равная 200 миллиграммам. В британском английском carat часто используют в обоих значениях, а по-русски оба понятия называются «карат». Эндпоинт MetalAPI называется /carat — по более распространённому написанию, — но возвращает цены на золото по чистоте, а не по массе камней.

Формула, связывающая цену по каратам с рынком золота, короткая:

цена грамма золота K карат = спотовая цена за тройскую унцию ÷ 31,1034768 × K ÷ 24

В этой статье разобрана каждая часть формулы, показано, как вычислить цену самостоятельно и как получить её через API, а затем — чем цена золота по каратам отличается от цены готового ювелирного изделия.

Каратность и проба

Во многих странах, в том числе в России, золото маркируют пробой — числом частей чистого золота на тысячу — вместо карата или рядом с ним. Эти две шкалы напрямую соответствуют друг другу:

КаратыЧистота (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)

Переводя эту таблицу в цены, учитывайте две детали:

  • Пробирные клейма — это минимальные стандарты. Клеймо 585 означает не менее 58,5% золота, что чуть больше, чем 14 ÷ 24 = 58,33%. Каждая страна устанавливает собственные стандарты и допуски, поэтому фактическая проба изделия может быть немного выше доли, соответствующей каратам.
  • Чистое золото — это не совсем 1,0000. Инвестиционные слитки обычно имеют пробу 999,9 или 999. Цена 24K в MetalAPI рассчитывается при чистоте ровно 1, поэтому она равна спотовой цене.

Какие караты важны, зависит от того, где вы продаёте. 22K и 21K традиционны для ювелирных изделий в Южной Азии и на большей части Ближнего Востока, 18K и 14K распространены в Европе и Северной Америке, а 9K — в Великобритании. Поддерживайте то, что действительно покупают ваши клиенты.

Самостоятельный расчёт цен по каратам

Спотовое золото котируется за тройскую унцию чистого золота. Чтобы получить цену грамма по каратам, переведите единицу измерения, а затем умножьте на чистоту. Возьмём пример спотовой цены из документации MetalAPI — 3 997,89 USD за тройскую унцию (это иллюстрация, а не текущая цена):

  1. Цена грамма чистого золота: 3 997,89 ÷ 31,1034768 = 128,5351 USD.
  2. Цена грамма золота 22K: 128,5351 × 22 ÷ 24 = 117,8239 USD.
  3. Цена грамма золота 18K: 128,5351 × 18 ÷ 24 = 96,4014 USD.

Тот же расчёт на JavaScript, а также вторая функция для расчёта цены по пробе вместо карат:

karat.mjs
const GRAMS_PER_TROY_OZ = 31.1034768;

/** Цена грамма золота заданной каратности (24 = чистое золото). */
export function karatPricePerGram(spotPerTroyOz, karat) {
  return (spotPerTroyOz / GRAMS_PER_TROY_OZ) * (karat / 24);
}

/** Цена грамма при заданной пробе, например 585 или 916. */
export function finenessPricePerGram(spotPerTroyOz, fineness) {
  return (spotPerTroyOz / GRAMS_PER_TROY_OZ) * (fineness / 1000);
}

const spot = 3997.89; // пример цены, 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% стоимости металла: немного для одного грамма, но заметно на тяжёлой цепи. Что бы вы ни выбрали, применяйте это последовательно и документируйте.

Цены по каратам через эндпоинт /carat

MetalAPI выполняет эти вычисления за вас в /carat — эндпоинте, доступном на всех платных тарифах начиная с Lite. Он принимает следующие параметры:

  • 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 вы получаете все караты одним запросом, который стоит столько же, сколько запрос одного карата. Ключ каждой записи имеет вид 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 и новее:

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 — с ежедневным интервалом обновления, который действует на этом тарифе.

Цены в местной валюте

Ювелирные изделия покупают и продают в местной валюте, поэтому укажите в base валюту магазина: INR для рупий, AED для дирхамов, TRY для лир, GBP для фунтов. Работают все 57 поддерживаемых валют, а поскольку цена золота и валютный курс берутся из одного снимка, числа согласованы между собой.

bash
# Все караты в индийских рупиях за грамм
curl "https://metalapi.com/api/v1/carat?carat=all&unit=gram&base=INR" \
  -H "X-API-Key: $METALAPI_KEY"

# 22K в турецких лирах за грамм на прошедшую дату
curl "https://metalapi.com/api/v1/carat?carat=22&unit=gram&base=TRY&date=2026-10-01" \
  -H "X-API-Key: $METALAPI_KEY"

Для рынков, где цены указывают в тола, умножьте цену грамма на 11,6638038 или цену тройской унции на 0,375. Слиток в 10 тола весит 116,638 г. Точные коэффициенты для тола, таэлей и пеннивейтов приведены в статье о пересчёте единиц.

Три практических момента:

  • Свежесть зависит от тарифа. /carat возвращает цены настолько свежие, насколько позволяет ваш тариф: каждые 30 минут на Lite, каждые 10 минут на Standard и вплоть до 5 секунд на Enterprise. Магазину, который обновляет табло с ценами несколько раз в день, не нужен самый быстрый тариф.
  • Показывайте метку времени. Поле timestamp сообщает клиентам и аудиторам, на какой момент получена цена.
  • Выходные. Торги спотовым золотом останавливаются в пятницу в 17:00 по нью-йоркскому времени и возобновляются в воскресенье в 17:00, поэтому в выходные цены по каратам остаются на уровне последней цены пятницы.

От цены по каратам к цене украшения

Цена по каратам — это стоимость содержащегося в изделии золота. Цена готового изделия включает ещё несколько составляющих, и способ их расчёта зависит от страны, торговых обычаев и самого бизнеса. Обычно это следующие компоненты:

  • Стоимость металла: чистый вес золота × цена грамма по каратам. Камни, жемчуг и другие части не из золота взвешиваются отдельно и не учитываются.
  • Стоимость работы: труд и дизайн; рассчитывается за грамм, в процентах от стоимости металла или фиксированной суммой за изделие. На некоторых рынках добавляют ещё надбавку на угар — металл, потерянный при производстве.
  • Камни и другие материалы: оцениваются по собственным правилам.
  • Сборы за опробование и клеймение или сертификацию, если они применяются.
  • Налоги: НДС, GST или налог с продаж. Ставки и правила различаются по странам, а в некоторых странах инвестиционное золото облагается иначе, чем ювелирные изделия. Например, в ЕС инвестиционное золото подпадает под специальное освобождение от НДС, которое не распространяется на ювелирные изделия.

Вот минимальный калькулятор стоимости, в котором эти составляющие учитываются отдельно. В нём везде используется 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")  # фиксированная стоимость работы за грамм
    making_pct: Decimal = Decimal("0")  # или доля от стоимости металла
    stones: Decimal = Decimal("0")  # оцениваются отдельно
    tax_rate: Decimal = Decimal("0")  # НДС, 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()}


# Только для иллюстрации: 10 г золота 22K по примерной цене 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"),
)))

С этими входными данными скрипт выведет стоимость металла 1 178,24, стоимость работы 141,39, налог 263,93 и итог 1 583,55. Стоимость работы и ставка налога здесь — условные значения, а не рекомендации. Облагается ли изделие налогом, какие составляющие и по какой ставке — вопросы к вашему бухгалтеру или налоговому консультанту.

Эта статья объясняет расчёты. Она не является инвестиционной, ценовой или налоговой консультацией.

Стоимость выкупа и лома

Выкуп золота у клиентов работает в обратную сторону. Отправная точка — та же стоимость металла, но рассчитывать её следует по фактически измеренной пробе, а не по проставленному клейму:

стоимость лома = масса в граммах × проба ÷ 1 000 × спотовая цена грамма − вычеты за аффинаж и обработку

Покупатели обычно проверяют пробу, например рентгенофлуоресцентным анализом (XRF) или кислотными тестами, потому что старые изделия могут не соответствовать своему клейму, а припой в цепочках снижает среднюю чистоту. Держите вычет в коде как явный документированный параметр, а не прячьте его в заниженной спотовой цене, чтобы он был чётко виден в расчётах и при аудите.

В качестве спотовой цены здесь используйте цену грамма 24K (или /latest с unit=gram), а измеренную пробу применяйте сами. Цены из /carat предполагают точную долю K ÷ 24, что верно для оценки новых изделий по каратам, но не для результата пробирного анализа вроде 912.

Чек-лист внедрения

  • Запрашивайте carat=all один раз и кешируйте результат на интервал обновления вашего тарифа, а не вызывайте API для каждого карата или товара.
  • Сохраняйте цену, метку времени и применённую чистоту вместе с каждым расчётом и заказом, чтобы позже можно было объяснить любое число.
  • Используйте date для исторических цен по каратам, например при пересчёте старого счёта. Длинные периоды и локальное хранение разобраны в статье Исторические цены на золото и серебро через API.
  • Округляйте только при отображении, с тем числом знаков после запятой, которое принято для каждой валюты.
  • Храните ключ API на сервере. Чтобы показать на сайте магазина табло с ценами на золото без программирования, используйте встраиваемый виджет.
  • Если вам нужно всего несколько карат, формула на основе данных /latest работает на любом тарифе. /carat избавляет от вычислений и возвращает готовые согласованные числа на платных тарифах.

Все параметры /carat описаны в документации API, на странице тарифов видно, какие тарифы его включают, а руководство по API цен на золото рассказывает о ключах, ошибках и кешировании в целом. Чтобы попробовать API на своём каталоге, зарегистрируйтесь и получите ключ.

Попробуйте на своих данных

Создайте бесплатный аккаунт и отправьте первый запрос меньше чем за две минуты. 100 запросов в месяц, без банковской карты.

Читайте также