Amazon Product Scraper & Change Monitor
Pricing
from $3.00 / 1,000 results
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
Maintained by CommunityActor 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
| Mode | Purpose |
|---|---|
products | Collect multiple ASINs and product URLs. |
search | Discover products from queries, search URLs, categories, or bestsellers. |
seller | Collect seller profiles and products belonging to their storefronts. |
compset | Compare one reference product with up to 50 competitors using price, stars, review count, and BSR differences. |
monitor | Repeat 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 inspectionseller: a successful seller profileerror: 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 recordChanges: onlychanged,new, and confirmed-missingproduct recordsErrors: only uncharged input, blocking, CAPTCHA, not-found, and parsing errorsSellers: 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
missingonly 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
monitorNamefrom 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
changedproducts 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 installnpm run checkdocker 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.