API de precios de la plata: precios XAG actuales e históricos
Usa una API de precios de la plata para obtener precios XAG actuales e históricos por onza, gramo o kilo en 57 divisas, con ejemplos de código y casos de uso.
Qué te ofrece una API de precios de la plata
Una API de precios de la plata devuelve el precio actual e histórico de la plata como datos estructurados, normalmente JSON sobre HTTPS, para que una tienda, una aplicación o un informe puedan usarlo sin copiar cifras de un sitio web. En MetalAPI, la plata tiene el símbolo XAG, el código ISO 4217 de una onza troy de plata. Su valor en tiempo real es el precio al contado: el punto medio entre las cotizaciones de compra (bid) y de venta (ask) del mercado mayorista.
La plata comparte API con el oro, pero tiene sus propias costumbres. Se cotiza por onza troy pero se compra y se vende en gramos y kilogramos, su precio por gramo es lo bastante pequeño como para que el redondeo importe, y quienes compran platería y chatarra piensan en ley (milésimas) y no en quilates. Esta guía cubre las solicitudes y los detalles propios de la plata:
- El precio de la plata en tiempo real con una sola solicitud, y cómo leerlo.
- Precios de la plata por onza, gramo y kilogramo.
- La plata en otras divisas, también con una sola solicitud.
- Precios históricos de la plata desde 2000.
- Casos de uso: tiendas de lingotes, compradores de platería y chatarra, y aplicaciones de inversión.
Cómo obtener el precio de la plata en tiempo real por API
Crea una cuenta gratuita y añade una clave API en el panel. Las claves empiezan por mk_live_. Guarda la tuya en una variable de entorno y envíala en una cabecera; después, solicita /latest con XAG:
export METALAPI_KEY="mk_live_your_key_here"
curl "https://metalapi.com/api/v1/latest?base=USD¤cies=XAG" \
-H "X-API-Key: $METALAPI_KEY"La respuesta tiene este aspecto. Las cifras son los valores de ejemplo que se usan en toda la documentación de MetalAPI, no precios en tiempo real:
{
"success": true,
"timestamp": 1792713600,
"date": "2026-10-23",
"base": "USD",
"rates": {
"XAG": 0.01853911754,
"USDXAG": 53.94
}
}USDXAG es el precio de una onza troy de plata en la divisa base, 53,94 dólares estadounidenses en este ejemplo. XAG es la inversa, onzas troy de plata por dólar, y se mantiene por compatibilidad con las API de estilo forex. Lee siempre la clave con prefijo: tratar rates.XAG como el precio mostraría 0,0185 en lugar de 53,94.
timestamp es la hora de los datos, no la de tu solicitud. La plata al contado se negocia las 24 horas los días laborables y se detiene desde el viernes a las 17:00 hasta el domingo a las 17:00, hora de Nueva York, así que durante el fin de semana la API sigue devolviendo el precio de cierre del viernes. Muestra la marca de tiempo junto al precio, sobre todo los sábados y domingos.
Si también necesitas oro, platino o paladio, añádelos a la misma solicitud: currencies=XAU,XAG,XPT,XPD. Una solicitud cuenta una sola vez, independientemente de cuántos símbolos devuelva.
Precio de la plata por onza, gramo y kilogramo
Los precios de la plata son por onza troy, 31,1034768 gramos, salvo que pases unit. Los valores admitidos son troy_oz (el predeterminado), gram, kilogram, ounce, pound, metric_ton y short_ton, y la respuesta añade un campo unit de nivel superior siempre que la unidad no sea la predeterminada:
curl "https://metalapi.com/api/v1/latest?currencies=XAG&unit=kilogram" \
-H "X-API-Key: $METALAPI_KEY"Con el precio de ejemplo de 53,94 dólares por onza troy, la plata cuesta:
| Precio por | USD | Uso habitual |
|---|---|---|
| Onza troy (31,1035 g) | 53,94 | Cotizaciones al contado, monedas y medallas |
| Gramo | 1,7342 | Joyería, platería, chatarra |
| Kilogramo | 1734,21 | Lingotes de un kilo, mercado mayorista, precios en la India |
| Tola (11,6638 g) | 20,23 | Asia meridional y el Golfo |
| Onza avoirdupois | 49,16 | Casi nunca adecuada para la plata |
unit=ounce, y su forma abreviada oz, es la onza avoirdupois de 28,35 gramos. Un precio de la plata por onza troy es aproximadamente un 9,7 % más alto que un precio por onza avoirdupois. Para cotizaciones al contado, omite unit o pasa troy_oz.
Conviene adoptar dos costumbres con la plata. Primero, muestra más decimales por gramo: a 1,7342 dólares, dos decimales ocultan la mayor parte del movimiento diario, así que es habitual usar cuatro. Segundo, si muestras varias unidades, solicita onzas troy una vez y convierte en local en lugar de hacer una solicitud por unidad. Los factores son exactos:
const GRAMS_PER_TROY_OZ = 31.1034768;
const res = await fetch("https://metalapi.com/api/v1/latest?currencies=XAG", {
headers: { "X-API-Key": process.env.METALAPI_KEY },
signal: AbortSignal.timeout(10_000),
});
const data = await res.json();
if (!data.success) throw new Error(`MetalAPI ${data.error.code} (${data.error.type}): ${data.error.info}`);
const perOz = data.rates[`${data.base}XAG`]; // 53.94 en el ejemplo de la documentación
const perGram = perOz / GRAMS_PER_TROY_OZ; // 1.7342...
const perKg = perGram * 1000; // 1734.21...
console.log({ perOz, perGram: perGram.toFixed(4), perKg: perKg.toFixed(2) });Onzas troy, gramos y kilogramos enumera todos los factores, incluido el pennyweight, y las reglas de redondeo para facturas.
Precios de la plata en otras divisas
Establece base para expresar el precio de la plata en otra divisa: base=EUR devuelve EURXAG y base=INR devuelve INRXAG. Combinada con unit, esta solicitud devuelve euros por gramo:
curl "https://metalapi.com/api/v1/latest?base=EUR¤cies=XAG&unit=gram" \
-H "X-API-Key: $METALAPI_KEY"{
"success": true,
"timestamp": 1792765800,
"date": "2026-10-23",
"base": "EUR",
"unit": "gram",
"rates": {
"XAG": 0.6713138244,
"EURXAG": 1.489616277
}
}Para mostrar la plata en varias divisas, sigue bastando una solicitud. Pide la plata y las divisas con base USD y luego divide: la plata en euros es USDXAG ÷ USDEUR, porque USDEUR es el precio de un euro en dólares. Todos los valores proceden de la misma instantánea, así que el resultado coincide con lo que devuelve base=EUR. Con la cotización de ejemplo de la documentación, 1,1642 dólares por euro, 53,94 ÷ 1,1642 da 46,33 euros por onza troy, o 1,4896 euros por gramo, lo mismo que arriba:
import os
import requests
GRAMS_PER_TROY_OZ = 31.1034768
CURRENCIES = ["EUR", "GBP", "INR", "TRY"]
resp = requests.get(
"https://metalapi.com/api/v1/latest",
params={"base": "USD", "currencies": ",".join(["XAG", *CURRENCIES])},
headers={"X-API-Key": os.environ["METALAPI_KEY"]},
timeout=10,
)
data = resp.json()
if not data["success"]:
err = data["error"]
raise RuntimeError(f"MetalAPI {err['code']} ({err['type']}): {err['info']}")
rates = data["rates"]
silver_usd = rates["USDXAG"]
for cur in ["USD", *CURRENCIES]:
per_oz = silver_usd if cur == "USD" else silver_usd / rates["USD" + cur]
print(f"{cur}: {per_oz:,.2f} per troy oz, {per_oz / GRAMS_PER_TROY_OZ:,.4f} per gram")Cualquiera de las 57 divisas admitidas funciona así, y también el oro, el platino y el paladio, de modo que una sola llamada puede alimentar todo un panel de precios. En la India, donde la plata suele cotizarse por kilogramo, base=INR&unit=kilogram da directamente la cifra habitual.
Precios históricos de la plata por API
El historial de la plata empieza en 2000 y usa los mismos parámetros y el mismo formato de respuesta que el precio en tiempo real. Los valores de cada día son los precios de cierre de ese día, con fechas en UTC. Cuatro endpoints cubren la mayoría de las necesidades:
/YYYY-MM-DD,/historical?date=o/yesterday: el cierre de un día. Para un fin de semana o un festivo, se devuelve el cierre del día de negociación más reciente./timeframe: cierres diarios entrestart_dateyend_date, hasta 30 días por solicitud en Free y 365 días en los planes de pago./change: precio inicial, precio final y variación absoluta y porcentual entre dos fechas./ohlc: apertura, máximo, mínimo y cierre de un día.
# Plata al cierre del 15 de enero de 2024 (USDXAG 23.162 en el ejemplo de la documentación)
curl "https://metalapi.com/api/v1/2024-01-15?currencies=XAG" \
-H "X-API-Key: $METALAPI_KEY"
# Cierres diarios de la plata en euros por gramo de septiembre de 2026
curl "https://metalapi.com/api/v1/timeframe?start_date=2026-09-01&end_date=2026-09-30&base=EUR¤cies=XAG&unit=gram" \
-H "X-API-Key: $METALAPI_KEY"
# Cuánto valían 500 gramos de plata en euros al cierre del 1 de octubre de 2026
curl "https://metalapi.com/api/v1/convert?from=XAG&to=EUR&amount=500&unit=gram&date=2026-10-01" \
-H "X-API-Key: $METALAPI_KEY"Los precios de cierre de los días pasados nunca cambian, así que guárdalos en lugar de volver a solicitarlos. Con el límite de 365 días de los planes de pago, una carga completa desde 2000 requiere una solicitud a /timeframe por año. Ten en cuenta que los precios de los metales anteriores a octubre de 2026 proceden de los futuros del mes más próximo, así que pueden diferir ligeramente del precio al contado del mismo día.
Precios históricos del oro y la plata por API incluye un script completo de carga retroactiva, consejos de almacenamiento y validación, y un gráfico del oro junto con la relación oro/plata.
Casos de uso de una API de precios de la plata
Tiendas de lingotes y distribuidores de monedas. Los distribuidores venden por encima del precio al contado y recompran por debajo. Un precio de venta típico es el precio al contado por onza troy multiplicado por el contenido de plata fina, más una prima del producto, más una tarifa fija por artículo. Guarda la prima por producto, actualiza el precio al contado con el intervalo de actualización de tu plan y muestra a los clientes cuándo se actualizó el precio por última vez. En el plan Standard y superiores, añade XAG-BID y XAG-ASK a currencies para cotizar ambos lados a partir del propio spread del mercado. Spot, bid, ask y spread muestra cómo los distribuidores convierten estas cifras en precios de compra y de venta.
Compradores de platería, joyería y chatarra. Los objetos de plata se valoran por su peso y su ley, la proporción de plata pura expresada en milésimas. Las leyes más comunes son 999 (plata fina), 958 (Britannia), 925 (plata de ley o sterling) y 800, que se encuentra en la platería antigua de Europa continental. El valor de fundición es el peso en gramos × la ley × el precio por gramo. Con el precio de ejemplo de 1,7342 dólares por gramo, una bandeja de plata 925 de 500 gramos contiene 462,5 gramos de plata, con un valor de unos 802,07 dólares. Los compradores de chatarra pagan un porcentaje del valor de fundición, así que conviene que ese porcentaje sea un ajuste configurable y no una constante.
El endpoint de quilates de MetalAPI, /carat, solo cubre el oro, así que la ley de la plata es un cálculo que haces tú:
const GRAMS_PER_TROY_OZ = 31.1034768;
/** Valor de fundición de un objeto de plata: peso en gramos × ley (p. ej., 0.925) × precio por gramo. */
export function meltValue(grams, fineness, pricePerTroyOz) {
return grams * fineness * (pricePerTroyOz / GRAMS_PER_TROY_OZ);
}
meltValue(500, 0.925, 53.94); // 802.07… bandeja de plata 925 al precio de ejemplo
meltValue(1000, 0.999, 53.94); // 1732.48… lingote de un kilo de plata 999Aplicaciones de inversión y de carteras. Los usuarios tienen monedas, medallas y lingotes de un kilo y quieren saber su valor en su propia divisa. Guarda internamente las tenencias en onzas troy, convierte la unidad de entrada una sola vez y valora la cartera con la divisa del usuario como base. /change devuelve la variación porcentual entre dos fechas para líneas como «la plata este mes», y los cierres diarios guardados de /timeframe alimentan los gráficos.
Alertas de precio. Si solo necesitas reaccionar cuando la plata cruza un nivel, las alertas de precio pueden vigilar XAG en cualquier divisa y avisarte por correo electrónico desde el plan Lite, o mediante un webhook firmado desde el plan Advanced, sin que tengas que hacer consultas periódicas.
Actualización, cuotas y planes
Lo recientes que son los precios de la plata depende del plan. Consultar con más frecuencia que el intervalo de actualización de tu plan solo devuelve otra vez las mismas cifras:
| Plan | Precio / mes | Solicitudes / mes | Actualización de precios |
|---|---|---|---|
| Free | 0 USD | 100 | Diaria |
| Lite | 4,99 USD | 1000 | Cada 30 minutos |
| Standard | 11,99 USD | 10.000 | Cada 10 minutos, más bid/ask |
| Advanced | 24,99 USD | 50.000 | Cada minuto |
| Pro | 49,99 USD | 100.000 | Cada minuto, más stream en tiempo real |
| Ultra y Business | 99,99 USD y 149,99 USD | 500.000 | Cada 15 segundos |
| Enterprise | 299,99 USD | 1.500.000 | Cada 5 segundos |
- Guarda en caché durante al menos tu intervalo de actualización. En Free, una solicitud al día basta para los precios actuales.
- Pide todos los metales en una sola llamada.
currencies=XAU,XAG,XPT,XPDcuesta una solicitud; cuatro llamadas separadas cuestan cuatro. - Mantén la clave en el servidor. Sirve precios en caché a tus páginas en lugar de llamar a la API desde el navegador de cada visitante.
- Consulta el uso gratis.
/usagey/symbolsnunca cuentan para la cuota, y cada respuesta incluye un bloquerate_limit.
¿Listo para empezar? Crea una cuenta gratuita para obtener una clave API en un minuto, sin necesidad de tarjeta de crédito. Compara intervalos de actualización y cuotas en la página de precios, y usa la documentación de la API como referencia de cada endpoint y parámetro.
Preguntas frecuentes
¿Cuál es el símbolo de la plata en una API de precios?
XAG, el código ISO 4217 de una onza troy de plata. En MetalAPI, el precio de la plata en tu divisa base es la clave que une los dos códigos, como USDXAG para dólares por onza o EURXAG para euros por onza.
¿Existe una API gratuita de precios de la plata?
Sí. El plan Free de MetalAPI incluye la plata, todos los demás símbolos y el historial completo, con 100 solicitudes al mes y actualización diaria de precios, y no requiere tarjeta de crédito. Los planes de pago empiezan en 4,99 USD al mes, con actualizaciones cada 30 minutos y 1000 solicitudes.
¿Cómo obtengo el precio de la plata por gramo?
Pasa unit=gram, o divide el precio por onza troy entre 31,1034768. No lo dividas entre 28,35: esa es la onza avoirdupois, y exagera el precio por gramo en aproximadamente un 9,7 %.
¿Desde cuándo hay precios históricos de la plata?
Hay precios diarios de la plata desde 2000 en todos los planes. Una sola solicitud de rango cubre hasta 30 días en Free y hasta 365 días en los planes de pago.
¿Por qué el precio de la plata de un distribuidor difiere del de la API?
La API devuelve el precio medio al contado del mercado mayorista. Los distribuidores añaden primas por acuñación, distribución y su margen cuando venden, y pagan menos que el precio al contado cuando recompran, así que los precios al público de monedas y lingotes están por encima del precio al contado y los de recompra, por debajo.
Pruébalo con tus propios datos
Crea una cuenta gratuita y haz tu primera solicitud en menos de dos minutos. 100 solicitudes al mes, sin tarjeta de crédito.
Sigue leyendo
API gratuita de precios del oro: qué dan 100 solicitudes al mes
Una API gratuita de precios del oro explicada con honestidad: qué incluye el plan Free de MetalAPI, cómo aprovechar 100 solicitudes al mes y cuándo cambiar.
API de precios del oro en Python: consulta, caché y gráficos
Usa una API de precios del oro en Python: obtén precios en tiempo real con requests, gestiona errores y reintentos, usa caché y grafica una serie con pandas.
API de precios del oro en JavaScript: Node.js, TypeScript y Next.js
Obtén el precio del oro en JavaScript con una API: fetch con async/await, tipos de TypeScript, una ruta de Express o Next.js con caché y uso seguro de la clave.