# Amazon Best Seller Scraper (`data_minds/amazon-best-seller-scraper`) Actor

Scrape Amazon Best Sellers, New Releases, Movers & Shakers, Most Wished For and Gift Ideas on any marketplace. Get rank, price, rating, reviews, offers and category path with no login. Bulk input, auto proxy fallback. Export JSON, CSV or Excel.

- **URL**: https://apify.com/data_minds/amazon-best-seller-scraper.md
- **Developed by:** [Data Minds](https://apify.com/data_minds) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.80 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

### What is Amazon Best Seller Scraper?

**Amazon Best Seller Scraper** is an Amazon best seller scraper that collects ranked products from Amazon Best Sellers, New Releases, Movers & Shakers, Most Wished For and Gift Ideas pages on any Amazon marketplace. Paste ranking links or a marketplace, pick the ranking types, and get rank, name, price, rating and review count for every product. Pay per result, from $2.80 per 1,000 products on the Gold plan.

Open the Actor, paste a link such as an Electronics Best Sellers page, and click Start. You get structured rows you can export as JSON, CSV or Excel. No coding, login or cookies are needed. Visit [Amazon](https://www.amazon.com) to browse the ranking pages yourself.

- 🔎 **Amazon product research:** find best selling products in any category and see what shoppers buy right now.
- 📈 **Spot trending products:** use Movers & Shakers to see sales rank gains over 24 hours and catch rising items early.
- 💲 **Amazon price monitoring:** schedule runs and compare prices, list prices and discounts over time.
- 🕵 **Competitor analysis:** compare brands, ratings, review counts and offers across a category or a whole marketplace.
- 🆕 **Track new releases:** watch which new products enter the rankings in a niche.
- 📤 **Export Amazon best sellers to Excel:** download the results as Excel, CSV or JSON for your own sheets and dashboards.

Because it runs on Apify, you can also start runs through the API, schedule them, connect integrations and export your data in several formats.

#### What can Amazon Best Seller Scraper do?

- 🏆 Scrape five ranking types in one run: Best Sellers, New Releases, Movers & Shakers, Most Wished For and Gift Ideas.
- 🌍 Work on any Amazon marketplace, from amazon.com to amazon.de, amazon.co.uk, amazon.co.jp and many more.
- 🏬 Scrape every top-level department when you paste only a marketplace such as https://www.amazon.de.
- 🌳 Follow subcategories up to three levels deep with the subcategory depth setting.
- 🔬 Add brand, list price, discount, seller, availability, features, images and specifications with full product details.
- 🗂 Save each ranking type to its own table, plus one table for failed inputs.
- ⏱ Stream rows into the dataset while the run is going, so you can use the first results early.

***

### What data can Amazon Best Seller Scraper extract?

Every row describes one ranked product. Fields marked as details need the full product details option.

| Data | Field |
|---|---|
| 🔢 Rank | `position` |
| 🏷 Product name | `name` |
| 💲 Price | `price` |
| 💱 Currency | `currency` |
| ⭐ Average rating | `rating` |
| 💬 Number of ratings | `reviews_count` |
| 🛒 Number of offers | `numberOfOffers` |
| 🔗 Product link | `url` |
| 🖼 Thumbnail | `thumbnail` |
| 🆔 ASIN | `asin` |
| 📂 Category name | `category` |
| 🧭 Category path | `category_path` |
| 🪪 Category id | `category_id` |
| 🔗 Ranking page link | `categoryUrl` |
| 📈 Ranking type | `list_type` |
| 🌍 Marketplace | `marketplace` |
| 🕒 Collection time (UTC) | `scraped_at` |
| 🚀 Sales rank now (Movers & Shakers) | `sales_rank_current` |
| ⏪ Sales rank 24 hours ago (Movers & Shakers) | `sales_rank_24h_ago` |
| 📊 Rank change percent (Movers & Shakers) | `rank_change_pct` |
| 🏭 Brand (details) | `brand` |
| 🛍 Bought in past month, minimum (details) | `bought_past_month_min` |
| 💵 Buy box price (details) | `buybox_price` |
| 🏷 List price (details) | `list_price` |
| 🔻 Discount percent (details) | `discount_pct` |
| 📦 Availability (details) | `availability` |
| 🧑 Seller (details) | `seller` |
| 🚚 Fulfilled by Amazon (details) | `fulfilled_by_amazon` |
| 📅 Date first available (details) | `date_first_available` |
| 🥇 Best seller ranks (details) | `bestseller_ranks` |
| 📝 Features (details) | `features` |
| 📷 Images (details) | `images` |
| ⚙ Specifications (details) | `specs` |
| ✅ Details read (details) | `details_ok` |
| ❗ Details problem (details) | `details_error` |

> **Note:** `price`, `rating`, `reviews_count` and `numberOfOffers` are empty when the ranking page does not show them. The three sales rank fields exist only on Movers & Shakers rows. Detail fields exist only when full product details is on, and some may stay empty for a product.

#### What data can't Amazon Best Seller Scraper extract?

It does not collect customer review texts, question and answer sections, or data behind a login. Each category ranking holds up to 100 products, so one ranking page never returns more than that.

***

### How to scrape Amazon best sellers

1. Create a free Apify account at [console.apify.com/sign-up](https://console.apify.com/sign-up).
2. Open [Amazon Best Seller Scraper](https://apify.com/data_minds/amazon-best-seller-scraper) in Apify Console.
3. Paste one or more ranking links, or a marketplace, into `urls`.
4. Choose `listTypes`, or leave it empty to use the type of each link.
5. Set `depthOfCrawl` for subcategories and `maxItems` for the total number of products.
6. Turn on `detailedInformation` if you need brand, seller and specifications.
7. Click Start, then open the Output tab to browse the tables or export the data.

***

### How much does it cost to scrape Amazon best sellers?

Amazon Best Seller Scraper uses pay-per-event pricing: you pay for each product result saved, plus a small start fee. Platform usage is billed in addition. The price per result depends on your Apify plan.

| Plan | Price per result | Price per 1,000 results |
|---|---|---|
| Free | $0.0035 | $3.50 |
| Bronze | $0.0032 | $3.20 |
| Silver | $0.0030 | $3.00 |
| Gold | $0.0028 | $2.80 |

Each run also starts with a start event of $0.00005 per GB of memory, minimum one. The default memory is 1024 MB, so a start costs $0.00005.

**Worked example:** 1,000 products on the Gold plan cost $2.80 in results plus $0.00005 for the start, with platform usage billed in addition. The same 1,000 products on the Free plan cost $3.50.

#### Is scraping Amazon best sellers free?

You can try it without paying first. The $5 monthly Free plan credit covers about 1,428 results at the Free price of $0.0035, before platform usage. See the [pricing page](https://apify.com/data_minds/amazon-best-seller-scraper/pricing) for current details.

***

### Input

Only `urls` is required. Everything else has a default. This is the prefilled example:

```json
{
  "urls": [
    "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

See the full [input schema](https://apify.com/data_minds/amazon-best-seller-scraper/input-schema).

| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| `urls` | array of strings | Yes | none | Amazon ranking pages, or a marketplace such as https://www.amazon.de for every top-level department. Bulk input is supported. |
| `listTypes` | array | No | `[]` | Any of `bestsellers`, `new_releases`, `movers_shakers`, `most_wished`, `gift_ideas`. Empty uses the type of each link. |
| `depthOfCrawl` | integer (0 to 3) | No | `0` | Subcategory levels to scrape as well. 0 means only the link itself. |
| `maxItems` | integer (0 to 100000) | No | `10` | Total products across everything. 0 means all. |
| `detailedInformation` | boolean | No | `false` | Opens every product page to add brand, list price, seller, features, images and specifications. |
| `proxyConfiguration` | object | No | `{"useApifyProxy": false}` | Optional proxy choice for the run. |

#### Tricky fields

**`maxItems`**

- ✅ Good: set `maxItems` to 100 for one category ranking, or to 500 to let the run continue into subcategories until it reaches 500 unique products.
- ❌ Bad: leaving the default `10` and expecting a full ranking.

> **Warning:** `maxItems` 0 means all products. Combined with a marketplace link and a high `depthOfCrawl`, that can mean a very large run and a large bill.

**`urls`**

- ✅ Good: `https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics` or `https://www.amazon.de`.
- ❌ Bad: a product page, a search page or a non-Amazon link. These become rows in the errors table.

**`depthOfCrawl`**

- ✅ Good: `1` to add the direct subcategories of a department.
- ❌ Bad: `3` on a top-level department without a `maxItems` limit.

> **Warning:** Each extra level multiplies the work, because every category holds up to 100 products.

**`detailedInformation`**

- ✅ Good: turn it on when you need seller, brand or specifications.
- ❌ Bad: turning it on for a quick rank check. It is slower, because one extra page is opened per product.

***

### Output

Products are saved to the default dataset as they are found, and also to one table per ranking type: Best Sellers, New Releases, Movers & Shakers, Most Wished For and Gift Ideas. Inputs that could not be scraped appear in the errors table. Open the Output tab to browse the tables, or export the data as JSON, CSV, Excel, XML or HTML. A run summary is stored under the key `RUN_SUMMARY` with `productsSaved`, `productsCharged`, `errors`, `categories` and `requests`.

#### JSON example

Best Sellers row without full product details:

```json
{
  "position": 1,
  "category": "Electronics",
  "categoryUrl": "https://www.amazon.com/gp/bestsellers/electronics",
  "name": "Example wired earbuds",
  "price": 17.87,
  "currency": "USD",
  "numberOfOffers": 14,
  "url": "https://www.amazon.com/dp/B000000000",
  "thumbnail": "https://example.com/image.jpg",
  "asin": "B000000000",
  "list_type": "bestsellers",
  "marketplace": "amazon.com",
  "category_path": "Electronics",
  "category_id": "electronics",
  "rating": 4.5,
  "reviews_count": 19206,
  "scraped_at": "2026-10-19T20:18:01Z"
}
```

Movers & Shakers rows add three fields:

```json
{
  "sales_rank_current": 120,
  "sales_rank_24h_ago": 940,
  "rank_change_pct": 683
}
```

With `detailedInformation` on, rows also contain `brand`, `bought_past_month_min`, `buybox_price`, `list_price`, `discount_pct`, `availability`, `seller`, `fulfilled_by_amazon`, `date_first_available`, `bestseller_ranks`, `features`, `images`, `specs`, `details_ok` and `details_error`.

An error row looks like this:

```json
{
  "error": "unsupported url",
  "errorDescription": "Expected an Amazon Best Sellers / New Releases / Movers & Shakers / Most Wished For / Gift Ideas url or a marketplace like amazon.com",
  "input": "https://example.com",
  "url": "https://example.com"
}
```

#### Notes and limitations

- Each category ranking holds up to 100 products.
- A product appears once per ranking type and marketplace in a run.
- Error rows are not charged.
- Amazon shows different rankings over time, so two runs can return different products.

***

### Tips and advanced usage

- Set `maxItems` to the number you need. If the first categories hold fewer unique products, the run continues into subcategories until it reaches your number or runs out.
- Leave `detailedInformation` off for the fastest and cheapest runs of rank, price and rating.
- Use several ranking types on the same link to compare Best Sellers with Movers & Shakers.
- Schedule a daily run to monitor rank and price changes over time.

#### Common ways to use the data

- **Amazon best sellers by category:** paste one link per department to get the Amazon top 100 best sellers of each category.
- **Amazon best sellers list in a sheet:** export the Amazon best sellers list and sort it by price, rating or reviews.
- **Amazon bestsellers API:** call the Actor from code and read the Amazon bestseller data as JSON.
- **Amazon BSR scraper:** with full product details, `bestseller_ranks` holds the best seller ranks shown for each product.
- **Amazon ASIN scraper:** every row carries the ASIN, which you can reuse in other product tools.
- **Amazon category scraper:** a marketplace link walks through every top-level department, and `depthOfCrawl` adds subcategory rankings.
- **Amazon most wished for list and gift ideas list:** compare what shoppers save with what they gift.
- **Amazon top sellers and trending products:** combine Best Sellers with Movers & Shakers to see steady winners next to fast risers.
- **Amazon market research and competitor analysis:** compare brand data, ratings and the number of offers across categories.
- **Amazon sales rank and rank change:** Movers & Shakers rows show the current sales rank and the rank change in percent.
- **Amazon dropshipping research and FBA product research:** shortlist products by rank, price and discount before you source them.
- **Amazon product data and product details:** switch on full product details for list price, seller, features and specifications.
- **Amazon data extractor for teams:** bulk URL scraping works with many links in one run, and the JSON data feeds Sheets or dashboards without coding.

***

### Integrations and API

#### Can I use Amazon Best Seller Scraper as an API?

Yes. Start runs and read results through the [Apify API](https://docs.apify.com/api/v2), or use the apify-client packages for Node.js and Python. Open the [API tab](https://apify.com/data_minds/amazon-best-seller-scraper/api) of the Actor for ready-made calls.

#### How to scrape Amazon best sellers with Python

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("data_minds/amazon-best-seller-scraper").call(run_input={
    "urls": ["https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics"],
    "proxyConfiguration": {"useApifyProxy": False},
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["position"], item["name"], item["price"])
```

#### Can I integrate Amazon Best Seller Scraper with other apps?

Yes. Connect it to Make, Zapier, Google Sheets, Slack and other tools through Apify integrations, trigger actions with [webhooks](https://docs.apify.com/integrations/webhooks), or schedule runs to repeat automatically.

#### Can I use Amazon Best Seller Scraper with AI agents (MCP)?

Yes. Use the [MCP tab](https://apify.com/data_minds/amazon-best-seller-scraper/api/mcp) to give an AI agent access to this Actor through the Apify MCP server.

***

### Other Amazon and marketplace scrapers

| Actor | What it does |
|---|---|
| 🏷 [eBay Sold Listings Scraper](https://apify.com/data_minds/ebay-sold-listings-scraper) | Scrape eBay sold listings: real sold prices, sale age, seller rating, condition and shipping. |
| 💬 [Facebook Review Scraper](https://apify.com/data_minds/facebook-review-scraper) | Scrape reviews from public Facebook pages: reviewer, recommend or not, text, tags, photos and owner replies. |
| 🏪 [Whop Marketplace Data Scraper](https://apify.com/data_minds/whop-marketplace-data-scraper) | Turn any Whop search, category or listing link into marketplace data: pricing, plans, company profiles and reviews. |

***

### FAQ

#### Is it legal to scrape Amazon best sellers?

Best Sellers pages are public, and this Actor collects only what a visitor can see without logging in. Legality depends on your country, your use of the data and Amazon's terms. Read [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/) and note that this is not legal advice.

#### How does Amazon Best Seller Scraper work?

You paste ranking links or a marketplace and choose ranking types, depth and a product limit. The run goes through each category ranking and saves every product with its rank, price and rating to the dataset. With full product details on, it also adds brand, seller and specifications.

#### Why scrape Amazon best sellers?

Best seller data shows what customers buy right now. Sellers use it for product research, trend spotting and price monitoring. Brands use it for competitor analysis, and agencies feed it into reports. Scheduled runs turn one snapshot into a history of rank and price changes you can chart.

#### How many products can I get from one Amazon best sellers page?

Each category ranking holds up to 100 products. To collect more, set a higher `maxItems` so the run continues into subcategories, or raise `depthOfCrawl`, or add more links and ranking types. Duplicate products are removed per ranking type and marketplace, so the total can be lower.

#### Why did I get fewer results than expected?

Common reasons are a low `maxItems` (the default is 10), a category with fewer than 100 products, or too few unique products in the chosen categories. Raise `maxItems`, add subcategory depth, or add more links. Check the errors table for inputs that could not be scraped.

#### Can I scrape Amazon best sellers from other countries?

Yes. Paste a ranking link from any supported marketplace, such as amazon.de, amazon.co.uk or amazon.co.jp, or just the marketplace address to cover every top-level department. Each row records its `marketplace` and the `currency` of the price, so mixed marketplace runs stay easy to separate and compare.

#### Can I export Amazon best sellers to Excel?

Yes. When the run finishes, open the Output tab and download the dataset as Excel, CSV, JSON, XML or HTML. Every ranking type also has its own table, so you can export Best Sellers or Movers & Shakers on their own without filtering.

#### Amazon Best Seller Scraper is not working. What should I do?

First check that every link is a real Amazon ranking page or marketplace, and look at the errors table and the run log. If the problem remains, open the [Issues tab](https://apify.com/data_minds/amazon-best-seller-scraper/issues/open) with your run link and input, and the team will take a look.

***

### Support and feedback

Found a bug or have a feature request? Open the [Issues tab](https://apify.com/data_minds/amazon-best-seller-scraper/issues/open). For custom solutions, write to hello.dataminds@gmail.com.

Built and maintained by the [data_minds](https://apify.com/data_minds) team on Apify. This Actor is an independent tool, is not affiliated with or endorsed by Amazon, and you are responsible for using the data in line with the law and Amazon's terms.

# Actor input Schema

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

One or many Amazon ranking pages (Best Sellers, New Releases, Movers & Shakers, Most Wished For, Gift Ideas), or just a marketplace such as https://www.amazon.de to scrape every top-level department. Bulk input is supported.

## `listTypes` (type: `array`):

Which rankings to collect for every URL. Leave empty to use the type of the URL itself (Best Sellers when the URL is a plain marketplace).

## `depthOfCrawl` (type: `integer`):

How many levels of subcategories to scrape as well. 0 = only the URL itself, 1 = plus its direct subcategories. Each category holds up to 100 products.

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

Total number of products to return across everything. One category holds up to 100 products; if you ask for more, the scraper automatically continues into the subcategories until it reaches your number (or the categories run out of unique products). 0 = all.

## `detailedInformation` (type: `boolean`):

Also open every product page to add brand, bought in past month, list price, discount, seller, availability, features, images and specifications. Slower: one extra page per product.

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

Optional. Default is no proxy. Pick a proxy here if you want the run to use one.

## Actor input object example

```json
{
  "urls": [
    "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics"
  ],
  "listTypes": [],
  "depthOfCrawl": 0,
  "maxItems": 10,
  "detailedInformation": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

All products from every ranking type.

## `bestsellers` (type: `string`):

Products from Best Sellers rankings.

## `newReleases` (type: `string`):

Products from New Releases rankings.

## `moversShakers` (type: `string`):

Products from Movers & Shakers rankings with rank change.

## `mostWished` (type: `string`):

Products from Most Wished For rankings.

## `giftIdeas` (type: `string`):

Products from Gift Ideas rankings.

## `errors` (type: `string`):

Inputs that could not be scraped.

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

Counts for this 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 = {
    "urls": [
        "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("data_minds/amazon-best-seller-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": ["https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("data_minds/amazon-best-seller-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": [
    "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call data_minds/amazon-best-seller-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,data_minds/amazon-best-seller-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/uK8qK4VkX4UThes3y/builds/7AUn3irA6EG7EPxk5/openapi.json
