Amazon Product Scraper ($0.5/1K) — URLs, Search & Details
Pricing
from $0.30 / 1,000 product scrapeds
Amazon Product Scraper ($0.5/1K) — URLs, Search & Details
$0.50/1K. Paste Amazon category or product URLs (or a keyword / ASIN) — numeric prices, Choice / Best Seller flags, Prime, ratings across 21 markets. A /dp/ link opens that product page (BSR, buy box, variants, estimated sales). Search enrich is optional. Monitor POSTs Slack/Zapier alerts.
Pricing
from $0.30 / 1,000 product scrapeds
Rating
5.0
(1)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
16
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
$0.50 / 1,000 products on Bronze (numeric prices, ratings, Prime, Choice / Best Seller flags — not just title/price/image). A product URL opens that /dp/ page. Search enrich is optional. Store URL: memo23/amazon-search.
Paste a category URL, a product URL, or a keyword — the same starting point buyers use on the Store’s default Amazon crawler, at a fraction of $4/1K. Each row is analysis-ready: numeric prices, real list prices, discounts, ratings, review counts, Choice / Best Seller / sponsored flags and Prime — across 21 marketplaces. A /dp/ link or bare ASIN fetches BSR, variants, buy box, bullets and estimated monthly sales. Turn on enrichDetails to do the same after a search crawl. Point the scheduler at the same input and monitor mode returns only new or changed products, so a price watch costs nothing on quiet days.
No Amazon account, no Product Advertising API key, no browser runtime.

Why use this Amazon scraper?
- 21 marketplaces — US, UK, DE, FR, IT, ES, CA, AU, JP, IN, NL, SE, PL, BE, AE, MX, TR, SG, BR, SA, EG. Prices come back in the marketplace currency with the ISO code attached. Several marketplaces can run in one job.
- Numbers, not strings —
priceValue,listPriceValue,discountPercentage,ratingValue,reviewsCountare parsed numerics; no spreadsheet cleanup. - SERP flags —
isAmazonChoice,isBestSeller,isSponsored,isPrime,positionOverall,prevPurchased,variantHint,fastDeliveryText. SetincludeSponsored: falseto drop ads after ranks are assigned. - Product URLs and ASINs open the product page — title, price, BSR, variants, buy box, bullets, images, stock and
estimatedMonthlySales. Same job as pasting/dp/into the official crawler. - Optional search enrich —
enrichDetails: truefetches/dp/for each listing-card ASIN after a category or keyword crawl. - Incremental monitoring — schedule the same input and receive only new ASINs and price/rating/review movements. Changed rows can POST to Slack / Zapier. Quiet days publish no billable rows.
- Cheap by construction — listing mode is one HTTP fetch per page (20–48 cards). Product-page fetches run for
/dp// ASIN inputs, or when enrich is on.
Overview
Built for e-commerce analysts, sellers, arbitrage hunters and price-tracking teams. Feed it product URLs, ASINs, category/best-seller URLs or keywords. A /dp/ or ASIN row is the product page; a search/category row is the listing card (plus the product page if enrichDetails is on).
Supported inputs
- Keywords —
"usb c cable"— runs a paginated search on every selected marketplace. - Bare ASINs —
"B082Z1YYRK"— opensamazon.{marketplace}/dp/ASIN. - Search URLs —
https://www.amazon.com/s?k=gaming+mouse&rh=...— any filters/sort the URL carries are kept. - Best-seller lists —
https://www.amazon.com/gp/bestsellers/electronics/172282. - Category browse pages —
https://www.amazon.de/b?node=3468301. - Product URLs —
https://www.amazon.com/dp/B082Z1YYRK— fetches that product page.
Not supported: seller storefront profile pages (use the Amazon Seller Contact Scraper) and review-thread text (use the Amazon Reviews Scraper). Search-result cards need enrichDetails: true for full PDP fields.
Use cases
| Who | What |
|---|---|
| E-commerce sellers | competitor & MAP price monitoring, repricing inputs |
| Arbitrage / deal hunters | discount discovery with real list-price math |
| Marketers & agencies | sponsored-vs-organic share of shelf, badge tracking |
| Product researchers | niche validation via monthly-bought + review velocity |
| Data teams | cross-marketplace price comparison feeds |
How it works
- Each query/URL is classified: product URLs and ASINs go to
/dp/; search, category and best-seller URLs stay on listing pages. - Pages are fetched in parallel over residential exit IPs matching the marketplace country (a
.depage from a DE exit, etc.). - Listing cards become typed rows (prices, rating, Choice / Best Seller / sponsored flags, rank). A product page becomes one full row (BSR, variants, buy box, sales estimate).
- Rows are deduped by ASIN per marketplace and capped by your
maxItems. - If
enrichDetailsis on, listing rows that are not already enriched get a/dp/fetch. - In monitor mode, rows are diffed against the named baseline and only changes are published; the baseline advances only after a fully clean scrape (fail-closed).
Input configuration
| Field | Type | Description |
|---|---|---|
startUrls | array | Category, search, best-seller or product /dp/ URL. A product URL fetches that page. Domain picks the marketplace. |
queries | array | Keywords or bare ASINs. Each entry crawls every selected marketplace. |
marketplaces | array | Marketplace TLDs: "com", "co.uk", "de", … Default ["com"]. Used by queries only. |
sortBy | string | relevance (default), price-asc, price-desc, rating, newest, bestSellers. |
minPrice / maxPrice | integer | Price bounds in the marketplace currency (keyword queries). |
primeOnly | boolean | Keep only cards Amazon marks as Prime (post-filter). |
brand | string | Keyword searches restricted to one brand (e.g. "Anker"). |
fourStarsAndUp | boolean | Keyword searches restricted to 4★+ (major marketplaces). |
deals | string | off (default), all-discounts, todays-deals (amazon.com). |
includeSponsored | boolean | Keep sponsored cards (default true). False drops them after ranks are assigned. |
enrichDetails | boolean | Fetch each /dp/ page for BSR, variants, buy box and sales estimates (default false). |
maxOffers | integer | Attach up to N marketplace offers on each product. 0 skips. |
maxProductVariantsAsSeparateResults | integer | Emit other variant ASINs as their own rows. 0 keeps them on the parent. |
scrapeProductVariantPrices | boolean | Write price onto each entry in variants[]. |
countryCode / zipCode | string | Delivery location (glow + cookie). Availability and ship-to prices follow this address when Amazon honours it. |
locationDeliverableRoutes | array | Apply zip on PRODUCT, SEARCH, and/or OFFERS. |
maxSearchPagesPerStartUrl | integer | Cap listing pages per URL (best-sellers still stop at 2). |
language | string | Accept-Language hint (en, de, …). |
proxyCountry | string | Override exit country. Leave empty to pin from the domain. |
maxItems | integer | Hard ceiling of product rows for the whole run. |
maxItemsPerQuery | integer | Per-query/per-URL row cap. One page yields ~20–48 rows. |
monitorMode | string | off (default), price-changes, all-changes. |
monitorName | string | Stable baseline name for a scheduled watch (e.g. "competitor-asins-us"). |
webhookUrl | string | Optional HTTPS endpoint — changed rows are POSTed as JSON on monitor runs with changes. |
concurrency | integer | Parallel page fetches (1–20, default 6). |
proxy | object | Optional override; leave unset for the built-in residential setup. |
Paste a category or product URL
{"startUrls": [{ "url": "https://www.amazon.com/s?k=keyboard" },{ "url": "https://www.amazon.com/dp/B0B3BVWJ6Y" }],"maxItems": 50}
Search by keyword
{"queries": ["usb c charger", "portable monitor"],"marketplaces": ["com", "de"],"sortBy": "bestSellers","minPrice": 10,"maxPrice": 250,"primeOnly": true,"brand": "Anker","fourStarsAndUp": true,"maxItems": 200}
Enrich from the product page (BSR, buy box, sales)
{"startUrls": [{ "url": "https://www.amazon.com/s?k=usb+c+cable" }],"enrichDetails": true,"includeSponsored": false,"maxItems": 30}
Monitor prices on a schedule
Use the same monitorName (and same queries/marketplaces/filters) on every scheduled run. The first run publishes the full baseline; later runs publish only new ASINs and price moves.
{"queries": ["B0C3HCD34R", "B082Z1YYRK"],"marketplaces": ["com"],"maxItems": 40,"monitorMode": "price-changes","monitorName": "competitor-asin-prices-us"}
all-changes additionally emits rating and review-count movement. The baseline is stored per monitorName in a named key-value store; a blocked or partial scrape never overwrites healthy state, and rows are published before the baseline advances, so a retry can duplicate an alert but never lose one.
Push alerts to Slack / Zapier / your backend
Add webhookUrl and every monitor run that finds changes POSTs them to your endpoint as JSON — no dataset polling, no Zapier-triggered actor runs. The first baseline run is never sent (you asked for changes, not the initial dump), and a webhook failure can only lose the ping, never the data (rows are already in the dataset).
{"queries": ["B0C3HCD34R"],"monitorMode": "price-changes","monitorName": "my-asin-watch","webhookUrl": "https://hooks.zapier.com/hooks/catch/123/abc"}
Payload: { "event": "amazon-products.changes", "monitorName", "runId", "datasetId", "totalChanges", "countsByChangeType", "rows": [...] } (rows capped at 500 per POST; truncated: true flags overflow).
Output overview
One dataset row per product card. Display strings (price, listPrice, monthlyBought) are kept alongside normalized numerics (priceValue, listPriceValue, monthlyBoughtValue). Fields Amazon omits from a card (typical for some variants or unavailable offers) are null, never fabricated.
Output sample
Keyword search "usb c cable" on amazon.com (trimmed):
{"asin": "B0CG1LGWR6","title": "LISEN USB C to USB C Cable, 240W Fast Charging Type C Charger Cord (6.6FT, 2Pack)","url": "https://www.amazon.com/dp/B0CG1LGWR6","price": "$8.99","priceValue": 8.99,"listPrice": "$9.99","listPriceValue": 9.99,"pricePerUnit": "$4.50","discountPercentage": 10.01,"onSale": true,"currencyCode": "USD","ratingValue": 4.6,"reviewsCount": 10214,"monthlyBought": "10K+","monthlyBoughtValue": 10000,"isPrime": false,"isSponsored": false,"isAmazonChoice": false,"isBestSeller": true,"positionOverall": 3,"badge": "Best Seller","page": 1,"position": 3,"imageUrl": "https://m.media-amazon.com/images/I/81afg0W0O8L._AC_UY218_.jpg","query": "usb c cable","marketplace": "amazon.com","scrapedAt": "2026-07-22T21:07:50.376Z"}
In monitor mode, changed rows additionally carry changeType, changedFields, previousPriceValue, priceDelta, priceDeltaPercentage, previousRatingValue and previousReviewsCount.
Key output fields
- Identity —
asin,title,url,imageUrl,marketplace,query,sourceUrl,scrapedAt - Pricing —
price/priceValue,listPrice/listPriceValue,pricePerUnit,discountPercentage,onSale,currencyCode,couponText - Social proof —
ratingValue,reviewsCount,monthlyBought/monthlyBoughtValue,badge,isAmazonChoice,isBestSeller - Placement —
page,position,positionOverall,isSponsored,isPrime,deliveryText,fastDeliveryText,prevPurchased,variantHint - Enrich (
enrichDetails) —brand,bestsellerRanks,variants,soldBy,shipsFrom,isFba,features,description,images,breadcrumbs,availability,inStock,estimatedMonthlySales,estimatedMonthlyRevenue - Monitoring —
changeType,changedFields,previousPriceValue,priceDelta,priceDeltaPercentage,previousRatingValue,previousReviewsCount
Pricing
| Plan | Per 1,000 products |
|---|---|
| Free | $1.00 |
| Bronze | $0.50 |
| Silver | $0.40 |
| Gold / Platinum / Diamond | $0.30 |
One small actor-start fee per run. Monitor runs that find no changes publish no billable rows. Each listing row includes numeric prices, ratings, Prime, Choice / Best Seller flags and marketplace. enrichDetails adds a product-details event at $1 / 1,000 enriched rows (live from 29 Sep 2026).
FAQ
Which URLs work? Search results, best-seller lists, category browse pages and product URLs on any of the 21 supported marketplaces (including Brazil, Saudi Arabia and Egypt). Seller storefront profiles are out of scope.
Does it fetch product-detail pages? Yes for /dp/ URLs and bare ASINs. Search and category crawls stay on listing cards unless enrichDetails is true. Review text and seller contact data stay on the dedicated actors.
Why is a price sometimes null? Amazon omits the price from some search cards — typically products with variants ("Options" cards), no featured offer, or offers unavailable in the marketplace region. The row still carries everything else.
Are monthly-bought numbers exact? No — Amazon publishes thresholds ("1K+", "10K+"). Both the raw string and the normalized floor value are returned.
How current is monitor-mode data? As current as your schedule. Each run re-scrapes live search pages and diffs against the stored baseline.
Do I need proxies? No — residential routing per marketplace country is built in. The optional proxy input exists only if you want to route through your own Apify proxy groups instead.
Support
- Issues tab of this actor for bugs and feature requests — response usually within 24h.
- Custom fields, exports or private variants: message via the actor's contact options.
- Finding the actor useful? A quick rating on this page genuinely helps other buyers find it — thank you! ⭐
Additional services
Need seller contact data behind these products, review threads, or a tailored feed (custom fields, delivery to S3/webhook/DB)? Open an issue or reach out — custom versions are a routine request.
Explore more scrapers
More e-commerce and lead-gen actors: apify.com/memo23 — including the Amazon Seller Contact Scraper (the sellers behind these products, with emails/VAT/ratings). Just want a quick sample? Try the Free Amazon Product Scraper — same engine, up to 50 rows per run, completely free.
🤖 For AI Agents & LLM Apps
Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/amazon-search).
Purpose: turn Amazon searches (keywords, ASINs, category/best-seller URLs) into typed product rows with numeric prices, discounts, ratings, Choice / Best Seller flags and rank across 21 marketplaces; optional enrichDetails adds BSR / sales estimates; optional monitor mode emits only changes.
Minimal input:
{ "startUrls": [{ "url": "https://www.amazon.com/s?k=usb+c+cable" }], "maxItems": 30 }
Keyword alternative: { "queries": ["usb c cable"], "marketplaces": ["com"], "maxItems": 30 }
Output: one dataset row per product — listing fields plus isAmazonChoice, isBestSeller, positionOverall (+ BSR / variants / buy box / estimatedMonthlySales when enrichDetails is true; + change fields in monitor mode).
Behaviors an agent should know:
- Always set
maxItems; an uncapped multi-query, multi-marketplace run can return thousands of rows. primeOnly,brand,fourStarsAndUp,dealsapply to keywordqueriesonly (Amazonrh=facets). Start URLs keep the filters already in the URL. A filter with no known id for that marketplace is skipped, not guessed.queriesandstartUrlsare additive — both run if both are set. Bare 10-char alphanumerics inqueriesopen that product page.monitorMode≠offkeeps a baseline keyed bymonitorName; the first run returns everything (changeType: "new"), later runs return only changes. Reuse the exact samemonitorName+ input for a watch.webhookUrl(optional) receives a JSON POST of changed rows on monitor runs with changes — push-style alerts without polling the dataset.includeSponsored: falsedrops ads afterpositionOverallis stamped.enrichDetails: truefetches each/dp/page after the listing crawl.- Billing: one
apify-default-dataset-itemevent per published row;enrichDetailsalso chargesproduct-detailsat $1/1K from 29 Sep 2026. Monitor runs with no changes publish nothing. priceValuecan benullon variant/optionless cards — handle it.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Amazon.com, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.
The scraper accesses only publicly available Amazon search-results and product pages — no authenticated endpoints, paid features, or content behind the Amazon login wall. Users are responsible for ensuring their use complies with Amazon's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.
SEO Keywords
amazon product scraper, scrape amazon products, amazon price scraper, amazon price monitoring, amazon search results scraper, amazon scraper without api, amazon product data extraction, amazon asin scraper, amazon deals scraper, amazon discount tracker, amazon price tracker, competitor price monitoring amazon, amazon best sellers scraper, amazon's choice scraper, amazon BSR scraper, amazon estimated monthly sales, amazon sponsored products data, amazon marketplace scraper, amazon brazil scraper, amazon de scraper, amazon uk scraper, e-commerce price intelligence, MAP monitoring amazon, amazon product research tool