ScavioScavio
FeaturesPricingDocs
Sign InGet Started
  1. Home
  2. Tutorials
  3. How to Monitor Amazon Prices Across Multiple ASINs
Tutorial

How to Monitor Amazon Prices Across Multiple ASINs

Build an Amazon price monitoring script in Python using the Scavio API. Poll multiple ASINs on a schedule and alert when prices drop below a threshold.

Get Free API KeyAPI Docs

Price monitoring across Amazon ASINs is essential for e-commerce sellers, deal hunters, and market intelligence teams. Direct scraping of Amazon product pages triggers bot detection quickly and requires constant maintenance. The Scavio API provides a stable product endpoint that returns current price, rating, review count, and availability for any ASIN. This tutorial builds a polling script that checks a list of ASINs, compares prices against stored baselines, and prints an alert when a price drops below a configured threshold.

Prerequisites

  • Python 3.8 or higher
  • requests library installed
  • A Scavio API key
  • A list of Amazon ASINs to monitor

Walkthrough

Step 1: Define your ASIN watchlist

Create a dictionary mapping ASINs to target price thresholds. The script will alert when the live price falls at or below the threshold.

Python
WATCHLIST = {
    "B09G9FPHY6": {"name": "Echo Dot 5th Gen", "threshold": 35.0},
    "B07FZ8S74R": {"name": "Fire TV Stick 4K", "threshold": 25.0},
}

Step 2: Fetch the current price for an ASIN

POST to the Scavio endpoint with platform amazon and the ASIN as the query. The response includes a price field under the product object.

Python
def get_amazon_price(asin: str) -> dict:
    response = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": "amazon", "query": asin, "marketplace": "US"}
    )
    response.raise_for_status()
    return response.json()

Step 3: Compare price against the threshold

Extract the current price from the response and compare it to the stored threshold. Handle missing or None prices gracefully.

Python
def check_price(asin: str, meta: dict, data: dict) -> None:
    product = data.get("product", {})
    price_str = product.get("price", "")
    if not price_str:
        return
    price = float(price_str.replace("$", "").replace(",", ""))
    if price <= meta["threshold"]:
        print(f"ALERT: {meta['name']} is ${price} (threshold ${meta['threshold']})")

Step 4: Run the monitoring loop

Iterate over all ASINs, fetch prices, and check thresholds. Sleep between polls to stay within rate limits.

Python
import time

while True:
    for asin, meta in WATCHLIST.items():
        data = get_amazon_price(asin)
        check_price(asin, meta, data)
    print("Cycle complete. Sleeping 3600s...")
    time.sleep(3600)

Python Example

Python
import os
import time
import requests

API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"

WATCHLIST = {
    "B09G9FPHY6": {"name": "Echo Dot 5th Gen", "threshold": 35.0},
    "B07FZ8S74R": {"name": "Fire TV Stick 4K", "threshold": 25.0},
}

def get_price(asin: str) -> float | None:
    r = requests.post(
        ENDPOINT,
        headers={"x-api-key": API_KEY},
        json={"platform": "amazon", "query": asin, "marketplace": "US"}
    )
    r.raise_for_status()
    price_str = r.json().get("product", {}).get("price", "")
    if price_str:
        return float(price_str.replace("$", "").replace(",", ""))
    return None

def monitor():
    for asin, meta in WATCHLIST.items():
        price = get_price(asin)
        if price and price <= meta["threshold"]:
            print(f"[ALERT] {meta['name']}: ${price}")
        else:
            print(f"[OK] {meta['name']}: ${price}")

if __name__ == "__main__":
    while True:
        monitor()
        time.sleep(3600)

JavaScript Example

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";

const WATCHLIST = {
  "B09G9FPHY6": { name: "Echo Dot 5th Gen", threshold: 35.0 },
  "B07FZ8S74R": { name: "Fire TV Stick 4K", threshold: 25.0 },
};

async function getPrice(asin) {
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ platform: "amazon", query: asin, marketplace: "US" })
  });
  const data = await res.json();
  const priceStr = data?.product?.price || "";
  return priceStr ? parseFloat(priceStr.replace(/[$,]/g, "")) : null;
}

async function monitor() {
  for (const [asin, meta] of Object.entries(WATCHLIST)) {
    const price = await getPrice(asin);
    if (price !== null && price <= meta.threshold) {
      console.log(`[ALERT] ${meta.name}: $${price}`);
    } else {
      console.log(`[OK] ${meta.name}: $${price}`);
    }
  }
}

monitor().catch(console.error);

Expected Output

JSON
{
  "product": {
    "asin": "B09G9FPHY6",
    "title": "Echo Dot (5th Gen)",
    "price": "$29.99",
    "original_price": "$49.99",
    "rating": "4.7",
    "reviews_count": 284521,
    "availability": "In Stock",
    "marketplace": "US"
  }
}

Related Tutorials

  • How to Build a Price Comparison Tool for Amazon and Walmart
  • How to Get Amazon Product Reviews via API

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

Python 3.8 or higher. requests library installed. A Scavio API key. A list of Amazon ASINs to monitor. A Scavio API key gives you 250 free credits per month.

Yes. The free tier includes 250 credits per month, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Related Resources

Best Of

Best API for Cross-Platform Price Monitoring in 2026

Read more
Best Of

Best E-Commerce Price Tracking API in 2026

Read more
Use Case

Cross-Platform Price Monitoring

Read more
Use Case

Cross-Platform Product Price Monitoring

Read more
Workflow

Daily Amazon Product Price Monitor

Read more
Solution

Monitor Competitor Pricing Across Marketplaces

Read more

Start Building

Build an Amazon price monitoring script in Python using the Scavio API. Poll multiple ASINs on a schedule and alert when prices drop below a threshold.

Get Free 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