# Amazon Best Sellers Scraper — Top 100 Rankings, 18 Marketplaces (`memo23/amazon-bestsellers-scraper`) Actor

Amazon Best Sellers, New Releases, Movers & Shakers and Most Wished For charts as clean rows: rank, ASIN, title, price, rating, review count and image. Any category on 18 Amazon marketplaces, the full top 100 per chart. No login or cookies.

- **URL**: https://apify.com/memo23/amazon-bestsellers-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** E-commerce, AI, Agents
- **Features:** Limited permissions
- **Stats:** 22 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.70 / 1,000 ranked 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 — Top 100 Rankings, 18 Marketplaces

Scrape Amazon's ranked charts into clean, analysis-ready rows — **rank, ASIN, title, numeric price, rating, review count and image** — for any category across 18 marketplaces. No login or cookies to supply.

Four charts, one actor:

| Chart | What it shows |
|---|---|
| **Best Sellers** | The current top sellers in a category |
| **New Releases** | Newly launched products already charting |
| **Movers & Shakers** | Biggest 24-hour sales-rank gains |
| **Most Wished For** | What shoppers are adding to wish lists |

### Why use it

- **The full top-100, not the first screen.** Amazon server-renders only ~30 of the 50 rows per chart page. Most scrapers parse the DOM and quietly return 60 of 100 products. This one reads Amazon's own ranked payload, so you get **all 100 ranks** every time.
- **Numeric prices**, not `"$1,234.56"` strings — with both decimal conventions handled (`1.234,56 €` and `1,234.56`).
- **18 marketplaces**, country-correct: each marketplace returns its own local prices and rankings, not a US view of a German chart.
- **Tells you why a run is empty.** A wrong category slug, a dead node, or an Amazon block each produce a distinct, readable reason instead of a silent zero.

### Input

```json
{
  "categories": ["electronics", "kitchen"],
  "charts": ["bestsellers", "movers-and-shakers"],
  "marketplaces": ["com", "de"],
  "maxItems": 400
}
```

Or paste chart URLs directly:

```json
{
  "startUrls": [
    "https://www.amazon.com/gp/bestsellers/electronics/",
    "https://www.amazon.de/gp/movers-and-shakers/computers/"
  ]
}
```

| Field | Type | Default | Notes |
|---|---|---|---|
| `categories` | array | `["electronics"]` | Category slugs — see the per-marketplace table below. At least one is required: the chart root is Amazon's category *picker*, not a chart, so it holds no ranked items. |
| `charts` | array | `["bestsellers"]` | Any of the four charts above. |
| `marketplaces` | array | `["com"]` | TLDs: `com`, `co.uk`, `de`, `fr`, `it`, `es`, `ca`, `com.au`, `co.jp`, `in`, `nl`, `se`, `pl`, `com.be`, `ae`, `com.mx`, `com.tr`, `sg`. |
| `startUrls` | array | `[]` | Full chart URLs — `/gp/bestsellers/`, `/zgbs/`, `/gp/new-releases/`, `/gp/movers-and-shakers/`, `/gp/most-wished-for/`. |
| `maxItems` | integer | `200` | Hard cap across the run. You are charged per row. |
| `maxItemsPerChart` | integer | `100` | Set `50` for the first page only. |
| `fetchMissingDetails` | boolean | `false` | Fetch product pages to fill title/price on un-hydrated rows. |
| `skipIncompleteRows` | boolean | `false` | Drop rank-only rows instead of returning them. |

Categories × charts × marketplaces are crossed, so 2 categories × 2 charts × 2 marketplaces = 8 charts.

### Output

```json
{
  "rank": 1,
  "asin": "B08JHCVHTY",
  "title": "Blink Plus Plan with monthly auto-renewal",
  "price": 11.99,
  "priceText": "$11.99",
  "currency": "$",
  "ratingStars": 4.4,
  "ratingCount": 278844,
  "imageUrl": "https://images-na.ssl-images-amazon.com/images/I/31YHGbJsldL._AC_UL300_.png",
  "productUrl": "https://www.amazon.com/dp/B08JHCVHTY",
  "detailLevel": "full",
  "chart": "bestsellers",
  "chartTitle": "Best Sellers",
  "category": "electronics",
  "marketplace": "amazon.com",
  "sourceUrl": "https://www.amazon.com/gp/bestsellers/electronics/",
  "scrapedAt": "2026-08-05T08:03:11.402Z"
}
```

#### About `detailLevel`

Amazon hydrates only part of each chart page server-side. Every row always carries **rank, ASIN and product URL**; `detailLevel` tells you whether the rest is filled:

- `"full"` — title, price, rating and image are present (~60 of 100 rows per chart)
- `"rank-only"` — Amazon had not rendered this row; rank and ASIN are still exact

Two ways to get 100 complete rows if you need them:

- `fetchMissingDetails: true` — fetches each missing product page (slower, more requests)
- `skipIncompleteRows: true` — returns only the complete rows

This is deliberate: dropping the un-hydrated rows silently would misreport the chart, since ranks 31–50 of every page would vanish.

### Category slugs per marketplace

Chart category slugs are **not** shared across marketplaces, and a slug that
does not exist on a marketplace returns an *empty chart*, not an error. This
table is harvested from Amazon's own chart navigation, so it is the real list.

> **The one that catches everyone:** `electronics` works on 17 of 18
> marketplaces — **amazon.de is the exception** and uses `computers` instead.

#### Works on all 18 marketplaces

`automotive` · `beauty` · `books` · `gift-cards` · `videogames`

#### Works nearly everywhere (exceptions listed)

| Slug | Markets | Not available on |
|---|---|---|
| `electronics` | 17/18 | `de` |
| `grocery` | 17/18 | `co.jp` |
| `musical-instruments` | 17/18 | `ae` |
| `pet-supplies` | 17/18 | `ae` |
| `kitchen` | 16/18 | `com.be`, `nl` |
| `music` | 16/18 | `ae`, `com.tr` |
| `software` | 16/18 | `ae`, `com.tr` |
| `fashion` | 15/18 | `com.mx`, `com.tr`, `in` |
| `industrial` | 15/18 | `ae`, `com.tr`, `sg` |
| `toys` | 15/18 | `co.uk`, `com`, `com.be` |
| `amazon-devices` | 13/18 | `com.tr`, `in`, `pl`, `se`, `sg` |
| `amazon-renewed` | 13/18 | `ae`, `com.be`, `com.tr`, `pl`, `sg` |
| `baby` | 13/18 | `com`, `com.au`, `com.be`, `com.tr`, `nl` |
| `digital-text` | 12/18 | `ae`, `com.be`, `com.tr`, `pl`, `se`, `sg` |
| `dvd` | 12/18 | `ae`, `com`, `com.au`, `com.be`, `com.tr`, `de` |
| `hpc` | 12/18 | `ae`, `co.uk`, `com.au`, `de`, `pl`, `se` |
| `sports` | 12/18 | `ae`, `com`, `com.au`, `com.be`, `com.tr`, `sg` |
| `computers` | 10/18 | `ca`, `com`, `com.be`, `com.mx`, `it`, `nl`, `pl`, `se` |
| `mobile-apps` | 10/18 | `ae`, `com.be`, `com.mx`, `com.tr`, `nl`, `pl`, `se`, `sg` |

#### Full list per marketplace

**amazon.com (US)** — 40 departments\
`amazon-devices` · `amazon-renewed` · `appliances` · `arts-crafts` · `audible` · `automotive` · `baby-products` · `beauty` · `books` · `boost` · `coins` · `digital-educational-resources` · `digital-text` · `dmusic` · `electronics` · `entertainment-collectibles` · `fashion` · `gift-cards` · `grocery` · `handmade` · `hi` · `home-garden` · `hpc` · `industrial` · `kitchen` · `lawn-garden` · `mobile-apps` · `movies-tv` · `music` · `musical-instruments` · `office-products` · `pc` · `pet-supplies` · `photo` · `software` · `sporting-goods` · `sports-collectibles` · `toys-and-games` · `videogames` · `wireless`

**amazon.co.uk** — 33 departments\
`amazon-devices` · `amazon-renewed` · `appliances` · `automotive` · `baby` · `beauty` · `books` · `boost` · `computers` · `digital-text` · `diy` · `dmusic` · `drugstore` · `dvd` · `electronics` · `fashion` · `gift-cards` · `grocery` · `handmade` · `industrial` · `instant-video` · `kids` · `kitchen` · `lighting` · `mobile-apps` · `music` · `musical-instruments` · `officeproduct` · `outdoors` · `pet-supplies` · `software` · `sports` · `videogames`

**amazon.de** — 34 departments\
`amazon-devices` · `amazon-renewed` · `appliances` · `automotive` · `baby` · `beauty` · `books` · `boost` · `ce-de` · `computers` · `digital-text` · `diy` · `dmusic` · `drugstore` · `dvd-de` · `fashion` · `garden` · `gift-cards` · `grocery` · `handmade` · `industrial` · `instant-video` · `kitchen` · `lighting` · `mobile-apps` · `music` · `musical-instruments` · `officeproduct` · `pet-supplies` · `photo` · `software` · `sports` · `toys` · `videogames`

**amazon.fr** — 32 departments\
`amazon-devices` · `amazon-renewed` · `appliances` · `automotive` · `baby` · `beauty` · `books` · `boost` · `computers` · `digital-text` · `dmusic` · `dvd` · `electronics` · `fashion` · `gift-cards` · `grocery` · `handmade` · `hi` · `hpc` · `industrial` · `kitchen` · `lawn-garden` · `lighting` · `mobile-apps` · `music` · `musical-instruments` · `officeproduct` · `pet-supplies` · `software` · `sports` · `toys` · `videogames`

**amazon.it** — 33 departments\
`amazon-devices` · `amazon-renewed` · `appliances` · `audible` · `automotive` · `baby` · `beauty` · `books` · `boost` · `digital-text` · `dmusic` · `dvd` · `electronics` · `fashion` · `garden` · `gift-cards` · `grocery` · `handmade` · `hpc` · `industrial` · `kitchen` · `lighting` · `mobile-apps` · `music` · `musical-instruments` · `office` · `pc` · `pet-supplies` · `software` · `sports` · `tools` · `toys` · `videogames`

**amazon.es** — 33 departments\
`amazon-devices` · `amazon-renewed` · `appliances` · `automotive` · `baby` · `beauty` · `books` · `boost` · `computers` · `digital-text` · `dmusic` · `dvd` · `electronics` · `fashion` · `gift-cards` · `grocery` · `handmade` · `hpc` · `industrial` · `kitchen` · `lawn-garden` · `lighting` · `luggage` · `mobile-apps` · `music` · `musical-instruments` · `office` · `pet-supplies` · `software` · `sports` · `tools` · `toys` · `videogames`

**amazon.ca** — 28 departments\
`amazon-devices` · `amazon-renewed` · `automotive` · `baby` · `beauty` · `books` · `digital-text` · `dvd` · `electronics` · `fashion` · `gift-cards` · `grocery` · `handmade` · `hi` · `hpc` · `industrial` · `kitchen` · `lawn-garden` · `luggage` · `mobile-apps` · `music` · `musical-instruments` · `office` · `pet-supplies` · `software` · `sports` · `toys` · `videogames`

**amazon.com.au** — 31 departments\
`amazon-devices` · `amazon-renewed` · `audible` · `automotive` · `baby-products` · `beauty` · `books` · `boost` · `computers` · `digital-text` · `electronics` · `fashion` · `garden` · `gift-cards` · `grocery` · `health` · `home` · `home-improvement` · `industrial` · `kitchen` · `lighting` · `mobile-apps` · `movies-and-tv` · `music` · `musical-instruments` · `office-products` · `pet-supplies` · `software` · `sporting-goods` · `toys` · `videogames`

**amazon.co.jp** — 31 departments\
`amazon-devices` · `amazon-renewed` · `appliances` · `automotive` · `baby` · `beauty` · `books` · `computers` · `digital-text` · `diy` · `dmusic` · `dvd` · `electronics` · `english-books` · `fashion` · `food-beverage` · `gift-cards` · `hobby` · `hpc` · `industrial` · `instant-video` · `kitchen` · `mobile-apps` · `music` · `musical-instruments` · `office-products` · `pet-supplies` · `software` · `sports` · `toys` · `videogames`

**amazon.in** — 31 departments\
`amazon-renewed` · `apparel` · `automotive` · `baby` · `beauty` · `books` · `boost` · `computers` · `digital-text` · `dvd` · `electronics` · `garden` · `gift-cards` · `grocery` · `home-improvement` · `hpc` · `industrial` · `jewelry` · `kitchen` · `luggage` · `mobile-apps` · `music` · `musical-instruments` · `office` · `pet-supplies` · `shoes` · `software` · `sports` · `toys` · `videogames` · `watches`

**amazon.nl** — 26 departments\
`amazon-devices` · `amazon-renewed` · `arts-crafts` · `automotive` · `baby-products` · `beauty` · `books` · `digital-text` · `dvd` · `electronics` · `fashion` · `gift-cards` · `grocery` · `hi` · `home` · `hpc` · `industrial` · `lawn-and-garden` · `music` · `musical-instruments` · `office-products` · `pet-supplies` · `software` · `sports` · `toys` · `videogames`

**amazon.se** — 23 departments\
`amazon-renewed` · `automotive` · `baby` · `beauty` · `books` · `dvd` · `electronics` · `fashion` · `garden` · `gift-cards` · `grocery` · `health` · `home-improvement` · `industrial` · `kitchen` · `music` · `musical-instruments` · `office` · `pet-supplies` · `software` · `sports` · `toys` · `videogames`

**amazon.pl** — 22 departments\
`automotive` · `baby` · `beauty` · `books` · `dvd` · `electronics` · `fashion` · `garden` · `gift-cards` · `grocery` · `health` · `home-improvement` · `industrial` · `kitchen` · `music` · `musical-instruments` · `office` · `pet-supplies` · `software` · `sports` · `toys` · `videogames`

**amazon.com.be** — 24 departments\
`amazon-devices` · `arts-crafts` · `automotive` · `baby-products` · `beauty` · `books` · `electronics` · `fashion` · `gift-cards` · `grocery` · `home` · `home-improvement` · `hpc` · `industrial` · `lawn-garden` · `movies-tv` · `music` · `musical-instruments` · `office-products` · `pet-supplies` · `software` · `sporting-goods` · `toys-and-games` · `videogames`

**amazon.ae** — 21 departments\
`amazon-devices` · `appliances` · `automotive` · `baby` · `beauty` · `books` · `computers` · `electronics` · `fashion` · `gift-cards` · `grocery` · `health` · `home` · `home-improvement` · `kitchen` · `mobile-phones` · `office-products` · `pet-products` · `sports-goods` · `toys` · `videogames`

**amazon.com.mx** — 25 departments\
`amazon-devices` · `amazon-renewed` · `automotive` · `baby` · `beauty` · `books` · `digital-text` · `dvd` · `electronics` · `gift-cards` · `grocery` · `handmade` · `hpc` · `industrial` · `kitchen` · `music` · `musical-instruments` · `officeproduct` · `pet-supplies` · `shoes` · `software` · `sports` · `tools` · `toys` · `videogames`

**amazon.com.tr** — 20 departments\
`apparel` · `automotive` · `baby-products` · `beauty` · `books` · `computers` · `electronics` · `garden` · `gift-cards` · `grocery` · `home` · `home-improvement` · `hpc` · `kitchen` · `musical-instruments` · `office-products` · `pet-supplies` · `sporting-goods` · `toys` · `videogames`

**amazon.sg** — 25 departments\
`automotive` · `baby` · `beauty` · `biss` · `books` · `computers` · `diy` · `dvd` · `electronics` · `fashion` · `gift-cards` · `grocery` · `home` · `hpc` · `kitchen` · `lawn-and-garden` · `luxury-beauty` · `music` · `musical-instruments` · `office-products` · `pet-supplies` · `software` · `sporting-goods` · `toys` · `videogames`

Sub-categories exist too: open any department chart on Amazon and copy the
slug out of the address bar. Anything after the chart segment works, so
`electronics/172623` (Portable Audio & Video) is a valid category value.

### Use cases

- **Product research** — find what is selling right now in a niche before sourcing it
- **Trend detection** — Movers & Shakers surfaces demand spikes within 24 hours
- **Competitor tracking** — schedule daily and diff rank changes for your ASINs
- **Launch monitoring** — New Releases shows which fresh products are gaining traction
- **Cross-market arbitrage** — compare the same category across `com`, `de` and `co.uk`

### How it works

1. Builds chart URLs from your categories × charts × marketplaces (or takes your URLs as-is).
2. Fetches each chart as a shopper in that marketplace's country sees it. A page that doesn't load is retried automatically.
3. Takes the full ranked list for each chart, then adds the title, price, rating and image of every product.
4. Pushes one row per ranked product.

Charts cost only 1–2 requests each, so a run is fast and cheap: a full 100-product chart is **two page fetches**.

### FAQ

**Why do some rows have no title or price?**
Amazon only server-renders ~30 of the 50 rows per page. See `detailLevel` above — use `fetchMissingDetails` or `skipIncompleteRows` if you need all rows complete.

**Which category slugs work?**
See the per-marketplace table above — it is harvested from Amazon's own chart navigation, not guessed. Only five slugs work on all 18 marketplaces (`automotive`, `beauty`, `books`, `gift-cards`, `videogames`), and `electronics` works everywhere **except amazon.de**, which uses `computers`. A slug that does not exist on a marketplace returns an empty chart, and the run tells you so explicitly instead of failing silently.

**Do I need proxies or Amazon cookies?**
No. Residential proxying is built in and country-matched per marketplace.

**Can I get more than 100 products per category?**
Amazon's charts stop at 100. To go wider, scrape sub-categories — each has its own top-100.

### Support

Found a bug or need a field that isn't here? Open an issue on the actor's Issues tab.

### 🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the [Apify MCP server](https://mcp.apify.com) or the Apify API (actor: `memo23/amazon-bestsellers-scraper`).

**Purpose:** Extract Amazon's ranked charts (Best Sellers, New Releases, Movers & Shakers, Most Wished For) as clean rows for any category across 18 marketplaces, reading Amazon's own ranked payload to return all 100 ranks.

**Minimal input:**

```json
{
  "categories": ["electronics"],
  "charts": ["bestsellers"],
  "marketplaces": ["com"],
  "maxItems": 50
}
```

Alternatively, skip `categories`/`charts`/`marketplaces` and paste full chart URLs via `startUrls` (e.g. `https://www.amazon.com/gp/bestsellers/electronics/`); `startUrls` takes priority when set.

**Output:** one dataset row per ranked product — rank, asin, title, price, priceText, currency, ratingStars, ratingCount, imageUrl, productUrl, detailLevel, chart, chartTitle, category, marketplace, sourceUrl, scrapedAt.

**Behaviors an agent should know:**

- Always set `maxItems` — categories × charts × marketplaces are crossed, so an uncapped run multiplies fast; you are charged per row returned.
- `startUrls` overrides the `categories`/`charts`/`marketplaces` picker fields.
- Rows carry `detailLevel: "rank-only"` when Amazon did not hydrate them (rank + ASIN still exact); set `fetchMissingDetails: true` or `skipIncompleteRows: true` for complete rows only.
- Category slugs differ per marketplace; a slug that does not exist returns an empty chart (not an error) — `electronics` works everywhere except amazon.de, which uses `computers`.
- Amazon charts cap at 100 products per category; scrape sub-categories to go wider.

### ⚠️ Disclaimer

This actor collects only publicly available information from Amazon's public chart pages. It does not log in, bypass authentication, or access personal data. You are responsible for how you use the data, including compliance with Amazon's terms and any applicable laws.

### SEO Keywords

amazon best sellers scraper, amazon bestseller api, amazon top 100 products, amazon movers and shakers scraper, amazon new releases scraper, amazon most wished for, amazon sales rank scraper, amazon product research tool, amazon category bestsellers, amazon bsr scraper, amazon trending products, amazon niche research, amazon product data extraction

# Actor input Schema

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

Amazon category node slugs, e.g. "electronics", "books", "kitchen". At least one is required — the chart root is Amazon's category picker, not a chart, so it returns no items. Slugs differ per marketplace: "electronics" works on 17 of 18 marketplaces but NOT amazon.de, which uses "computers". Only automotive, beauty, books, gift-cards and videogames work on all 18. See the README for the full per-marketplace table. Sub-categories work too (e.g. "electronics/172623"). Each category is crossed with every selected chart and marketplace.

## `charts` (type: `array`):

Which ranked charts to pull. Amazon publishes four per category.

## `marketplaces` (type: `array`):

Amazon marketplace TLDs to scrape.

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

Paste full chart URLs instead of picking categories — e.g. https://www.amazon.com/gp/bestsellers/electronics/ or https://www.amazon.de/gp/movers-and-shakers/computers/. Works with /gp/bestsellers/, /zgbs/, /gp/new-releases/, /gp/movers-and-shakers/ and /gp/most-wished-for/.

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

Hard cap on rows across the whole run. You are charged per row returned.

## `maxItemsPerChart` (type: `integer`):

Amazon charts hold 100 ranked products (2 pages of 50). Set 50 to take only the first page.

## `fetchMissingDetails` (type: `boolean`):

Amazon server-renders only ~30 of the 50 rows per chart page; the rest arrive with rank + ASIN but no title/price. Turn this on to fetch each of those product pages and fill the missing fields. Slower and uses more requests.

## `skipIncompleteRows` (type: `boolean`):

Drop the un-hydrated rows entirely instead of returning them with rank + ASIN only. Gives ~60 complete rows per chart instead of 100 mixed ones.

## `concurrency` (type: `integer`):

Parallel page fetches. Pages that fail are retried automatically.

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

Leave empty to use the actor's built-in residential proxy, which is what reliably returns full Amazon pages. To use your own proxies instead, pick "Own proxies" and paste their URLs; Apify Proxy groups set here are ignored.

## Actor input object example

```json
{
  "categories": [
    "electronics"
  ],
  "charts": [
    "bestsellers"
  ],
  "marketplaces": [
    "com"
  ],
  "startUrls": [],
  "maxItems": 200,
  "maxItemsPerChart": 100,
  "fetchMissingDetails": false,
  "skipIncompleteRows": false,
  "concurrency": 6
}
```

# Actor output Schema

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

One row per ranked product: rank, ASIN, title, price, rating, review count, image, chart, category and marketplace.

# 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("memo23/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("memo23/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 memo23/amazon-bestsellers-scraper --silent --output-dataset

```

## MCP server setup

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