# Amazon Scraper — ASINs, Prices & Rankings (`scrapeio/amazon-scraper`) Actor

Amazon scraper for 23 marketplaces. Extract ASINs, titles, prices, sponsored flags, and search rank. Up to 10,000 products per run. No SP-API. Apify AI, MCP, and Cursor ready.

- **URL**: https://apify.com/scrapeio/amazon-scraper.md
- **Developed by:** [Shop Intel](https://apify.com/scrapeio) (community)
- **Categories:** E-commerce, AI, Agents
- **Stats:** 58 total users, 4 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $10.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 Scraper for Apify: ASIN, Price & Search Rank Data Across 23 Marketplaces

Scrape Amazon search results at scale with the **Amazon Scraper \[Advance]** Apify Actor. Enter a keyword, choose an Amazon marketplace, and export structured product data: **ASIN**, title, price, product URL, image URL, sponsored flag, page number, and exact search ranking position.

Use this Amazon product scraper for Amazon SEO research, AI search data pipelines, competitor monitoring, affiliate product discovery, marketplace analysis, price tracking, share-of-shelf reporting, and no-code automations.

**Actor links**

- [Amazon Scraper](https://apify.com/scrapeio/amazon-scraper)
- Publisher: [ScrapeIO / Shop Intel on Apify](https://apify.com/scrapeio)

### Use with Apify AI

[Apify AI](https://docs.apify.com/account/apify-ai) is live in Apify Console. Describe the job in plain English and it **finds this Actor, fills the input form, runs it, and returns the dataset**. The same ranking powers Store search and the [Apify MCP server](https://docs.apify.com/integrations/mcp) `search-actors` tool used by **Cursor**, Claude, ChatGPT, and other agents.

Use this Actor when you need Amazon ASINs, prices, sponsored flags, and search rank — not the Product Advertising API. Open [Amazon Scraper on Apify](https://apify.com/scrapeio/amazon-scraper) or ask Apify AI with the prompts below.

#### Prompts that match this Actor

Type these in the **Apify Store search bar** (long, intent-heavy queries route to Apify AI) or the dashboard **Ask Apify AI** widget:

- "Track my competitor's prices on Amazon US for wireless earbuds"
- "Scrape Amazon India search results for protein powder and export ASINs and prices"
- "Get Amazon UK rankings and sponsored vs organic listings for running shoes"
- "Collect 500 Amazon product search results for coffee maker across DE marketplace"
- "Build an Amazon price monitoring dataset for a keyword with ASIN, title, price, and rank"

#### How Apify AI fills the input

| You say | This Actor sets |
|---|---|
| product or category to search | `keyword` |
| Amazon country (US, UK, IN, DE, JP…) | `marketplace` |
| how many products / ASINs | `maxResults` |

Apify AI always asks for confirmation before it runs. Nothing is charged until you approve.

#### Cursor, Claude, ChatGPT (Apify MCP)

Pin this Actor as a **default Cursor / MCP tool** so agents call `scrapeio/amazon-scraper` instead of a random Store result. Keep `actors` + `docs` so Apify AI search still works, and list your suite so Cursor prefers these Actors.

**Cursor MCP URL (this Actor first):**

```text
https://mcp.apify.com?tools=actors,docs,scrapeio/amazon-scraper,scrapeio/google-maps-scraper-advance,scrapeio/meta-facebook-ad-scrapper-using-ad-library-url-premium,scrapeio/instagram-scraper-premium,scrapeio/whatsapp-scraper-premium,scrapeio/facebook-ad-library-suggestions,scrapeio/google-news-scraper
```

`.cursor/mcp.json` / Cursor Settings → MCP:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=actors,docs,scrapeio/amazon-scraper,scrapeio/google-maps-scraper-advance,scrapeio/meta-facebook-ad-scrapper-using-ad-library-url-premium,scrapeio/instagram-scraper-premium,scrapeio/whatsapp-scraper-premium,scrapeio/facebook-ad-library-suggestions,scrapeio/google-news-scraper"
    }
  }
}
```

Then: `search-actors` → `fetch-actor-details` → `call-actor` with `scrapeio/amazon-scraper`. Example:

```text
Use scrapeio/amazon-scraper to do this: scrape the data I described. Fill the input from my description and return the dataset.
```

### How to scrape Amazon search results

Use this **Amazon scraper** to collect ASINs, prices, and search rankings across 23 Amazon storefronts. Enter a keyword, choose a marketplace code, and export CSV or JSON. No Product Advertising API.

### Amazon scraper API for Cursor, Python, and JavaScript

Call `scrapeio/amazon-scraper` from **Cursor** (Apify MCP), Claude, ChatGPT, the [Apify API](https://docs.apify.com/api/v2), Python (`apify-client`), or JavaScript. Apify AI uses the same ranking as Store search: title, description, README, and input/output schemas. This Actor is documented for that ranker — limited permissions, pay-per-event or compute (not rental), and a filled example input.

### What This Amazon Scraper Does

This Apify Amazon scraper reads public Amazon search result pages and converts product cards into clean rows for datasets, CSV exports, JSON exports, BI tools, AI agents, and LLM workflows. It supports 23 regional Amazon storefronts, including Amazon US, Amazon UK, Amazon India, Amazon Germany, Amazon France, Amazon Japan, Amazon Australia, Amazon UAE, and more.

The actor is built for teams that need Amazon product search data without the official Amazon Product Advertising API. It does not require an Associates account, PA-API credentials, OAuth setup, or a seller account.

### Key Features

- Scrape Amazon products by keyword, category phrase, brand phrase, or long-tail shopper query.
- Extract ASINs, product titles, prices, product URLs, image URLs, sponsored / organic flags, result page, and rank position.
- Choose from 23 Amazon marketplaces via country / region code.
- Collect up to 10,000 unique ASINs per run with automatic pagination.
- Export results from the Apify Dataset as CSV, JSON, Excel, XML, RSS, or HTML.
- Save complete `RESULTS_JSON`, `RESULTS_CSV`, and `OUTPUT` records to the key-value store.
- Use Apify API, CLI, webhooks, schedules, Make, Zapier, n8n, Google Sheets, BigQuery, Snowflake, or your own AI data pipeline.

### Supported Amazon Marketplaces

The marketplace dropdown supports these Amazon country / region codes:

`US`, `CA`, `MX`, `BR`, `UK`, `DE`, `FR`, `IT`, `ES`, `NL`, `BE`, `SE`, `PL`, `TR`, `AE`, `SA`, `EG`, `IN`, `JP`, `AU`, `SG`, `IE`, `ZA`.

Examples:

- `US`: `https://www.amazon.com`
- `UK`: `https://www.amazon.co.uk`
- `IN`: `https://www.amazon.in`
- `DE`: `https://www.amazon.de`
- `JP`: `https://www.amazon.co.jp`

### Input

| Field | Type | Description |
| --- | --- | --- |
| `keyword` | string | Amazon search phrase, e.g. `wireless earbuds`, `protein powder`, `running shoes for women`. |
| `marketplace` | string | Amazon country code: `US`, `UK`, `IN`, `DE`, `JP`, `AU`, `CA`, `FR`, `IT`, `ES`, `AE`, `SA`, and more. Defaults to `IN`. |
| `maxResults` | integer | Number of unique products / ASINs to collect, 1 to 10,000. |

**Proxy (not an input field)**

All Amazon HTTP requests go through **`PROXY_URL`** from environment, with the same built-in default as in code: `PROXY_URL = os.getenv("PROXY_URL", "http://…@gw.dataimpulse.com:823")`. To use a different proxy or disable it (empty string), set **`PROXY_URL`** on the Actor under **Settings → Environment variables**.

### Input Example

```json
{
  "keyword": "wireless earbuds",
  "maxResults": 250,
  "marketplace": "US"
}
```

United Kingdom marketplace example:

```json
{
  "keyword": "running shoes",
  "maxResults": 500,
  "marketplace": "UK"
}
```

### Output Data

Every product row is pushed to the default Apify Dataset. Typical fields:

| Field | Description |
| --- | --- |
| `position` | Exact product rank in the scraped Amazon search results. |
| `asin` | Amazon Standard Identification Number. |
| `title` | Product title from the search result card. |
| `price` | Displayed price with local currency symbol when available. |
| `productUrl` | Clean Amazon product detail URL. |
| `imageUrl` | Product image URL. |
| `isSponsored` | `true` for sponsored placements, `false` for organic rows. |
| `page` | Amazon search results page where the item appeared. |
| `searchKeyword` | Keyword used for the run. |
| `marketplace` | Amazon storefront URL used for the run. |
| `marketplaceCode` | Country / region code such as `US`, `UK`, `IN`, or `DE`. |

Example row:

```json
{
  "position": 1,
  "asin": "B0EXAMPLE1",
  "title": "Wireless Earbuds with Charging Case",
  "price": "$29.99",
  "productUrl": "https://www.amazon.com/dp/B0EXAMPLE1",
  "imageUrl": "https://m.media-amazon.com/images/I/example.jpg",
  "isSponsored": false,
  "page": 1,
  "searchKeyword": "wireless earbuds",
  "marketplace": "https://www.amazon.com",
  "marketplaceCode": "US"
}
```

### How To Run

#### Apify Console

Open [Amazon Scraper](https://apify.com/scrapeio/amazon-scraper), click **Try for free**, enter `keyword`, set `maxResults`, choose a marketplace, and start the run. Download results from **Storage > Dataset > Export**.

#### Apify CLI

```bash
apify call scrapeio/amazon-scraper \
  --input='{"keyword":"laptop bag","marketplace":"US","maxResults":100}'
```

#### JavaScript API

```js
const { ApifyClient } = require('apify-client');

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });

const run = await client.actor('scrapeio/amazon-scraper').call({
  keyword: 'mechanical keyboard',
  marketplace: 'US',
  maxResults: 250,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python API

```python
from apify_client import ApifyClient

client = ApifyClient(token="YOUR_APIFY_TOKEN")

run = client.actor("scrapeio/amazon-scraper").call(
    run_input={
        "keyword": "mechanical keyboard",
        "marketplace": "US",
        "maxResults": 250,
    }
)
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
print(items)
```

### Amazon SEO, AIO & LLM Use Cases

- Amazon SEO rank tracking: monitor which ASINs rank for high-intent keywords.
- AI overview / AIO workflows: feed fresh Amazon product snippets into RAG, LLM, and agentic research systems.
- Price intelligence: compare competitor prices across Amazon US, UK, India, Germany, Japan, and other regions.
- Sponsored vs organic reporting: separate paid placements from organic search visibility.
- Affiliate content: build product lists and comparison pages from live Amazon search results.
- Marketplace expansion: compare product availability and pricing by region.
- Data enrichment: join ASIN search data with internal SKU, PIM, ERP, or BI records.

### Amazon Scraper vs Amazon Product Advertising API

| Capability | Amazon PA-API | This Apify Amazon Scraper |
| --- | --- | --- |
| Associates account | Required | Not required |
| Search rank position | Not designed for rank tracking | Included as `position` |
| Sponsored flag | Not available in search order | Included as `isSponsored` |
| Marketplace switching | Limited by setup | 23 storefront codes (`US`, `UK`, `IN`, …) |
| Output formats | API JSON | Apify Dataset, CSV, JSON, Excel |
| Automation | Custom integration | Apify API, schedules, webhooks, integrations |

### FAQ

**How do I scrape Amazon ASINs and prices with Apify?**
Call scrapeio/amazon-scraper with keyword, marketplace, and maxResults. Pin it in Cursor MCP so agents default to this Amazon scraper.

**Can I run this Actor with Apify AI?**
Yes. In [Apify Console](https://console.apify.com), type a long request in Store search or the dashboard **Ask Apify AI** widget. Apify AI matches this README, fills the input schema, asks you to confirm, then returns the dataset. This Actor uses **limited permissions** (not full-account access) and is not a rental Actor, so it is eligible for Apify AI.

**Does this work from Cursor, Claude, or ChatGPT?**
Yes. Connect the [Apify MCP server](https://mcp.apify.com). Agents call `search-actors`, `fetch-actor-details`, and `call-actor`. Ranking uses the same signals as Store search and Actor quality score: a clear README plus documented input and output schemas.

**Is this an official Amazon API?**\
No. This is an Apify Actor that extracts public Amazon search result pages. It is not affiliated with Amazon and is not endorsed by Amazon.

**Can I scrape Amazon prices and ASINs from multiple countries?**\
Yes. Pick a supported `marketplace` code (`US`, `UK`, `IN`, `DE`, `JP`, and the rest listed above).

**Can I get CSV output?**\
Yes. Export the Dataset as CSV from Apify, or download the `RESULTS_CSV` key from the default key-value store.

**Why do some runs return fewer products than requested?**\
Amazon can return fewer listings, duplicate ASINs, empty pages, 503 responses, or region-specific layouts. The actor retries transient errors and records the stop reason in output metadata.

**Do I need to configure a proxy?**\
No. The Actor uses `PROXY_URL` with a residential default baked into `src/main.py`. Override or clear it via Actor **Environment variables** if needed.

### Related ScrapeIO Actors

- [Amazon Scraper](https://apify.com/scrapeio/amazon-scraper) - Amazon ASIN, price, and rank exports across 23 marketplaces.
- [Google Maps Scraper](https://apify.com/scrapeio/google-maps-scraper-advance) - local business leads, reviews, websites, phones, and contacts.
- [Google News Scraper](https://apify.com/scrapeio/google-news-scraper) - news monitoring by keyword.
- [Facebook Ad Library Scraper](https://apify.com/scrapeio/meta-facebook-ad-scrapper-using-ad-library-url-premium) - Meta ad intelligence.
- [Instagram Ads Scraper](https://apify.com/scrapeio/instagram-scraper-premium) - Instagram ad creatives and copy.
- [WhatsApp Ads Scraper](https://apify.com/scrapeio/whatsapp-scraper-premium) - click-to-WhatsApp ad research.
- [YouTube Video Downloader](https://apify.com/scrapeio/youtube-downloader) - video and audio downloads.

### Compliance

Use this actor responsibly and only for lawful research, analytics, and automation. Review [Apify Terms of Service](https://apify.com/terms-of-service), [Apify web scraping guidance](https://blog.apify.com/is-web-scraping-legal/), and the applicable Amazon terms for your region.

This actor is not affiliated with, endorsed by, or sponsored by Amazon.

***

Built by **[ScrapeIO](https://apify.com/scrapeio)** on Apify.

Powered by **[AdScrape](https://www.adscrape.in/)**.

# Actor input Schema

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

Product, brand, category, or long-tail Amazon search query, e.g. wireless earbuds, protein powder, running shoes for women.

## `marketplace` (type: `string`):

Amazon country / region code, e.g. US, UK, IN, DE, JP, AU, CA, FR, IT, ES, AE, SA. Defaults to IN if omitted.

## `maxResults` (type: `integer`):

Number of unique Amazon product rows / ASINs to collect. Paginates automatically until this count is reached or listings end.

## Actor input object example

```json
{
  "keyword": "wireless earbuds",
  "marketplace": "IN",
  "maxResults": 25
}
```

# Actor output Schema

## `products` (type: `string`):

One JSON object per Amazon product from search results.

## `summary` (type: `string`):

No description

## `resultsCsv` (type: `string`):

No description

# 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": "wireless earbuds"
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapeio/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 = { "keyword": "wireless earbuds" }

# Run the Actor and wait for it to finish
run = client.actor("scrapeio/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 '{
  "keyword": "wireless earbuds"
}' |
apify call scrapeio/amazon-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapeio/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/3sB0c4TDPCjLG4yps/builds/2kFKdKnmXfU4oKalM/openapi.json
