# Amazon Scraper — Product & Price Search (US, UK, DE, SG, more) (`herus13/amazon-scraper`) Actor

Search Amazon and scrape products — title, price, original price, rating, reviews, Prime, image, and URL (ASIN). Output shares a schema with our Shopee & Lazada scrapers for cross-marketplace price comparison. CSV/JSON/Excel export.

- **URL**: https://apify.com/herus13/amazon-scraper.md
- **Developed by:** [bootforge](https://apify.com/herus13) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 75.9% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 products

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Amazon Scraper

**Amazon Scraper** is an Apify actor that searches [Amazon](https://www.amazon.com) by keyword and returns structured product + price data — ASIN, title, price, original price, currency, rating, review count, Prime, image, and product URL. Output shares a schema with our **Shopee** and **Lazada** scrapers, so you can normalize all three marketplaces into one dataset for **price comparison and affiliate**. Export to JSON, CSV, or Excel.

Supported marketplaces: US, UK, Germany, Singapore, Australia, India, Japan.

### Table of contents

- [What it does](#what-it-does)
- [Use cases](#use-cases)
- [How to scrape Amazon](#how-to-scrape-amazon)
- [Input](#input)
- [Output](#output)
- [Pricing](#pricing)
- [Recommended proxies](#recommended-proxies)
- [Why this scraper](#why-this-scraper)
- [FAQ](#faq)
- [Rate this actor](#rate-this-actor)
- [Related actors](#related-actors)

### What it does

- 🔎 **Keyword search → products** on any supported Amazon marketplace.
- 💲 **Price + original price** with the marketplace's currency.
- ⭐ **Signals** — rating, review count, Prime, image, ASIN.
- 🧩 **Shopee/Lazada-aligned schema** — same field names for cross-marketplace price comparison.
- 🛡️ **Anti-bot handled** — real stealth browser + proxy rotation clears Amazon's reputation gating and price-strip soft-block; blocks degrade gracefully, never crash the run.

### Use cases

**Cross-marketplace price comparison** — Output shares a schema with the Shopee and Lazada scrapers, so the same keyword can be run across all three and normalised into one table without a mapping layer. `price`, `original_price`, and `currency` line up field-for-field, which is what makes a genuine multi-marketplace comparison possible rather than three separate datasets.

**Competitive pricing and discount monitoring** — Run a keyword set on a schedule and track how `price` moves against `original_price` over time. Because `rating` and `review_count` come in the same row, you can weight a competitor's price move by how much traction the listing actually has.

**Affiliate catalogue building** — Every row carries a product URL and ASIN, the two things an affiliate link generator needs. Seven marketplaces (US, UK, DE, SG, AU, IN, JP) are supported from the same input, so a regional catalogue is a `region` change rather than a new integration.

**Product and market research** — Search a category's head terms and get the price distribution, rating spread, and Prime availability across the top results — enough to size a niche before committing to it.

### How to scrape Amazon

1. Enter one or more **Search terms**.
2. Pick a **Marketplace**.
3. Set **Max results**.
4. Leave **Proxy provider** on **Default** — a residential proxy is included.
5. Run. Each product is one dataset row.

**Example input:**

```json
{
  "search_terms": ["laptop stand"],
  "region": "com",
  "max_results": 100,
  "proxyProvider": "default",
  "proxy": { "useApifyProxy": true, "apifyProxyCountry": "US" }
}
```

### Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `search_terms` | array | ✅ | Keywords to search. |
| `region` | string | — | `com`, `co.uk`, `de`, `sg`, `com.au`, `in`, `co.jp` (default `com`). |
| `max_results` | integer | — | Max products across all terms (default 48). |
| `proxyProvider` | string | — | `default` (residential proxy **included**), `dataimpulse`, `apify`, `custom` (uses `proxyUrls`), or `disabled`. |
| `proxyUrls` | array | — | Your own gateway URLs, one per entry. Only read when `proxyProvider` is `custom`. |
| `proxy` | object | — | Apify Proxy group + country, read when `proxyProvider` is `apify`. Its country also sets the exit country for the built-in providers. |

### Output

One row per product. Field names overlap the Shopee & Lazada scrapers (`product_id`, `title`, `price`, `currency`, `rating`, `review_count`, `product_url`, `region`) so all three merge into one comparison table. `product_id` is the ASIN.

```json
{
  "product_id": "B004YAVF8I",
  "title": "Logitech M185 Wireless Mouse, 2.4GHz with USB Mini Receiver, 12-Month Battery Life, 1000 DPI Optical Tracking, Ambidextrous, Compatible with PC, Mac, Laptop - Swift Grey",
  "price": 13.95,
  "price_original": 17.99,
  "currency": "USD",
  "rating": 4.5,
  "review_count": 43,
  "is_prime": false,
  "thumbnail_url": "https://m.media-amazon.com/images/I/51WN5aXZWIL._AC_UY218_.jpg",
  "product_url": "https://www.amazon.com/dp/B004YAVF8I",
  "region": "com",
  "scraped_at": "2026-07-19T15:36:27+00:00",
  "error": null
}
```

| Field | Type | Description |
| --- | --- | --- |
| `product_id` | string | ASIN. |
| `title` | string | Product name. |
| `price` / `price_original` | number / null | Current / struck-out original price. |
| `currency` | string | Marketplace currency. |
| `rating` | number / null | 0–5. |
| `review_count` | integer / null | Number of ratings. |
| `is_prime` | boolean / null | Prime badge present. |
| `thumbnail_url` / `product_url` | string | Image and product page. |
| `region` / `scraped_at` | string | Marketplace code and UTC timestamp. |

### Pricing

Pay-per-event:

| Event | Price |
| --- | --- |
| Actor start | $0.05 per run |
| Product | $0.005 per product scraped |

> Provisional until finalized in the Apify Console. **A residential proxy is included in these prices** — nothing extra to buy. Choosing `custom` bills the proxy to your own provider instead.

### Recommended proxies

A residential proxy in the marketplace's country is **included** — leave **Proxy provider** on **Default** and the exit country follows the **Marketplace** you picked. Pick **Custom** and paste your own gateway URLs.

👉 **[Get DataImpulse residential proxies](https://dataimpulse.com/?aff=404588\&utm_source=apify)** (referral link)

### Why this scraper

- **Comparison-ready.** Shares a normalized schema with our Shopee & Lazada scrapers — merge marketplaces into one price table without remapping fields.
- **Anti-bot handled.** A real stealth browser clears reputation gating; the price-strip soft-block is detected and retried on a fresh IP rather than shipping price-less rows.
- **Multi-marketplace.** Seven Amazon sites with correct currency each.

### FAQ

**Do I need a proxy?** No — a residential proxy is included by default, exiting from the marketplace's country so prices match the region. To use your own, pick **Custom**; we use [DataImpulse](https://dataimpulse.com/?aff=404588\&utm_source=apify) (referral link).

**Which marketplaces are supported?** US, UK, Germany, Singapore, Australia, India, Japan.

**Can I compare prices with Shopee and Lazada?** Yes — output field names match those scrapers, so all three feed one comparison dataset.

**Is scraping Amazon legal?** Scraping publicly available product data is generally permissible, but you are responsible for complying with Amazon's terms and applicable law, and for how you use the data. This actor scrapes only public search results — no login or paywall bypass.

### Rate this actor

Using Amazon Scraper? Please leave a ⭐ rating and a short review — it helps others find it and guides what we improve.

### Related actors

- [Shopee Shop Scraper](https://apify.com/herus13/shopee-shop-scraper) · [Lazada Scraper](https://apify.com/herus13/lazada-scraper) — the SEA companions for price comparison.
- More scrapers by this author: [apify.com/herus13](https://apify.com/herus13)

# Actor input Schema

## `search_terms` (type: `array`):

Keywords to search on Amazon, e.g. <code>laptop stand</code>. Each term is paginated until Max results.

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

Which Amazon marketplace to search.

## `max_results` (type: `integer`):

Maximum number of products to return across all search terms.

## `enrich` (type: `boolean`):

After search, batch-read structured product JSON from Amazon's app endpoint to add the full image gallery and product category to each result. Adds an extra browser session per run. Does not add price (price comes from search).

## `proxyProvider` (type: `string`):

<b>Default</b> routes the run through DataImpulse residential IPs (falling back to Apify Proxy) and is <b>included in the price of the run</b> — leave it alone unless you have a reason. <b>Custom</b> uses the proxy URLs you enter below; <b>Apify Proxy</b> uses the proxy configuration below; <b>No proxy</b> is refused on this actor, because the site blocks direct connections. Leave this empty to keep the behaviour this actor already had.

## `proxyUrls` (type: `array`):

Only read when <b>Proxy provider</b> is <b>Custom</b>. One gateway URL per entry, e.g. <code>http://user:pass@host:port</code> — works with any provider that issues URLs (BrightData, Oxylabs, SmartProxy, your own). Leave empty for any other Proxy provider.

## `proxy` (type: `object`):

<p>Read when <b>Proxy provider</b> is <b>Apify Proxy</b> (group + country). Its country also sets the exit country for the built-in providers — pick the marketplace's country, or Amazon serves price-stripped pages for the wrong region.</p>

## Actor input object example

```json
{
  "search_terms": [
    "laptop stand"
  ],
  "region": "com",
  "max_results": 48,
  "enrich": false
}
```

# Actor output Schema

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

Products from search — ASIN, title, price, original price, currency, rating, review count, Prime, image, product URL, region, scraped\_at. With `enrich` on, also image gallery (image\_urls) and product category.

# 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 = {
    "search_terms": [
        "laptop stand"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("herus13/amazon-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 = { "search_terms": ["laptop stand"] }

# Run the Actor and wait for it to finish
run = client.actor("herus13/amazon-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 '{
  "search_terms": [
    "laptop stand"
  ]
}' |
apify call herus13/amazon-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,herus13/amazon-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/o6huaYVDbYqmQMFpr/builds/78fVkI5pYvenasfYo/openapi.json
