Amazon Product Scraper ($0.5/1K) — URLs, Search & Details avatar

Amazon Product Scraper ($0.5/1K) — URLs, Search & Details

Pricing

from $0.30 / 1,000 product scrapeds

Go to Apify Store
Amazon Product Scraper ($0.5/1K) — URLs, Search & Details

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

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

16

Total users

1

Monthly active users

13 hours ago

Last modified

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.

How it works

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 stringspriceValue, listPriceValue, discountPercentage, ratingValue, reviewsCount are parsed numerics; no spreadsheet cleanup.
  • SERP flagsisAmazonChoice, isBestSeller, isSponsored, isPrime, positionOverall, prevPurchased, variantHint, fastDeliveryText. Set includeSponsored: false to 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 enrichenrichDetails: true fetches /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" — opens amazon.{marketplace}/dp/ASIN.
  • Search URLshttps://www.amazon.com/s?k=gaming+mouse&rh=... — any filters/sort the URL carries are kept.
  • Best-seller listshttps://www.amazon.com/gp/bestsellers/electronics/172282.
  • Category browse pageshttps://www.amazon.de/b?node=3468301.
  • Product URLshttps://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

WhoWhat
E-commerce sellerscompetitor & MAP price monitoring, repricing inputs
Arbitrage / deal huntersdiscount discovery with real list-price math
Marketers & agenciessponsored-vs-organic share of shelf, badge tracking
Product researchersniche validation via monthly-bought + review velocity
Data teamscross-marketplace price comparison feeds

How it works

  1. Each query/URL is classified: product URLs and ASINs go to /dp/; search, category and best-seller URLs stay on listing pages.
  2. Pages are fetched in parallel over residential exit IPs matching the marketplace country (a .de page from a DE exit, etc.).
  3. 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).
  4. Rows are deduped by ASIN per marketplace and capped by your maxItems.
  5. If enrichDetails is on, listing rows that are not already enriched get a /dp/ fetch.
  6. 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

FieldTypeDescription
startUrlsarrayCategory, search, best-seller or product /dp/ URL. A product URL fetches that page. Domain picks the marketplace.
queriesarrayKeywords or bare ASINs. Each entry crawls every selected marketplace.
marketplacesarrayMarketplace TLDs: "com", "co.uk", "de", … Default ["com"]. Used by queries only.
sortBystringrelevance (default), price-asc, price-desc, rating, newest, bestSellers.
minPrice / maxPriceintegerPrice bounds in the marketplace currency (keyword queries).
primeOnlybooleanKeep only cards Amazon marks as Prime (post-filter).
brandstringKeyword searches restricted to one brand (e.g. "Anker").
fourStarsAndUpbooleanKeyword searches restricted to 4★+ (major marketplaces).
dealsstringoff (default), all-discounts, todays-deals (amazon.com).
includeSponsoredbooleanKeep sponsored cards (default true). False drops them after ranks are assigned.
enrichDetailsbooleanFetch each /dp/ page for BSR, variants, buy box and sales estimates (default false).
maxOffersintegerAttach up to N marketplace offers on each product. 0 skips.
maxProductVariantsAsSeparateResultsintegerEmit other variant ASINs as their own rows. 0 keeps them on the parent.
scrapeProductVariantPricesbooleanWrite price onto each entry in variants[].
countryCode / zipCodestringDelivery location (glow + cookie). Availability and ship-to prices follow this address when Amazon honours it.
locationDeliverableRoutesarrayApply zip on PRODUCT, SEARCH, and/or OFFERS.
maxSearchPagesPerStartUrlintegerCap listing pages per URL (best-sellers still stop at 2).
languagestringAccept-Language hint (en, de, …).
proxyCountrystringOverride exit country. Leave empty to pin from the domain.
maxItemsintegerHard ceiling of product rows for the whole run.
maxItemsPerQueryintegerPer-query/per-URL row cap. One page yields ~20–48 rows.
monitorModestringoff (default), price-changes, all-changes.
monitorNamestringStable baseline name for a scheduled watch (e.g. "competitor-asins-us").
webhookUrlstringOptional HTTPS endpoint — changed rows are POSTed as JSON on monitor runs with changes.
concurrencyintegerParallel page fetches (1–20, default 6).
proxyobjectOptional 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

  • Identityasin, title, url, imageUrl, marketplace, query, sourceUrl, scrapedAt
  • Pricingprice / priceValue, listPrice / listPriceValue, pricePerUnit, discountPercentage, onSale, currencyCode, couponText
  • Social proofratingValue, reviewsCount, monthlyBought / monthlyBoughtValue, badge, isAmazonChoice, isBestSeller
  • Placementpage, position, positionOverall, isSponsored, isPrime, deliveryText, fastDeliveryText, prevPurchased, variantHint
  • Enrich (enrichDetails)brand, bestsellerRanks, variants, soldBy, shipsFrom, isFba, features, description, images, breadcrumbs, availability, inStock, estimatedMonthlySales, estimatedMonthlyRevenue
  • MonitoringchangeType, changedFields, previousPriceValue, priceDelta, priceDeltaPercentage, previousRatingValue, previousReviewsCount

Pricing

PlanPer 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, deals apply to keyword queries only (Amazon rh= facets). Start URLs keep the filters already in the URL. A filter with no known id for that marketplace is skipped, not guessed.
  • queries and startUrls are additive — both run if both are set. Bare 10-char alphanumerics in queries open that product page.
  • monitorModeoff keeps a baseline keyed by monitorName; the first run returns everything (changeType: "new"), later runs return only changes. Reuse the exact same monitorName + 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: false drops ads after positionOverall is stamped.
  • enrichDetails: true fetches each /dp/ page after the listing crawl.
  • Billing: one apify-default-dataset-item event per published row; enrichDetails also charges product-details at $1/1K from 29 Sep 2026. Monitor runs with no changes publish nothing.
  • priceValue can be null on 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