The Problem
Dropshippers need to track product prices across Amazon, Walmart, and Google Shopping simultaneously. Price changes on any platform affect margins and competitiveness. Manual price checking across 50-100 products on 3 platforms is 150-300 manual checks daily, which is impractical. Existing price monitoring tools either cover only one platform or charge enterprise pricing for multi-platform access.
The Scavio Solution
Build a price monitoring pipeline that queries Scavio for the same products across Amazon, Walmart, and Google, compares prices, detects changes from previous day, and alerts on margin-affecting price moves. The pipeline runs daily at $0.005/query, costing $0.015 per product per day across 3 platforms. Monitor 100 products daily for $1.50/day ($45/month).
Before
Before the monitor, price checking was manual and inconsistent. The seller checked Amazon daily but Walmart only weekly. Price changes on Walmart were caught 3-7 days late, resulting in multiple orders sold at negative margins before prices were updated.
After
After building the monitor, all 3 platforms are checked daily for every product. Price changes trigger email alerts within 24 hours. The daily report shows margin calculations per product per platform, enabling immediate pricing adjustments.
Who It Is For
Dropshippers and ecommerce sellers who need multi-platform price monitoring without enterprise tool subscriptions. Amazon/Walmart sellers tracking competitor pricing across platforms.
Key Benefits
- Daily price tracking across Amazon, Walmart, and Google Shopping
- Automated margin calculation based on current multi-platform prices
- Price change alerts within 24 hours across all platforms
- Historical price data for trend analysis and seasonal planning
- 100 products across 3 platforms monitored for $45/month
Python Example
import requests
import json
from pathlib import Path
from datetime import datetime
API_KEY = "your_scavio_api_key"
def check_price(product: str, platform: str) -> dict:
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", [])
if results and results[0].get("price"):
return {"found": True, "price": results[0]["price"], "title": results[0].get("title", ""), "link": results[0].get("link", "")}
return {"found": False}
def monitor_product(product: str) -> dict:
platforms = ["amazon", "walmart", "google"]
prices = {}
for p in platforms:
result = check_price(product, p)
if result["found"]:
prices[p] = {"price": result["price"], "title": result["title"][:80]}
lowest = min(prices.items(), key=lambda x: float(str(x[1]["price"]).replace("$", "").replace(",", ""))) if prices else None
return {"product": product, "prices": prices, "cheapest_platform": lowest[0] if lowest else None}
def daily_price_report(products: list[str]) -> dict:
date = datetime.utcnow().strftime("%Y-%m-%d")
results = [monitor_product(p) for p in products]
report = {"date": date, "products_checked": len(products), "results": results}
Path(f"prices_{date}.json").write_text(json.dumps(report, indent=2))
for r in results:
prices_str = " | ".join(f"{p}: ${v['price']}" for p, v in r["prices"].items())
print(f"{r['product'][:40]}: {prices_str}")
return report
daily_price_report(["wireless earbuds", "portable charger", "phone case"])JavaScript Example
const API_KEY = "your_scavio_api_key";
async function checkPrice(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 results = (await res.json()).organic ?? [];
if (results[0]?.price) return { found: true, price: results[0].price, title: (results[0].title ?? "").slice(0, 80) };
return { found: false };
}
async function monitorProduct(product) {
const prices = {};
for (const p of ["amazon", "walmart", "google"]) {
const result = await checkPrice(product, p);
if (result.found) prices[p] = { price: result.price, title: result.title };
}
return { product, prices };
}
const products = ["wireless earbuds", "portable charger", "phone case"];
for (const p of products) {
const result = await monitorProduct(p);
const priceStr = Object.entries(result.prices).map(([k, v]) => `${k}: $${v.price}`).join(" | ");
console.log(`${p}: ${priceStr || "no prices found"}`);
}Platforms Used
Amazon
Product search with prices, ratings, and reviews
Walmart
Product search with pricing and fulfillment data
Web search with knowledge graph, PAA, and AI overviews