Amazon Product Scraper avatar

Amazon Product Scraper

Pricing

from $3.70 / 1,000 results

Go to Apify Store
Amazon Product Scraper

Amazon Product Scraper

Scrape Amazon by ASIN, product link, search or category link, or keyword, across 11 marketplaces. ASIN, title, price, list price and discount, rating, reviews and badges; lookups add stock, bullets and Best Sellers Rank. Local-currency prices. No seller names, ever.

Pricing

from $3.70 / 1,000 results

Rating

0.0

(0)

Developer

Lowland Data

Lowland Data

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

9 days ago

Last modified

Share

Prices on Amazon move while you are busy with something else. A competitor on amazon.de drops 8 percent, a new listing outranks yours, and you find out from next month's numbers.

This actor turns Amazon into rows you can put in a spreadsheet: ASIN, title, price, the crossed-out list price and the discount, rating, review count, badges, and on request stock, feature bullets, category and Best Sellers Rank. It works on eleven Amazon sites, from amazon.de to amazon.com.

Live health record: lowlanddata.com/status/amazon-product-scraper - 30-day success rate and daily canary results, failures included. Full input/output reference: tool page.

No personal data, ever. Products are commercial objects and come back whole. Sellers do not: a third-party seller is often a sole trader, which makes their name personal data, so there is no seller field and there never will be. Reviews are counted, never quoted.

Three ways to use it

Pick the row that matches what you already have. You can combine links and ASINs in one run.

What you havePut it inWhat comes backPrice per 1,000 products
A word you would type into Amazon's search boxkeywords (more in moreKeywords)The search results, page by page$4
A search or category page you set up on AmazonstartUrlsThat results page, with every filter you picked on Amazon$4
Specific products: ASINs, or links to product pagesasins, or product links in startUrlsOne row per product, always with stock, bullets, category, every photo and Best Sellers Rank$14

Why the last row costs more: a product page is about 25 times the traffic of one search result, so each product looked up is charged as a row plus a product page. See How much does it cost?.

Quick start

1. Search by keyword (30 seconds)

  1. Type what you would search for into keywords, e.g. usb cable.
  2. Pick a marketplace, e.g. amazon.de.
  3. Click Start. Open the dataset's Overview tab, or Export it as CSV, Excel or JSON.

Optional filters for keyword searches: minPrice, maxPrice, primeOnly, sortBy.

  1. On Amazon, open a search or category, set the filters you want (brand, price, department, sort order), and copy the address from your browser.
  2. Paste it into startUrls. Add as many links as you like, from any of the supported Amazon sites.
  3. Click Start.

You can also paste product links (addresses that contain /dp/). Each one is looked up like an ASIN.

3. Look up ASINs

  1. Put your ASINs into asins, one per line. An ASIN is the 10-character code in every product link: amazon.de/dp/B07QPS7L6Y.
  2. Pick the marketplace they should be looked up on.
  3. Click Start. Each ASIN comes back as one row with its product page details.

Good to know: when you fill in startUrls, asins or listingIds, the keyword search and its filters (keywords, moreKeywords, minPrice, maxPrice, primeOnly, sortBy) are not used. The run's status message lists any of them you filled in, so nothing is ignored silently.

What you get

One JSON object per product. A row from a search:

{
"asin": "B07QPS7L6Y",
"title": "RAVIAD USB C Kabel [4Pack 0.5M 1M 2M 3M] Ladekabel Schnellladekabel",
"url": "https://www.amazon.de/dp/B07QPS7L6Y",
"marketplace": "de",
"source": "search",
"price": 6.79,
"currency": "EUR",
"listPrice": 9.99,
"discountPercent": 32,
"rating": 4.6,
"reviewCount": 23993,
"imageUrl": "https://m.media-amazon.com/images/I/81ZJli188JL._AC_UY218_.jpg",
"deliveryText": "GRATIS Lieferung Di, 16. Sep",
"isSponsored": false,
"isAmazonsChoice": true,
"isBestSeller": false
}

Which fields each row carries:

FieldSearch rowsSearch rows with scrapeDetailsLooked-up products (ASINs, product links)
asin, title, url, marketplace, sourceyesyesyes
price, currency, listPrice, discountPercent, rating, reviewCount, imageUrlyesyesyes
isAmazonsChoice, isBestSelleryesyesyes
deliveryText, isSponsoredyesyesnull and false: a product page has neither
availability, featureBullets, category, bestSellerRank, bestSellerCategorynoyesyes

Field notes:

  • source tells you where the row was read: search or product-page.
  • price is in currency, which is always the marketplace's own currency (EUR on amazon.de, GBP on amazon.co.uk). If a row ever arrives in another currency, the run says so in its status.
  • listPrice is the crossed-out price Amazon shows next to the price, and discountPercent is worked out from the two. Both are null when Amazon shows no crossed-out price.
  • price is null when Amazon shows no price at all, for example on a product with several variants or one that is out of stock.
  • bestSellerRank is the product's position in bestSellerCategory, e.g. 2,190th in "Computer & Zubehör".
  • url is the clean product link, amazon.xx/dp/ASIN, without Amazon's click tracking.
Link you pasteExampleWhat the run does
Product pagehttps://www.amazon.de/dp/B07QPS7L6YLooks the product up. /gp/product/ASIN links work too.
Search resultshttps://www.amazon.de/s?k=usb+kabel&rh=p_85%3A1Scrapes those results, keeping the search term, department, filters and sort order.
Category pagehttps://www.amazon.de/b?node=430161031Scrapes that category's results.
Best-seller listhttps://www.amazon.de/gp/bestsellers/computersRefused before the run starts: those lists are laid out differently. Paste the category instead.
Any other page (brand store, wish list)https://www.amazon.de/stores/...Refused before the run starts, with the reason.

Supported Amazon sites: amazon.de, amazon.co.uk, amazon.fr, amazon.it, amazon.es, amazon.nl, amazon.se, amazon.pl, amazon.com.be, amazon.com, amazon.ca. The site is taken from each link, so one run can mix countries.

One exception: searches on amazon.fr. amazon.fr shows its search and category pages only after a JavaScript check, which this actor does not run. Keyword searches and results links on amazon.fr therefore stop at once with that reason, and you are not charged for products. Products on amazon.fr work normally by ASIN or product link. Tracking parts of a link (ref=, qid=, crid= and so on) are removed; they do not change the results.

How much does it cost?

You pay per event, with no subscription. Platform usage and the residential proxy Amazon requires are included.

EventPriceWhen it is charged
Run start$0.005Once per run.
Product row$4 per 1,000 ($0.004 each)For every product delivered to your dataset.
Product page$10 per 1,000 ($0.01 each)For every looked-up product (ASINs and product links), and for search rows when scrapeDetails is on.

In plain numbers:

  • 200 products from a keyword search: about $0.81.
  • The same 200 products with scrapeDetails: about $2.81.
  • 100 ASINs checked daily: about $1.41 per run.

Not charged: a product page that failed to load (the search row still arrives), an ASIN that no longer exists on Amazon, and a product found twice in the same run. Higher Apify plans pay a little less per event. Free-plan runs stop after 5 products, enough to check the output against your own search.

Input reference

What to scrape. Fill in at least one of the first four.

FieldTypeDefaultNotes
keywordsstringnoneA search, as typed into Amazon's search box.
moreKeywordslist of stringsnoneMore searches in the same run. A product found by two searches comes back once. Up to 50.
startUrlslist of linksnoneProduct, search and category links from Amazon. See Links it accepts. Up to 500.
asinslist of stringsnoneProducts to look up, on marketplace. Up to 500.
listingIdslist of stringsnoneThe same as asins, under the name the other scrapers use for re-checking known items. Up to 500.
marketplacestringdede, uk, fr, it, es, nl, se, pl, be, us, ca. Used for keywords and asins; links use their own site.

Filters for keyword searches. Not used with links or ASINs; a pasted link keeps its own filters.

FieldTypeDefaultNotes
minPriceintegernoneLower bound in the marketplace's currency.
maxPriceintegernoneUpper bound in the marketplace's currency.
primeOnlybooleanfalseOnly Prime-eligible products.
sortBystringrelevancerelevance, price-asc, price-desc, newest, reviews.

For every search, keyword or link.

FieldTypeDefaultNotes
skipSponsoredbooleanfalseLeave out paid placements.
scrapeDetailsbooleanfalseAlso open each product page for stock, bullets, category and Best Sellers Rank. Charged per product page.

Run.

FieldTypeDefaultNotes
maxItemsinteger200The most products the whole run delivers. Looked-up products come first; searches share what is left equally.
proxyConfigurationobjectresidentialKeep it as it is. The run pins each Amazon site to its own country so prices come in the local currency.

What it does not do

  • No delivery postcode. Prices and delivery promises are those of an anonymous shopper in the marketplace's country.
  • No variants as separate rows. A product with sizes or colours comes back as the variant Amazon shows first.
  • No offers from other sellers and no seller names, by design.
  • No review texts or reviewer names, by design. You get the rating and the review count.
  • No best-seller lists. Paste the category instead.
  • No searches on amazon.fr. It requires a JavaScript check first. Look amazon.fr products up by ASIN or product link instead.
  • No price history. Run it on a Schedule and keep the rows: that is your history.

Use it from your code

Keyword search:

curl -X POST "https://api.apify.com/v2/acts/lowlanddata~amazon-product-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": "wireless keyboard", "marketplace": "de", "maxPrice": 50, "maxItems": 100}'

Look up ASINs and paste a category link in the same run:

curl -X POST "https://api.apify.com/v2/acts/lowlanddata~amazon-product-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"asins": ["B07QPS7L6Y", "B004Z9SJ64"], "marketplace": "de",
"startUrls": [{"url": "https://www.amazon.fr/b?node=430161031"}], "maxItems": 100}'

Not technical? Let your AI assistant set it up

I want to use the Amazon Product Scraper (lowlanddata/amazon-product-scraper) on Apify.
What I want: [E.G. "check the price of these 20 products on amazon.de every morning"]
Guide me to:
1. Choose the right input: keywords for a search, startUrls for links I copy from
Amazon, or asins for specific products. Explain that asins cost more per product
because each one opens a product page.
2. Fill in the marketplace, and maxItems.
3. Run it in the Apify Console and export CSV.
4. Set up a daily Schedule so I can watch prices move over time.

Use it with AI agents (MCP)

Run it directly from Claude, Cursor and other MCP clients: apify.com/lowlanddata/amazon-product-scraper/api/mcp.

This actor reads public pages that any shopper sees without logging in, and takes only facts about products: identifier, title, price, rating, review count, badges, stock and category. No customer data, no reviewer identities, no seller names. How you use the data afterwards is yours to assess.

FAQ

Can I scrape specific products instead of a search? Yes. Put their ASINs into asins, or paste their product links into startUrls.

Can I use a search I already set up on Amazon? Yes. Copy the address of the results page into startUrls. Every filter in it is kept.

Why does a looked-up product cost more than a search result? A search page carries about sixteen products; a product page carries one and is heavier. Looking a product up costs a product page, so it is charged as one ($0.01) on top of the row ($0.004). If you only need price, rating and badges, a keyword search or a results link is the cheaper route.

What happens to an ASIN that no longer exists? It is skipped and not charged, and the run's status lists it under "No longer on Amazon".

I filled in keywords and ASINs, but no search ran. Why? When links or ASINs are given, the keyword search does not run. That keeps the prefilled keyword in the form from adding a search you did not ask for. Run the search separately, or paste the search as a link into startUrls.

Which currency are the prices in? The marketplace's own. Amazon quotes the currency of the country a visitor seems to come from, so the run pins each Amazon site to its own country, and says so in its status if a row still arrives in another currency.

Why no seller name? A third-party seller is often a sole trader, which makes the shop name personal data under GDPR. It is not collected, behind a switch or otherwise.

Why does it need a residential proxy? Amazon blocks datacenter addresses within a page or two and answers with a robot check that looks like a normal page. The actor treats that as a block and retries on a fresh address, rather than reporting an empty run as a success.

Troubleshooting

  • "Give keywords to search for, Amazon links in startUrls, or ASINs to look up.": the input was empty. Fill in one of the four.
  • "... is not on a supported Amazon site": the link is from an Amazon site this actor does not cover, such as amazon.co.jp.
  • "... is a best-seller list": open the category itself on Amazon and paste that link instead.
  • "... is neither a product page nor a search results page": the link points to a brand store, a wish list or another page type. Paste a product, search or category link.
  • "... shows its search pages only after a JavaScript check": this happens on amazon.fr searches. Use ASINs or product links for amazon.fr products.
  • "robot check instead of search results": Amazon showed its robot check. The run retries on a fresh address; if a whole run fails, run it again in a few minutes.
  • Fewer products than you expected: Amazon repeats its last results page instead of ending, so the run stops as soon as a page adds nothing new.

If this saves you an afternoon, a rating on this page takes ten seconds and helps other buyers find the compliance-clean option.