# Amazon Best Sellers & New Releases Scraper (`chain_link/amazon-bestsellers-new-releases-scraper`) Actor

Scrape Amazon Best Sellers, New Releases, Movers & Shakers and Most Wished For charts from any category and any marketplace. Returns rank, ASIN, title, price, rating, review count and image at $0.002 per product.

- **URL**: https://apify.com/chain\_link/amazon-bestsellers-new-releases-scraper.md
- **Developed by:** [James White](https://apify.com/chain_link) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 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 & New Releases Scraper

Turn any Amazon ranking chart into a clean spreadsheet or JSON feed. Give the Actor one or more chart URLs and it returns the products on those charts with their rank, ASIN, title, price, star rating, review count and image.

It works with all of Amazon's public ranking charts:

- **Best Sellers** (`/gp/bestsellers/...` or `/zgbs/...`)
- **New Releases** (`/gp/new-releases/...`)
- **Movers & Shakers** (`/gp/movers-and-shakers/...`) – including the rank-movement text only this chart shows
- **Most Wished For** (`/gp/most-wished-for/...`)
- **Gift Ideas / Most Gifted** (`/gp/gift-ideas/...`)

Any Amazon marketplace works: amazon.com, co.uk, de, fr, it, es, ca, com.au, co.jp, in and the rest — just paste the URL from that marketplace.

No login, no personal data: only the publicly visible catalogue and ranking information that Amazon renders on the chart page itself.

***

### What you pay

**$0.002 per product row** returned. 100 products = $0.20. You are only charged for rows the Actor actually delivers.

***

### Inputs

| Input | Type | Default | What it does |
|---|---|---|---|
| **Chart URLs** (`startUrls`) | list of URLs | Electronics Best Sellers | One or more Amazon chart URLs, from any marketplace, e.g. `https://www.amazon.com/gp/bestsellers/books/` or `https://www.amazon.co.uk/gp/new-releases/toys/`. |
| **Include sub-category charts** (`includeSubcategories`) | true / false | `false` | Also scrape the sub-category charts linked in the left sidebar of each chart, one level deep. |
| **Max pages per chart** (`maxPagesPerChart`) | number | `2` | Amazon shows 50 ranks per page and 2 pages per chart, so `2` gives the full top 100 and `1` the top 50. |
| **Max items** (`maxItems`) | number | `100` | The most products returned across all charts. You are never charged for more than this. |

#### Example input

Top 50 in two categories on two marketplaces:

```json
{
  "startUrls": [
    "https://www.amazon.com/gp/bestsellers/kitchen/",
    "https://www.amazon.de/gp/new-releases/videogames/"
  ],
  "maxPagesPerChart": 1,
  "maxItems": 100
}
```

***

### Output

One row per product per chart:

| Field | What it is |
|---|---|
| `rank` | Position in the chart (1–100) |
| `asin` | Amazon's product ID |
| `title` | Product title as shown in the chart |
| `url` | Product page link |
| `price`, `currency` | Displayed price and its currency (empty when the chart shows no price) |
| `rating` | Average star rating out of 5 |
| `reviewsCount` | Number of customer ratings |
| `imageUrl` | Product image |
| `salesRankChange` | Movers & Shakers only: the rank movement Amazon shows, e.g. "+1,200%" |
| `chartType` | bestsellers, new-releases, movers-and-shakers, most-wished-for or gift-ideas |
| `categoryName`, `categoryUrl` | The chart the product was listed on |
| `domain` | Marketplace, e.g. amazon.co.uk |
| `scrapedAt` | When the row was collected (UTC) |

Example row:

```json
{
  "rank": 1,
  "asin": "B0EXAMPLE1",
  "title": "Example Wireless Earbuds",
  "url": "https://www.amazon.com/dp/B0EXAMPLE1",
  "price": 29.99,
  "currency": "USD",
  "rating": 4.5,
  "reviewsCount": 18234,
  "imageUrl": "https://m.media-amazon.com/images/I/example.jpg",
  "salesRankChange": null,
  "chartType": "bestsellers",
  "categoryName": "Electronics",
  "categoryUrl": "https://www.amazon.com/gp/bestsellers/electronics/",
  "domain": "amazon.com",
  "scrapedAt": "2026-09-28T07:15:02+00:00"
}
```

Download the results as JSON, CSV, Excel or XML from the run's Storage tab, or fetch them through the Apify API.

***

### Good to know

- **Charts update hourly on Amazon**, so schedule the Actor to track rank changes over time.
- **Prices and ratings** are what the chart tile shows. Some tiles have no price (for example, items with several sellers), and those come back empty rather than guessed.
- **Pacing:** the Actor requests about one page per second and stops the run cleanly if Amazon shows a captcha or refuses access, instead of retrying aggressively. If that happens, try again later or with fewer charts per run.
- **No personal data:** reviewer names, profiles and review text are never collected.

### Is this allowed?

The Actor reads public chart pages only, with no login, and collects catalogue and ranking data. Amazon's Conditions of Use restrict automated access, so review them for your use case and keep runs modest.

### Support

Found a problem or need a field added? Open an issue on the Actor's **Issues** tab and include the run ID.

# Actor input Schema

## `startUrls` (type: `array`):

Amazon Best Sellers, New Releases, Movers & Shakers, Most Wished For or Gift Ideas category URLs to scrape (e.g. https://www.amazon.com/gp/bestsellers/books/).

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

Also crawl the sub-category charts linked in the left sidebar of each start URL (one level deep).

## `maxPagesPerChart` (type: `integer`):

How many chart pages to paginate through per category. Amazon shows 50 ranks per page, up to 2 pages (top 100).

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

Maximum number of products to return across all charts.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.amazon.com/gp/bestsellers/electronics/"
  ],
  "maxPagesPerChart": 2,
  "maxItems": 100
}
```

# Actor output Schema

## `results` (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 = {
    "startUrls": [
        "https://www.amazon.com/gp/bestsellers/electronics/"
    ],
    "includeSubcategories": false,
    "maxPagesPerChart": 2,
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("chain_link/amazon-bestsellers-new-releases-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 = {
    "startUrls": ["https://www.amazon.com/gp/bestsellers/electronics/"],
    "includeSubcategories": False,
    "maxPagesPerChart": 2,
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("chain_link/amazon-bestsellers-new-releases-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 '{
  "startUrls": [
    "https://www.amazon.com/gp/bestsellers/electronics/"
  ],
  "includeSubcategories": false,
  "maxPagesPerChart": 2,
  "maxItems": 100
}' |
apify call chain_link/amazon-bestsellers-new-releases-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,chain_link/amazon-bestsellers-new-releases-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/QlmXAYlaaDBLG3aZD/builds/41mTdJ2NpTR9qEm96/openapi.json
