# Amazon Scraper: Product Prices, Ratings and Sellers

> Amazon scraper: get price, rating, reviews count, Best Sellers Rank and seller from keywords, ASINs or links on nine stores. No login or API key.

URL: https://cliqtomedia.com/actors/amazon-scraper/

Category: E-commerce & prices · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/amazon-scraper?fpr=cliqto

Get public Amazon product data from a keyword, an ASIN or a link. Each row has price, rating and reviews count. Product pages add Best Sellers Rank, seller and stock.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `standing desk` in Search queries. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Amazon Product Scraper reads public Amazon pages by keyword, ASIN or link and returns rows with price, rating and reviews count, with no login or API key. Product pages add Best Sellers Rank, seller and stock. Use it to compare products or watch prices over time: the smallest run takes one keyword, returns 10 rows in about 10 seconds and costs $0.0068 on the Free plan.



### Good for

- Track a competitor's price and stock with a daily scheduled run in `mode: product`.
- Find products for a keyword with price, rating, reviews count and search position.
- Check Best Sellers Rank and seller for a list of ASINs.
- Compare one ASIN across stores, with each store's price in its own currency.
- Spot a discount that may not be real: the strike-through price rose while the price did not fall.

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Search result | $0.00042 (from $0.000294 on paid Apify plans) | One product row from search, category or ranking pages. |
| Product result | $0.0045 (from $0.00315 on paid Apify plans) | One full product row from a product page. |
| Review result | $0.001 (from $0.0007 on paid Apify plans) | One public review or public review excerpt. |
| Page check | $0.0026 | One search page or product check, including empty results and unchanged monitor items. |
| Marketplace setup | $0.035 | Sets a delivery address on a marketplace other than amazon.com, once per marketplace in a run. |
| Local page | $0.01 | One search page on amazon.it or amazon.es, read through a local route. |

- One result: about $0.0004.
- 1,000 results: about $0.42.
- Every day 100 results, for 30 days: about $1.26 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 8 November 2026. Current price: https://apify.com/cliqtomedia/amazon-scraper?fpr=cliqto

## Questions

### Do I need an Amazon account, cookies or an API key?

No. The tool reads public pages. You only need an Apify account.

### Can I get every review of a product?

No. Amazon shows only the first public reviews without a login. On amazon.com they are excerpts.

### Which Amazon stores work?

Nine: amazon.com, .de, .co.uk, .fr, .it, .es, .ca, .co.jp and .com.au.

### How do I scrape products from Amazon?

Add a keyword to `searchQueries`, or ASINs to `asins` with `mode: product`. Click Start and open the Output tab. The Quick start above shows each step.

### Can I export Amazon data to CSV?

Yes. Open the Output tab and download CSV, Excel or JSON. With `outputFormat: flat` every row has the same columns.

### Is it a price tracker?

It can work like one. Set `monitorName` and run the Actor on a schedule. It does not send alerts by itself: use `deliveryConnector` to post a summary to Slack or Notion, or read `changeStatus` through the API.

### Is scraping Amazon allowed?

The Actor reads public pages only and collects no reviewer names. Whether your use is allowed depends on your country, your purpose and Amazon's terms. Ask your legal adviser if you are not sure.

### How fresh is the data?

Each row shows the page at the time of the run. Rank and price change during the day. Run again to get newer values.

## Data fields

- `recordType` (string): product, search, ranking, review or reviewSummary.
- `status` (string): complete, partial, not_found or error.
- `note` (string): Why a row is partial, missing or failed.
- `asin` (string): Amazon product ID.
- `marketplace` (string): The Amazon store, for example com or de.
- `title` (string): Product title.
- `brand` (string): Brand shown by Amazon.
- `price` (number): Current price in the source currency.
- `listPrice` (number): Strike-through price, when shown.
- `primePrice` (number): Price only Prime members pay, when Amazon shows one. price holds what everyone else pays.
- `currency` (string): ISO currency code.
- `discountPercent` (number): Discount from the strike-through price.
- `discountFromPreviousPercent` (number): Real discount from the price in the previous monitor run.
- `fakeDiscountSuspected` (boolean): True when the strike-through price rose or appeared while the price did not fall.
- `deliveryLocation` (string): Delivery location shown by the page.
- `priceIsLocal` (boolean): True when the price is for a delivery address in this marketplace.
- `rating` (number): Average stars.
- `reviewsCount` (number): Number of ratings.
- `starDistribution` (object): Share of reviews for each star, 1 to 5.
- `reviewThemes` (array): Frequent pros and cons with mention counts.
- `themesSource` (string): amazon when taken from the page, frequency when counted from public reviews.
- `verifiedShare` (number): Share of verified purchases among the public reviews read.
- `aiReviewsSummary` (string): Amazon's own review summary, when shown.
- `bsr` (number): Best Sellers Rank in the main category.
- `bsrRanks` (array): Best Sellers Rank in every listed category.
- `searchRank` (number): Place on the search or ranking pages, sponsored results included.
- `organicRank` (number): Place among non-sponsored results.
- `rankingType` (string): Which ranking list the row came from.
- `isSponsored` (boolean): True for a sponsored search result.
- `searchQuery` (string): The query or link behind this row.
- `category` (string): Main category.
- `seller` (string): Seller name, when shown.
- `prime` (boolean): True when a Prime badge is seen. Null means unknown, since signed-out pages usually hide it.
- `inStock` (boolean): Availability. Null when the page does not say.
- `images` (array): Product image links.
- `url` (string): Product page on Amazon.
- `breadcrumbs` (array): Category path.
- `features` (array): Feature bullets.
- `description` (string): Product description.
- `boughtPastMonth` (string): Amazon's bought-in-past-month text.

## Input settings

- `mode` (string): Search results, product pages, public reviews, or Amazon rankings. Links in Amazon links are read by their own type in any mode.
- `marketplace` (string): The Amazon store to read.
- `searchQueries` (array): Keywords to search, up to 50. Used in search mode.
- `asins` (array): Amazon product IDs, up to 1000. Used in product and reviews modes.
- `productUrls` (array): Any Amazon search, category, product or bestsellers link, up to 1000. The marketplace is taken from the link.
- `maxItems` (integer): Total paid rows for this run. Lower it to control spending.
- `maxReviews` (integer): Amazon shows only the first public reviews without a login, so a product may return fewer.
- `extraMarketplaces` (array): Also read these stores. In product mode one ASIN stays in one row, with each store's price in marketplacePrices in its own currency.
- `rankingType` (string): Which list to read in bestsellers mode when no link is given.
- `deliveryZip` (string): Prices for this postcode on the main marketplace. Each store has a working default. Not available on amazon.it and amazon.es.
- `sortBy` (string): Order of search results.
- `minPrice` (number): Search only, in the marketplace currency. Rows without a price do not pass.
- `maxPrice` (number): Search only, in the marketplace currency. Rows without a price do not pass.
- `minRating` (number): Search only, for example 4 or 4.5. Rows without a rating do not pass.
- `primeOnly` (boolean): Search on amazon.com only, using Amazon's own Prime filter. Other stores hide the badge from signed-out visitors.
- `excludeSponsored` (boolean): Search only. Skipped rows still count in searchRank.
- `reviewsNewerThan` (string): Reviews mode, as YYYY-MM-DD. Reviews without a date do not pass.
- `reviewStars` (array): Reviews mode. Keep only these star ratings. Reviews without a rating do not pass.
- `includeVariants` (boolean): Product mode. Adds sizes and colors of a product in the variants field.
- `variantPrices` (boolean): Opens up to 20 variant pages per product. Each opened page is one paid check.
- `monitorName` (string): Remember prices between runs under this name and show what changed: new, priceDown, priceUp, backInStock, outOfStock, removed. Letters, digits and hyphens, up to 40.
- `onlyChanges` (boolean): With a monitor name, output only rows that changed. Unchanged items are charged as a page check.
- `outputFormat` (string): Flat columns for spreadsheets, or nested groups for code.
- `deliveryConnector` (string): Your Slack, Notion or other MCP connector. After the run the Actor posts a short summary there. Connect services once in Apify Console → MCP connectors.
- `deliveryTarget` (string): Where to post the summary: a Notion page link (each run is added on top of that page) or a Slack channel ID. Leave empty to let the connector decide.

## Step by step on Apify

1. Open the Input tab. The form already holds `standing desk` in `searchQueries` (box 1 in the picture). The store stays `com`.
2. Keep `maxItems` at 10 for a first test (box 2). Then start the run.
3. Open the Output tab when the run ends (box 3 in the second picture). In the Products view, read `title`, `price` and `rating` (box 4).
4. Download the rows from the run page as CSV, Excel or JSON.

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Watch competitor prices | `mode: product`, `asins`, `monitorName` | Product row | `changeStatus`, `price`, `previousPrice`, `priceChange` | Schedule plus Slack delivery |
| Research a keyword | `searchQueries` | Search row | `title`, `price`, `rating`, `reviewsCount`, `searchRank` | CSV or Excel export |
| Check a catalog of ASINs | `mode: product`, `asins` | Product row | `brand`, `seller`, `bsr`, `inStock`, `category` | API or spreadsheet |
| Read a ranking list | `mode: bestsellers`, `rankingType` | Ranking row | `searchRank`, `title`, `price`, `rating` | CSV export |
| Sum up customer opinion | `mode: reviews`, `asins` | Review and summary rows | `reviewText`, `starDistribution`, `reviewThemes` | AI agent through MCP |

## Tips

- Use mode product when you need brand, seller, Best Sellers Rank or stock. Search rows do not have them.
- Set a monitorName and run on a schedule. The next run shows what changed.
- On a long ASIN list, raise the run timeout. One run saves up to 1500 rows.

## Limits



- One run saves at most 1500 rows (`maxItems`). The largest test had 10 keywords. It took 345 to 538 seconds at 1024 MB, so it comes close to the default 600-second timeout.
- One run takes up to 50 keywords, 1000 ASINs and 1000 links. The largest product list tested is 60 ASINs: it took 206 to 256 seconds at 1024 MB. Blocks make it slower: in one of those runs, 22 of 82 page requests were blocked and retried. On a long list raise the run timeout. Inputs not reached are listed in `unprocessedInputs` and not charged.
- Search reads up to 20 pages per keyword. Ranking lists read up to 2 pages.
- Reviews on amazon.com are public excerpts only. `reviewText`, `reviewId`, `reviewAspect` and `reviewIsExcerpt` are filled, but stars, title, date and `reviewVerified` are empty. The full review pages need a login, and this Actor does not log in. On amazon.de, reviews came with full fields. Other stores may differ: check `reviewIsExcerpt`. A product may return fewer reviews than `maxReviews`.
- On amazon.it and amazon.es no delivery address can be set. `priceIsLocal` is `false`. Search rows there have prices. A product page row may have no price: it comes with `status: partial` and costs one `page-check`, not a `product-result`. For prices on these two stores use search.
- A batch is best-effort: one failed input does not stop the others, and a run with useful rows stays SUCCEEDED with `status: partial`. Five failed pages in a row end the run with `SOURCE_ERROR`. So do 100 seconds with no page read. A page above 16 MB counts as failed for its input.
- Prices depend on the delivery address and on time. Two runs may differ, and search order may differ from what you see in your browser.
- Offers from other sellers are not collected: `seller` holds the seller shown on the product page.

## Sample result

```json
{
  "recordType": "search",
  "status": "complete",
  "asin": "B0F8MHPVPH",
  "marketplace": "com",
  "title": "FEZIBO Standing Desk 48 × 24 Inch Electric Height Adjustable, Maple",
  "price": 99.98,
  "listPrice": 112.99,
  "currency": "USD",
  "discountPercent": 11.5,
  "priceIsLocal": true,
  "rating": 4.5,
  "reviewsCount": 4963,
  "searchRank": 1,
  "organicRank": 1,
  "isSponsored": false,
  "searchQuery": "standing desk",
  "url": "https://www.amazon.com/dp/B0F8MHPVPH",
  "boughtPastMonth": "5K+ bought in past month"
}
```

## Use it from code

Actor ID: `cliqtomedia/amazon-scraper`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/amazon-scraper").call(run_input={
    "mode": "search",
    "marketplace": "com"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~amazon-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "search", "marketplace": "com"}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/amazon-scraper")
result = tool.invoke({"run_input": {"mode": "search", "marketplace": "com"}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Use cases with this tool

- [Track prices in shops and marketplaces](https://cliqtomedia.com/actors/use-cases/price-monitoring/): Track prices and offers in shops and marketplaces. See changes before your customers do.

## Similar tools

- [eBay Sold Listings Scraper - Sold Prices & Dates](https://cliqtomedia.com/actors/ebay-sold-listings/)
- [WooCommerce Store Products Export - Prices, Stock, No Login](https://cliqtomedia.com/actors/woocommerce-products/)
- [Wildberries Scraper: Products, Prices, Reviews, No Login](https://cliqtomedia.com/actors/wildberries-scraper/)
- [JD.com Scraper: Prices, Review Counts & Ratings, No Login](https://cliqtomedia.com/actors/jd-com-scraper/)
- [AliExpress Scraper: Products, Prices & Reviews, No Login](https://cliqtomedia.com/actors/aliexpress-scraper/)
- [Coles, Woolworths & Aldi Price Scraper - No Login](https://cliqtomedia.com/actors/au-supermarket-prices/)
