---
title: "Scrape Amazon Best Sellers lists"
method: POST
path: "/marketplace/amazon-bestsellers"
tags: ["Plugins"]
---

# Scrape Amazon Best Sellers lists

`POST /marketplace/amazon-bestsellers`

## Request

- Base URL: `https://api.scrapeunblocker.com`
- URL: `https://api.scrapeunblocker.com/marketplace/amazon-bestsellers`
- Auth: API key in header `x-scrapeunblocker-key`

Returns an Amazon ranked list for a category on any regional marketplace: Best Sellers (default), New Releases, Movers & Shakers, Most Wished For or Gift Ideas (`list_type`). The response carries the `category` (`name`, `slug`, `nodeId`, `url`, `parents`, `subcategories` - each with a url you can pass back as `category`) and up to `max_results` ranked `items`: `rank`, `asin`, `title`, `url`, `image`, `price` + `currency`, `offersCount`, `rating`, `reviewsCount`, and on Movers & Shakers `salesRank`, `previousSalesRank` and `salesRankChangePct`.

Pass `category` as a department slug (`electronics`), slug plus browse-node id (`electronics/172541`) or a pasted Amazon list url; leave it empty for the all-departments root (department list, no items). A list holds up to 100 items over two pages of 50, and each page fetched is billed as one request. When Amazon has no list for a category it says so, and that text is returned in `message` with an empty `items` array. An item whose card Amazon did not load (it loads ranks 31-50 of each page lazily) comes back with only `rank`, `asin` and `url`; `itemsWithDetails` counts the complete ones.

`proxy_country` defaults to the marketplace's home country (amazon.com -> US) so prices are in the store's currency.

## Query parameters

- `category` string, nullable: Which category: a department slug ('electronics', 'books', 'toys-and-games'), a slug plus browse-node id ('electronics/172541' = Headphones), or any Amazon Best Sellers / New Releases / Movers & Shakers / Most Wished For / Gift Ideas url (its marketplace and list type are then used). Empty = the all-departments root, which returns the department list (`category.subcategories`) and no items.
- `list_type` string: Which ranked list: bestsellers, new_releases, movers_and_shakers, most_wished_for, gift_ideas. Ignored when `category` is a list url.
- `marketplace` string: Regional Amazon site. Ignored when `category` is a url. One of: amazon.com, amazon.co.uk, amazon.de, amazon.fr, amazon.it, amazon.es, amazon.nl, amazon.se, amazon.pl, amazon.com.be, amazon.com.tr, amazon.ca, amazon.com.mx, amazon.com.br, amazon.co.jp, amazon.in, amazon.ae, amazon.sa, amazon.sg, amazon.com.au.
- `max_results` integer: How many ranked items to return (1-100). Amazon lists hold up to 100 items, 50 per page; each page fetched is billed as one request. Amazon's page HTML carries full details for the first 30 of each page; the rest load while scrolling, so asking for them adds a browser render (slower, ~10-25 s).
- `proxy_country` string, nullable: Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Defaults to the marketplace's home country so prices come back in the store's currency.

## Response `200`

JSON with `category` and a ranked `items` array.

- unknown

## Other responses

- `400`: Invalid or unknown category, list type or marketplace.
- `422`: Validation Error
- `502`: Blocked by Amazon, no list page returned, or the call did not finish in time.

---

[API](https://skmtc.dev/scrapeunblocker/apis/scrapeunblocker-api.md) · [All operations](https://skmtc.dev/scrapeunblocker/apis/scrapeunblocker-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrapeunblocker/apis/scrapeunblocker-api/revisions/c02f1254cc47?raw)
