Preços do ouro por quilate: 24K, 22K, 18K e como calculá-los
O que significam 24K, 22K e 18K, como se relacionam com teores como 916 e 750, como calcular o preço por grama de cada quilate e como obtê-lo por uma API.
Quilate e pureza
O quilate mede a pureza do ouro, não o seu peso. O ouro puro tem 24 quilates, então o teor de ouro de uma liga é o seu número de quilates dividido por 24. O ouro 18 quilates tem 18 partes de ouro e 6 partes de outros metais, como prata, cobre, zinco ou paládio, que deixam a liga mais dura, mudam a sua cor e reduzem o seu custo.
Em português, a palavra quilate tem dois sentidos: a pureza do ouro (K ou kt) e a unidade de 200 miligramas usada para pesar pedras preciosas (ct). O inglês americano separa os dois em karat (pureza) e carat (peso das gemas), enquanto o inglês britânico costuma usar carat para ambos. O endpoint da MetalAPI se chama /carat, seguindo esse uso mais amplo, mas retorna preços do ouro por pureza, não por peso de gemas.
A fórmula que liga o preço por quilate ao mercado do ouro é curta:
preço por grama do ouro de K quilates = preço à vista por onça troy ÷ 31,1034768 × K ÷ 24
Este artigo explica cada parte dessa fórmula, mostra como calculá-la você mesmo e como obtê-la pela API e, em seguida, analisa o que separa o preço do ouro por quilate do preço de uma joia pronta.
Pureza em quilates e teor milesimal
Muitos países marcam o ouro com o seu teor milesimal, as partes de ouro por mil, em vez do quilate ou ao lado dele. As duas escalas se correspondem diretamente:
| Quilate | Pureza (K ÷ 24) | Percentual de ouro | Teor milesimal (partes por 1.000) |
|---|---|---|---|
| 24K | 1,0000 | 100% | 1000 (barras têm 999 ou 999,9) |
| 23K | 0,9583 | 95,8% | 958,3 |
| 22K | 0,9167 | 91,7% | 916,7 (marcado 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 (marcado 585) |
| 12K | 0,5000 | 50,0% | 500 |
| 10K | 0,4167 | 41,7% | 416,7 (marcado 417) |
| 9K | 0,3750 | 37,5% | 375 |
| 8K | 0,3333 | 33,3% | 333,3 (marcado 333) |
Dois detalhes importam quando você transforma esta tabela em preços:
- As marcações de teor são padrões mínimos. Uma marcação 585 significa pelo menos 58,5% de ouro, um pouco mais que 14 ÷ 24 = 58,33%. Cada país define os seus próprios padrões e tolerâncias, então o teor real de uma peça pode ficar um pouco acima da fração do quilate.
- O ouro puro não é exatamente 1,0000. Barras de investimento normalmente têm teor 999,9 ou 999. O preço do 24K na MetalAPI usa uma pureza de exatamente 1, o que o torna igual ao preço à vista.
Os quilates que importam dependem de onde você vende. 22K e 21K são tradicionais na joalheria do Sul da Ásia e de grande parte do Oriente Médio, 18K e 14K são difundidos na Europa e na América do Norte, e o 9K é comum no Reino Unido. Ofereça os quilates que os seus clientes realmente compram.
Calculando os preços por quilate você mesmo
O ouro à vista é cotado por onça troy de ouro puro. Para obter o preço por grama de um quilate, converta a unidade e depois ajuste pela pureza. Com o preço à vista de exemplo da documentação da MetalAPI, 3.997,89 USD por onça troy (uma ilustração, não um preço ao vivo):
- Preço por grama do ouro puro: 3.997,89 ÷ 31,1034768 = 128,5351 USD.
- Preço por grama do ouro 22K: 128,5351 × 22 ÷ 24 = 117,8239 USD.
- Preço por grama do ouro 18K: 128,5351 × 18 ÷ 24 = 96,4014 USD.
O mesmo cálculo em JavaScript, com uma segunda função para precificar pelo teor milesimal em vez do quilate:
const GRAMS_PER_TROY_OZ = 31.1034768;
/** Preço por grama do ouro em um quilate (24 = ouro puro). */
export function karatPricePerGram(spotPerTroyOz, karat) {
return (spotPerTroyOz / GRAMS_PER_TROY_OZ) * (karat / 24);
}
/** Preço por grama em um teor milesimal, como 585 ou 916. */
export function finenessPricePerGram(spotPerTroyOz, fineness) {
return (spotPerTroyOz / GRAMS_PER_TROY_OZ) * (fineness / 1000);
}
const spot = 3997.89; // preço de exemplo, USD por onça troy
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.1931Comece por um preço à vista que já esteja na sua moeda de venda (base=EUR, base=INR e assim por diante), para que o preço do ouro e a taxa de câmbio sejam do mesmo momento. Converter um preço por grama em dólares com uma taxa de câmbio obtida em outro momento adiciona um erro que não tem nada a ver com o ouro.
Se você precifica pela marcação de teor e não pelo quilate, use a função de teor milesimal. A diferença entre 583,3 e 585 é de cerca de 0,3% do valor do metal: pequena por grama, mas visível em uma corrente pesada. Seja qual for a sua escolha, use-a de forma consistente e documente-a.
Obtendo preços por quilate no endpoint /carat
A MetalAPI faz essas contas para você em /carat, que está disponível em todos os planos pagos, a partir do Lite. Ele aceita estes parâmetros:
carat:24(padrão),23,22,21,20,18,16,14,12,10,9,8ouall.base: a moeda dos preços,USDpor padrão.unit:troy_ozpor padrão;gramé a escolha habitual na joalheria.date: umYYYY-MM-DDopcional para os preços por quilate de um dia passado.
curl "https://metalapi.com/api/v1/carat?carat=22&unit=gram&base=EUR" \
-H "X-API-Key: $METALAPI_KEY"A resposta, com os valores de exemplo da referência da 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 }
}
}Com carat=all, você recebe todos os quilates em uma única requisição, que custa o mesmo que um único quilate. Cada entrada tem a chave XAU<karat>K e traz o preço, a unidade, o quilate e a pureza aplicada. Este exemplo está resumido:
{
"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 }
}
}Lendo todos os quilates em dirhams dos Emirados Árabes por grama no Node.js 18 ou mais recente:
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}`);
}No plano Free, /carat retorna o erro 106 (plan_restriction) junto com uma upgrade_url. Um quilate não suportado retorna 210 (invalid_carat). No Free, você ainda pode aplicar a fórmula acima ao preço do ouro de /latest, no intervalo de atualização diário do plano Free.
Preços na sua moeda local
Joias são compradas e vendidas em moeda local, então defina base como a moeda da loja: INR para rupias, AED para dirhams, TRY para liras, GBP para libras. Todas as 57 moedas suportadas funcionam e, como o ouro e a taxa de câmbio vêm do mesmo snapshot, os números são consistentes entre si.
# Todos os quilates em rupias indianas por grama
curl "https://metalapi.com/api/v1/carat?carat=all&unit=gram&base=INR" \
-H "X-API-Key: $METALAPI_KEY"
# 22K em liras turcas por grama em um dia passado
curl "https://metalapi.com/api/v1/carat?carat=22&unit=gram&base=TRY&date=2026-10-01" \
-H "X-API-Key: $METALAPI_KEY"Para mercados que cotam em tolas, multiplique o preço por grama por 11,6638038, ou o preço por onça troy por 0,375. Uma barra de 10 tolas pesa 116,638 g. O artigo sobre conversão de unidades traz os fatores exatos para tolas, taels e pennyweights.
Três pontos práticos:
- A atualização segue o seu plano.
/caratretorna preços tão recentes quanto o seu plano permite: a cada 30 minutos no Lite, a cada 10 minutos no Standard, até a cada 5 segundos no Enterprise. Uma loja que atualiza o seu quadro de preços algumas vezes por dia não precisa do plano mais rápido. - Mostre o timestamp. O campo
timestampinforma a clientes e auditores quando o preço foi obtido. - Fins de semana. O ouro à vista para de ser negociado na sexta-feira às 17:00, no horário de Nova York, e volta no domingo às 17:00, então os preços por quilate ficam no último preço de sexta-feira durante o fim de semana.
Do preço por quilate ao preço da joia
O preço por quilate é o valor do ouro contido na peça. O preço de uma peça pronta soma vários componentes, e a forma de calculá-los varia conforme o país, os costumes do comércio e o negócio. Os componentes habituais são:
- Valor do metal: peso líquido de ouro × preço por grama do quilate. Pedras, pérolas e outras partes que não são de ouro são pesadas separadamente e excluídas.
- Custo de feitio: mão de obra e design, cobrados por grama, como porcentagem do valor do metal ou como valor fixo por peça. Alguns mercados também acrescentam uma margem para o metal perdido na fabricação.
- Pedras e outros materiais: precificados em separado.
- Taxas de marcação de teor ou de certificação, quando se aplicam.
- Impostos: IVA, GST ou imposto sobre vendas. Alíquotas e regras variam conforme o país, e alguns países tratam o ouro de investimento de forma diferente das joias. Na União Europeia, por exemplo, o ouro de investimento tem uma isenção especial de IVA que não abrange joias.
Aqui está uma calculadora de orçamento mínima que mantém essas partes separadas. Ela usa Decimal em todo o cálculo, para que os centavos da fatura fechem:
from dataclasses import dataclass
from decimal import Decimal, ROUND_HALF_UP
CENT = Decimal("0.01")
@dataclass
class QuoteInput:
weight_g: Decimal # peso líquido de ouro, sem as pedras
karat_price_per_g: Decimal # de /carat?unit=gram, na sua moeda
making_per_g: Decimal = Decimal("0") # custo fixo de feitio por grama
making_pct: Decimal = Decimal("0") # ou uma fração do valor do metal
stones: Decimal = Decimal("0") # precificadas em separado
tax_rate: Decimal = Decimal("0") # IVA, GST ou imposto sobre vendas da sua jurisdição
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()}
# Valores apenas ilustrativos: 10 g de 22K ao preço de exemplo de 117.8239 por grama,
# custo de feitio de 12% e alíquota de imposto de 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"),
)))Com esses valores, o script imprime um valor do metal de 1.178,24, custo de feitio de 141,39, imposto de 263,93 e um total de 1.583,55. O custo de feitio e a alíquota de imposto são valores de exemplo, não recomendações. Se há imposto, sobre quais componentes e com qual alíquota são perguntas para o seu contador ou consultor tributário.
Este artigo explica cálculos. Ele não constitui recomendação de investimento, de preços ou tributária.
Valores de recompra e de sucata
Comprar ouro de volta dos clientes funciona no sentido inverso. O ponto de partida é o mesmo valor do metal, mas ele deve se basear no teor efetivamente medido, e não no quilate marcado:
valor da sucata = peso em gramas × teor milesimal ÷ 1.000 × preço à vista por grama − descontos de refino e manuseio
Os compradores costumam testar o teor, por exemplo com análise por fluorescência de raios X (XRF) ou testes com ácido, porque peças mais antigas podem ficar abaixo da marcação e a solda das correntes reduz a pureza média. Mantenha o desconto como um parâmetro explícito e documentado no seu código, em vez de escondê-lo em um preço à vista mais baixo, para que ele apareça com clareza nos orçamentos e nas auditorias.
Use aqui o preço por grama do 24K (ou /latest com unit=gram) como preço à vista e aplique você mesmo o teor medido. Os preços por quilate de /carat pressupõem a fração exata K ÷ 24, o que é correto para precificar peças novas por quilate, mas não para um resultado de ensaio como 912.
Checklist de implementação
- Solicite
carat=alluma vez e mantenha o resultado em cache pelo intervalo de atualização do seu plano, em vez de fazer uma chamada por quilate ou por produto. - Armazene o preço, o timestamp e a pureza usados em cada orçamento e pedido, para poder explicar um número depois.
- Use
datepara preços históricos por quilate, por exemplo ao recalcular uma fatura antiga. O artigo Preços históricos de ouro e prata via API trata de intervalos maiores e de armazenamento local. - Arredonde apenas na exibição, usando as casas decimais de cada moeda.
- Mantenha a chave de API no seu servidor. Para mostrar um quadro de preços do ouro no site de uma loja sem escrever código, use um widget incorporável.
- Se você só precisa de alguns quilates, a fórmula aplicada aos dados de
/latestfunciona em todos os planos./caratpoupa as contas e retorna números prontos e consistentes nos planos pagos.
A documentação da API descreve todos os parâmetros de /carat, a página de preços mostra quais planos o incluem, e o guia da API de preço do ouro trata de chaves, erros e cache em geral. Para testar com o seu próprio catálogo, cadastre-se e obtenha uma chave.
Experimente com seus próprios dados
Crie uma conta grátis e faça sua primeira requisição em menos de dois minutos. 100 requisições por mês, sem cartão de crédito.
Continue lendo
API de preços do ouro: o guia completo para desenvolvedores
Como usar uma API de preços do ouro: obtenha uma chave, chame-a com curl, JavaScript e Python, leia as cotações certo e trate histórico, erros, cotas e cache.
Como adicionar um widget de cotação do ouro ao vivo ao seu site
Widget com a cotação do ouro ao vivo no WordPress, na Shopify ou em HTML puro: crie no painel da MetalAPI, escolha símbolos, layout e tema e cole duas linhas.
Crie uma calculadora de preços de joias com cotações do ouro ao vivo
Crie no servidor uma calculadora de preços de joias em TypeScript e Python, com ouro por grama ao vivo, quilates, mão de obra, IVA e cache dentro da sua cota.