Blog/Desarrollo

Precio del oro por gramo con Python (24K, 22K y 18K)

Obtén el precio del oro por gramo con Python para 24K, 22K y 18K, sin clave API y con cálculos monetarios seguros mediante Decimal.

Desarrollo
Precio del oro por gramo con Python (24K, 22K y 18K)

Si tu aplicación necesita el precio del oro por gramo, solicita directamente la escala de pureza al endpoint público /v1/carat. Una petición devuelve valores para 24K, 22K, 21K, 20K, 18K, 16K, 14K y 10K en la moneda elegida. No hace falta clave API para probarlo.

Obtener el precio por gramo con Python

Este ejemplo usa únicamente la biblioteca estándar y convierte los precios a Decimal para evitar errores de coma flotante.

import json
from decimal import Decimal
from urllib.parse import urlencode
from urllib.request import Request, urlopen

url = "https://api.goldprice.dev/v1/carat?" + urlencode({"currency": "EUR"})
with urlopen(Request(url, headers={"Accept": "application/json"}), timeout=10) as response:
    payload = json.load(response)

prices = {
    "currency": payload["currency"],
    "timestamp": payload["timestamp"],
    "24k": Decimal(payload["price_gram_24k"]),
    "22k": Decimal(payload["price_gram_22k"]),
    "18k": Decimal(payload["price_gram_18k"]),
}

Cambia EUR por USD, GBP, INR, IDR, AED, JPY u otra moneda compatible. Conserva también timestamp: indica cuándo se observó el precio.

Calcular el valor de una pieza

Para una pieza de 12,5 gramos y 18K, multiplica el precio de 18K por el peso y redondea una sola vez el resultado final:

from decimal import Decimal, ROUND_HALF_UP

weight = Decimal("12.5")
value = (weight * prices["18k"]).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)

El endpoint ya expresa cada valor por gramo con la precisión de la unidad monetaria solicitada. El resultado es el valor indicativo del contenido de oro, no el precio minorista ni la oferta de recompra. Mano de obra, gemas, impuestos, primas y descuentos se calculan aparte.

Cómo se realiza la conversión

La API convierte XAU a la moneda elegida, divide el precio por onza troy entre 31.1034768 y multiplica por la fracción de pureza: 22 / 24 para 22K o 18 / 24 para 18K.

Lista de producción

  • Mantén los importes como Decimal.
  • Guarda el timestamp con el valor.
  • Almacena respuestas correctas según la frescura necesaria.
  • No sustituyas un fallo por cero ni por una hora nueva.
  • Describe el resultado como indicativo, no como precio de liquidación.
  • Guarda la clave de cuenta solo en el servidor.

Consulta el contrato completo del endpoint o usa la API histórica para datos OHLC diarios.

guías relacionadas

goldprice.dev

Precios del oro en tiempo real, OHLC histórico y agregación multi-fuente — disponible via REST y SSE.