Amazon Bestsellers Scraper
Pricing
from $5.00 / 1,000 product scrapeds
Amazon Bestsellers Scraper
Scrape Amazon Best Sellers, New Releases, Movers & Shakers, Most Wished For and Gift Ideas rankings by category across 10 marketplaces. Returns ranked products with rank, ASIN, title, price, rating, review count, Prime status and image, with no login.
Pricing
from $5.00 / 1,000 product scrapeds
Rating
5.0
(1)
Developer
Khadin Akbar
Maintained by CommunityActor stats
2
Bookmarked
465
Total users
132
Monthly active users
a day ago
Last modified
Categories
Features
Share
What is Amazon Bestsellers Scraper?
Amazon Bestsellers Scraper is an Apify Actor for analysts, merchandisers, builders, and AI agents that need Amazon chart data from Best Sellers, New Releases, Movers & Shakers, Most Wished For, and Gift Ideas pages across 21 marketplaces. It accepts either explicit chart URLs or chart settings, and it returns one record per ranked product. Every run after the first also shows how each product moved since your previous run of the same chart (new, up, down or same), and lists products that dropped out. Each record includes rank, ASIN, title, price, priceString, currency, rating, reviews count, Prime status, badges, image URL, product URL, category context, chart type, marketplace, and scraped timestamp. The output is a flat dataset built for spreadsheets, dashboards, and Apify MCP workflows.
Best fit and connected workflows
This Actor fits workflows that begin with an Amazon ranking chart and end with structured product records. It routes well for:
- chart URL to dataset runs for a specific Amazon category page
- chart type plus marketplace runs when you want the Actor to build the chart URL
- category-specific ranking review with rank, price, and review signals
- immediate subcategory expansion when you want a broader view of the category tree
- AI agent calls through Apify MCP where a concise, flat output is helpful
Because the output is one record per ranked product, it can feed follow-up steps such as enrichment, comparison, reporting, or manual review without extra reshaping.
Practical scenario
A category manager is reviewing the US Electronics Best Sellers chart before planning a weekly assortment check. They start with a chart URL and ask for the top 20 items. The dataset returns rank, ASIN, title, price, rating, reviews count, Prime status, image URL, product URL, chart type, marketplace, and scraped timestamp. The manager uses rank, price, and reviews count to shortlist products for a deeper internal review, then opens the product URLs for confirmation.
Input
Use HTTPS chart URLs on the supported Amazon marketplaces, without URL credentials or a custom port, or use chart settings. Invalid explicit URLs are rejected rather than replaced with a default chart. When you provide startUrls, the chart type and marketplace are detected from each URL.
Supported chart types are bestsellers, new-releases, most-wished-for, and gift-ideas (Amazon Most Gifted). Movers & Shakers is not a supported chart type; do not use its URLs with this Actor. For a category-specific ranking, supply a category chart URL or categorySlug. Top-level chart pages may return a cross-department carousel sample with repeated positions instead of one category ranking.
| Field | Type | Purpose |
|---|---|---|
startUrls | array | Amazon ranking-chart URLs for Best Sellers, New Releases, Most Wished For, or Gift Ideas pages |
chartType | string | Chart to scrape when you are not providing explicit URLs |
marketplace | string | Marketplace country when using chart settings instead of URLs |
categorySlug | string | Optional category name such as electronics or toys and games (translated where Amazon uses a different code) |
trackChanges | boolean | Compare with your previous run of the same chart (default on, free) |
maxItemsPerCategory | integer | Maximum ranked products to return per chart |
includeSubcategories | boolean | Also scrape immediate subcategory charts linked from the start page |
proxyConfiguration | object | Proxy settings, with Apify residential proxies as the default |
Valid focused input example
{"chartType": "bestsellers","marketplace": "US","categorySlug": "electronics","maxItemsPerCategory": 20,"includeSubcategories": false}
Output
The Actor returns one record per ranked product. rank represents position in the selected chart; when a card has no rank badge, it falls back to extraction order. It is not a separately fetched product-detail Best Sellers Rank (BSR). Use categoryUrl and chartType to interpret the ranking context.
| Field | Type | Purpose |
|---|---|---|
rank | integer | Position in the chart |
asin | string | Amazon Standard Identification Number |
title | string | Product title shown on the chart |
brand | string or null | Brand when the chart card shows one (usually null; chart cards rarely include it) |
previousRank | integer or null | Rank in your previous run of the same chart |
rankChange | integer or null | Places climbed since the previous run (positive = up) |
changeStatus | string or null | new, up, down, same, or baseline on a first run |
previousScrapedAt | string or null | When the previous snapshot was taken |
salesRankChangePct | integer or null | Movers & Shakers only: percentage sales-rank jump |
salesRankPrevious | integer or null | Movers & Shakers only: sales rank 24 hours earlier |
price | number or null | Price as a number |
priceString | string or null | Price exactly as displayed |
currency | string or null | Marketplace currency code |
rating | number or null | Average star rating |
reviewsCount | integer or null | Number of ratings |
isPrime | boolean | Whether the Prime badge is shown |
badges | string[] | Badges shown on the card |
imageUrl | string | Product thumbnail URL |
productUrl | string | Product detail page URL |
categoryName | string or null | Human-readable category name |
categoryUrl | string | Chart page URL |
chartType | string | Chart source type |
marketplace | string | Marketplace country code |
scrapedAt | string | ISO 8601 scrape timestamp |
Illustrative output record
{"rank": 1,"asin": "B0CHX1W1XY","title": "Apple AirPods Pro (2nd Generation) Wireless Earbuds","brand": "Apple","price": 189.99,"priceString": "$189.99","currency": "USD","rating": 4.7,"reviewsCount": 24531,"isPrime": true,"badges": ["Best Seller"],"imageUrl": "https://m.media-amazon.com/images/I/61SUj2aKoEL._AC_UL300_.jpg","productUrl": "https://www.amazon.com/dp/B0CHX1W1XY","categoryName": "Electronics","categoryUrl": "https://www.amazon.com/gp/bestsellers/electronics","chartType": "bestsellers","marketplace": "US","scrapedAt": "2026-06-01T12:00:00Z"}
How it works
This Actor uses a Playwright browser workflow and Apify residential proxies that are geo-matched to the selected marketplace. It supports 21 marketplaces: US, UK, DE, FR, IT, ES, CA, JP, IN, AU, MX, BR, NL, SE, PL, TR, AE, SA, SG, EG, and BE.
Rank change. Each run saves a small snapshot of every chart it reads (in a store called amazon-bestsellers-history in your account) and compares the next run with it. Records carry previousRank, rankChange (positive means the product climbed), changeStatus and previousScrapedAt. Products that were in the previous snapshot but are gone now are listed in the DROPPED_OUT record of the run's key-value store. This costs nothing extra; turn it off with trackChanges.
Movers & Shakers, Most Wished For and Gift Ideas. Amazon decides what these charts show. When Amazon shows a chart as empty ("there are no ... available in this category"), the run ends with zero products, no charge, and says so in its status message. Best Sellers and New Releases are the dependable charts.
If you pass chart URLs, the Actor reads the chart type and marketplace from each URL. If you use chart settings, it builds the chart URL from the selected chart type, marketplace, and optional category slug. It can also crawl one level of immediate subcategories from the left-hand navigation when that option is enabled. The dataset is shaped for agent consumption with flat fields and one record per ranked product.
Evergreen pricing
This Actor uses Pay per event pricing plus Apify platform usage.
- Primary event:
Product scraped - Each returned ranked product is charged as one product event
- Actor start is charged separately, with the number of start events depending on Actor memory
- Current pricing details are available in the live Pricing tab on the Apify Store page
A simple event-count example in words: if a run returns one hundred ranked products, the execution includes one hundred product events, plus the Actor start event.
Use with AI agents (MCP)
This Actor is usable through Apify MCP as a structured Amazon chart-ranking tool. The exact Actor identity is khadinakbar/amazon-bestsellers-scraper.
Tool description: fetch ranked Amazon chart products from supported marketplaces and return structured records with rank, ASIN, title, pricing, ratings, Prime status, badges, image, and chart context.
Please scrape the US Amazon Electronics Best Sellers chart and return the top 20 ranked products with rank, ASIN, title, price, rating, review count, Prime status, image URL, product URL, category name, chart type, marketplace, and scraped timestamp.
Output interpretation:
rankshows chart position, with1as the top itemasinandproductUrlidentify the product for follow-up enrichmentprice,rating, andreviewsCountare useful for comparisoncategoryUrl,chartType, andmarketplaceprovide provenance for the chart sourcescrapedAtshows when the record was captured
Scope, pagination, and cost guidance:
- Use chart URLs when you want exact chart provenance
- Use chart settings when you want the Actor to construct the chart page
- Set
maxItemsPerCategoryto the number of ranked items you need, up to the chart maximum - Enable subcategory crawling when you want immediate child charts as well
- Each returned product contributes to Pay per event usage, so lower
maxItemsPerCategorywhen you only need the top of a chart
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/amazon-bestsellers-scraper').call({chartType: 'bestsellers',marketplace: 'US',categorySlug: 'electronics',maxItemsPerCategory: 10,includeSubcategories: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Best results and outcome guidance
Choose the input style that matches your workflow:
- use
startUrlswhen you already have a specific Amazon chart page - use
chartTypeandmarketplacewhen you want the Actor to build the chart URL - add
categorySlugfor a category-specific chart - reduce
maxItemsPerCategorywhen you only need the top part of a chart - enable
includeSubcategorieswhen you want a broader category tree view - keep the default residential proxy configuration for marketplace-matched requests
Continue the workflow
- Then use Amazon Competitor Price Tracker to extend Amazon Bestsellers Scraper — Chart Rankings research with a complementary monitor contract.
- Then use Amazon Price History Scraper to extend Amazon Bestsellers Scraper — Chart Rankings research with a complementary monitor contract.
Design note
I found that the live contract returns one record per ranked product and that the dataset is centered on flat fields such as rank, asin, title, productUrl, categoryUrl, chartType, marketplace, and scrapedAt. That makes the Actor straightforward to use in MCP and in downstream tables.
FAQ
When should I use a chart URL instead of chart settings?
Use a chart URL when you already know the exact Amazon page you want. Use chart settings when you want the Actor to construct the chart page from a chart type, marketplace, and optional category slug.
How does this Actor help with marketplace-specific research?
You can select one of 21 marketplaces or pass a marketplace-specific chart URL. The output includes the marketplace code and chart URL, which makes it straightforward to compare chart data across countries.
Can I use this Actor for one category or for multiple categories?
You can run it against one chart, multiple chart URLs, or a chart plus immediate subcategories. The output stays in the same one-record-per-product format.
What does the productUrl field give me?
It gives you the marketplace product detail page URL for each ranked item, which is useful for enrichment, review, or manual inspection.
How do I see what moved up or down?
Run the same chart twice. The second run (and every run after) fills changeStatus and rankChange for each product and writes the DROPPED_OUT record. For sales-rank jumps in the last 24 hours, use the Movers & Shakers chart when Amazon is showing it.
Why did my category return nothing?
Category names differ slightly between countries (for example Electronics on amazon.de is a different code, which this Actor translates). If a category still returns nothing, the run summary lists the categories that marketplace offers, and nothing is charged.
Is this Actor usable through MCP?
Yes. It is an Apify Actor that is MCP-ready and designed for AI-agent workflows through Apify MCP.
Responsible use
Use this Actor in line with applicable laws, Amazon's terms, and your own data handling policies. Keep request volumes aligned with the chart data you need, and review the live Pricing tab before running workloads at scale.