Skip to main content
Thirdwatchthirdwatch
E-commerce & products

Monitor Amazon Competitor Prices and Ratings (2026)

Create an incremental Amazon search monitor for price, rating, and review-count changes, with ready-to-alert deltas.

Apr 27, 2026 · 3 min read · 602 words
See the scraper →

Thirdwatch's Amazon Product Scraper includes native incremental monitoring. The first run stores a baseline; later runs emit only new products or available price, rating, and review-count changes. That means fewer paid output records and less downstream diff code.

▶ Skip the setup: Run the competitor price-monitor Task on Apify →

Choose the monitoring mode

Mode Emits after baseline Best for
off Every captured search result Full snapshots and one-time research
price-changes New ASINs and available numeric-price changes Promotion and competitor-price alerts
all-changes New ASINs plus available price, rating, or review-count changes Broader product-momentum monitoring

Amazon sometimes omits a price, rating, or Prime label from a search card. The monitor ignores a missing current value rather than interpreting it as zero, unavailable stock, or a material change.

Configure a stable price monitor

{
  "queries": ["wireless earbuds", "noise cancelling headphones"],
  "country": "us",
  "category": "electronics",
  "sortBy": "relevance",
  "maxResults": 100,
  "monitorMode": "price-changes",
  "monitorStoreName": "amazon-audio-competitors"
}

Schedule exactly this input daily or hourly. The store name isolates the baseline from other monitors. If you omit it, the Actor derives a stable name from the complete input configuration.

The Actor publishes a successful monitored batch before advancing the baseline. If the first search page is challenged, returns no usable cards, or a later page is incomplete, it fails closed and does not silently replace good state with an empty or partial snapshot.

Read a change record

{
  "asin": "B07ABC1234",
  "title": "Wireless Noise Cancelling Headphones",
  "price": "$79.99",
  "price_value": 79.99,
  "rating_value": 4.4,
  "reviews_count_value": 3812,
  "change_type": "changed",
  "changed_fields": ["price_value"],
  "previous_price_value": 99.99,
  "price_delta": -20.0,
  "price_delta_percentage": -20.0,
  "domain": "amazon.com",
  "scraped_at": "2026-07-20T08:15:00+00:00"
}

For a newly discovered result, change_type is new. In all-changes mode, the same row may also include previous_rating_value, rating_delta, previous_reviews_count_value, and reviews_count_delta.

Send only meaningful alerts

import os
import requests

run = requests.post(
    "https://api.apify.com/v2/acts/thirdwatch~amazon-product-scraper/run-sync-get-dataset-items",
    params={"token": os.environ["APIFY_TOKEN"]},
    json={
        "queries": ["wireless earbuds", "noise cancelling headphones"],
        "country": "us",
        "category": "electronics",
        "maxResults": 100,
        "monitorMode": "price-changes",
        "monitorStoreName": "amazon-audio-competitors",
    },
    timeout=3600,
)
run.raise_for_status()

for row in run.json():
    pct = row.get("price_delta_percentage")
    if pct is not None and pct <= -10:
        requests.post(
            os.environ["SLACK_WEBHOOK_URL"],
            json={"text": f"Amazon price drop: {row['title']} {pct:.1f}% → {row['price']}\n{row['url']}"},
            timeout=15,
        ).raise_for_status()

This alert checks an actual numeric delta. It does not infer stock or availability from a missing price.

Monitoring specific ASINs: an important limitation

The input is Amazon search, not a product-detail endpoint. Supplying an ASIN as a query often surfaces that product, but search behavior is not a contractual direct lookup. Always verify row["asin"] matches your target, and expect no row when Amazon suppresses or substitutes the result.

For guaranteed product-detail tracking, seller/Buy Box history, stock, variants, BSR, coupons, or complete offer data, use a dedicated product-detail source such as Keepa or another Actor designed for those fields. The Thirdwatch Actor is optimized for broad, low-cost search-shelf monitoring across 19 marketplaces.

Operational safeguards

  1. Keep query, country, filters, sort, limit, mode, and store name unchanged between comparable runs.
  2. Separate countries because price and currency differ by marketplace; group records by (asin, domain).
  3. Treat monthly_bought_value as a published lower bound, not exact unit sales.
  4. Keep is_sponsored separate from organic placement analysis.
  5. Use thresholds appropriate to your category; no single percentage is universally meaningful.

Related Amazon workflows

Run the Amazon Product Scraper on Apify or use the ready-made monitoring Task above.

Frequently asked questions

Can I monitor a specific Amazon ASIN?

You can use an ASIN as the search query, but Amazon search may omit, reorder, or substitute results. Confirm the returned ASIN before acting. This Actor does not fetch product-detail URLs directly.

What changes does native monitoring detect?

Price-changes mode emits new products and available numeric-price changes. All-changes mode also detects available rating and review-count changes. The output includes previous values and deltas. Missing current search-card values do not create false disappearance alerts.

Does it track stock, seller, Buy Box, or BSR?

No. Those are product-detail or offer-listing fields and are intentionally not claimed. Use a dedicated detail-data provider when those fields are required.

How often should I schedule it?

Daily is a practical default. Use a shorter cadence for active promotions and weekly for slow-moving categories. Keep inputs and the monitoring store name stable between runs.

Related

Try it yourself

100 free credits, no credit card.

About 30 real searches. Add the MCP to Claude or Cursor in two minutes.