Amazon Product Scraper - Best Sellers, ASIN, Prices, Ratings
Pricing
from $4.00 / 1,000 products
Amazon Product Scraper - Best Sellers, ASIN, Prices, Ratings
Amazon API alternative: search products by keyword, list a category or pull Best Sellers rankings on 24 marketplaces. Get ASIN, title, price and list price, rating and rating count, Prime and badges, bought-past-month volume. No login or cookies needed. Export to JSON, CSV or Excel.
Pricing
from $4.00 / 1,000 products
Rating
0.0
(0)
Developer
Silkline
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Amazon Product Scraper collects public product data from Amazon search results, category listings and Best Sellers rankings on 24 Amazon marketplaces, and returns it as clean, flat JSON. Every record has the ASIN, title, price and list price as numbers, rating and number of ratings, Prime, Amazon's Choice and best-seller flags, the "bought in past month" volume, delivery text and image. It is for sellers, product researchers, price monitors and data teams who want an Amazon API alternative with no Amazon account, API keys, proxies or cookies. Pricing is pay-per-event: $0.004 per product, plus a $0.017 start fee per run.
What data can you get?
One record per product. Search and category records use the same field names in every marketplace. Best Sellers records use a smaller set of 15 fields (see below the table). Fields that only make sense in one mode are noted.
| Field | What it contains |
|---|---|
asin | Amazon product ID (ASIN) |
url | Link to the product page |
title | Product title |
price | Price as a number in the marketplace currency |
priceText | Price exactly as Amazon shows it, with currency symbol |
originalPrice | Crossed-out list price as a number |
originalPriceText | Crossed-out list price as shown |
currency | Currency code of the prices |
rating | Average star rating out of 5 |
ratingCount | Number of ratings |
salesVolume | Lower bound of the "bought in past month" text, as a number (for example 10000 for "10K+") |
salesVolumeText | Bought-in-past-month text as shown, for example "10K+ bought in past month" |
isPrime | Eligible for Prime |
isAmazonChoice | Carries the Amazon's Choice badge |
isBestSeller | Carries the Best Seller badge |
isClimatePledgeFriendly | Carries the Climate Pledge Friendly label |
rank | Position in the Best Sellers ranking (bestSellers mode) |
rankChangeLabel | Rank movement label shown by Amazon, when there is one (bestSellers mode) |
category | Best Sellers category path the ranking belongs to (bestSellers mode) |
categoryName | Name of the Best Sellers category (bestSellers mode) |
categoryId | Category ID the product was listed under (category mode) |
searchKeyword | Search keyword the product was found with (search mode) |
offerCount | Number of offers (sellers) for the product |
lowestOfferPriceText | Lowest offer price as shown |
badge | Deal badge, such as "Limited time deal" |
couponText | Coupon or subscribe-and-save text |
unitCount | Number of units in the pack, when Amazon gives it |
unitPriceText | Price per unit as shown |
hasVariations | Has size, colour or other variations |
subtitle | Short line under the title (features or brand line), as Amazon shows it |
bookFormat | Format shown for books and media |
delivery | Delivery estimate text |
imageUrl | Main product image |
country | Marketplace country code |
domain | Amazon domain the data came from |
type | Record type: product or bestSeller |
Best Sellers records contain only these 15 fields: type, rank, asin, url, category, categoryName, title, priceText, price, rating, ratingCount, rankChangeLabel, imageUrl, country and domain. The other fields in the table (for example originalPrice, currency, isPrime, salesVolume, delivery, offerCount and badge) appear only in product records from search and category mode.
How the data is shaped
- Numbers you can use.
priceandoriginalPriceare numbers; the text as Amazon shows it is kept inpriceTextandoriginalPriceText.ratingis a number out of 5.salesVolumeis the lower bound of Amazon's rounded "bought in past month" text. - Flat fields, nothing nested. One record per product. Search and category records share the same field names in every marketplace, so you can merge those runs without remapping columns. Best Sellers records use the smaller set of 15 fields listed above.
- Two record types. Search and category runs return
"type": "product". Best Sellers runs return"type": "bestSeller"withrank,categoryandcategoryName, limited to the 15 fields listed above.
How to use Amazon Product Scraper
- Open the Actor in Apify Console.
- Choose a Mode: search products by keyword, products of a category, or a Best Sellers ranking.
- Choose the Marketplace (for example US for amazon.com, DE for amazon.de, JP for amazon.co.jp).
- Fill in the input for your mode: keywords or ASINs, category IDs, or Best Sellers category paths. In search mode you can add sort, condition, deals and Prime filters.
- Set Max results to the total number of products you want for the whole run.
- Click Start. When the run finishes, download the dataset as JSON, CSV or Excel, or read it through the Apify API.
The Actor also runs in seconds with an empty input: {} searches "wireless earbuds" on amazon.com.
Input
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
mode | string | Optional | search (products by keyword), category (products of a category) or bestSellers (Best Sellers ranking) | search |
country | string | Optional | Marketplace: US, GB, DE, FR, IT, ES, NL, SE, PL, BE, IE, TR, AE, SA, EG, ZA, IN, JP, SG, AU, CA, MX, BR, CN | US |
keywords | array of strings | Optional (search mode) | Search keywords or ASINs, searched one after the other until maxResults is reached | Falls back to wireless earbuds when empty |
categoryIds | array of strings | Required in category mode | Numeric Amazon category IDs (for example 172282 for Electronics), or category links that contain node=<ID> | none |
bestSellerCategories | array of strings | Optional (bestSellers mode) | Category paths as they appear in a Best Sellers link after /zgbs/ (for example electronics or electronics/172282), or the full link. A ranking holds up to 100 products | Falls back to electronics when empty |
sort | string | Optional (search and category modes) | relevance, priceLowToHigh, priceHighToLow, reviews (most reviews), newest, bestSellers (best selling). Best Sellers rankings are always in rank order | relevance |
condition | string | Optional (search mode) | all, new, used, renewed, collectible | all |
deals | string | Optional (search mode) | any (no filter), discounted (discounted products), todaysDeals (today's deals) | any |
primeOnly | boolean | Optional (search mode) | Only products eligible for Prime | false |
maxResults | integer | Optional | Maximum number of products for the whole run (1 to 5000). The run stops as soon as it is reached. You are charged per product returned | 20 |
Example: keyword search with filters
{"mode": "search","keywords": ["wireless earbuds", "laptop stand"],"country": "US","sort": "reviews","condition": "new","primeOnly": true,"maxResults": 100}
Example: products of a category
{"mode": "category","country": "US","categoryIds": ["172282"],"sort": "bestSellers","maxResults": 50}
Example: Best Sellers rankings
{"mode": "bestSellers","country": "US","bestSellerCategories": ["electronics", "electronics/172282"],"maxResults": 200}
Output example
The values below are illustrative.
Product record (search or category mode)
{"type": "product","asin": "B0EXAMPLE1","url": "https://www.amazon.com/dp/B0EXAMPLE1","searchKeyword": "wireless earbuds","title": "Wireless Earbuds, Bluetooth 5.3 Headphones with Charging Case, IPX7 Waterproof (White)","subtitle": null,"priceText": "$19.97","price": 19.97,"originalPriceText": "$39.99","originalPrice": 39.99,"currency": "USD","rating": 4.4,"ratingCount": 1250,"offerCount": 1,"lowestOfferPriceText": "$19.97","isBestSeller": false,"isAmazonChoice": false,"isPrime": true,"isClimatePledgeFriendly": false,"hasVariations": true,"badge": null,"couponText": null,"salesVolumeText": "500+ bought in past month","salesVolume": 500,"delivery": "FREE delivery Mon, Oct 19 on $35 of items shipped by Amazon","imageUrl": "https://m.media-amazon.com/images/I/example.jpg","country": "US","domain": "www.amazon.com"}
Best Sellers record (bestSellers mode)
Best Sellers records have "type": "bestSeller" and contain only these fields: rank, category, categoryName, asin, url, title, priceText, price, rating, ratingCount, rankChangeLabel, imageUrl, country and domain.
{"type": "bestSeller","rank": 1,"category": "electronics","categoryName": "Electronics","asin": "B0EXAMPLE2","url": "https://www.amazon.com/dp/B0EXAMPLE2","title": "Example Streaming Media Player with Voice Remote","priceText": "$29.99","price": 29.99,"rating": 4.7,"ratingCount": 54000,"rankChangeLabel": null,"imageUrl": "https://m.media-amazon.com/images/I/example2.jpg","country": "US","domain": "www.amazon.com"}
How much does it cost?
The Actor uses pay-per-event pricing. These are the charge events and their prices:
| Event | Price (USD) | When it is charged |
|---|---|---|
run-start | $0.017 | Once per run, charged when the first request to the data source succeeds, even if that request returns nothing. It is not charged when the data source fails from the start or rejects the IDs, or when your spending limit cannot cover it. When you give several keywords, categories or rankings, each one after the first pays one more start fee, but only if the run actually reaches it. That extra fee is charged before that input's first request and is kept even if that input then fails or returns nothing. |
result | $0.004 | For each product returned |
Worked examples:
- 100 products from one keyword: $0.017 + 100 x $0.004 = $0.417.
- A full Best Sellers ranking (100 products) for one category: $0.017 + 100 x $0.004 = $0.417.
- 100 products in total from two keywords, where the first keyword runs out after 40 products and the other 60 come from the second: 2 x $0.017 + 100 x $0.004 = $0.434. If the first keyword alone fills all 100 products, the second keyword is never searched, no second start fee is charged, and the cost stays $0.417.
You never pay for more than maxResults items, you are never charged for items that were not delivered, and the run stops by itself if your spending limit is reached.
On the free Apify plan, a run returns at most 10 results in total; any paid Apify plan removes the limit. On the free Apify plan each account can run this Actor up to 3 times per 24 hours and 10 times per 7 days, within a small lifetime free allowance shared across all our Actors, and all free accounts share a daily free budget. When any of these limits is reached, the run stops before fetching anything and nothing is charged.
Use cases
- Product research and selection: see what sells in a niche, at what price, with how many ratings and how many bought in the past month.
- Price and promotion monitoring: compare list price against current price, and track deals, coupons and Prime eligibility.
- Best Sellers tracking: pull the top 100 of any category by marketplace, and run it on a schedule to see which products move up or down.
- Market comparison: run the same keyword on amazon.com, amazon.de and amazon.co.jp and compare prices, ratings and badges.
- Competitor and ASIN watch lists: search ASINs to check their current price, rating and Amazon's Choice or Best Seller badges.
- AI and data projects: use clean, flat product records for catalogs, price models and recommendations.
Integrations and API
You can start runs from your own code with the Apify API, schedule runs (for example a daily Best Sellers snapshot), and connect the dataset to Apify integrations and webhooks so new results flow into your other tools. Results can be read from the API as JSON, CSV or Excel.
Example with the Python apify-client package:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("clover_folktale/amazon-scraper").call(run_input={"mode": "search","keywords": ["wireless earbuds", "laptop stand"],"country": "US","sort": "reviews","condition": "new","primeOnly": True,"maxResults": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Tips and limits
- Page sizes. A search page holds about 16 products, a category page about 24, and a Best Sellers page 50. A ranking has two pages, so 100 products. Large runs make many requests; expect roughly 2-5 seconds per page. Different pages of one search do not overlap.
- Fewer results than requested. A listing ends when a page comes back thin or empty, so you may get fewer products than
maxResultsfor narrow searches. - Searches that find nothing. A search that finds nothing is skipped. If too many inputs return nothing, the run stops to protect your budget.
- Stable runs. The Actor retries transient errors on its own, stops cleanly instead of failing half-way, and never charges for items it did not deliver.
- Price parsing.
priceis read from the price text of the marketplace (for example239,00 €becomes 239.0).salesVolumeis the lower bound of Amazon's rounded text. - Currency and timing. Prices are in each marketplace's own currency and are what Amazon shows at the time of the run.
- Unknown category IDs. A category ID that Amazon does not know can return unrelated products instead of nothing; check the first results.
- Which fields are often empty:
salesVolumeandsalesVolumeTextare empty for products without a recent sales figure;originalPriceis empty when the product is not discounted;subtitle,badge,couponText,unitCount,unitPriceTextandbookFormatare empty for most products;priceis empty for products Amazon shows only as "see price in cart" or "click to see price";rankChangeLabelis almost always empty. - Free plan. On the free Apify plan a run returns at most 10 results in total; any paid Apify plan removes the limit.
- Feedback. Missing a field or a filter? Open an issue from the Actor page and it will be looked at.
FAQ
Do I need an Amazon account, API key or cookies?
No. You do not need an Amazon account, API keys, proxies or cookies. You only need an Apify account to run the Actor.
Is it legal to scrape Amazon?
The Actor returns only public listing data: what anyone sees on an Amazon search, category or Best Sellers page. It returns no account data and no buyer data, and no private data such as phone numbers or messages. You are responsible for how you use the data and for following the laws and terms that apply to you.
How fresh is the data?
Each run reads Amazon at the time of the run. Prices, ratings, badges and rankings are what Amazon shows at that moment.
Why are some fields empty?
Amazon does not show every field for every product. For example, originalPrice is only there for discounted products and salesVolume only for products with a recent sales figure. See "Which fields are often empty" in Tips and limits.
How many results can I get?
Up to 5000 products per run, set with maxResults. A Best Sellers ranking holds up to 100 products. Narrow searches can return fewer products. On the free Apify plan a run returns at most 10 results.
Does it scrape review text?
No. Each product record has the average rating and the ratingCount, but not the text of individual reviews.
Which marketplaces are supported?
24: US, GB, DE, FR, IT, ES, NL, SE, PL, BE, IE, TR, AE, SA, EG, ZA, IN, JP, SG, AU, CA, MX, BR and CN.
Can I schedule runs and export the data?
Yes. You can schedule runs in Apify, start them through the API, and export every dataset as JSON, CSV or Excel.