# Amazon Best Sellers Scraper - Top 100, New Releases, Movers (`zaver.api/amazon-bestsellers-scraper`) Actor

Scrape Amazon Best Sellers, New Releases, Movers & Shakers, Most Wished For and Most Gifted: the top 100 of any category with rank, price, rating and review count. 23 marketplaces, subcategories, no API key, no login, no start fee. CSV, Excel or JSON.

- **URL**: https://apify.com/zaver.api/amazon-bestsellers-scraper.md
- **Developed by:** [Zaver](https://apify.com/zaver.api) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 product scrapeds

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 Best Sellers Scraper — Top 100, New Releases and Movers & Shakers

**Scrape Amazon Best Sellers lists without the Amazon API.** Get the top 100 products of any category with rank, price, rating and review count, from Best Sellers, New Releases, Movers & Shakers, Most Wished For and Most Gifted. Works on **23 Amazon marketplaces**. No Amazon account, no API keys. Pay per product, no start fee.

> ⭐ Top 100 per category · 5 list types · subcategories · whole-marketplace sweep · rank change on Movers & Shakers · proxies included · API and MCP ready

### What does Amazon Best Sellers Scraper do?

Amazon publishes ranked lists of its best-selling products in every department and subcategory, updated hourly. This Actor exports them as clean rows.

| You enter | You get |
|---|---|
| A category, such as `electronics` | The top 100 of that category |
| A Best Sellers page link | The top 100 of that exact list |
| Nothing | The top 100 of every department in the marketplace |
| A category with **Include subcategories** on | The category and each of its subcategories |

Choose which list you want: **Best Sellers**, **New Releases**, **Movers & Shakers**, **Most Wished For** or **Most Gifted**.

### What data does it extract?

#### Ranking fields

| Field | Description |
|---|---|
| `rank` | Position in the list, 1 to 100 |
| `asin`, `title`, `link` | Product ID, title and URL |
| `price_amount`, `price_currency`, `price_text` | Price and currency |
| `rating_average`, `rating_count` | Star rating and number of ratings |
| `image` | Product image |
| `category`, `category_name` | Category alias and its display name |
| `list_type`, `list_link` | Which list the row came from and its URL |
| `rank_change_percent`, `previous_rank`, `sales_rank` | Movement data on Movers & Shakers lists |

### An Amazon API alternative

Amazon's Product Advertising API (PA-API) does not expose Best Sellers lists as ranked data, and it is only open to approved Associates who keep generating sales.

This Actor is an **Amazon API alternative** for ranking data. It works **without the Amazon Product Advertising API**: no Associates account, no access keys, no API pricing to negotiate. You pay per ranked product you export.

| | Amazon PA-API | This Actor |
|---|---|---|
| Access | Approved Associates only | Anyone |
| Best Sellers, New Releases, Movers & Shakers | Not available as ranked lists | All five list types |
| Subcategory lists | Not available | Included |
| Output | API objects | Flat rows: CSV, Excel, JSON |

### Why use this Amazon best sellers scraper

#### All five lists, not just Best Sellers

New Releases shows what is launching. Movers & Shakers shows what is rising fastest in the last 24 hours, with the rank change. Most Wished For and Most Gifted show intent before purchase.

#### Whole categories in one run

Turn on **Include subcategories** to capture a department and every subcategory under it. Leave the category empty to sweep the entire marketplace.

#### 23 marketplaces

United States, Canada, Mexico, Brazil, United Kingdom, Ireland, Germany, France, Italy, Spain, Netherlands, Belgium, Sweden, Poland, Turkey, UAE, Saudi Arabia, Egypt, India, Japan, Singapore, Australia and South Africa.

#### Fast, with no start fee

A category's top 100 takes a few seconds. Starting a run is free, and you are charged only for rows delivered.

### How to scrape Amazon Best Sellers

1. Open the Actor and enter **Categories**: an alias such as `electronics`, or a link to any Best Sellers page. Leave empty for all departments.
2. Pick the **List type** and **Marketplace**.
3. Set **Max products per category**. Amazon publishes 100 per list.
4. Optionally turn on **Include subcategories**.
5. Press **Start**, then export as CSV, Excel, JSON or XML.

> 💡 Category aliases differ between marketplaces. On amazon.de, electronics is `ce-de`. The safest input is a link copied from the Best Sellers page you want.

### Input example

```json
{
  "categories": [
    "electronics",
    "https://www.amazon.com/gp/new-releases/toys-and-games/"
  ],
  "listType": "best_sellers",
  "country": "US",
  "maxItemsPerCategory": 100,
  "includeSubcategories": false
}
```

| Field | Type | Description |
|---|---|---|
| `categories` | array | Best Sellers category aliases (`electronics`, `electronics/172541`) or links to any Best Sellers, New Releases or Movers & Shakers page, one per line. Leave empty to scrape every top-level department of the marketplace. |
| `listType` | string | Which ranked list to scrape. A pasted link to a specific list overrides this for that input. Default `"best_sellers"`. |
| `country` | string | Which Amazon site to scrape. A product or category link from another Amazon site overrides this for that input. Default `"US"`. |
| `maxItemsPerCategory` | integer | Amazon publishes 100 products per list. Default `100`. |
| `includeSubcategories` | boolean | Also scrape every subcategory directly under each category you entered. |
| `maxItems` | integer | Hard cap on products for the whole run. 0 means no cap. |

### Output example

```json
{
  "type": "bestseller",
  "rank": 2,
  "asin": "B0DCH8VDXF",
  "title": "Wired Headphones with USB-C Plug",
  "link": "https://www.amazon.com/dp/B0DCH8VDXF",
  "price_amount": 19.0,
  "price_currency": "USD",
  "price_text": "$19.00",
  "rating_average": 4.5,
  "rating_count": 18452,
  "image": "https://images-na.ssl-images-amazon.com/images/I/example._AC_UL300_.jpg",
  "category": "electronics",
  "category_name": "Electronics",
  "list_type": "best_sellers",
  "list_link": "https://www.amazon.com/gp/bestsellers/electronics/",
  "country": "US",
  "source": "best_sellers:electronics"
}
```

### Pricing

Pay per result. **No start fee, no monthly rental, no minimum.**

| Event | Charged for | Price |
|---|---|---|
| `bestseller-scraped` | each ranked product delivered | **$2.99 / 1,000** |

| You export | You pay |
|---|---|
| Top 100 of one category | **$0.30** |
| Top 100 of 40 departments (4,000 products) | **$11.96** |
| 100,000 ranked products | **$299.00** |

Each product is billed once per run. You are charged right after each batch lands in your dataset, so a run you stop early costs only what it delivered. Duplicates, products that are not found and failed pages are free. Proxies are included.

### Use cases

#### Product research for Amazon sellers

Find what sells in a niche before you source it. Compare price, rating and review count across the top 100 to spot categories where leaders have few reviews.

#### Trend spotting

Schedule Movers & Shakers hourly. `rank_change_percent` and `previous_rank` show what is climbing right now, often before it reaches the main Best Sellers list.

#### Competitor and brand tracking

Run the same categories every day and chart how each brand's products move up and down the ranks.

#### Launch monitoring

New Releases shows which recently launched products are gaining traction, and at what price.

#### Market sizing and category analysis

Sweep a department with subcategories on to map which subcategories are dominated by a few products and which are fragmented.

#### Affiliate and content sites

Build "best of" pages from current ranking data, with images and prices refreshed on a schedule.

### FAQ

**Do I need an Amazon account or API key?**
No. It works without the Amazon Product Advertising API and without logging in.

**Is scraping Amazon legal?**
This is general information, not legal advice. The Actor collects only ranking and product information that Amazon shows publicly to every visitor, and never logs in. Whether your use is lawful depends on where you are and what you do with the data. Amazon's Conditions of Use restrict automated access, and product images and descriptions can be protected by copyright. Use the data for analysis and monitoring, do not republish copyrighted content, and ask a lawyer before building a commercial product on it.

**How many products are in each list?**
Amazon publishes 100 per list, across two pages of 50. Some small subcategories have fewer.

**How do I find a category alias?**
Open the Best Sellers page you want on Amazon and copy its link. The Actor reads the category from the link. You can also paste aliases such as `electronics` or `electronics/172541`.

**What happens if I leave the category empty?**
The Actor scrapes the top 100 of every top-level department in the marketplace. On amazon.com that is about 40 lists.

**How often do the lists change?**
Amazon updates them hourly. Schedule the Actor as often as you need.

**Why did a category return an error row?**
The alias may not exist in that marketplace, or the list may be empty at the moment, which happens with Movers & Shakers. Error rows are free.

**Does it return seller, stock or specifications for each product?**
No. It returns what the ranked list shows: rank, title, price, rating, review count and image. Pass the ASINs to the [Amazon Product Scraper](https://apify.com/zaver.api/amazon-product-scraper) to refresh prices and ratings in bulk.

**Can I schedule it?**
Yes. Use Apify schedules, the API or an MCP client.

### Integrations

- **Apify API** - start runs and fetch datasets from Python, Node.js, cURL or any HTTP client.
- **MCP server** - call this Actor as a tool from Claude, Cursor, ChatGPT agents and any MCP client.
- **No-code** - Make, Zapier, n8n, Google Sheets, Airtable, Slack, webhooks.
- **Schedules** - run hourly or daily for price and rank tracking, appending to the same dataset.
- **Exports** - JSON, JSONL, CSV, Excel (XLSX), XML, HTML table.

### Related actors

**Amazon**

- [Amazon Product Scraper](https://apify.com/zaver.api/amazon-product-scraper) - search results, prices, ASIN details and sellers

**Google**

- [Google Shopping Scraper](https://apify.com/zaver.api/google-shopping-scraper) - products, prices, sellers and ratings across stores
- [Google Search Results Scraper](https://apify.com/zaver.api/google-search-scraper) - organic results, news and People Also Ask
- [Google Maps Scraper](https://apify.com/zaver.api/google-maps-scraper) - places with ratings, phone, website and GPS

**Reddit and jobs**

- [Reddit Scraper](https://apify.com/zaver.api/reddit-scraper) - posts, comments, search, users and communities
- [Reddit Lead Finder](https://apify.com/zaver.api/reddit-lead-finder) - people asking for what you sell
- [Indeed & LinkedIn Jobs Scraper](https://apify.com/zaver.api/indeed-linkedin-jobs-scraper) - job listings with salary and description

### Credits

Data access is built on the open-source [amazon-scraper](https://github.com/omkarcloud/amazon-scraper) library by Omkar Cloud (MIT License).

***

*Not affiliated with, endorsed by or sponsored by Amazon. Amazon and all related marks are trademarks of Amazon.com, Inc. or its affiliates. This Actor reads only publicly available pages and does not log in. You are responsible for using the data in line with applicable laws and Amazon's terms.*

# Actor input Schema

## `categories` (type: `array`):

Best Sellers category aliases (<code>electronics</code>, <code>electronics/172541</code>) or links to any Best Sellers, New Releases or Movers & Shakers page, one per line. Leave empty to scrape every top-level department of the marketplace.

## `listType` (type: `string`):

Which ranked list to scrape. A pasted link to a specific list overrides this for that input.

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

Which Amazon site to scrape. A product or category link from another Amazon site overrides this for that input.

## `maxItemsPerCategory` (type: `integer`):

Amazon publishes 100 products per list.

## `includeSubcategories` (type: `boolean`):

Also scrape every subcategory directly under each category you entered.

## `maxItems` (type: `integer`):

Hard cap on products for the whole run. 0 means no cap.

## Actor input object example

```json
{
  "categories": [
    "electronics"
  ],
  "listType": "best_sellers",
  "country": "US",
  "maxItemsPerCategory": 100,
  "includeSubcategories": false,
  "maxItems": 0
}
```

# Actor output Schema

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

All dataset items.

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

CSV download.

## `runSummary` (type: `string`):

Counts for the run.

# 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 = {
    "categories": [
        "electronics"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("zaver.api/amazon-bestsellers-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 = { "categories": ["electronics"] }

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zaver.api/amazon-bestsellers-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/8Qu309XDx00RwA7yd/builds/j2M3ScpRDAURUMsMh/openapi.json
