El problema
Los precios cambian constantemente en Amazon y Walmart, pero no hay un sistema de alertas unificado que vigile ambos. Las extensiones de navegador solo funcionan cuando tienes la pestana abierta. Los sitios de rastreo de precios existentes estan orientados al consumidor y no pueden integrarse en tus herramientas internas o flujos de agentes. Para equipos de e-commerce gestionando precios competitivos, equipos de compras vigilando costos de proveedores, o agentes de ofertas sirviendo a usuarios, perder un cambio de precio significa perder margen o perder una oferta. El cambio ocurrio ayer, pero te enteraste la semana siguiente.
La solucion de Scavio
Scavio consulta listados de productos en Amazon y Walmart en un solo pipeline y devuelve datos de precios estructurados que puedes comparar contra lineas base almacenadas. Un cron diario compara los precios de hoy contra los de ayer, calcula cambios porcentuales y dispara alertas a traves de cualquier webhook cuando se cruzan los umbrales. El mismo script maneja ambas plataformas con rutas de codigo identicas porque Scavio normaliza el esquema de respuesta. Obtienes monitoreo de precios cross-platform unificado sin construir dos integraciones separadas.
Antes
Antes de Scavio, monitorear precios en Amazon y Walmart significaba dos integraciones separadas, dos extensiones de navegador, o revisiones manuales que perdian cambios entre visitas.
Después
Despues de Scavio, un script diario monitorea precios en ambas plataformas y alerta al equipo en horas de cualquier cambio significativo. Sin caidas de precio perdidas, sin inteligencia competitiva desactualizada.
Para quien es
Equipos de e-commerce rastreando precios competitivos, gerentes de compras vigilando costos de proveedores, y agentes de ofertas que necesitan alertar a usuarios cuando los precios bajan de ciertos umbrales.
Beneficios clave
- Monitoreo de precios unificado en Amazon y Walmart en un solo script
- Alertas de umbral configurables por porcentaje o cambio absoluto
- Verificaciones diarias automatizadas reemplazan monitoreo manual esporadico
- Integracion webhook envia alertas a Slack, email o herramientas internas
- Esquema de precios normalizado significa codigo identico para ambas plataformas
Ejemplo en Python
import requests
import json
from pathlib import Path
API_KEY = "your_scavio_api_key"
THRESHOLD_PCT = 5.0
def get_price(product: str, platform: str) -> float | None:
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": platform, "query": product},
timeout=15,
)
res.raise_for_status()
for item in res.json().get("organic", []):
if item.get("price"):
return item["price"]
return None
def check_prices(watchlist: list[dict]) -> list[dict]:
baseline_path = Path("price_baseline.json")
baseline = json.loads(baseline_path.read_text()) if baseline_path.exists() else {}
alerts = []
for item in watchlist:
for platform in item["platforms"]:
key = f"{item['slug']}_{platform}"
current = get_price(item["query"], platform)
previous = baseline.get(key)
if current and previous:
pct_change = ((current - previous) / previous) * 100
if abs(pct_change) >= THRESHOLD_PCT:
alerts.append({
"product": item["query"],
"platform": platform,
"previous": previous,
"current": current,
"change_pct": round(pct_change, 1),
})
if current:
baseline[key] = current
baseline_path.write_text(json.dumps(baseline, indent=2))
return alerts
watchlist = [
{"slug": "airpods-pro", "query": "airpods pro 2", "platforms": ["amazon", "walmart"]},
{"slug": "kindle-paperwhite", "query": "kindle paperwhite", "platforms": ["amazon", "walmart"]},
]
alerts = check_prices(watchlist)
for a in alerts:
print(f"{a['product']} on {a['platform']}: ${a['previous']} -> ${a['current']} ({a['change_pct']}%)")Ejemplo en JavaScript
const API_KEY = "your_scavio_api_key";
const THRESHOLD_PCT = 5.0;
async function getPrice(product, platform) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform, query: product }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
const data = await res.json();
for (const item of data.organic ?? []) {
if (item.price) return item.price;
}
return null;
}
async function checkPrices(watchlist) {
const fs = await import("fs/promises");
let baseline = {};
try { baseline = JSON.parse(await fs.readFile("price_baseline.json", "utf8")); } catch {}
const alerts = [];
for (const item of watchlist) {
for (const platform of item.platforms) {
const key = `${item.slug}_${platform}`;
const current = await getPrice(item.query, platform);
const previous = baseline[key];
if (current && previous) {
const pctChange = ((current - previous) / previous) * 100;
if (Math.abs(pctChange) >= THRESHOLD_PCT) {
alerts.push({ product: item.query, platform, previous, current, changePct: Math.round(pctChange * 10) / 10 });
}
}
if (current) baseline[key] = current;
}
}
await fs.writeFile("price_baseline.json", JSON.stringify(baseline, null, 2));
return alerts;
}
const watchlist = [
{ slug: "airpods-pro", query: "airpods pro 2", platforms: ["amazon", "walmart"] },
{ slug: "kindle-paperwhite", query: "kindle paperwhite", platforms: ["amazon", "walmart"] },
];
const alerts = await checkPrices(watchlist);
for (const a of alerts) console.log(`${a.product} on ${a.platform}: $${a.previous} -> $${a.current} (${a.changePct}%)`);Plataformas utilizadas
Amazon
Búsqueda de productos con precios, calificaciones y reseñas
Walmart
Búsqueda de productos con precios y datos de cumplimiento