Amazon Product Scraper: Prices, BSR, Sales & Price Tracker avatar

Amazon Product Scraper: Prices, BSR, Sales & Price Tracker

Pricing

from $1.50 / 1,000 products

Go to Apify Store
Amazon Product Scraper: Prices, BSR, Sales & Price Tracker

Amazon Product Scraper: Prices, BSR, Sales & Price Tracker

Scrape Amazon products without login: price, Best Sellers Rank, bought in past month, seller, stock, specs, variants, images and review summary from searches, Best Sellers, ASINs or links in 16 stores. Local delivery postcode and price tracking. For sellers, price monitoring and market research.

Pricing

from $1.50 / 1,000 products

Rating

0.0

(0)

Developer

PANIX AI LAB

PANIX AI LAB

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 hours ago

Last modified

Categories

Security

Limited permissions

Share

Amazon Product Scraper: prices, Best Sellers Rank, sales and price tracking

Scrape Amazon products from search results, Best Sellers lists, ASIN lists and product links into clean rows: price, list price, discount, coupon, Best Sellers Rank in every category, "bought in past month", seller, stock, delivery date, specs, bullet points, images, variants, star breakdown and Amazon's own "Customers say" review summary. It reads Amazon's public pages, so you need no Amazon account, no cookies and no API key.

Works in 16 Amazon stores (US, Canada, Mexico, UK, Germany, France, Italy, Spain, Netherlands, Belgium, Sweden, Poland, India, Japan, Australia, Singapore). Every session sets a delivery postcode in the store's country, so prices, currency, VAT and delivery dates are what a local shopper sees.

You pay only for the products you get. Products left out by your filters, duplicates, ASINs Amazon no longer has and unchanged products in price-tracking mode are free.

What it does

  1. Searches Amazon for your search terms (or opens the search, category and Best Sellers links you paste), page by page.
  2. Opens each product page (unless you turn that off) and reads its price, rank, seller, stock, details and review summary.
  3. Applies your price, rating and review-count filters and leaves out sponsored ads.
  4. Delivers one row per product to the dataset (JSON, CSV, Excel, Google Sheets, API), with a status line per input and a run summary.
  5. With price tracking on, compares every product with the last run and adds what changed.

Who uses it

  • Amazon sellers and brands: watch competitors' prices, coupons, stock and Best Sellers Rank every day.
  • Product researchers (FBA, dropshipping, private label): find products with high "bought in past month" counts, good ranks and few ratings.
  • Price monitoring and repricing tools: a fixed ASIN list on a schedule, with only changed prices delivered.
  • Market and category research: Best Sellers, New Releases and Movers & Shakers lists with full product data, in 16 countries.
  • Catalog and comparison sites: titles, bullet points, specs, images, variants and EANs/UPCs from the specs table.
  • AI agents and RAG pipelines: Amazon's review summary and positive/negative review aspects as text, callable from the Apify API or MCP server.

Why this Amazon scraper

  • Local prices in 16 stores. Each session sets a delivery postcode in the store's country before reading products (New York 10001 on amazon.com, Berlin 10115 on amazon.de, or your own ZIP). Without it Amazon shows prices for the proxy's location: no price at all ("cannot be shipped"), or EU prices without VAT. Every row says which deliveryLocation its price is for.
  • Price and stock tracking built in. Turn on Track price and stock changes and every row gets a changes field with the price before, the change in %, stock, rating, review count and rank before. Only changed products delivers just the changes, and unchanged products are free.
  • Sales signals on every row. boughtPastMonth as a number (10K+ = 10000), Best Sellers Rank in the main category and every subcategory, Amazon's Choice and Best Seller badges, deal badges and deal end times.
  • Amazon's review summary. The "Customers say" text and the aspects Amazon rates positive, negative or mixed (for example "value for money: positive, durability: mixed"), without scraping reviews.
  • Variants. Every row lists its variants with their ASINs and attributes (size, color), plus the parent ASIN. Optionally each variant is delivered as its own row with its own price and stock.
  • Pay for products, not for attempts. Filtered, duplicate, missing and unchanged products are free, and sponsored ads are left out unless you want them.
  • Fast and light. Plain HTTP on datacenter proxy, no browser, 512 MB. In our runs 50 products with full pages took about one minute, 300 about four minutes, and 300 search results without product pages 16 seconds.

Coming from another Amazon scraper?

Common problem in this categoryHow this Actor handles it
Prices missing or "cannot be shipped" because the proxy is in another countryA delivery postcode in the store's country is set in every session, free
EU prices without VAT, or prices shown in USD on amazon.deLocal postcode and the store's own currency on every request
Delivery location costs extraIncluded, with your own ZIP if you want
The same prices are charged again on every monitoring runOnly changed products mode: unchanged products are free
"Bought in past month" and ranks only as textNumbers you can sort: boughtPastMonth, mainCategoryRank, bestSellersRank
Sponsored ads mixed into resultsLeft out by default, marked isSponsored when included
Charged for products that no longer existMissing ASINs come back as free error rows
Big browser image, slow startsPlain HTTP, 512 MB, starts in seconds

How to use it

  1. Type Search terms (for example wireless earbuds), paste ASINs, or paste Amazon URLs: product links, search links with your own filters, category links, or Best Sellers / New Releases / Movers & Shakers pages.
  2. Choose the Amazon store for search terms and ASINs (links keep their own store).
  3. Set Max products per search, filters and, if you want, your Delivery ZIP / postcode.
  4. Click Start, then download the dataset or connect it to Google Sheets, Make, n8n, Zapier or your code.

For daily price monitoring: paste your ASINs, turn on Track price and stock changes and Only changed products, give the list a Tracker name, and create a schedule (Schedules -> Create new).

Input examples

Search, 100 products with full pages:

{ "searchTerms": ["wireless earbuds", "bluetooth speaker"], "marketplace": "com", "maxResultsPerSearch": 100 }

A list of ASINs on amazon.de, prices for Munich:

{ "asins": ["B08J7PQGD7", "B0BR3L78XN"], "marketplace": "de", "deliveryPostcode": "80331" }

Best Sellers and New Releases lists (100 products each):

{
"startUrls": [
"https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen/",
"https://www.amazon.co.uk/gp/new-releases/electronics"
],
"maxResultsPerSearch": 100
}

Well-rated products between $20 and $60 with at least 500 ratings, sorted by rating:

{
"searchTerms": ["bluetooth speaker"],
"minPrice": 20, "maxPrice": 60, "minRating": 4.3, "minReviews": 500,
"sortBy": "avg-customer-review", "maxResultsPerSearch": 50
}

Daily price tracker that delivers only changes:

{
"asins": ["B0BZYCJK89", "B0B6PLG6G2", "B06X9NQ8GX"],
"trackChanges": true,
"onlyChangedProducts": true,
"monitorName": "my-competitors"
}

Cheap list of search results only (no product pages):

{ "searchTerms": ["yoga mat"], "scrapeProductDetails": false, "maxResultsPerSearch": 300 }

Output

One row per product. A real row from a run (lists shortened):

{
"asin": "B07H4G664R",
"title": "Gruper Yoga Mat Non Slip, Eco Friendly Exercise Mat with Carrying Strap",
"brand": "Gruper",
"price": 25.19,
"currency": "USD",
"listPrice": 27.99,
"listPriceLabel": "List Price",
"discountPercent": 10,
"dealBadge": "Limited time deal",
"rating": 4.4,
"reviewsCount": 10768,
"ratingBreakdown": { "5star": 74, "4star": 11, "3star": 6, "2star": 4, "1star": 5 },
"boughtPastMonth": 4000,
"boughtPastMonthText": "4K+ bought in past month",
"bestSellersRank": [
{ "rank": 171, "category": "Sports & Outdoors" },
{ "rank": 4, "category": "Yoga Mats" }
],
"mainCategoryRank": 171,
"mainCategory": "Sports & Outdoors",
"badges": ["Amazon's Choice", "Limited time deal"],
"availability": "In Stock",
"inStock": true,
"soldBy": "Amazon.com",
"sellerId": "ATVPDKIKX0DER",
"shipsFrom": "Amazon.com",
"isSoldByAmazon": true,
"isFulfilledByAmazon": true,
"otherOffers": { "count": 4, "lowestPrice": 15.62 },
"deliveryDate": "Wednesday, November 11",
"deliveryPrice": "FREE",
"fastestDeliveryDate": "Tomorrow, November 7",
"deliveryLocation": "New York 10001",
"categoryPath": "Sports & Outdoors > Exercise & Fitness > Yoga > Mats",
"categoryId": "3422301",
"features": ["NEW ECO FRIENDLY MATERIAL: The upgraded Gruper Yoga mat is made with premium friendly material...", "..."],
"specifications": { "Color": "Grey Blue / Black", "Brand": "Gruper", "Material": "Thermoplastic Elastomers", "Item Weight": "0.75 kg" },
"itemWeight": "0.75 kg",
"dimensions": "72\"L x 24\"W x 0.24\"Th",
"customersSay": "Customers find the yoga mat to be of great quality, thick enough to provide good cushioning for knees and back, and excellent value for money... The grip receives mixed feedback, with some finding it excellent while others say it's not slip-resistant.",
"reviewAspects": [
{ "aspect": "quality", "sentiment": "positive" },
{ "aspect": "non-slip", "sentiment": "positive" },
{ "aspect": "thickness", "sentiment": "positive" }
],
"mainImage": "https://m.media-amazon.com/images/I/61KZlPKYscL._AC_SL1500_.jpg",
"images": ["https://m.media-amazon.com/images/I/61KZlPKYscL._AC_SL1500_.jpg", "..."],
"parentAsin": "B0F2F5GQW1",
"variantAttributes": { "Color": "Grey Blue / Black", "Size": "0.24*24*72 Inches" },
"variantsCount": 14,
"variants": [
{ "asin": "B086DLLFR9", "attributes": { "Color": "Matcha Green / Black", "Size": "0.31*24*72 Inches" }, "url": "https://www.amazon.com/dp/B086DLLFR9" }
],
"url": "https://www.amazon.com/dp/B07H4G664R",
"marketplace": "amazon.com",
"searchTerm": "yoga mat",
"searchPosition": 3,
"isSponsored": false,
"source": "search",
"detailsComplete": true,
"changes": null,
"dataType": "product",
"scrapedAt": "2026-11-06T07:03:53Z"
}

With price tracking on, changes looks like this:

"changes": {
"isNew": false, "changed": true, "previousCheckAt": "2026-11-05T07:00:12Z",
"priceBefore": 29.99, "priceChange": -4.8, "priceChangePercent": -16.01,
"inStockBefore": true, "ratingBefore": 4.4, "reviewsCountBefore": 10741, "mainCategoryRankBefore": 188,
"changedFields": ["price", "reviewsCount", "mainCategoryRank"]
}

Main fields

FieldWhat it is
asin, parentAsin, url, marketplaceProduct ID, the ID that groups its variants, link and store
title, brand, authorsProduct name, brand (authors for books)
price, currency, listPrice, listPriceLabel, discountPercentBuy-box price in the store's currency, the struck-through price and its label ("List Price", "Typical price", "Was")
unitPriceText, coupon, promotions, dealBadge, dealEndsAtPrice per unit, coupon, promotions, deal and when it ends
rating, reviewsCount, ratingBreakdownStars, number of ratings, % per star
boughtPastMonth, bestSellersRank, mainCategoryRank, mainCategory, badgesSales signals
availability, inStock, stockLeftStock text, in stock yes/no, "Only N left"
soldBy, sellerId, shipsFrom, isSoldByAmazon, isFulfilledByAmazon, otherOffersBuy-box seller and fulfilment, number of other offers and the lowest
deliveryDate, deliveryPrice, fastestDeliveryDate, deliveryLocationDelivery for the postcode in deliveryLocation
breadcrumbs, categoryPath, categoryIdCategory path and node ID
features, description, specifications, modelNumber, manufacturer, itemWeight, dimensions, dateFirstAvailableProduct details (UPC/EAN where Amazon shows them in specifications)
customersSay, reviewAspectsAmazon's AI review summary and aspect sentiment
mainImage, imagesImage links in full size
variants, variantsCount, variantAttributes, variantDimensionsAll variants with ASINs and attributes
searchTerm, searchPosition, isSponsored, listRank, listName, source, inputWhere the product came from
detailsCompletefalse when Amazon sent a shortened page after retries (rank, specs or review summary may be missing)
changesPrice tracking result (see above)
dataTypeproduct, search-result (product pages off) or error (free row for an ASIN Amazon does not have, or for an input with nothing to scrape, explained in errorMessage)

The Output tab has views for Products, Sales and ranking, Price, seller and delivery, Catalog and Price tracking. The key-value store has INPUTS (one status line per search, list, ASIN or link) and SUMMARY (totals, products left out per filter, delivery locations used).

Pricing

Pay per event, no monthly fee:

EventFree planStarter (Bronze)Scale (Silver)Business (Gold) and up
Product with its product page read (per 1,000)$2.50$2.00$1.80$1.50
Product, search or list data only (Read product pages off, per 1,000)$0.60$0.50$0.45$0.40
Actor start (per run, per GB of memory)$0.001$0.001$0.001$0.001

Free: products left out by filters, duplicates, sponsored results you did not ask for, ASINs Amazon no longer has (error rows), unchanged products in Only changed products mode, and failed inputs. The delivery postcode, variants list, review summary and price tracking cost nothing extra. With the default 512 MB a run pays one start event. Set a spending limit on the run and the Actor stops before it.

Examples on the Starter plan: 1,000 products with full pages cost $2.00 plus $0.001; a daily tracker of 200 ASINs where 15 prices changed costs $0.031.

Use it from code, n8n, Make, Zapier and AI agents

Python (apify-client 3.x):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("panix/amazon-product-scraper").call(run_input={
"searchTerms": ["wireless earbuds"],
"marketplace": "com",
"maxResultsPerSearch": 50,
})
for product in client.dataset(run.default_dataset_id).iterate_items():
print(product["asin"], product["price"], product["mainCategoryRank"], product["boughtPastMonth"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('panix/amazon-product-scraper').call({ asins: ['B0BZYCJK89'], marketplace: 'co.uk' });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((p) => [p.asin, p.price, p.currency, p.inStock]));

One HTTP call that runs the Actor and returns the rows (n8n HTTP Request node, Make HTTP module, any script):

POST https://api.apify.com/v2/acts/panix~amazon-product-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>
Content-Type: application/json
{"searchTerms": ["wireless earbuds"], "maxResultsPerSearch": 10}

n8n, Make and Zapier also have Apify apps: choose Run Actor, pick panix/amazon-product-scraper, paste the input JSON, then read the dataset items. AI agents can call it through the Apify MCP server (https://mcp.apify.com).

FAQ

Do I need an Amazon account or API key? No. The Actor reads the product and search pages Amazon shows to every visitor. No login, cookies or Product Advertising API key.

Which price is price? The buy-box price a shopper at deliveryLocation sees on the product page, in the store's currency. listPrice is the struck-through price Amazon shows next to it, with Amazon's label for it.

Can I get prices for my ZIP code? Yes. Enter it in Delivery ZIP / postcode (for example 90210 on amazon.com, 80331 on amazon.de, SW1A 1AA on amazon.co.uk). On amazon.nl and amazon.com.be Amazon accepts only the country, so those stores use a city Amazon picks in the country.

How does price tracking work? The Actor stores each product's last price, stock, rating, review count and rank in a named key-value store in your account (amazon-product-scraper-monitors, one record per tracker name). The next run with the same tracker name compares and fills changes. With Only changed products it delivers only products whose price or stock changed, plus products seen for the first time; the others are free.

Why is price empty for some products? The product is out of stock, sold only by other sellers without a featured offer, or not deliverable to the postcode. availability and otherOffers tell you which.

What is detailsComplete: false? Amazon sometimes sends a shortened product page without the lower half (details, rank, review summary). The Actor retries on other IPs; if Amazon still sends the short page, the row is delivered with what it has and this flag.

Can I get the reviews themselves? Not with this Actor: Amazon shows full review pages only to signed-in customers. Each row has the rating, the number of ratings, the star breakdown and Amazon's review summary.

How many products per search? Amazon shows a few hundred per search (often 7 pages or about 300 products). Use several search terms, category links or Best Sellers lists to get more. Best Sellers lists have 100 products.

Limits

  • Public pages only: no reviews text, seller contact data or anything behind a sign-in.
  • Amazon's search order, sponsored placements and some prices can change between visits. For monitoring, track a fixed ASIN list.
  • amazon.com.br, .ae, .sa, .com.tr and .eg are not supported yet.
  • Amazon changes its pages often and sometimes slows down or blocks single IPs; the Actor moves blocked requests to new IPs and retries. If a field stops filling, open an issue.
  • Results come in the order pages finish, not in search order; sort by searchPosition or listRank.

The Actor collects product information that Amazon shows to every shopper. Seller names are business names; no personal contact data is collected. You are responsible for using the data lawfully, including Amazon's terms and data protection laws such as the GDPR where they apply. This Actor is not affiliated with Amazon.

Support

Open an issue on the Actor's Issues tab with the run ID; it is answered quickly. Feature requests are welcome.