ScavioScavio
ProductPricingDocs
Sign InGet Started
  1. Home
  2. Workflows
  3. Walmart Price and Availability Alert Workflow
Workflow

Walmart Price and Availability Alert Workflow

Workflow that monitors Walmart product prices and availability daily, detects changes, and sends alerts for price drops, stock-outs, and new competitor listings.

Start FreeAPI Docs

Overview

Walmart sellers and arbitrage buyers need to track price movements and availability changes on the second-largest US e-commerce platform. This workflow searches Walmart daily for tracked products, compares against baseline prices, and sends alerts for significant price drops, out-of-stock events, and new competitor listings. Catch Walmart price changes within hours instead of days.

Trigger

Daily at 8 AM via cron.

Schedule

Daily 8 AM

Workflow Steps

1

Load Product Watchlist

Read the list of Walmart products to monitor: names, target prices, and baseline data.

2

Search Walmart for Each Product

Call Scavio with walmart platform for each product. Extract current price, availability, and seller info.

3

Compare Against Baseline

Check if price dropped below target, if stock changed, or if new sellers appeared.

4

Send Price Drop Alerts

For products with significant changes, send a Slack or email alert with the details.

5

Update Baseline

Save current prices and availability as the new baseline for tomorrow's comparison.

Python Implementation

Python
import requests, os, json
from pathlib import Path
from datetime import date

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

WATCHLIST = [
    {"name": "Dyson V15 Detect", "target_price": 550},
    {"name": "Apple AirPods Pro 2", "target_price": 180},
    {"name": "Samsung 65 inch OLED TV", "target_price": 1200},
]
BASELINE_FILE = Path("walmart_baseline.json")

def search_walmart(product: str) -> dict:
    resp = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers=H,
        json={"query": product, "platform": "walmart"},
        timeout=15,
    )
    results = resp.json().get("organic_results", [])
    if results:
        top = results[0]
        return {"title": top.get("title", ""), "price": top.get("price"), "rating": top.get("rating"), "in_stock": top.get("in_stock", True), "url": top.get("link", "")}
    return {}

def monitor_walmart():
    baseline = json.loads(BASELINE_FILE.read_text()) if BASELINE_FILE.exists() else {}
    alerts = []
    new_baseline = {}

    for item in WATCHLIST:
        result = search_walmart(item["name"])
        if not result:
            continue

        key = item["name"]
        new_baseline[key] = result
        prev = baseline.get(key, {})

        if result.get("price") and result["price"] <= item["target_price"]:
            alerts.append({"type": "PRICE_TARGET", "product": item["name"], "price": result["price"], "target": item["target_price"]})

        if prev.get("price") and result.get("price"):
            change = (result["price"] - prev["price"]) / prev["price"]
            if change <= -0.05:
                alerts.append({"type": "PRICE_DROP", "product": item["name"], "old": prev["price"], "new": result["price"], "change": f"{change:.1%}"})

        if prev.get("in_stock") and not result.get("in_stock"):
            alerts.append({"type": "OUT_OF_STOCK", "product": item["name"]})

    BASELINE_FILE.write_text(json.dumps(new_baseline, indent=2))
    return alerts

alerts = monitor_walmart()
print(f"Walmart monitoring: {len(alerts)} alerts")
for a in alerts:
    print(f"  [{a['type']}] {a['product']}: {json.dumps({k:v for k,v in a.items() if k not in ['type','product']})}")

JavaScript Implementation

JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const fs = await import('fs');

const WATCHLIST = [
  {name:'Dyson V15 Detect', targetPrice:550},
  {name:'Apple AirPods Pro 2', targetPrice:180},
  {name:'Samsung 65 inch OLED TV', targetPrice:1200},
];

async function searchWalmart(product) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query:product, platform:'walmart'})});
  const results = (await r.json()).organic_results || [];
  if (results.length) {
    const top = results[0];
    return {title:top.title||'', price:top.price, rating:top.rating, inStock:top.in_stock!==false, url:top.link||''};
  }
  return null;
}

async function monitorWalmart() {
  let baseline = {};
  try { baseline = JSON.parse(fs.readFileSync('walmart_baseline.json','utf8')); } catch {}
  const alerts = [];
  const newBaseline = {};
  for (const item of WATCHLIST) {
    const result = await searchWalmart(item.name);
    if (!result) continue;
    newBaseline[item.name] = result;
    const prev = baseline[item.name] || {};
    if (result.price && result.price <= item.targetPrice) alerts.push({type:'PRICE_TARGET', product:item.name, price:result.price, target:item.targetPrice});
    if (prev.price && result.price) {
      const change = (result.price - prev.price) / prev.price;
      if (change <= -0.05) alerts.push({type:'PRICE_DROP', product:item.name, old:prev.price, new:result.price, change:(change*100).toFixed(1)+'%'});
    }
    if (prev.inStock && !result.inStock) alerts.push({type:'OUT_OF_STOCK', product:item.name});
  }
  fs.writeFileSync('walmart_baseline.json', JSON.stringify(newBaseline, null, 2));
  return alerts;
}

const alerts = await monitorWalmart();
console.log('Walmart monitoring: '+alerts.length+' alerts');
for (const a of alerts) console.log('  ['+a.type+'] '+a.product);

Platforms Used

Walmart

Product search with pricing and fulfillment data

Frequently Asked Questions

Walmart sellers and arbitrage buyers need to track price movements and availability changes on the second-largest US e-commerce platform. This workflow searches Walmart daily for tracked products, compares against baseline prices, and sends alerts for significant price drops, out-of-stock events, and new competitor listings. Catch Walmart price changes within hours instead of days.

This workflow uses a daily at 8 am via cron.. Daily 8 AM.

This workflow uses the following Scavio platforms: walmart. Each platform is called via the same unified API endpoint.

Yes. Scavio's free tier includes 50 credits on signup with no credit card required. That is enough to test and validate this workflow before scaling it.

Walmart Price and Availability Alert Workflow

Workflow that monitors Walmart product prices and availability daily, detects changes, and sends alerts for price drops, stock-outs, and new competitor listings.

Get Your API KeyRead the Docs
ScavioScavio

Real-time search API for AI agents. Search every platform, not just Google.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative

Tools

  • JSON Formatter
  • cURL to Code
  • Token Counter
  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy