Amazon Best Sellers Scraper
Pricing
from $2.99 / 1,000 best sellers
Amazon Best Sellers Scraper
Scrape Amazon Best Sellers rankings by category from Amazon.in (and other marketplaces). Extracts rank, title, ASIN, price, rating, reviews, and optionally full product details.
Pricing
from $2.99 / 1,000 best sellers
Rating
0.0
(0)
Developer
w3crawler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
Amazon Best Sellers Scraper collects rich, publicly visible bestseller observations from Amazon category pages or direct product URLs. It supports India, US, UK, Germany, Japan, Canada, Australia, and Brazil marketplaces.
Pagination follows Amazon's public Next page link in source order and preserves the source URL's marketplace, category path, and non-pagination query parameters. Repeated marketplace/ASIN pairs are deduplicated by default, filters and sorting are applied before maxItems, and optional detail requests run with bounded concurrency. The dataset contains product rows only; run metrics and failures are stored separately in the key-value store.
maxPages is a per-category-source ceiling, not a promise that Amazon exposes that many pages. The crawler stops on the first applicable boundary: maxItems for unfiltered rank order, the configured page ceiling, no observed next link, a repeated URL, no new ASINs, or a blocked/failed response. During the current live inspection of amazon.in/gp/bestsellers/electronics/, Amazon exposed page 1 → page 2; page 2 began at rank 51 and exposed no further next link.
Dataset fields
| Field | Description |
|---|---|
rank, rankOnPage, pageNumber | Bestseller position and page context |
asin, title, url, canonicalUrl | Product identity and canonical public product URL |
sourceUrl, listingUrl, categoryUrl, productUrl | Reproducible listing/detail source context |
marketplace, country, userLocale, categoryName | Marketplace and category context |
price, listPrice | Public price objects with value and ISO currency |
stars, reviewsCount, reviewsLink, hasReviews | Public rating and review signals |
isPrime, inStock, inStockText | Public listing and product availability signals |
brand, manufacturer, model, modelNumber, description, breadCrumbs, features | Public product information from detail pages |
sellerName, offerUrl, deliveryText, couponText, badges, dealBadge, discountPercentage | Public offer and promotion signals when exposed |
attributes, productOverview | Public specification rows when technical details are enabled |
imageUrl, thumbnailImage, imageAlt, imageUrls, galleryThumbnails, highResolutionImages, imageCount | Product-scoped public media |
reviews | Bounded public JSON-LD review summaries when enabled |
sourceStructuredData, structuredDataTypes, pageText, wordCount, htmlLength | Public page evidence and bounded text context |
scrapedAt | ISO timestamp for the observation |
The Actor does not put source labels, fieldCoverage, dataQuality, recordId, actor metadata, access flags, request counters, proxy metadata, or other debugging wrappers in dataset rows. Failed requests appear in run counts and logs only; they do not add dataset rows.
Input examples
1. Ordered multi-page category scrape
{"mode": "category","country": "in","category": "electronics","maxItems": 100,"maxPages": 3,"deduplicate": true,"sortBy": "rank_asc"}
2. Multiple category sources with filters and sorting
{"mode": "categoryUrl","categoryUrl": "https://www.amazon.in/gp/bestsellers/electronics/","categoryUrls": ["https://www.amazon.in/gp/bestsellers/computers/","https://www.amazon.in/gp/bestsellers/beauty/"],"maxPages": 2,"filters": {"minRating": 4.5,"minReviewsCount": 50,"minPrice": 200,"maxPrice": 5000,"includePrimeOnly": true,"includeKeywords": ["wireless", "usb"],"excludeKeywords": ["refurbished"]},"sortBy": "rating_desc","maxItems": 50}
3. Product detail enrichment and developer options
{"mode": "category","country": "com","category": "electronics","maxItems": 20,"maxPages": 1,"deepSearch": true,"extractReviews": true,"maxReviews": 5,"includeMedia": true,"includeTechnicalDetails": true,"requestDelayMs": 800,"maxConcurrency": 2,"maxRequestRetries": 3,"requestTimeoutSecs": 45,"maxResponseBytes": 20000000,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyCountry": "US"}}
The aliases requestTimeoutMs, timeoutSecs, timeoutMs, navigationTimeoutMs, minDelayMs, pageDelayMs, concurrency, detailConcurrency, maxRetries, maxBytes, and dedupe are accepted for compatibility. Unsupported input keys are rejected.
4. Direct product URLs
{"mode": "productUrl","productUrls": ["https://www.amazon.com/dp/B0EXAMPLE1","https://www.amazon.com/dp/B0EXAMPLE2"],"deepSearch": true,"extractReviews": true,"maxItems": 2}
5. Offline pagination and detail QA
{"mode": "category","category": "electronics","maxPages": 2,"maxItems": 4,"requestDelayMs": 0}
Local detail tests use checked-in product fixtures directly. Fixture data is not exposed as a public Actor input, and live runs request the public source.
Example output
{"rank": 1,"pageNumber": 1,"asin": "B0TEST1001","title": "Aurora Wireless Earbuds","url": "https://www.amazon.in/dp/B0TEST1001","canonicalUrl": "https://www.amazon.in/dp/B0TEST1001","sourceUrl": "https://www.amazon.in/gp/bestsellers/electronics/","listingUrl": "https://www.amazon.in/gp/bestsellers/electronics/","marketplace": "amazon.in","country": "in","categoryName": "electronics","price": { "value": 1299, "currency": "INR" },"stars": 4.6,"reviewsCount": 1204,"isPrime": true,"thumbnailImage": "https://images.example.com/aurora-earbuds.jpg","scrapedAt": "2026-09-07T00:00:00.000Z"}
Access boundary
Requests use transparent public HTTP with optional ordinary Apify Proxy or public proxy routing. The Actor does not log in, solve CAPTCHAs, spoof fingerprints, use stealth rotation, bypass access controls, or call private APIs. Amazon challenge pages, explicit HTTP blocks, redirects outside the requested marketplace, timeouts, oversized responses, and pages without public cards fail closed without adding non-product rows to the dataset.
Local development and validation
npm installapify validate-schemaapify run --purge --input-file .actor/input.jsonnpm run validate
Local dataset rows are written under storage/datasets/default/. OUTPUT_SUMMARY contains run counts and options, and failure details stay in the run logs. When at least one source-backed row was saved, later request or dataset-write errors leave the Actor run SUCCEEDED and set dataStatus to PARTIAL. A run with errors and no saved rows is marked FAILED.
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Use only public pages and comply with Amazon's terms, robots guidance, rate limits, and applicable law.
Run summaries include the required status, runStatus, and dataStatus fields. status and runStatus are SUCCEEDED when source-backed rows were saved or a run completed cleanly with no matches; they are FAILED only when a real failure occurs before any rows are saved. dataStatus is COMPLETE, PARTIAL, NO_RESULTS, or FAILED. Failure details stay in the run logs; key-value summaries retain counts only.