Amazon Best Sellers Scraper avatar

Amazon Best Sellers Scraper

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Amazon Best Sellers Scraper

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

Coding Frontned

Maintained by Community

Actor stats

0

Bookmarked

27

Total users

3

Monthly active users

14 days ago

Last modified

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?

GroupFields
Identity and provenancerecordType, source, pageType, sourceUrl, canonicalUrl, url, marketplace, country, asin, originalAsin, scrapedAt
Ranking contextcategoryName, categoryUrl, listingUrl, pageNumber, rank
ProductproductTitle, brand, productDescription, inStock, inStockText, isPrime
Commerce and signalsprice, listPrice, stars, reviewsCount, hasReviews, reviewsLink, optional reviews
Technicalfeatures, attributes, productOverview, structuredDataTypes, videosCount
MediaimageUrl, 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

  1. Choose category to build a marketplace-relative Best Sellers URL, categoryUrl to use a specific public Best Sellers URL, or productUrl to enrich direct Amazon product URLs.
  2. Set country and locale, then choose the page/item limits, optional detail extraction, filters, pacing, retries, and proxy settings.
  3. Start the run and inspect the dataset plus the OUTPUT key-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:

  • mode is category by default and accepts category, categoryUrl, or productUrl.
  • category defaults to electronics and must be a 1–100 character marketplace category slug. It is used in category mode.
  • categoryUrl defaults to an empty value and is required in categoryUrl mode. It must be a public Best Sellers URL on the selected marketplace.
  • productUrls defaults to [], accepts at most 100 strings, and is required in productUrl mode. Each URL must contain a valid ASIN on a supported Amazon marketplace. Duplicate marketplace/ASIN identities are removed when deduplicate is enabled.
  • maxItems defaults to 50 and accepts 1–100. maxPages defaults to 2 and accepts 1–20.
  • deepSearch defaults to false. When enabled in category modes, each selected card may trigger one detail-page request; in productUrl mode each URL is a detail request.
  • extractReviews defaults to false and requires deepSearch: true. At most 10 structured review snippets are retained per detail row.
  • includeMedia defaults to true; includeTechnicalDetails defaults to true.
  • country defaults to in and accepts in, com, co.uk, de, co.jp, ca, com.au, or com.br. locale defaults to en-IN for India and en-US for other marketplaces, and accepts en-IN, en-US, en-GB, de-DE, ja-JP, fr-CA, en-AU, or pt-BR.
  • filters defaults to {}. Supported fields are minRating (0–5), minReviewsCount (non-negative integer), minPrice, maxPrice (non-negative marketplace-local amounts), includePrimeOnly (default false), includeKeywords (default []), and excludeKeywords (default []).
  • deduplicate defaults to true.
  • minDelayMs defaults to 500 and maxDelayMs defaults to 1500; both accept 0–60,000 and the maximum cannot be lower than the minimum.
  • maxRetries defaults to 2 and accepts 0–5. navigationTimeoutMs defaults to 60000 and accepts 5,000–180,000 milliseconds.
  • proxyConfiguration defaults 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 install
npm test
npm run lint
npm run validate
npm run check
apify validate-schema
apify 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.