# Amazon Search Scraper V2 (`akash9078/amazon-search-scraper-v2`) Actor

Scrape Amazon search results with structured JSON output including product titles, prices, ratings, reviews, badges, and delivery information.

- **URL**: https://apify.com/akash9078/amazon-search-scraper-v2.md
- **Developed by:** [Akash Kumar Naik](https://apify.com/akash9078) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00005 / actor start

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Search Scraper V2

<p align="center">
  <a href="https://apify.com/store/actors/amazon-search-scraper-v2">
    <img src="https://img.shields.io/badge/Apify-Store-View-blue?style=flat-square" alt="Apify Store">
  </a>
  <a href="https://apify.com/pricing">
    <img src="https://img.shields.io/badge/Pricing-Pay--Per--Event-green?style=flat-square" alt="Pricing">
  </a>
  <a href="https://img.shields.io/badge/Marketplaces-11-orange?style=flat-square">
    <img src="https://img.shields.io/badge/Marketplaces-11-orange?style=flat-square" alt="Marketplaces">
  </a>
  <a href="https://img.shields.io/badge/Output-JSON--Dataset-blue?style=flat-square">
    <img src="https://img.shields.io/badge/Output-JSON-blue?style=flat-square" alt="Output">
  </a>
</p>

Extract structured product data from Amazon search results at scale. This Apify Actor scrapes search queries across 11 global Amazon marketplaces and returns clean JSON containing product titles, prices, ratings, reviews, badges, Prime status, sponsored flags, sales volume, and delivery information — optimized for e-commerce analytics, competitive intelligence, price monitoring, and product research workflows.

---

### What Does This Actor Do?

The **Amazon Search Scraper V2** extracts product listing data from Amazon search result pages. It returns structured JSON with ASINs, titles, prices, ratings, review counts, badges (Best Seller, Overall Pick, Limited Time Deal), sponsored flags, Prime eligibility, sales volume indicators, and delivery estimates. Each run produces a single dataset item containing all extracted products plus metadata.

**Key capabilities:**
- Scrape Amazon search results with structured JSON output
- Support for 11 international Amazon marketplaces
- Geo-targeting via ZIP code for localized pricing and delivery
- Pagination for building comprehensive product datasets
- Pay-per-event pricing with transparent per-result billing

---

### Overview

| Attribute | Value |
|-----------|-------|
| **Actor** | Amazon Search Scraper V2 |
| **Category** | E-Commerce Data Extraction |
| **Pricing** | Pay-Per-Event ($0.001 per search result + $0.01 per product item) |
| **Marketplaces** | USA, UK, Germany, Japan, France, Italy, Spain, Canada, Mexico, Australia, India |
| **Output Format** | JSON (dataset) |
| **Geo-Targeting** | ZIP code based |

---

### Features

- **High-Volume Extraction** — Scrape unlimited Amazon search pages with structured product data including ASINs, titles, prices, ratings, review counts, badges, sponsored flags, and Prime eligibility
- **Multi-Marketplace Coverage** — Search across 11 Amazon international marketplaces (US, UK, DE, JP, FR, IT, ES, CA, MX, AU, IN) with localized results
- **Precision Geo-Targeting** — Localized pricing, delivery estimates, and product availability via ZIP code targeting
- **Pagination Support** — Scrape multiple result pages sequentially to build comprehensive product datasets
- **Structured Output** — Machine-readable JSON schema with consistent field names, types, and formats for automated processing
- **Spend Limit Enforcement** — Respects user-configured spending limits via `ACTOR_MAX_TOTAL_CHARGE_USD`
- **Enterprise Integration** — API-accessible via REST, CLI, or SDK for programmatic workflow integration

---

### Pricing

Pay-per-event pricing model with transparent per-result billing:

| Event | Price | Description |
|-------|-------|-------------|
| `amazon-search-result` | $0.001 | Per search result page scraped successfully |
| `product-item` | $0.01 | Per product item extracted from search results |

**Total cost per run = $0.001 + (number of products × $0.01)**

**Example calculation:** 16 products = $0.001 + (16 × $0.01) = **$0.161**

---

### Output Schema

Each actor run outputs a single dataset item containing:

```json
{
  "keyword": "laptop stands",
  "page": 1,
  "totalResults": "1-16 of over 40,000 results for laptop stands",
  "products": [
    {
      "asin": "B0BLRJ4R8F",
      "title": "Amazon Basics Sturdy and Portable Ergonomic Laptop Stand",
      "url": "https://www.amazon.com/dp/B0BLRJ4R8F",
      "imageUrl": "https://m.media-amazon.com/images/I/51KyaTB1EKL._AC_UY218_.jpg",
      "price": { "currencyCode": "USD", "amount": 20.99 },
      "rating": { "value": 4.6, "count": 0, "stars": 5 },
      "reviewCount": "(3.1K)",
      "isSponsored": false,
      "isPrime": true,
      "position": 3,
      "badge": "Overall Pick",
      "salesVolume": "10K+ bought in past month",
      "delivery": {
        "isFree": true,
        "date": "Wed, Apr 29",
        "fastestDate": "Tomorrow 8 AM - 1 PM"
      }
    }
  ],
  "status": "success",
  "scrapedAt": "2026-04-25T07:23:40.000Z",
  "productsCount": 16,
  "pricingEvents": {
    "searchResultCharged": 1,
    "productItemsCharged": 16,
    "totalChargeUsd": 0.161
  }
}
````

**Schema Fields:**

| Field | Type | Description |
|-------|------|-------------|
| `keyword` | string | Search query executed on Amazon |
| `page` | integer | Page number of results (1-based) |
| `totalResults` | string | Amazon's total results text |
| `products` | array | Array of product objects |
| `products[].asin` | string | Amazon Standard Identification Number (10 chars) |
| `products[].title` | string | Product title |
| `products[].url` | uri | Direct URL to product page |
| `products[].imageUrl` | uri | Product thumbnail image URL |
| `products[].price` | object | Price with currencyCode and amount |
| `products[].rating` | object | Rating value (0-5), count, stars |
| `products[].reviewCount` | string | Review count text "(3.1K)" |
| `products[].isSponsored` | boolean | Paid sponsored listing flag |
| `products[].isPrime` | boolean | Prime shipping availability |
| `products[].position` | integer | Position on search results page |
| `products[].badge` | string | Badge text (Best Seller, Overall Pick, etc.) |
| `products[].salesVolume` | string | Sales velocity indicator |
| `products[].delivery` | object | Delivery info with dates and fulfillment |
| `status` | enum | success, no-results, error, limit-reached |
| `scrapedAt` | datetime | ISO 8601 timestamp |
| `productsCount` | integer | Total products extracted |
| `requestParams` | object | Original request parameters used |
| `pricingEvents` | object | Billing metadata (searchResultCharged, productItemsCharged, totalChargeUsd) |

***

### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `keyword` | string | Yes | Search query (e.g., "laptop stands", "wireless headphones") |
| `geocode` | string | No | Country code: `us`, `gb`, `de`, `jp`, `fr`, `it`, `es`, `ca`, `mx`, `au`, `in` (default: us) |
| `zipcode` | string | No | Postal code for geo-targeting (default: 10001) |
| `page` | integer | No | Page number for pagination (default: 1, max: 100) |

***

### Use Cases

#### E-Commerce Analytics

Track product rankings, pricing trends, and review patterns across Amazon categories. Monitor Best Seller badges and Overall Pick placements to understand market dynamics and category health indicators.

#### Competitive Intelligence

Analyze sponsored versus organic placements to understand competitor advertising strategies. Compare pricing across international marketplaces and identify sales volume patterns for competitor products.

#### Price Monitoring

Build automated price tracking pipelines to identify pricing changes, discount patterns, and promotional cycles. Monitor price history across marketplaces to inform repricing strategies.

#### Product Research

Gather comprehensive product datasets for market sizing, keyword opportunity analysis, and product-feature correlation studies. Identify underserved market segments and competitive gaps.

#### AI/ML Data Pipelines

Feed structured Amazon product data into machine learning models for demand forecasting, sentiment analysis of reviews, and recommendation system training.

***

### FAQ

**How does pricing work?**
The actor uses pay-per-event pricing. You are charged $0.001 for each search result page scraped, plus $0.01 for each product item extracted.

**Which Amazon marketplaces are supported?**
The actor supports 11 marketplaces: USA, UK, Germany, Japan, France, Italy, Spain, Canada, Mexico, Australia, and India.

**What is the maximum page count?**
The actor supports up to 100 pages per run via the `page` parameter.

**How is the output structured?**
Each run produces a single dataset item containing all extracted products plus metadata in JSON format.

***

### Related Actors

Looking for similar data extraction tools? Explore these related actors:

- [Amazon Product Scraper](https://apify.com/store/actors/amazon-product-scraper) — Individual ASIN-based product details
- [Amazon Reviews Scraper](https://apify.com/store/amazon-reviews-scraper) — Customer review extraction
- [Amazon Bestsellers](https://apify.com/store/amazon-bestsellers) — Category bestseller rankings

***

### Legal Notice

Users are responsible for ensuring their data collection activities comply with applicable laws and Amazon's Conditions of Use. Do not use this actor for illegal purposes or unauthorized data extraction.

***

*Last updated: April 2026*

# Actor input Schema

## `keyword` (type: `string`):

Search query for Amazon (e.g., 'laptop stands', 'wireless headphones').

## `geocode` (type: `string`):

Amazon marketplace country code: us=USA, gb=UK, de=Germany, jp=Japan, fr=France, it=Italy, es=Spain, ca=Canada, mx=Mexico, au=Australia, in=India

## `zipcode` (type: `string`):

Postal code for geo-targeting. US: 10001, UK: SW1A1, DE: 10115, etc.

## `page` (type: `integer`):

Page number for pagination. Amazon typically shows 16-48 products per page.

## Actor input object example

```json
{
  "keyword": "laptop stands",
  "geocode": "us",
  "zipcode": "10001",
  "page": 1
}
```

# Actor output Schema

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

Array of product objects from Amazon search

# 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 = {
    "keyword": "laptop stands"
};

// Run the Actor and wait for it to finish
const run = await client.actor("akash9078/amazon-search-scraper-v2").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 = { "keyword": "laptop stands" }

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

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

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

```

## CLI example

```bash
echo '{
  "keyword": "laptop stands"
}' |
apify call akash9078/amazon-search-scraper-v2 --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=akash9078/amazon-search-scraper-v2",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Amazon Search Scraper V2",
        "description": "Scrape Amazon search results with structured JSON output including product titles, prices, ratings, reviews, badges, and delivery information.",
        "version": "1.0",
        "x-build-id": "hLPVzHaUP6moLPb6y"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/akash9078~amazon-search-scraper-v2/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-akash9078-amazon-search-scraper-v2",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/akash9078~amazon-search-scraper-v2/runs": {
            "post": {
                "operationId": "runs-sync-akash9078-amazon-search-scraper-v2",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/akash9078~amazon-search-scraper-v2/run-sync": {
            "post": {
                "operationId": "run-sync-akash9078-amazon-search-scraper-v2",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "keyword"
                ],
                "properties": {
                    "keyword": {
                        "title": "Search Keyword",
                        "type": "string",
                        "description": "Search query for Amazon (e.g., 'laptop stands', 'wireless headphones')."
                    },
                    "geocode": {
                        "title": "Country Code",
                        "type": "string",
                        "description": "Amazon marketplace country code: us=USA, gb=UK, de=Germany, jp=Japan, fr=France, it=Italy, es=Spain, ca=Canada, mx=Mexico, au=Australia, in=India",
                        "default": "us"
                    },
                    "zipcode": {
                        "title": "Zip Code",
                        "type": "string",
                        "description": "Postal code for geo-targeting. US: 10001, UK: SW1A1, DE: 10115, etc.",
                        "default": "10001"
                    },
                    "page": {
                        "title": "Page Number",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Page number for pagination. Amazon typically shows 16-48 products per page.",
                        "default": 1
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
