# ✨ Amazon Search Scraper (`damilo/amazon-search-scraper`) Actor

⚡ Ultra-fast Amazon Search Scraper for Apify. Grab real-time product intel—ASIN, title, price, rating, reviews, Prime badge, delivery—across 20 + Amazon sites. Smart filters: ZIP & ship-to, sort, Prime-only, in-stock. Perfect for price tracking, product research, and competitor watch.

- **URL**: https://apify.com/damilo/amazon-search-scraper.md
- **Developed by:** [Imad](https://apify.com/damilo) (community)
- **Categories:** E-commerce, Automation
- **Features:** Limited permissions
- **Stats:** 103 total users, 0 monthly users, 96.6% runs succeeded, 5 bookmarks
- **User rating**: 2.00 out of 5 stars

## Pricing

$2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Amazon Search Scraper (Apify Actor)

✅ If this actor saved you time, a ⭐⭐⭐⭐⭐ review helps me keep improving!

Looking for a **fast, reliable Amazon scraper** with localized results, full deal tagging, and support for both **organic and sponsored products**?\
Meet **Amazon Search Scraper** – the easiest way to extract live product listings into structured JSON for price tracking, research, and automation.

***

### Table of Contents

1. [Key Benefits](#key-benefits)
2. [Typical Use Cases](#typical-use-cases)
3. [Features](#features)
4. [Input Parameters](#input-parameters)
5. [Example Input](#example-input)
6. [Output](#output)
7. [Limitations & Best Practices](#limitations--best-practices)
8. [Support](#support)

***

### Key Benefits

- **Structured Data** – Get ASIN, title, price, rating, reviews, availability, deals, and more.
- **Sponsored Products** – Optionally include ad-backed listings from brands and headline banners.
- **Accurate Localization** – Use ZIP code and country targeting for precise availability.
- **Global Domains** – Works with 16 Amazon storefronts including `.com`, `.co.uk`, `.de`, `.in`, and more.
- **No CAPTCHAs, No Blocks** – Powered by a hosted Amazon results API; transient errors are retried automatically and rejected requests fail the run with a clear message instead of returning an empty dataset.
- **Built for Apify** – Plug-and-play deployment, scheduling, storage, and integrations.

***

### Typical Use Cases

| Problem                        | How the scraper helps                                                         |
| ------------------------------ | ----------------------------------------------------------------------------- |
| **Price Monitoring**           | Track live pricing data across any product category or region.                |
| **Competitor Benchmarking**    | Compare sponsored vs organic visibility, Prime eligibility, and buyer volume. |
| **Keyword & Listing Research** | Identify bestsellers, Amazon Choice tags, and real-time review metrics.       |
| **Deal Aggregation**           | Extract products flagged with “Deal of the Day” or “Limited Time Deal.”       |
| **International Product Sync** | Track item availability and prices across Amazon locales.                     |

***

### Features

- 🔍 **Organic & Sponsored Listings** – Scrapes both product types in one run.
- 🏷️ **Rich Metadata** – Extract flags like `Prime`, `Best Seller`, `Amazon's Choice`, `Deals`, and `People Bought`.
- 🌍 **Country + ZIP Targeting** – Personalize results by shipping location and postal code.
- 📊 **Auto Pagination** – Up to 10 pages scraped; the run stops exactly at `max_results`.
- 🧩 **Full Apify Integration** – Schedule runs, export to BigQuery or S3, trigger webhooks, and more.

***

### Input Parameters

| Key           | Type    | Required | Default | Description                                          |
| ------------- | ------- | -------- | ------- | ---------------------------------------------------- |
| `query`       | string  | **Yes**  | –       | Keyword(s) to search on Amazon.                      |
| `sponsored`   | boolean | No       | `false` | Whether to include sponsored products in the output. |
| `domain`      | string  | No       | `com`   | Amazon storefront (e.g. `com`, `co.uk`, `de`, `in`). |
| `country`     | string  | No       | `us`    | Country the products should be shippable to.         |
| `zip`         | string  | No       | –       | ZIP/postal code to localize prices and delivery.     |
| `max_results` | integer | No       | `35`    | Maximum number of products to scrape (up to 10 pages). |

***

### Example Input

![Input](./assets/input.png)

```json
{
  "query": "mechanical keyboard",
  "sponsored": true,
  "domain": "co.uk",
  "country": "gb",
  "zip": "W1A 1AA",
  "max_results": 50
}
```

***

### Output

![Output](./assets/output.png)
Each run produces a JSON dataset like:

```json
[
  {
    "image": "https://m.media-amazon.com/images/I/71Bk2A2WmOL._AC_UY218_.jpg",
    "title": "Redragon Mechanical Gaming Keyboard Wired, 11 Programmable Backlit Modes, Hot-Swappable Red Switch, Anti-Ghosting, Double-Shot PBT Keycaps, Light Up Keyboard for PC Mac",
    "has_prime": null,
    "is_best_seller": false,
    "is_amazon_choice": false,
    "limited_time_deal": false,
    "deal_of_the_day": false,
    "stars": 4.3,
    "total_reviews": 6800,
    "url": "https://www.amazon.com/dp/B0CF3VGQFL/",
    "sponsored": true,
    "number_of_people_bought": "2K+ bought in past month",
    "asin": "B0CF3VGQFL",
    "availability_quantity": null,
    "price": "$29.99",
    "position": 1
  }
]
```

> View structured results instantly in **Dataset → Overview** inside Apify Console.

***

### Limitations & Best Practices

- 🧭 **Pagination Limit** – Max 10 pages per query, regardless of `max_results`.
- 🏷 **Field notes** – `availability_quantity` is kept for compatibility but is currently always `null`; `has_prime` is `null` unless the data source shows a Prime badge for the product; `position` is `null` for sponsored brand products.
- 🚨 **Errors** – If the upstream service rejects a request (quota or key problem), the run fails with a clear status message instead of finishing with an empty dataset.
- ⚖️ **Legal Use Only** – Respect Amazon’s Terms of Service and your local scraping laws.

***

### Support

- 💬 **Community Help** – Ask questions via [Apify Discord](https://discord.gg/jyEM2PR) or open a GitHub issue.
- 🛠️ **Commercial Support** – Need customization or scaling help? Reach out on Apify Marketplace.

***

#### Why Use Amazon Search Scraper?

Because getting **accurate, localized, real-time Amazon search data** shouldn't be a hassle.\
This actor is lightweight, scalable, and built for speed—so you get the data you need, without the headaches.

> **Click “Try for free” and start scraping in under 60 seconds!**

***

### Other useful actors:

- [Google Shopping Apify](https://apify.com/damilo/google-shopping-apify)
- [Google Images Scraper](https://apify.com/damilo/google-images-scraper)
- [Google Search Results Scraper](https://apify.com/damilo/google-search-apify)

# Actor input Schema

## `query` (type: `string`):

Keywords to search for on Amazon, e.g. mechanical keyboard.

## `sponsored` (type: `boolean`):

Whether to include sponsored products in the results.

## `domain` (type: `string`):

Amazon storefront to search, e.g. com, co.uk, de.

## `zip` (type: `string`):

ZIP or postal code to localise prices and delivery estimates (optional).

## `country` (type: `string`):

Country the products should be shippable to (affects availability and prices).

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

Maximum number of products to scrape (organic plus sponsored when enabled). Up to 10 result pages are read.

## Actor input object example

```json
{
  "query": "mechanical keyboard",
  "sponsored": false,
  "domain": "com",
  "zip": "",
  "country": "us",
  "max_results": 35
}
```

# 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 = {
    "query": "mechanical keyboard",
    "sponsored": false,
    "domain": "com",
    "zip": "",
    "country": "us",
    "max_results": 35
};

// Run the Actor and wait for it to finish
const run = await client.actor("damilo/amazon-search-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 = {
    "query": "mechanical keyboard",
    "sponsored": False,
    "domain": "com",
    "zip": "",
    "country": "us",
    "max_results": 35,
}

# Run the Actor and wait for it to finish
run = client.actor("damilo/amazon-search-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 '{
  "query": "mechanical keyboard",
  "sponsored": false,
  "domain": "com",
  "zip": "",
  "country": "us",
  "max_results": 35
}' |
apify call damilo/amazon-search-scraper --silent --output-dataset

```

## MCP server setup

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