# Amazon Products Scraper (`curious_coder/amazon-scraper`) Actor

Scrape amazon products, category pages, search results, amazon best sellers, etc and extract complete details such as description, price, rating, bestsellers ranks, badges, photos etc.

- **URL**: https://apify.com/curious\_coder/amazon-scraper.md
- **Developed by:** [Curious Coder](https://apify.com/curious_coder) (community)
- **Categories:** E-commerce, Other
- **Stats:** 1,073 total users, 61 monthly users, 99.9% runs succeeded, 24 bookmarks
- **User rating**: 4.67 out of 5 stars

## Pricing

from $0.75 / 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.
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

Extract product listings and product data seamlessly from [Amazon](https://www.amazon.com) using any product listing URLs. Get critical information like ratings, bestseller ranks, pricing, variations, etc.

This scraper supports several types of product listings pages like best selling products page, gifts page, and regular search results pages.

Here are some examples of URLs supported:

- https://www.amazon.com/s?i=specialty-aps\&bbn=16225007011\&rh=n%3A16225007011%2Cn%3A1292115011

- https://www.amazon.in/s?k=redmi\&rh=n%3A1389401031\&ref=nb\_sb\_noss

- https://www.amazon.com/Best-Sellers-Toys-Games/zgbs/toys-and-games/ref=zg\_bs\_nav\_toys-and-games\_0

You can also scrape data directly through an API, eliminating the need to access the Apify platform.

### Benefits of Scraping Amazon

- Gain insights into category and subcategory performance.
- Benchmark your products by analyzing emerging brands and their metrics like views and reviews.
- Refine your advertising strategies.
- Leverage Amazon data for competitive advantage.
- Affiliate marketing

### Amazon Product Scraper's Capacity

While the scraper can fetch over 100,000 results on average, various factors might affect the output. The actual number of results can be influenced by the input's complexity, the website's internal constraints, and geographical considerations. For accurate results tailored to your needs, consider a test run.

### Cost Implications

Scraping costs can vary based on the data volume and complexity. For a clear estimate, initiate a test scrape with minimal input. This will give you a price-per-scrape which can be scaled as per your requirements. Consider premium plans for cost savings.

### Input Guidelines for the Scraper

When initializing the Amazon Product Scraper, configure your preferences. Inputs can be provided as JSON or directly on the Apify platform. Be mindful of certain nuances while using the scraper, such as potential price variations based on proxy locations.

### Sample of amazon products scraper

```json
 {
    "asin": "B0B5B6R5JN",
    "badges": "",
    "image": "https://m.media-amazon.com/images/I/61ECeMoaOKL._AC_UY218_.jpg",
    "link": "https://www.amazon.com/Prodentim-Advanced-Formula-Probiotic-Supplement/dp/B0B5B6R5JN/ref=sr_1_10?m=A5T7BUI9KCCPB&qid=1693035039&s=merchant-items&sr=1-10",
    "title": "Prodentim Advanced Formula Probiotic Supplement Pills (1 Pack)",
    "stars": 3.4,
    "ratingsCount": 800,
    "priceCurrency": "$",
    "priceAmount": 28,
    "isPrime": false,
    "isSponsored": false,
    "seller": {
      "url": "https://www.amazon.com/S-O-Labs/b/ref=bl_dp_s_web_23450631011?ie=UTF8&node=23450631011&field-lbr_brands_browse-bin=S.O+Labs",
      "name": "S.O Labs"
    },
    "questionsCount": "10",
    "amazonsChoiceKeywords": [],
    "productOverview": [],
    "features": [],
    "bestSellersRank": [
      {
        "rank": "23668",
        "categoryName": "Health & Household",
        "link": "/gp/bestsellers/hpc/ref=pd_zg_ts_hpc"
      },
      {
        "rank": "958",
        "categoryName": "Blended Vitamin & Mineral Supplements",
        "link": "/gp/bestsellers/hpc/3773931/ref=pd_zg_hrsr_hpc"
      }
    ],
    "technicalDetails": [],
    "productDetails": [
      {
        "name": "PackageDimensions‏",
        "value": "4.13 x 1.97 x 1.93 inches; 1.76 Ounces"
      },
      {
        "name": "DateFirstAvailable‏",
        "value": "July 7, 2022"
      },
      {
        "name": "Manufacturer‏",
        "value": "Lightning Labs"
      },
      {
        "name": "ASIN‏",
        "value": "B0B5B6R5JN"
      }
    ],
    "variationValues": {
      "size_name": [
        "30.0 Servings (Pack of 3)",
        "60.0 Servings (Pack of 2)",
        "60 Count (Pack of 5)",
        "60.0 Servings (Pack of 120)"
      ]
    },
    "variationAsins": [
      {
        "size_name": "0",
        "ASIN": "B0B5B9K4R4"
      },
      {
        "size_name": "2",
        "ASIN": "B0B5B7ZXW2"
      },
      {
        "size_name": "1",
        "ASIN": "B0B5B6ZV9R"
      },
      {
        "size_name": "3",
        "ASIN": "B0B5B6R5JN"
      }
    ]
  },
```

### Integrate Amazon Product Scraper

Easily connect the Amazon Product Scraper with cloud services or web apps via Apify platform integrations. Options include Make, Zapier, Slack, Google Sheets, and more. Use webhooks for instant notifications or actions on specific events.

### Amazon Product Scraper API

The Apify API offers extensive control over the Apify platform with RESTful HTTP endpoints. Manage, schedule, and run Apify actors, access datasets, monitor performances, and much more.

### Feedback & Support

Your input helps us enhance our tools. For technical feedback or to report issues, please visit the Issues section on the Apify Console.

# Actor input Schema

## `urls` (type: `array`):

Enter urls to scrape. Search urls, product urls, bestsellers urls, etc.

## `deepScrape` (type: `boolean`):

If enabled, Actor will add each product url obtained from product listing pages to the request queue to scrape product details. Otherwise it will scrape only top level URLs

## `startPage` (type: `integer`):

Page number to start scraping, only used for product listing page urls

## `count` (type: `integer`):

Leave this field empty if you want to scrape all items.

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

You can use custom proxy urls if you want but we don't guarantee it will work smoothly, by default Actor will use recommended proxy config

## Actor input object example

```json
{
  "urls": [
    {
      "url": "https://www.amazon.com/s?i=specialty-aps&bbn=16225009011&rh=n%3A%2116225009011%2Cn%3A2811119011&ref=nav_em__nav_desktop_sa_intl_cell_phones_and_accessories_0_2_5_5"
    }
  ],
  "deepScrape": false,
  "startPage": 1,
  "count": 50
}
```

# 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 = {
    "urls": [
        {
            "url": "https://www.amazon.com/s?i=specialty-aps&bbn=16225009011&rh=n%3A%2116225009011%2Cn%3A2811119011&ref=nav_em__nav_desktop_sa_intl_cell_phones_and_accessories_0_2_5_5"
        }
    ],
    "startPage": 1,
    "count": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("curious_coder/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 = {
    "urls": [{ "url": "https://www.amazon.com/s?i=specialty-aps&bbn=16225009011&rh=n%3A%2116225009011%2Cn%3A2811119011&ref=nav_em__nav_desktop_sa_intl_cell_phones_and_accessories_0_2_5_5" }],
    "startPage": 1,
    "count": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("curious_coder/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 '{
  "urls": [
    {
      "url": "https://www.amazon.com/s?i=specialty-aps&bbn=16225009011&rh=n%3A%2116225009011%2Cn%3A2811119011&ref=nav_em__nav_desktop_sa_intl_cell_phones_and_accessories_0_2_5_5"
    }
  ],
  "startPage": 1,
  "count": 50
}' |
apify call curious_coder/amazon-scraper --silent --output-dataset

```

## MCP server setup

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