Amazon Product Scraper & Change Monitor avatar

Amazon Product Scraper & Change Monitor

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Amazon Product Scraper & Change Monitor

Amazon Product Scraper & Change Monitor

Scrape Amazon products, search results, categories, bestsellers, sellers, and competitor sets across 19 marketplaces. Run one-time collection or deterministic change monitoring with structured outputs, uncharged error records, and optional change webhooks.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

KIM SK

KIM SK

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 days ago

Last modified

Categories

Share

Bulk Amazon collection and deterministic change monitoring for Apify. The Actor uses HTTP collection first and retries blocked or incomplete pages with Playwright. It does not call an AI model, solve CAPTCHAs, or generate quality, fraud, or risk judgments.

This Actor is independently developed and is not affiliated with, endorsed by, or sponsored by Amazon.

Quick start

The Store example searches Amazon.com for laptop and returns one detailed product. Replace the query or select another input mode for your own run.

{
"mode": "search",
"queries": ["laptop"],
"marketplaces": ["amazon.com"],
"maxItems": 1,
"maxItemsPerSource": 1,
"maxSearchPages": 1,
"maxConcurrency": 1
}

The Store form uses this as a prefill example only. API and Task runs still use the input you provide together with the schema defaults.

What it collects

  • Product pages from ASINs and URLs
  • Search, category, and bestseller listings with rank and placement
  • Seller storefronts and their products
  • A reference product and up to 50 competitors with numeric differences
  • Repeated snapshots and deterministic changes across all source types

Supported marketplaces:

amazon.com, amazon.co.uk, amazon.in, amazon.de, amazon.fr, amazon.es, amazon.it, amazon.ca, amazon.co.jp, amazon.com.au, amazon.com.br, amazon.com.mx, amazon.nl, amazon.sg, amazon.sa, amazon.ae, amazon.pl, amazon.se, amazon.com.be

Modes

ModePurpose
productsCollect multiple ASINs and product URLs.
searchDiscover products from queries, search URLs, categories, or bestsellers.
sellerCollect seller profiles and products belonging to their storefronts.
compsetCompare one reference product with up to 50 competitors using price, stars, review count, and BSR differences.
monitorRepeat any supported product, listing, or seller input and compare it with saved state. monitorName is required.

Example monitor input:

{
"mode": "monitor",
"monitorName": "coffee-grinders-us",
"queries": ["burr coffee grinder"],
"marketplaces": ["amazon.com"],
"maxItems": 100,
"scrapeProductDetails": true,
"captureScreenshotOnChange": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

The input editor documents all limits and optional fields. Residential Apify Proxy is the default. Proxy country follows the marketplace unless proxyCountry is set. A user-provided proxyConfiguration replaces the default.

Junglee compatibility

The Actor accepts categoryOrProductUrls, maxItemsPerStartUrl, maxProductVariantsAsSeparateResults, and scrapeProductVariantPrices. Set outputProfile to compat to retain Junglee's public field names and money shape ({ value, currency }). Monitoring metadata is added under _monitor.

Results

The default Dataset contains:

  • product: a successful product inspection
  • seller: a successful seller profile
  • error: an uncharged failure such as CAPTCHA, blocking, not found, or parsing failure

Successful product states are snapshot, unchanged, changed, new, or missing. Product records include current, previous, changes, fieldStatus, source details, and the inspection time. A field marked parse_failed retains its last good value and is not reported as a change.

Every run creates four run-scoped Datasets with direct output links:

  • All results: every product, seller, and uncharged error record
  • Changes: only changed, new, and confirmed-missing product records
  • Errors: only uncharged input, blocking, CAPTCHA, not-found, and parsing errors
  • Sellers: only successful seller profiles

The non-default Datasets follow the run's retention policy rather than creating persistent named storage. A record mirrored from All results into Changes or Sellers is charged only once. The default Key-Value Store record OUTPUT contains the exact Dataset URLs together with counts, truncation, billing, and webhook delivery status.

Monitoring rules

  • The first successful inspection becomes snapshot.
  • A product first discovered by an already-established listing becomes new.
  • Numbers, currencies, whitespace, tracking parameters, and set-like arrays are normalized before comparison.
  • Price, seller, availability, title, bullets, images, variants, BSR, and search rank can produce changes.
  • A listing product becomes missing only after two consecutive complete runs do not contain it.
  • A blocked, truncated, or partially parsed source does not update the source baseline or confirm missing products.
  • A queue-backed lease prevents two runs with the same user and monitorName from running concurrently.
  • The result is stored and the PPE event succeeds before monitor state is committed. A crash can therefore repeat an event, but cannot silently move the baseline past an undelivered result.
  • Change webhooks accept HTTPS only, use a stable event ID, and retry transient failures three times.
  • Optional screenshots are captured only for changed products and stored in the run Key-Value Store.

Charging and platform costs

Successful visible product and seller records use the custom PPE event result. This includes unchanged product checks because they remain visible Dataset results. Errors, CAPTCHAs, invalid pages, and failed runs do not use the event.

The Actor intentionally does not use the automatic apify-default-dataset-item event or a paid Actor-start event. When the user's maximum charge is reached, new useful work stops and the completed results plus OUTPUT summary remain available.

The commercial setting is PPE with platform usage passed through. The custom result event costs $0.003 per successful result ($3 per 1,000 results). Compute, residential proxy traffic, storage, and other Apify platform usage are charged separately to the Actor user, not absorbed by the developer. Platform usage already consumed can still be charged when a page is blocked or a result fails, even though the failed result itself does not trigger the creator's result fee.

The Actor has no paid start event. The Store form includes a bounded laptop search example so a new user can run one product immediately. Replace it with at least one ASIN, URL, query, seller, or comparison target for real work. A targetless input fails validation before scraping and does not trigger the creator's result fee.

Development

Requirements: Node.js 22 or later, npm, and Docker for container validation.

npm install
npm run check
docker build -t amazon-product-scraper-change-monitor .

For a direct local run, place input in storage/key_value_stores/default/INPUT.json and run:

$npm start

The default residential proxy configuration needs valid Apify credentials. For parser-only local experiments, explicitly set proxyConfiguration to { "useApifyProxy": false }.

Reliability boundary

Amazon can vary markup, availability, rank, price, seller, delivery, and returned offers by location and time. A successful run proves what was visible for that run; it does not guarantee that Amazon will return the same page or values later. The Actor does not bypass CAPTCHAs or certify product quality, seller trustworthiness, legal compliance, or purchasing decisions.