# Amazon Product Scraper: Price, Reviews, ASIN etc.. (`datablow/amazon-product-scraper`) Actor

A powerful, comprehensive Amazon scraper designed to extract high-quality product data from any Amazon store (US, UK, IN, UAE, AU). Extract product titles, prices, technical specifications, ASINs, customer ratings, high-res images, and stock availability.

- **URL**: https://apify.com/datablow/amazon-product-scraper.md
- **Developed by:** [datablow](https://apify.com/datablow) (community)
- **Categories:** E-commerce, SEO tools, Automation
- **Features:** Limited permissions
- **Stats:** 25 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

<div align="center">

## 🛒 Amazon Product Scraper

#### High-Performance Amazon Product, Price, Reviews, ASIN & Spec Extractor

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-orange?style=flat-square\&logo=apify)](https://apify.com/datablow/Amazon-Product-Scraper)
[![Maintained](https://img.shields.io/badge/Maintained-Yes-green?style=flat-square)](https://apify.com/datablow/Amazon-Product-Scraper)
[![Node](https://img.shields.io/badge/Node.js-22-blue?style=flat-square\&logo=node.js)](https://nodejs.org)
[![Playwright](https://img.shields.io/badge/Playwright-v1.59-purple?style=flat-square\&logo=playwright)](https://playwright.dev)
[![Crawlee](https://img.shields.io/badge/Crawlee-v3-black?style=flat-square)](https://crawlee.dev)

<p align="center">
  <b>Extract structured product data from Amazon US, UK, India, UAE, and Australia without getting blocked.</b><br>
  Capture product titles, real-time prices, ASINs, star ratings, review counts, stock availability, bullet points, high-res images, and promotions.
</p>

***

</div>

### 📌 Overview

**Amazon Product Scraper** is an enterprise-grade web scraping solution built on [Crawlee](https://crawlee.dev) and [Playwright](https://playwright.dev). Designed to bypass sophisticated anti-bot systems, it features intelligent browser fingerprint rotation, automatic CAPTCHA/Robot-check detection, human-like browsing behavior, and geo-targeted proxy routing.

Whether you need to monitor competitor pricing, track stock changes across regions, build e-commerce catalogs, or power AI models with live marketplace data, this Actor delivers clean, structured JSON/CSV data reliably.

***

### ✨ Key Features

- 🌍 **Multi-Region Support**: Scrapes from 5 major Amazon domains:
  - 🇺🇸 United States (`amazon.com`)
  - 🇮🇳 India (`amazon.in`)
  - 🇬🇧 United Kingdom (`amazon.co.uk`)
  - 🇦🇪 United Arab Emirates (`amazon.ae`)
  - 🇦🇺 Australia (`amazon.com.au`)
- 🔍 **Dual Input Modes**: Search by keywords (e.g. *"gaming keyboard"*) or provide direct Amazon product / search listing URLs.
- 📊 **Deep Data Extraction**: Captures titles, parsed numeric prices, ASIN, ratings, review count, stock availability, seller offers, high-resolution gallery images, and technical specifications.
- 🛡️ **Anti-Bot Resistance**: Built-in fingerprint spoofing, automated session cycling, and retry mechanisms for CAPTCHAs and Robot Check screens.
- ⚡ **High Concurrency & Efficiency**: Optimized memory footprint with configurable item limits and automatic dataset serialization.
- 🤖 **AI & Agent Ready**: Fully compatible with Apify MCP Server, LangChain, LlamaIndex, and OpenAI tool calling.

***

### 📥 Input Configuration

Configure your run using the user-friendly Console form or directly via JSON:

| Parameter | Type | Required | Default | Description |
|---|---|:---:|:---:|---|
| `searchTerms` | `array` | No | `["trimmer for men"]` | List of keyword phrases to search on Amazon. |
| `startUrls` | `array` | No | `[]` | Direct Amazon URLs (product detail pages or search listing pages). |
| `region` | `string` | Yes | `"US"` | Amazon marketplace region: `"US"`, `"IN"`, `"UK"`, `"UAE"`, or `"AU"`. |
| `maxItems` | `integer` | No | `10` | Maximum total products to scrape and save to the dataset. |
| `proxyConfiguration` | `object` | No | `{"useApifyProxy": true}` | Apify Proxy configuration. Residential proxies are recommended for large batches. |

#### 📋 JSON Input Example

```json
{
  "searchTerms": [
    "wireless noise cancelling headphones",
    "mechanical keyboard"
  ],
  "region": "US",
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

***

### 📤 Output Data Structure

Results are stored in the default dataset and can be downloaded in JSON, CSV, XML, Excel, or NDJSON format.

Each product record contains the following fields:

| Field | Type | Description |
|---|---|---|
| `title` | `string` | Full product name and title |
| `asin` | `string` | Amazon Standard Identification Number (unique 10-character code) |
| `price` | `number` | Parsed numeric price in the local currency |
| `avgRating` | `string` | Customer review average score (e.g., `"4.4 out of 5 stars"`) |
| `ratingCount` | `string` | Total number of customer reviews (e.g., `"12,450 ratings"`) |
| `availability` | `string` | Stock status (e.g., `"In Stock"`, `"Only 2 left in stock"`) |
| `thumbnail` | `string` | Main search result thumbnail URL |
| `images` | `string[]` | High-resolution image URLs extracted from the gallery |
| `description` | `string` | Detailed product description text |
| `features` | `string` | Bulleted feature list from the "About this item" section |
| `offers` | `string[]` | Active discounts, coupons, and promotional deals |
| `url` | `string` | Canonical product URL (clean of tracking parameters) |
| `timestamp` | `string` | ISO 8601 timestamp of when the record was extracted |

#### 📦 Sample Output Record

```json
{
  "title": "Sony WH-1000XM5 Wireless Industry Leading Noise Canceling Headphones",
  "asin": "B09XS7JWHH",
  "price": 348.00,
  "avgRating": "4.5 out of 5 stars",
  "ratingCount": "14,892 ratings",
  "availability": "In Stock",
  "thumbnail": "https://m.media-amazon.com/images/I/61+ElPBD6qL._AC_UY218_.jpg",
  "images": [
    "https://m.media-amazon.com/images/I/61+ElPBD6qL._SL1500_.jpg",
    "https://m.media-amazon.com/images/I/51SKmu2G9FL._SL1500_.jpg",
    "https://m.media-amazon.com/images/I/71o8Q5XJS5L._SL1500_.jpg"
  ],
  "description": "The WH-1000XM5 headphones rewrite the rules for distraction-free listening...",
  "features": "• Industry-leading noise cancellation with two processors and 8 microphones\n• Magnificent Sound, engineered to perfection with 30mm driver unit\n• Crystal clear hands-free calling with 4 beamforming microphones\n• Up to 30-hour battery life with quick charging",
  "offers": [
    "Save $50 with coupon applied at checkout",
    "Free delivery with Prime"
  ],
  "url": "https://www.amazon.com/dp/B09XS7JWHH",
  "timestamp": "2026-09-20T08:30:00.000Z"
}
```

***

### 🚀 How to Use

#### 1. In Apify Console

1. Navigate to [Amazon Product Scraper](https://console.apify.com/actors/Ob2WDnS1SrRmmwvJw).
2. Enter your search keywords (e.g. `"espresso machine"`) or paste product URLs.
3. Select the target marketplace region.
4. Click **Start** to run the Actor.
5. Preview and export data in the **Storage > Dataset** tab.

#### 2. Via Python API Client

```python
from apify_client import ApifyClient

## Initialize the ApifyClient with your API token
client = ApifyClient("YOUR_APIFY_TOKEN")

## Prepare Actor input
run_input = {
    "searchTerms": ["ergonomic office chair"],
    "region": "US",
    "maxItems": 15
}

## Run the Actor and wait for it to finish
run = client.actor("datablow/Amazon-Product-Scraper").call(run_input=run_input)

## Fetch results from the default dataset
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['title']} - {item.get('price')} (ASIN: {item['asin']})")
```

#### 3. Via Node.js JavaScript Client

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({
    token: 'YOUR_APIFY_TOKEN',
});

const run = await client.actor('datablow/Amazon-Product-Scraper').call({
    searchTerms: ['mechanical keyboard'],
    region: 'US',
    maxItems: 25,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} products:`, items);
```

***

### 🎯 Practical Use Cases

- **E-Commerce Price Intelligence**: Automatically monitor price fluctuations and match competitor promotions in real-time.
- **Market & Trend Research**: Identify top-rated products, surging search items, and underserved niches across multiple Amazon territories.
- **Product Catalog Enrichment**: Supplement inventory records with high-resolution image galleries, bullet points, and verified specifications.
- **Affiliate & Content Sites**: Automate product discovery and feed fresh pricing into review blogs and price-comparison aggregators.
- **AI / LLM Pipelines**: Feed live product catalogues into retrieval-augmented generation (RAG) applications and shopping assistants.

***

### ❓ Frequently Asked Questions (FAQ)

<details>
<summary><b>Does this scraper require an Amazon account or login?</b></summary>
No. The Actor extracts data exclusively from publicly accessible search and product listing pages without requiring any credentials.
</details>

<details>
<summary><b>Why are residential proxies recommended?</b></summary>
Amazon actively detects and throttles requests originating from datacenter IP addresses. Apify Residential Proxies route requests through genuine residential IPs, ensuring near 100% success rates for large scrapes.
</details>

<details>
<summary><b>How fast is the scraping process?</b></summary>
The scraper averages between 1 to 3 seconds per product, incorporating human-like randomized delays to ensure session persistence and prevent bot triggers.
</details>

<details>
<summary><b>Can I scrape specific seller storefronts or category bestsellers?</b></summary>
Yes. Simply paste the full Amazon URL (storefront, bestseller, or category page) into the <code>startUrls</code> field.
</details>

<details>
<summary><b>Can I automate runs on a schedule?</b></summary>
Yes. Use Apify Schedules to automatically run this Actor daily, weekly, or hourly, and deliver data directly to your webhook, email, or database.
</details>

***

### 💬 Support & Inquiries

For feature requests, feedback, or bug reports, please open an issue in the **Issues** tab on the Apify Actor console. We continuously monitor Amazon UI updates to ensure non-stop reliability.

# Actor input Schema

## `searchTerms` (type: `array`):

Keywords to search for (e.g., \['trimmer for men'])

## `startUrls` (type: `array`):

Direct Amazon product or search URLs

## `region` (type: `string`):

Amazon site to scrape

## `maxItems` (type: `integer`):

Limit the number of products to return

## `proxyConfiguration` (type: `object`):

Select proxies to be used by your crawler.

## Actor input object example

```json
{
  "searchTerms": [
    "trimmer for men"
  ],
  "region": "US",
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

Extracted Amazon product records containing titles, ASINs, prices, ratings, review counts, availability, images, and specifications.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "trimmer for men"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("datablow/amazon-product-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "searchTerms": ["trimmer for men"] }

# Run the Actor and wait for it to finish
run = client.actor("datablow/amazon-product-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "trimmer for men"
  ]
}' |
apify call datablow/amazon-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datablow/amazon-product-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Ob2WDnS1SrRmmwvJw/builds/mSiOk1mi5PeANf70R/openapi.json
