ecommercepricingtracking

E-commerce Price Tracking Across Platforms

Track product prices across Amazon, Walmart, eBay, and Google Shopping. Single API returns structured pricing data for automated repricing and alerts.

9 min

Tracking product prices across Amazon, Walmart, and Google Shopping simultaneously requires either three separate tools or a single multi-platform API. For e-commerce sellers managing 50+ products, the single-API approach reduces integration complexity and costs $0.015 per product per platform check (three platforms per product at $0.005/credit each).

The Cross-Platform Price Problem

Amazon sellers need Walmart pricing to stay competitive on shared products. Walmart sellers need Amazon pricing for the same reason. Both need Google Shopping data to understand how comparison shoppers see their products. Keepa covers Amazon ($19/mo) but nothing else. Prisync covers multiple retailers ($99/mo for 100 products) but is dashboard-focused with limited API access. Most solutions force you into either single-platform depth or expensive multi-platform dashboards.

Building a Cross-Platform Price Tracker

Python
import os, json, requests
from datetime import date

API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY, "Content-Type": "application/json"}

def get_prices(product, platforms=None):
    if platforms is None:
        platforms = ["amazon", "walmart"]
    results = {}
    for p in platforms:
        res = requests.post("https://api.scavio.dev/api/v1/search",
            headers=H, json={"query": product, "platform": p})
        data = res.json()
        items = data.get("organic_results", [])
        prices = []
        for item in items[:3]:
            price = item.get("extracted_price") or item.get("price")
            if price:
                prices.append({
                    "title": item.get("title", "")[:60],
                    "price": price,
                    "link": item.get("link", ""),
                })
        results[p] = prices
    return results

watchlist = [
    "Apple AirPods Pro 2",
    "Dyson V15 Detect",
    "Ninja Creami ice cream maker",
    "Stanley 40oz tumbler",
]

for product in watchlist:
    prices = get_prices(product)
    print(f"\n{product}")
    for platform, items in prices.items():
        if items:
            best = min(items, key=lambda x: x["price"])
            print(f"  {platform:>10}: ${best['price']:.2f} - {best['title'][:40]}")
        else:
            print(f"  {platform:>10}: No price found")

total_credits = len(watchlist) * 2
print(f"\nTotal cost: ${total_credits * 0.005:.2f} ({total_credits} credits)")

Daily Alert Pipeline

Python
import json, os, requests
from datetime import date

API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY, "Content-Type": "application/json"}

def daily_price_check(watchlist_file="watchlist.json",
                      baseline_file="price_baseline.json"):
    with open(watchlist_file) as f:
        watchlist = json.load(f)
    try:
        with open(baseline_file) as f:
            baseline = json.load(f)
    except FileNotFoundError:
        baseline = {}

    alerts = []
    for item in watchlist:
        for platform in item.get("platforms", ["amazon", "walmart"]):
            key = f"{item['slug']}_{platform}"
            res = requests.post("https://api.scavio.dev/api/v1/search",
                headers=H, json={"query": item["query"], "platform": platform})
            prices = [r.get("extracted_price") for r in
                      res.json().get("organic_results", [])[:3]
                      if r.get("extracted_price")]
            if not prices:
                continue
            current = min(prices)
            previous = baseline.get(key)
            if previous and current < previous * 0.95:
                alerts.append({
                    "product": item["query"],
                    "platform": platform,
                    "previous": previous,
                    "current": current,
                    "drop_pct": round((1 - current / previous) * 100, 1),
                })
            baseline[key] = current

    with open(baseline_file, "w") as f:
        json.dump(baseline, f, indent=2)

    for a in alerts:
        print(f"PRICE DROP: {a['product']} on {a['platform']}: "
              f"${a['previous']:.2f} -> ${a['current']:.2f} (-{a['drop_pct']}%)")
    return alerts

When Dedicated Tools Win

Keepa ($19/mo) provides Amazon price history charts, sales rank tracking, and Buy Box monitoring that SERP-based approaches cannot match. If your business is Amazon-only, Keepa is the right tool.

Prisync ($99/mo for 100 products) offers automatic competitor detection and dynamic pricing suggestions. For e-commerce teams that need pricing recommendations rather than raw data, Prisync's dashboard approach saves development time.

The SERP-based approach wins when: you need cross-platform coverage without multiple subscriptions, your product count exceeds what dashboard tools allow (100+ products), you want raw data in your own pipeline (n8n, cron, agent workflow), or your budget is under $20/month for price monitoring. At $0.005/credit, monitoring 100 products across 2 platforms daily costs $1/day = $30/month.