Le problème
Les équipes e-commerce ont besoin d'intelligence tarifaire sur Amazon, Walmart et Google Shopping, mais chaque plateforme nécessite un scraper ou une intégration API distinct. Maintenir trois scrapers signifie trois rotations de proxies, trois analyseurs HTML, et trois rotations d'astreinte lors des changements de mise en page. Les données arrivent dans des formats différents avec des noms de champs différents, rendant la comparaison inter-plateformes un exercice manuel sur tableur. Au moment où le rapport de comparaison hebdomadaire est prêt, les prix ont déjà changé.
La solution Scavio
Scavio interroge Amazon, Walmart et Google Shopping via le même endpoint avec le même schéma JSON. Un seul script récupère les prix des trois plateformes, les normalise dans un tableau de comparaison, et stocke des instantanés quotidiens pour l'analyse des tendances. Les mêmes noms de champs (title, price, link) apparaissent quelle que soit la plateforme, donc la logique de comparaison s'écrit une fois et fonctionne partout. À 0,005 $/crédit, le suivi de 100 produits par jour sur trois plateformes coûte 45 $/mois.
Avant
Avant Scavio, le suivi des prix inter-plateformes signifiait trois scrapers distincts, trois charges de maintenance, et un tableur de comparaison manuel hebdomadaire qui était obsolète avant même d'être terminé.
Après
Après Scavio, un seul script suit les prix sur les trois plateformes quotidiennement. La comparaison inter-plateformes est automatisée, les tendances sont visibles en temps réel, et le coût est de 45 $/mois pour 100 produits sur trois plateformes.
À qui cela s'adresse
Les équipes e-commerce qui suivent les prix concurrentiels, les agrégateurs d'offres qui construisent des outils de comparaison inter-plateformes, et les responsables des achats qui surveillent les coûts des fournisseurs chez plusieurs détaillants.
Avantages clés
- Un seul endpoint API pour Amazon, Walmart et Google Shopping
- Le schéma de prix normalisé élimine le mappage manuel des données
- Le suivi automatisé quotidien remplace les comparaisons manuelles hebdomadaires
- Les instantanés historiques permettent l'analyse des tendances dans le temps
- 100 produits sur 3 plateformes pour 45 $/mois
Exemple Python
import requests
import json
from pathlib import Path
from datetime import datetime
API_KEY = "your_scavio_api_key"
PLATFORMS = ["amazon", "walmart"]
def get_prices(product: str) -> dict:
prices = {"product": product, "checked_at": datetime.utcnow().isoformat()}
for platform in PLATFORMS:
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()
results = res.json().get("organic", [])
best = None
for item in results:
if item.get("price"):
if best is None or item["price"] < best["price"]:
best = {
"price": item["price"],
"title": item.get("title", ""),
"link": item.get("link", ""),
"rating": item.get("rating"),
}
prices[platform] = best
return prices
def track_products(products: list[str]) -> list[dict]:
results = [get_prices(p) for p in products]
date = datetime.utcnow().strftime("%Y-%m-%d")
Path(f"price_tracker_{date}.json").write_text(json.dumps(results, indent=2))
return results
products = ["sony wh-1000xm5", "airpods pro 2", "samsung galaxy s25"]
tracked = track_products(products)
for item in tracked:
print(f"\n{item['product']}:")
for platform in PLATFORMS:
data = item.get(platform)
if data:
print(f" {platform}: ${data['price']} - {data['title'][:50]}")
else:
print(f" {platform}: not found")Exemple JavaScript
const API_KEY = "your_scavio_api_key";
const PLATFORMS = ["amazon", "walmart"];
async function getPrices(product) {
const prices = { product, checkedAt: new Date().toISOString() };
for (const platform of PLATFORMS) {
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 results = (await res.json()).organic ?? [];
const withPrice = results.filter((r) => r.price).sort((a, b) => a.price - b.price);
prices[platform] = withPrice[0] ? { price: withPrice[0].price, title: withPrice[0].title ?? "", link: withPrice[0].link ?? "" } : null;
}
return prices;
}
const products = ["sony wh-1000xm5", "airpods pro 2"];
for (const p of products) {
const data = await getPrices(p);
console.log(`\n${data.product}:`);
for (const pl of PLATFORMS) console.log(` ${pl}: ${data[pl] ? `$${data[pl].price}` : "not found"}`);
}Plateformes utilisées
Amazon
Recherche de produits avec prix, notes et avis
Walmart
Recherche de produits avec données de prix et d'exécution
Google Shopping
Résultats shopping avec prix multi-détaillants