# Amazon Best Sellers Scraper — Top 100 by Category (`lergassy/amazon-bestsellers-scraper`) Actor

\[$4.70/1K products] Top 100 of any Amazon Best Sellers or New Releases list on 21 marketplaces, by category name or URL: rank, ASIN, title, price, rating, ratings count — subcategories in one run. Failed or empty lists are free. No run fee, no browser.

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

## Pricing

from $1.40 / 1,000 products

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?

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** scrapes the ranked top 100 of any Amazon Best Sellers or New Releases list by category name or list URL on 21 marketplaces and returns rank, ASIN, title, price, star rating, ratings count, image and category as JSON — one row per ranked product, with an option to read every subcategory in the same run.

**$0.0047 per product** on the free plan, $0.00256 from Gold up — the full top 100 of a category for 47 cents. No start fee, no login, no browser. Lists that fail or come back empty are free.

### What is Amazon Best Sellers Scraper?

A trend and product-research tool for Amazon sellers, brands, dropshippers, investors and AI agents. Amazon recalculates its Best Sellers lists from real sales many times a day; this Actor reads the list exactly as a shopper sees it — ranks 1 to 100, including the 31–100 Amazon loads while you scroll — and turns it into a table you can sort, chart or compare day to day.

Typical uses:

- **Find what sells right now** — the top 100 of Kitchen, Beauty or any node such as Headphones.
- **Track rank over time** — run it on a schedule every morning and watch products climb or drop.
- **Spot launches early** — New Releases shows the best-selling new products before they reach the main list.
- **Map a whole department** — turn on subcategories and get Electronics → Headphones, Cameras, Car Electronics… in one run.
- **Compare countries** — the same category on amazon.com, .de and .co.jp, each in its own currency.

### What is in every row

| Field | Meaning |
|---|---|
| `rank` | Position in the list, 1–100 |
| `asin`, `title`, `url`, `imageUrl` | The product — `url` is the clean `/dp/ASIN` link |
| `price`, `priceMax`, `currency`, `priceText` | Price in the marketplace currency; `priceMax` when Amazon shows a range |
| `rating`, `reviewsCount` | Star rating (0–5) and number of ratings |
| `category`, `categoryUrl`, `listType`, `depth` | Which list the row came from; `depth` 1 marks a subcategory |
| `marketplace`, `domain`, `page` | Which Amazon site and which of the two list pages |

### How much does it cost?

One row, one charge. Price per product by Apify plan:

| Free | Bronze | Silver | Gold | Platinum | Diamond |
|---|---|---|---|---|---|
| $0.0047 | $0.004 | $0.00328 | $0.00256 | $0.00256 | $0.00256 |

- Top 100 of one category: **$0.47** on the free plan.
- A department with 10 subcategories, 50 each: **$2.59**.
- Lists that fail, do not exist or are empty: **$0**. No start fee, no proxy charge.

| Job (free plan) | This Actor | Most-used Amazon Best Sellers Actor |
|---|---|---|
| Top 100 of one category | **$0.47** | $0.59 |
| 20 categories × 100, every day for a month | **$282** | $354 |

Checked on the Apify Store on 13 October 2026 against the Amazon Best Sellers Actor with the most monthly users ($0.0059 per result on the free plan); on Bronze, Silver and Gold this Actor is 20% cheaper too.

### Tested head-to-head — 13 October 2026

The same list (Best Sellers in Kitchen & Dining, amazon.com, 20 products) run through this Actor and the five most-used Amazon Best Sellers Actors in the Store:

| | This Actor | Others |
|---|---|---|
| Products returned for a limit of 20 | **20** | 0–49 (one ignored the limit and billed 49, one was stopped by its own $0.09 start fee before a single row) |
| Run time | **4 s** | 4–18 s |
| Fields per row | **20** | 13–32 |
| Ratings count | **exact (141,303)** | one Actor returned 46 instead of 141,303 |
| Start fee | **none** | $0.00005–$0.09 at four of five |
| Failed runs, last 30 days | — | up to 7.8% |

### How to use it in three steps

1. Type categories into **🗂️ Categories** the way Amazon names them (`Home & Kitchen`, `Electronics > Headphones & Earbuds`) or as slugs (`kitchen`, `electronics/172541`) and pick the **🌍 Amazon marketplace** — or paste list URLs into **🔗 List URLs**.
2. Choose **Best Sellers** or **New Releases**, how many **Products per list** (up to 100), and whether to **also read subcategories**.
3. Press **Start**, then download JSON, CSV or Excel — or call the run from the API, n8n, Make, Zapier or an AI agent.

### ⬇️ Input

```json
{
  "categories": ["electronics", "kitchen"],
  "marketplace": "US",
  "listType": "bestsellers",
  "maxItemsPerCategory": 100,
  "includeSubcategories": true,
  "maxSubcategories": 10
}
```

Category names are matched against Amazon's own department tree on the chosen marketplace — `Home & Kitchen`, `kitchen and dining` and `Toys` all work, and `>` goes one level down (`Electronics > Headphones`). A name Amazon does not have comes back as a free row that lists the names it does have. Slugs work too: the part after `/bestsellers/` in a list address (`amazon.com/gp/bestsellers/kitchen/289913` → `kitchen/289913`). Or paste the whole address into **List URLs**.

### ⬆️ Output

```json
{
  "type": "product",
  "rank": 1,
  "asin": "B08JHCVHTY",
  "title": "blink plus plan with monthly auto-renewal",
  "url": "https://www.amazon.com/dp/B08JHCVHTY",
  "price": 11.99,
  "currency": "USD",
  "rating": 4.4,
  "reviewsCount": 280683,
  "listType": "bestsellers",
  "category": "Electronics",
  "marketplace": "US",
  "depth": 0,
  "page": 1
}
```

### Tips

- **Daily rank tracking:** save the input as a Task, schedule it every morning and compare `rank` by `asin` between runs.
- **A category shows no products:** some Amazon pages are department overviews with several small carousels rather than one ranked list. The Actor returns a free error row that says so — open the department on Amazon and paste its list URL.
- **Wrong link pasted:** a product page, a search page or a non-Amazon address comes back as a free row saying what it is and what to paste instead.
- **Movers & Shakers, Most Wished For and Gift Ideas** are not in the form: Amazon currently shows those pages without products to visitors who are not signed in. A pasted link of that kind returns Amazon's own message as a free row.

### Integrations and API

Run it from the [Apify API](https://docs.apify.com/api/v2), the JavaScript and Python clients, a schedule, or a webhook, and push results to Google Sheets, Airtable, Slack, a CRM or a database through **n8n**, **Make** or **Zapier**. The [Apify MCP server](https://mcp.apify.com) exposes it to Claude, ChatGPT and other agents as a tool: "what are the 20 best-selling kitchen products on amazon.de today?"

### FAQ

**Is it legal to scrape Amazon Best Sellers?** The lists are public pages any visitor can open without an account, and the Actor collects no personal data. You are responsible for how you use the data and for complying with Amazon's terms and the laws that apply to you.

**How often do the lists change?** Amazon says the lists are "updated frequently" — two runs a few hours apart can differ.

**Can I get more than 100 products?** Amazon ranks exactly 100 per list. For more, turn on subcategories — each has its own top 100.

### You might also like

- [Amazon Search Scraper](https://apify.com/lergassy/amazon-search-scraper) — any keyword search with prices, ratings and "bought in past month".
- [AliExpress Products Scraper](https://apify.com/lergassy/aliexpress-products-scraper) — supplier prices and exact orders.
- [Shopee Scraper](https://apify.com/lergassy/shopee-scraper) and [Lazada Scraper](https://apify.com/lergassy/lazada-scraper) — Southeast Asian marketplaces.

# Actor input Schema

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

Category names as Amazon shows them — <b>Home & Kitchen</b>, <b>Electronics > Headphones & Earbuds</b> — or slugs and node paths from list URLs — <b>kitchen</b>, <b>electronics/172541</b>. One list per line. A name Amazon does not have comes back as a free row listing the names it does have.

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

Used with Categories. Category URLs carry their own marketplace.

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

Which Amazon ranking to read for the Categories above.

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

Amazon ranks the top 100 of each list (two pages of 50).

## `categoryUrls` (type: `array`):

Paste any Best Sellers or New Releases URL from any Amazon site — the list type and marketplace are read from the URL.

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

Reads the lists of the subcategories shown on each list page (one level down) — e.g. Electronics → Headphones, Cameras, Car Electronics…

## `maxSubcategories` (type: `integer`):

How many subcategories to read when the option above is on.

## `proxyConfiguration` (type: `object`):

Off by default — list pages answer a direct request. A page that comes back as a robot check is retried on another address automatically, residential last.

## Actor input object example

```json
{
  "categories": [
    "electronics"
  ],
  "marketplace": "US",
  "listType": "bestsellers",
  "maxItemsPerCategory": 50,
  "categoryUrls": [],
  "includeSubcategories": false,
  "maxSubcategories": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

One row per ranked product: rank, ASIN, title, price, rating, ratings count, category.

# 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"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("lergassy/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"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("lergassy/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"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call lergassy/amazon-bestsellers-scraper --silent --output-dataset

```

## MCP server setup

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