Solution

Monitor Competitor Pricing Across Marketplaces

Ecommerce sellers manually check competitor prices on Amazon and Walmart. By the time they notice a competitor dropped their price, they have already lost the Buy Box or sales velo

The Problem

Ecommerce sellers manually check competitor prices on Amazon and Walmart. By the time they notice a competitor dropped their price, they have already lost the Buy Box or sales velocity for days. Manual checks do not scale past 20 products.

The Scavio Solution

Set up automated competitor price monitoring that checks pricing across Amazon, Walmart, and Google Shopping daily. Alert on changes above a threshold. At $0.005/query, monitoring 100 competitor products across 2 platforms costs $1/day.

Before

Manually checking 20 competitor products weekly. Missing price drops that cost Buy Box placement for 3-5 days before noticing.

After

Automated daily checks on 100 competitor products across 2 platforms for $1/day. Price drop alerts trigger within hours, not days.

Who It Is For

Ecommerce sellers and pricing analysts who need to react to competitor price changes within hours, not days.

Key Benefits

  • Daily price monitoring for $1/day (100 products x 2 platforms)
  • Automated alerts on price changes above threshold
  • Cross-marketplace price comparison
  • Historical price tracking for trend analysis
  • React to competitor price changes within hours

Python Example

Python
import requests, os, json
from pathlib import Path

API_KEY = os.environ["SCAVIO_API_KEY"]
THRESHOLD = 0.05  # 5% price change triggers alert

def check_competitor(query: str, platform: str) -> dict:
    resp = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
        json={"query": query, "platform": platform},
        timeout=15,
    )
    data = resp.json()
    top = data.get("organic_results", [{}])[0] if data.get("organic_results") else {}
    return {"title": top.get("title", ""), "price": top.get("price"), "url": top.get("link", "")}

def run_monitor():
    competitors = json.loads(Path("competitors.json").read_text())
    baseline = json.loads(Path("baseline.json").read_text()) if Path("baseline.json").exists() else {}
    alerts = []
    for comp in competitors:
        for platform in comp.get("platforms", ["amazon"]):
            result = check_competitor(comp["query"], platform)
            key = f"{comp['slug']}_{platform}"
            current_price = result.get("price")
            previous_price = baseline.get(key)
            if current_price and previous_price:
                change = abs(current_price - previous_price) / previous_price
                if change >= THRESHOLD:
                    alerts.append({"product": comp["query"], "platform": platform, "old": previous_price, "new": current_price, "change_pct": round(change * 100, 1)})
            if current_price:
                baseline[key] = current_price
    Path("baseline.json").write_text(json.dumps(baseline, indent=2))
    if alerts:
        print(f"{len(alerts)} price alerts:")
        for a in alerts:
            print(f"  {a['product']} ({a['platform']}): {a['old']} -> {a['new']} ({a['change_pct']}%)")

run_monitor()

JavaScript Example

JavaScript
const fs = require('fs');
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function checkCompetitor(query, platform) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query, platform})});
  const d = await r.json();
  const top = (d.organic_results||[])[0]||{};
  return {title:top.title, price:top.price, url:top.link};
}
const competitors = JSON.parse(fs.readFileSync('competitors.json','utf8'));
const baseline = fs.existsSync('baseline.json') ? JSON.parse(fs.readFileSync('baseline.json','utf8')) : {};
for (const c of competitors) {
  for (const p of c.platforms||['amazon']) {
    const r = await checkCompetitor(c.query, p);
    const key = c.slug+'_'+p;
    if (r.price && baseline[key] && Math.abs(r.price-baseline[key])/baseline[key] > 0.05) console.log('ALERT: '+c.query+' '+p+': '+baseline[key]+'->'+r.price);
    if (r.price) baseline[key] = r.price;
  }
}
fs.writeFileSync('baseline.json', JSON.stringify(baseline,null,2));

Platforms Used

Amazon

Product search with prices, ratings, and reviews

Walmart

Product search with pricing and fulfillment data

Google Shopping

Shopping results with multi-retailer pricing

Frequently Asked Questions

Ecommerce sellers manually check competitor prices on Amazon and Walmart. By the time they notice a competitor dropped their price, they have already lost the Buy Box or sales velocity for days. Manual checks do not scale past 20 products.

Set up automated competitor price monitoring that checks pricing across Amazon, Walmart, and Google Shopping daily. Alert on changes above a threshold. At $0.005/query, monitoring 100 competitor products across 2 platforms costs $1/day.

Ecommerce sellers and pricing analysts who need to react to competitor price changes within hours, not days.

Yes. Scavio's free tier includes 250 credits per month with no credit card required. That is enough to validate this solution in your workflow.

Monitor Competitor Pricing Across Marketplaces

Set up automated competitor price monitoring that checks pricing across Amazon, Walmart, and Google Shopping daily. Alert on changes above a threshold. At $0.005/query, monitoring