All scrapers

E-commerce

Amazon Best Sellers Scraper

amazon.com

99.6% Success rate
6.5s Avg response
In-house anti-bot Protection
1,074 calls Measured over

Amazon's ranked lists hold up to 100 items per category, 50 per page, but each page server-renders only its first 30 cards and loads the rest as the grid scrolls, so a plain fetch misses ranks 31 to 50, and every page still has to get past Amazon's bot detection. A dedicated plugin endpoint takes a department slug such as electronics, a slug with a browse-node id, or any list URL, and returns the ranked items already parsed: rank, ASIN, title, product URL, image, price in the store's currency, rating and review count, plus the sales-rank move on Movers & Shakers. The category comes with them - name, node id, parents and subcategories - so you can walk the whole tree, and an empty category returns the department list. Pick one of five list types and any of 20 regional marketplaces; the request exits from the marketplace's home country, so prices come back in that store's currency.

What you can extract

  • Rank, ASIN, title, product URL and image for every item
  • Price with its ISO currency and the price text as Amazon shows it
  • Star rating and review count
  • Movers & Shakers: current and previous sales rank and the percentage change
  • Category name, browse-node id, parent categories and subcategories to drill into
  • Five list types: Best Sellers, New Releases, Movers & Shakers, Most Wished For and Gift Ideas
  • Up to 100 ranked items per category, on 20 regional marketplaces, in each store's own currency

Dedicated endpoints

/marketplace/amazon-bestsellers

Amazon Best Sellers lists

A ranked list for a category (a department slug, slug/node id or list URL; empty = the department list): category (name, nodeId, parents, subcategories) and items with rank, asin, title, url, image, price, currency, rating and reviewsCount, plus sales-rank moves on Movers & Shakers. list_type picks bestsellers, new_releases, movers_and_shakers, most_wished_for or gift_ideas; marketplace picks one of 20 regional sites; max_results 1-100 (default 30).

Supported marketplaces

Prices come back in each marketplace's local currency, with the exit pinned to that country automatically.

MarketplaceCurrency
amazon.comUSD
amazon.co.ukGBP
amazon.deEUR
amazon.frEUR
amazon.itEUR
amazon.esEUR
amazon.nlEUR
amazon.seSEK
amazon.plPLN
amazon.com.beEUR
amazon.com.trTRY
amazon.caCAD
amazon.com.mxMXN
amazon.com.brBRL
amazon.co.jpJPY
amazon.inINR
amazon.aeAED
amazon.saSAR
amazon.sgSGD
amazon.com.auAUD

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/marketplace/amazon-bestsellers?category=electronics&max_results=10"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/marketplace/amazon-bestsellers",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"category": "electronics", "max_results": "10"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const list = await su.amazonBestsellers('electronics', {
  marketplace: 'amazon.com',
  maxResults: 10,
});
console.log(list);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Example response

{
  "marketplace": "amazon.com",
  "listType": "bestsellers",
  "listTitle": "Best Sellers in Electronics",
  "category": {
    "name": "Electronics",
    "slug": "electronics",
    "nodeId": null,
    "url": "https://www.amazon.com/gp/bestsellers/electronics/",
    "parents": [
      {
        "name": "Any Department",
        "slug": null,
        "nodeId": null,
        "url": "https://www.amazon.com/gp/bestsellers/"
      }
    ],
    "subcategories": [
      {
        "name": "Accessories & Supplies",
        "slug": "electronics",
        "nodeId": "281407",
        "url": "https://www.amazon.com/gp/bestsellers/electronics/281407/"
      },
      {
        "name": "Camera & Photo",
        "slug": "electronics",
        "nodeId": "502394",
        "url": "https://www.amazon.com/gp/bestsellers/electronics/502394/"
      }
    ]
  },
  "resultsCollected": 10,
  "itemsWithDetails": 10,
  "pagesFetched": 1,
  "proxyCountry": "US",
  "items": [
    {
      "rank": 1,
      "asin": "B08JHCVHTY",
      "title": "blink plus plan with monthly auto-renewal",
      "url": "https://www.amazon.com/dp/B08JHCVHTY",
      "image": "https://images-na.ssl-images-amazon.com/images/I/31YHGbJsldL._AC_UL600_SR600,400_.png",
      "price": 11.99,
      "currency": "USD",
      "priceRaw": "$11.99",
      "rating": 4.4,
      "reviewsCount": 280618,
      "salesRank": null,
      "previousSalesRank": null,
      "salesRankChangePct": null
    },
    {
      "rank": 2,
      "asin": "B0DCH8VDXF",
      "title": "Apple EarPods Headphones with USB-C Plug, Wired Ear Buds with Built-in Remote to Control Music, Phone Calls, and Volume",
      "url": "https://www.amazon.com/dp/B0DCH8VDXF",
      "image": "https://images-na.ssl-images-amazon.com/images/I/513OSdW4elL._AC_UL600_SR600,400_.jpg",
      "price": 19,
      "currency": "USD",
      "priceRaw": "$19.00",
      "rating": 4.5,
      "reviewsCount": 18384,
      "salesRank": null,
      "previousSalesRank": null,
      "salesRankChangePct": null
    }
  ]
}

Read the API docs

Frequently asked questions

Is it legal to scrape Amazon Best Sellers?

Collecting publicly available list data - ranks, titles, prices and ratings - is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. You stay responsible for how you use it. ScrapeUnblocker returns the public list; what you collect and how you use it is your decision.

How do I scrape Amazon Best Sellers without getting blocked?

Amazon runs its own bot detection and answers traffic it does not trust with a captcha page. The /marketplace/amazon-bestsellers plugin fetches every list page through ScrapeUnblocker's unblocking chain from the marketplace's home country, and when you ask for more than the first 30 items of a page, it renders that page once in a real browser and scrolls the grid so Amazon loads the rest. In ScrapeUnblocker's benchmark it returned the ranked list on 99.6% of 1,074 calls with different categories and marketplaces, about 6.5s per call.

What data do I get for each item?

Each item has its rank, ASIN, title, a clean product URL, an image, the price as a number with its ISO currency and Amazon's own price text, the star rating and the review count. On Movers & Shakers you also get the current and previous sales rank and the percentage change. The response carries the list title, the category's name and browse-node id, its parent categories and its subcategories with their own slugs and node ids, and itemsWithDetails, the number of items that came back with full card details.

Do I need an Amazon API or account?

No. The plugin needs no Amazon Associates, Product Advertising API or Selling Partner account: send a category with your ScrapeUnblocker key and get the ranked list back as JSON. Take any ASIN from the list to our Amazon product plugin (/marketplace/amazon-product) for the full product page.

Can I get Best Sellers from other Amazon marketplaces?

Yes. Pass marketplace with any of 20 regional sites, such as amazon.co.uk, amazon.de or amazon.co.jp, or paste a list URL from that site. The request exits from the marketplace's home country by default, so prices come back in the store's own currency: GBP on amazon.co.uk, EUR on amazon.de. Browse-node ids differ between marketplaces, so drill down from each site's own department list, which an empty category returns.

How much does it cost to scrape Amazon Best Sellers?

Amazon lists hold up to 100 items, 50 per page, and each list page fetched is billed as one request: up to 50 items count as 1 request, 51 to 100 as 2, and pagesFetched shows the exact number. 1 request = 1 credit, EUR 1.00 per 1,000 on pay as you go, down to about EUR 0.55 per 1,000 on the Ultimate plan. Blocks and timeouts are not billed, and the free trial includes 500 requests with no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.