Amazon Bestsellers Scraper & API - Best Sellers, New Releases
Pricing
from $0.20 / 1,000 results
Amazon Bestsellers Scraper & API - Best Sellers, New Releases
Amazon Bestsellers scraper and API: top 100 Best Sellers or New Releases for any category on any Amazon marketplace (.com, .co.uk, .de). Input list URLs or category ids + subcategories. One row per ranked product: rank, ASIN, title, price, rating, reviews. $0.20 per 1,000, lowest paid on 6 Nov 2026.
Pricing
from $0.20 / 1,000 results
Rating
0.0
(0)
Developer
Giovanni Rich
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Security
Limited permissionsShare
Amazon Bestsellers scraper (Amazon Best Sellers scraper) for product research: give it any Best Sellers or New Releases page from amazon.com, amazon.co.uk, amazon.de, amazon.co.jp, amazon.in or another marketplace and get the full top 100 as clean JSON, CSV or Excel: rank, ASIN, title, price, star rating, number of ratings, image and product URL, plus the list name and category path. It works as an Amazon bestsellers scraper, an Amazon New Releases scraper and an unofficial Amazon Best Sellers API; turn on includeSubcategories to pull every subcategory's best sellers rank list in one run.
It reads the data Amazon already sends with the page over plain HTTP, with no headless browser and no login, so the 30-product prefill took 8 seconds in a cloud run, and a 100-product list costs $0.02 ($0.20 per 1,000). Amazon shows only 30 products per page until you scroll; this scraper fetches the other 20 too, so you get all 50 per page and all 100 per list.
What you get
- Rank and identity: rank (1-100), ASIN, product URL (
https://www.amazon.<tld>/dp/ASIN), the highest-resolution image Amazon serves on the list. - Price: numeric
priceand ISOcurrency(USD, GBP, EUR, JPY, INR, CAD, ...), plus the rawpriceTextexactly as shown ("$11.99", "20,46 €", "4 offers from $12.99"). - Reviews: star rating (0-5) and number of ratings.
- Context: list type (bestsellers / new-releases), list name ("Best Sellers in Electronics"), category id and node id, category path ("Any Department > Electronics"), list URL, marketplace, page number and
scrapedAttimestamp. - Clean and deduplicated: one row per product per list, ranks in order, no repeats across the two pages.
Sample output
Real rows from a run of Best Sellers in Electronics, amazon.com (from sample-output.json):
| rank | asin | title | priceText | rating | ratingsCount |
|---|---|---|---|---|---|
| 1 | B08JHCVHTY | blink plus plan with monthly auto-renewal | $11.99 | 4.4 | 280,900 |
| 31 | B0C3HCD34R | soundcore by Anker Q20i Hybrid Active Noise Cancelling Headphones ... | $37.97 | 4.5 | 37,924 |
| 51 | B09Z6Q2MLC | (2 Pack) Replacement Remote Control for Roku TV, for TCL Roku ... | $8.48 | 4.5 | 75,210 |
Use cases
- Product research and sourcing: what sells in a category right now, at which price points and rating levels, on each marketplace.
- Price and rank tracking: schedule a daily run per category and build rank histories by ASIN.
- New-product monitoring:
new-releaseslists show what just launched or is about to. - Competitive intelligence: see where your products and your competitors' rank, across countries, in one dataset.
- Datasets for AI agents: an agent can ask for "top 50 headphones on amazon.de" and get structured rows back through MCP.
Pricing
$0.20 per 1,000 products (pay per result; failed requests are never charged), the lowest per-product price of any paid Amazon Bestsellers scraper we found on 6 Nov 2026, with Apify platform usage and residential proxies included. Others that day: junglee $5.90, amazon-scraper $2.00 + $0.00005 per run, khadinakbar $5.00 + $0.00005 per run, santamaria-automations $1.00 + $0.001 per run, powerai $4.99 + $0.09 per run, cirkit $1.00, s-r $3.00 + $0.002 per run, lergassy $2.00, scrapeunblocker $0.50 + $0.00005 per run, fetch_cat $0.45 + $0.005 per run, thescrappa $0.375 + $0.00005 per run, deepmine rank tracker $0.35, topapi $0.31 (+ $1.00 per 1,000 with details), dami_studio $0.26 + $0.0007 per run. A few free-to-use actors with 1 user each exist; with those you pay the platform usage and proxies yourself.
| You scrape | You pay |
|---|---|
| 100 products | $0.02 |
| 1,000 products | $0.20 |
| 10,000 products | $2.00 |
| 100,000 products | $20.00 |
Plus a $0.00005 start fee per run. The Apify free plan's $5 monthly credit covers about 25,000 products. The prefilled input (Electronics top 30 on amazon.com) took 8 seconds in a cloud run and costs about $0.006. A full top 100 list costs $0.02.
Why this one
- Lowest price of any paid Amazon Bestsellers scraper we found on 6 Nov 2026: $0.20 per 1,000, against $5.90 (junglee), $2.00 + a start fee (amazon-scraper), $5.00 (khadinakbar), $1.00 + $0.001 per run (santamaria-automations), $0.45 + $0.005 per run (fetch_cat), $0.35 (deepmine rank tracker), $0.31 (topapi) and $0.26 + $0.0007 per run (dami_studio).
- Any marketplace: .com, .co.uk, .de, .fr, .it, .es, .ca, .co.jp, .in, .com.au and more, with residential proxies in the marketplace's country.
- Best Sellers or New Releases, by URL or by category id, and
includeSubcategoriesadds every child list in the same run. - Full top 100: both pages of 50, with rank, ASIN, price, rating, ratings count, image and category path.
- Residential proxies included in the price, no extra proxy events.
FAQ
Is it legal to scrape Amazon Best Sellers? It collects only publicly available product listing data, not personal data. You're responsible for using it in line with Amazon's terms of service and applicable law. This is not legal advice.
Does it need a login, cookies or a browser? No. Plain HTTPS requests only, which is why it's fast and cheap.
How many results can I get, and how fast? 100 products per list (all Amazon publishes, two pages of 50); the 30-product prefill took 8 seconds in a cloud run. For more, turn on subcategories: Electronics alone has about 18 direct subcategories, each with its own top 100. Movers & Shakers, Most Wished For and Most Gifted pages currently return no products.
Which marketplaces work?
Any amazon.* domain: .com, .co.uk, .de, .fr, .it, .es, .nl, .se, .pl, .be, .ca, .com.mx, .com.br, .com.au, .co.jp, .in, .sg, .ae, .sa, .eg, .com.tr, with prices parsed per locale.
Can I schedule it or use it via API, and what about proxies? Yes: Apify schedules (keep the datasets for rank history), the REST API, Make, Zapier, n8n and MCP. Residential proxies in the marketplace's country are the default and included in the price (about 0.5 MB per list page); blocked pages are retried on a fresh IP, up to 8 times.
Is there an official Amazon Best Sellers API? Not for the ranked lists. Amazon's Product Advertising API is for approved Associates and returns data for items you already name, and the Selling Partner API covers your own seller account. Neither returns the public top 100 Best Sellers or New Releases lists, which is what this actor reads.
How much does a typical run cost? One top 100 list: $0.02. A department with all its direct subcategories (Electronics, about 1,900 products): about $0.38. A daily tracker of 10 categories x 100 products: about $6.00 a month.
Example inputs for common jobs
Copy one into the JSON tab of the input and adjust.
Product research: the full top 100 of a department plus every direct subcategory (Electronics has about 18, so about 1,900 products, about $0.38):
{ "categoryIds": ["electronics"], "domain": "amazon.com", "maxItemsPerList": 100, "includeSubcategories": true }
New-product monitoring: the top New Releases in Beauty on amazon.co.uk (save as a task and schedule it daily):
{ "categoryIds": ["beauty"], "domain": "amazon.co.uk", "listType": "new-releases", "maxItemsPerList": 100 }
Compare one category across marketplaces in one run (prices are parsed per locale):
{ "categoryUrls": ["https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen/", "https://www.amazon.de/gp/bestsellers/kitchen/", "https://www.amazon.co.jp/gp/bestsellers/kitchen/"], "maxItemsPerList": 100 }
Daily rank tracker for one subcategory (department/node id from the list URL):
{ "categoryIds": ["electronics/172541"], "maxItemsPerList": 100 }
How to use
- Paste one or more Amazon list URLs (Best Sellers or New Releases pages, any marketplace), e.g.
https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/. Or enter Category IDs likeelectronicsorelectronics/172541with a domain and list type. - Set Max products per list (1-100). Turn on Also scrape subcategories to add each list's child categories (one level down).
- Click Start. Download the results as JSON, CSV, Excel or HTML from the Output tab, or pull them through the Apify API, Make, Zapier, n8n or an MCP client.
Input example
| Field | Default | Description |
|---|---|---|
categoryUrls | Electronics best sellers (.com) | Best Sellers or New Releases URLs, any marketplace. A plain category URL with node= is converted using listType. |
categoryIds | - | Alternative to URLs: electronics, books, electronics/172541 |
domain | amazon.com | Marketplace for categoryIds |
listType | bestsellers | bestsellers or new-releases, for categoryIds and plain category URLs |
maxItemsPerList | 100 | 1-100 (Amazon shows 100 per list, in two pages of 50) |
includeSubcategories | false | Also scrape each list's child categories (one level) |
maxSubcategories | 50 | Cap on added subcategory lists |
proxyConfiguration | Residential | Apify residential proxies in the marketplace's country (recommended) |
Example: Electronics and Books top 100 on amazon.com, plus New Releases in Electronics on amazon.de:
{"categoryUrls": ["https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/","https://www.amazon.com/Best-Sellers-Books/zgbs/books/","https://www.amazon.de/gp/new-releases/ce-de/"],"maxItemsPerList": 100}
Example: every Electronics subcategory on amazon.co.uk, top 50 each:
{"categoryIds": ["electronics"],"domain": "amazon.co.uk","listType": "bestsellers","maxItemsPerList": 50,"includeSubcategories": true}
Output example
One dataset item per ranked product. From a real run (Best Sellers in Electronics, amazon.com):
{"rank": 1,"asin": "B08JHCVHTY","title": "blink plus plan with monthly auto-renewal","price": 11.99,"priceText": "$11.99","currency": "USD","rating": 4.4,"ratingsCount": 280900,"imageUrl": "https://images-na.ssl-images-amazon.com/images/I/31YHGbJsldL._AC_UL900_SR900,600_.png","url": "https://www.amazon.com/dp/B08JHCVHTY","listType": "bestsellers","listName": "Best Sellers in Electronics","categoryId": "electronics","categoryNodeId": "electronics","categoryPath": "Any Department > Electronics","listUrl": "https://www.amazon.com/gp/bestsellers/electronics","marketplace": "amazon.com","page": 1,"scrapedAt": "2026-10-08T00:36:48.481Z"}
Fill rates on a 200-product test (amazon.com Best Sellers + amazon.de New Releases, Electronics): rank, ASIN, title, rating, ratings count, image, URL, list name and category path 100%; price 97% (the rest are items Amazon lists without a price, such as subscriptions or out-of-stock products).
API example
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("rel8ble/amazon-bestsellers-scraper").call(run_input={"categoryUrls": ["https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"], "maxItemsPerList": 100, "includeSubcategories": True, "maxSubcategories": 10})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["rank"], item["asin"], item["title"][:60], item.get("price"))
One HTTP call that runs the actor and returns the rows (curl):
curl -X POST "https://api.apify.com/v2/acts/rel8ble~amazon-bestsellers-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"categoryUrls": ["https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"], "maxItemsPerList": 100, "includeSubcategories": true, "maxSubcategories": 10}'
Integrations
- Make, Zapier and n8n: start runs and send new rankings to Sheets, Slack, Airtable or your database.
- Google Sheets: export the dataset straight into a spreadsheet, or refresh it on a schedule.
- Apify API: run the actor and fetch results over REST, or with the official JavaScript and Python clients.
- Webhooks: get notified when a run finishes and process the data right away.
- Schedules: run the same lists daily or hourly to track rank and price over time.
- MCP for AI agents: through the Apify MCP server (https://mcp.apify.com), Claude, ChatGPT, Cursor and other agents can call this Amazon Best Sellers API directly and read the results.
Limits (read before large runs)
- 100 products per list. That's all Amazon publishes (two pages of 50). To get more, use subcategories: Electronics alone has about 18 direct subcategories, each with its own top 100.
- Best Sellers and New Releases only. Amazon's Movers & Shakers, Most Wished For and Most Gifted pages render without a product grid at the moment; URLs of that kind are accepted but usually return no products, and the run summary says so.
- List prices are what Amazon shows on the list page: the default offer, in the marketplace's currency. Some items (subscriptions, out-of-stock products, some media) show no price and get
price: null. - Rankings change hourly. Two runs minutes apart can differ. Use
scrapedAtandrankto build time series. - Residential proxies are the default because Amazon blocks most datacenter IP ranges. Switching to datacenter proxies works but means more retries and occasional failed lists.
- No product details (bullet points, descriptions, variations, seller, BSR in other categories). This actor covers the ranked lists; pair it with a product-detail scraper when you need the full page.
How it works (for developers)
An Amazon list page embeds all 50 ASINs of the page with their ranks in a data-client-recs-list attribute and renders the first 30 product cards server-side. The remaining 20 cards come from a nextPage call to the same component endpoint the page's own script uses, sent with the page's x-amz-acp-params token on the same session. The scraper parses the cards with Cheerio, merges both halves, sorts by rank and reads the left-hand navigation for parent and child categories. Prices, ratings and counts are parsed per locale. Every field is read defensively: a malformed card just has fewer fields.
Run it locally:
npm installnpm test # parser tests on saved fixturesAPIFY_LOCAL_STORAGE_DIR=./storage node src/main.js # input in storage/key_value_stores/default/INPUT.json
Need a custom scraper or a ready dataset? Hire me on Fiverr: https://www.fiverr.com/rel8ble