Amazon Best Sellers Scraper
Pricing
from $4.99 / 1,000 results
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 $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Coding Frontned
Maintained by CommunityActor stats
0
Bookmarked
27
Total users
3
Monthly active users
14 days ago
Last modified
Categories
Share
What does Amazon Best Sellers Scraper do?
Amazon Best Sellers Scraper collects source-backed product records from public Amazon Best Sellers category pages. It can also visit the selected product pages for detail enrichment. Supported marketplaces are Amazon India, US, UK, Germany, Japan, Canada, Australia, and Brazil. It does not sign in, solve CAPTCHAs, access private offers, or bypass access controls.
Why use Amazon Best Sellers Scraper?
Use it for ranking snapshots, catalog research, assortment checks, price comparisons, and product discovery. Listing rows preserve the public rank, category context, ASIN, title, product URL, price, rating, review count, Prime signal, and card image. With deepSearch: true, the Actor can add public detail-page description, availability, feature bullets, technical rows, media, and optional structured review snippets.
Requests are serialized and bounded. Apify Residential proxying is the default reliability configuration, while proxyConfiguration can be set explicitly, including { "useApifyProxy": false } for direct public HTTP. A fresh proxy URL is requested for each retry. The Actor never treats a blocked or challenged page as a product.
What data can it extract?
| Group | Fields |
|---|---|
| Identity and provenance | recordType, source, pageType, sourceUrl, canonicalUrl, url, marketplace, country, asin, originalAsin, scrapedAt |
| Ranking context | categoryName, categoryUrl, listingUrl, pageNumber, rank |
| Product | productTitle, brand, productDescription, inStock, inStockText, isPrime |
| Commerce and signals | price, listPrice, stars, reviewsCount, hasReviews, reviewsLink, optional reviews |
| Technical | features, attributes, productOverview, structuredDataTypes, videosCount |
| Media | imageUrl, thumbnailImage, galleryThumbnails, highResolutionImages |
Images are retained only when they resolve to Amazon media hosts and are deduplicated. Missing public values are omitted; they are never converted into empty placeholders, zero prices, or guessed stock states.
How to scrape Amazon Best Sellers
- Choose
categoryto build a marketplace-relative Best Sellers URL,categoryUrlto use a specific public Best Sellers URL, orproductUrlto enrich direct Amazon product URLs. - Set
countryandlocale, then choose the page/item limits, optional detail extraction, filters, pacing, retries, and proxy settings. - Start the run and inspect the dataset plus the
OUTPUTkey-value record. A run with no verified products fails explicitly unless all discovered products were validly excluded by filters.
Input
All input fields are retained for compatibility with the existing Actor contract. Defaults and validation are:
modeiscategoryby default and acceptscategory,categoryUrl, orproductUrl.categorydefaults toelectronicsand must be a 1–100 character marketplace category slug. It is used incategorymode.categoryUrldefaults to an empty value and is required incategoryUrlmode. It must be a public Best Sellers URL on the selected marketplace.productUrlsdefaults to[], accepts at most 100 strings, and is required inproductUrlmode. Each URL must contain a valid ASIN on a supported Amazon marketplace. Duplicate marketplace/ASIN identities are removed whendeduplicateis enabled.maxItemsdefaults to50and accepts 1–100.maxPagesdefaults to2and accepts 1–20.deepSearchdefaults tofalse. When enabled in category modes, each selected card may trigger one detail-page request; inproductUrlmode each URL is a detail request.extractReviewsdefaults tofalseand requiresdeepSearch: true. At most 10 structured review snippets are retained per detail row.includeMediadefaults totrue;includeTechnicalDetailsdefaults totrue.countrydefaults toinand acceptsin,com,co.uk,de,co.jp,ca,com.au, orcom.br.localedefaults toen-INfor India anden-USfor other marketplaces, and acceptsen-IN,en-US,en-GB,de-DE,ja-JP,fr-CA,en-AU, orpt-BR.filtersdefaults to{}. Supported fields areminRating(0–5),minReviewsCount(non-negative integer),minPrice,maxPrice(non-negative marketplace-local amounts),includePrimeOnly(defaultfalse),includeKeywords(default[]), andexcludeKeywords(default[]).deduplicatedefaults totrue.minDelayMsdefaults to500andmaxDelayMsdefaults to1500; both accept 0–60,000 and the maximum cannot be lower than the minimum.maxRetriesdefaults to2and accepts 0–5.navigationTimeoutMsdefaults to60000and accepts 5,000–180,000 milliseconds.proxyConfigurationdefaults to Apify Residential proxying for the selected marketplace. Set it explicitly to configure or disable proxying.
Example: category ranking snapshot
{"mode": "category","category": "electronics","country": "com","locale": "en-US","maxItems": 10,"maxPages": 1,"deepSearch": false,"minDelayMs": 1000}
Example: category URL with detail enrichment
{"mode": "categoryUrl","categoryUrl": "https://www.amazon.com/gp/bestsellers/electronics/","country": "com","locale": "en-US","maxItems": 3,"maxPages": 1,"deepSearch": true,"includeMedia": true,"includeTechnicalDetails": true,"extractReviews": true,"filters": { "minRating": 4, "minReviewsCount": 100 }}
Example: direct product URLs
{"mode": "productUrl","productUrls": ["https://www.amazon.com/dp/B00KL8SM92"],"country": "com","locale": "en-US","maxItems": 1,"deepSearch": true,"proxyConfiguration": { "useApifyProxy": false },"minDelayMs": 0,"maxDelayMs": 0,"maxRetries": 0}
Invalid modes, URLs, category paths, numeric ranges, filter types, and incompatible review settings are rejected before network work starts. Product URL mode normalizes each URL to its supported marketplace and ASIN; the selected country remains the run default for category URL construction.
Output
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Successful dataset rows contain only source-backed business and provenance fields. Listing example:
{"recordType": "amazon-bestseller","pageType": "listing","source": "amazon-public-bestseller-page","sourceUrl": "https://www.amazon.com/gp/bestsellers/electronics/","canonicalUrl": "https://www.amazon.com/dp/B00KL8SM92","url": "https://www.amazon.com/dp/B00KL8SM92","marketplace": "amazon.com","country": "com","categoryName": "electronics","listingUrl": "https://www.amazon.com/gp/bestsellers/electronics/","pageNumber": 1,"rank": 1,"productTitle": "Example electronic accessory","asin": "B00KL8SM92","price": { "value": 24.99, "currency": "USD" },"stars": 4.5,"reviewsCount": 1234,"scrapedAt": "2026-01-01T00:00:00.000Z"}
When deepSearch succeeds, recordType is amazon-bestseller-product and the row can include public detail fields such as productDescription, features, attributes, productOverview, galleryThumbnails, and reviews.
Operational diagnostics are not mixed into dataset rows. The OUTPUT key-value record reports status, request/page counts, emitted item counts, filter counts, proxy use, and bounded failure evidence. A blocked run is distinguishable from a valid empty result, for example:
{"status": "BLOCKED_FAIL_CLOSED","success": false,"itemCount": 0,"blockedCount": 1,"failureEvidence": [{"errorCode": "http_403","detail": "Public Amazon response classified as http_403.","url": "https://www.amazon.com/gp/bestsellers/electronics/","httpStatus": 403}]}
Access boundary, cost, and responsible use
The Actor uses bounded public HTTP requests with timeouts, serialized pacing, and limited retries. It does not solve challenges, log in, use cookies or credentials, access paywalls, or substitute third-party ranking data. Amazon can redirect, show a delivery-location prompt, return a challenge, or expose only partial markup; those outcomes remain failure evidence and never become fabricated product rows.
Compute and proxy usage depend on the number of listing pages, selected items, detail requests, retries, and account configuration. There is no fixed success or cost guarantee. Use respectful limits and comply with Amazon's terms, robots guidance, rate limits, applicable privacy law, and other applicable law. This Actor is not affiliated with Amazon.
Local development and QA
From this Actor directory:
npm installnpm testnpm run lintnpm run validatenpm run checkapify validate-schemaapify run --purge --input-file qa-inputs/local-category.json
For repeatable QA, set an isolated APIFY_LOCAL_STORAGE_DIR, inspect the dataset JSON, then inspect key_value_stores/default/OUTPUT.json. The checked-in QA inputs are representative request configurations, not captured live HTML fixtures. A live page can be challenged or unavailable; verify that outcome through OUTPUT rather than treating an empty dataset as success.
FAQ and support
If a run is blocked, wait and retry with a respectful delay, verify the selected marketplace, or use an explicitly authorized proxy configuration. Do not provide credentials or CAPTCHA answers. For reproducible issues, include the run ID and OUTPUT summary in the Actor Issues tab; the API tab exposes the same run, dataset, and key-value-store links.