Amazon Product Details Scraper (Bestsellers & New Releases)
Pricing
from $2.99 / 1,000 results
Amazon Product Details Scraper (Bestsellers & New Releases)
Amazon Product Details Scraper extracts detailed data for bestsellers and new releases, including titles, prices, ASINs, ratings, reviews, rankings, images, availability, sellers, and product URLs. Ideal for product research, market analysis, competitor tracking, and e-commerce intelligence.
Pricing
from $2.99 / 1,000 results
Rating
0.0
(0)
Developer
SimpleAPI
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
0
Monthly active users
18 hours ago
Last modified
Categories
Share
Amazon Bestsellers Scraper โ Ranked Products, Prices and Reviews
Amazon Product Details Scraper (Bestsellers & New Releases) turns an Amazon Best Sellers, New Releases or Most Wished For list into a full product record for every ranked item โ no ASIN list required. It reads asin, title, manufacturer, price, buyBoxPresent, productRating, countReview, soldBy, warehouseAvailability, bestsellerRanks and the rank each item held on the source list. Procurement teams, category managers and pricing analysts use it to turn a ranking into a structured catalogue snapshot in one run. Point it at a list address or a category, and it does the rest.
๐งญ What is Amazon Product Details Scraper (Bestsellers & New Releases)?
It is an Apify Actor that expands an Amazon ranked-list page into ASINs and then collects a full product-detail record for each one, joined back to the rank it held. No Amazon account, Associates membership, or API key is required โ it reads the public list and product pages directly. Results are written to an Apify dataset as structured JSON rows, one per product (or one per ranked card, in ranked-cards-only mode).
- List discovery by address or by list-type + category โ paste a ranked-list URL, or supply
listTypes(Best Sellers / New Releases / Most Wished For) pluscategoryNodes(category slugs or numeric browse-node ids) and the Actor builds the list address itself. - Identifying and pricing fields on every row โ
asin,title,manufacturer,price,buyBoxPresent,priceSource,retailPrice. - Reviews and rating as a secondary data type โ
productRating,countReview, and an embeddedreviewsarray per product. - 22 Amazon marketplaces, with region and language control โ
marketplaceDomain,exitCountry,pageLanguage. - Real pre-collection filters โ
topRanksOnly,minCardRating,maxCardPrice,maxProductsPerList,skipDuplicateAsinsโ so items that don't qualify never reach the product-detail fetch. - Results downloadable as JSON, CSV or Excel from the run's Apify dataset, or read through the Apify API.
๐ What data can I extract with Amazon Product Details Scraper?
Every row carries where the product was found (its rank, list and category) alongside the product record itself. Field names below are exactly as pushed to the dataset โ read from src/main.py.
Row identity and provenance (present on every row)
| Field | Example Value | Use Case |
|---|---|---|
type | "product" or "list_item" | Tells you which row shape you're reading โ full product record, or ranked-card only |
isChild | false | Always false in the current release โ variant ASINs are listed under variations, not pushed as their own rows |
asin | "B07GBZ4Q68" | Amazon's product identifier |
url | "https://www.amazon.com/dp/B07GBZ4Q68" | The product page that was read |
amazonDomain | "amazon.com" | Marketplace the row was collected from |
language | "en-US" or null | Content language requested, if any |
proxyCountry | "US" | Resolved marketplace region used for the connection |
scrapedAt | "2026-08-15T10:04:22Z" | Collection timestamp, ISO 8601 UTC |
success | true | false on a failed product-page fetch โ see the note below |
Ranked-list provenance (null/empty for direct ASIN input)
| Field | Example Value | Use Case |
|---|---|---|
sourceList | "best-sellers", "new-releases", "most-wished-for", "direct-input" | Which list family the item came from |
listRank | 7 | Rank held on that list, rebuilt from the item's DOM position |
listRankBadge | 7 | The rank number printed on the list itself, kept as a cross-check |
listCategory | "Electronics" | Category the ranked list belongs to |
listPage | 1 | Which ranked-list view (1โ10) the item was found on |
listUrl | "https://www.amazon.com/gp/bestsellers/electronics/" | The exact list address read |
listItemsFound | 28 | How many ranked positions were readable on that view |
listItemsAdvertised | 50 | How many ranked positions the view advertises (typically only ~30 render) |
listAppearances | [{"sourceList":"best-sellers","listRank":7,"listCategory":"Electronics","listPage":1,"listUrl":"..."}] | Every rank/list this ASIN held, when skipDuplicateAsins collapses repeats to one row |
cardTitle | "Wireless Earbuds, Bluetooth 5.3" | Title as printed on the ranked-list tile |
cardPrice | 29.99 | Price as printed on the ranked-list tile |
cardRating | 4.6 | Star rating as printed on the tile |
cardReviewCount | 18342 | Rating count as printed on the tile |
cardImageUrl | "https://m.media-amazon.com/images/..." | Tile thumbnail |
Product record โ pricing and availability (present on type: "product" rows; only a subset is present when the product-page fetch failed โ see below)
| Field | Example Value | Use Case |
|---|---|---|
title | "Wireless Earbuds, Bluetooth 5.3, 40H Playtime" | Full product title |
manufacturer | "SoundCore" | Brand |
price | 27.99 | Current buy-box price |
buyBoxPresent | true | Whether a buy-box price actually rendered |
priceSource | "buy-box" or "unavailable" | Where price came from; never a substituted/neighbouring value |
retailPrice | 39.99 | List/strikethrough price, when shown |
priceSaving | 12.00 | retailPrice - price, when both are known |
soldBy | "Anker Direct" | Merchant of record |
sellerId | "A1B2C3D4E5" | Amazon seller id, when a seller link is present |
fulfilledBy | "Amazon.com" | Fulfillment party |
warehouseAvailability | "In Stock." | Availability text as Amazon prints it |
priceShippingInformation | "FREE delivery Tue, Aug 19" | Delivery estimate text |
deliveryMessage | "FREE delivery Tue, Aug 19" | Same delivery text, duplicated under a second key |
pastSales | "1K+ bought in past month" | Social-proof text, when the page shows it |
Product record โ descriptive and catalogue data
| Field | Example Value | Use Case |
|---|---|---|
productRating | "4.6 out of 5 stars" | Average rating text |
countReview | 18342 | Total rating count |
attributeCount | 24 | Number of merged spec/attribute rows |
bestsellerRanks | [{"rank":3,"category":"Earbud Headphones"}] | Every "Best Sellers Rank" line on the product page |
features | ["Bluetooth 5.3 with a stable, low-latency connection", "..."] | Feature-bullet list |
aboutProduct | [{"name":"Brand","value":"SoundCore"}] | Rows from the "Product overview" table |
productDescription | "Experience crystal-clear sound..." | Long-form description text |
productDetails | [{"name":"Item model number","value":"A3939011"}] | Every merged spec/detail-bullet row |
productSpecification | [{"name":"Item model number","value":"A3939011"}] | Only the rows that came from the structured spec table (subset of productDetails) |
categoriesExtended | [{"name":"Electronics","url":"https://www.amazon.com/...","node":"172282"}] | Full breadcrumb trail with browse-node ids |
importantInformation | ["This item cannot be shipped to..."] | Warnings / safety notices, when present |
Product record โ media and variants
| Field | Example Value | Use Case |
|---|---|---|
imageUrlList | ["https://m.media-amazon.com/images/...jpg"] | All gallery image URLs found |
mainImage | {"imageUrl":"...","imageWidth":1500,"imageHeight":1500,"imageResolution":"1500 x 1500"} | The highest-resolution main image, from the page's own dynamic-image data |
videoeUrlList | ["https://.../video.mp4"] | Product video URLs (field name carries this spelling in the actual output) |
variations | [{"asin":"B07GBZ4Q69","labels":["Black"],"dimensions":["Color"],"dpUrl":"/dp/B07GBZ4Q69"}] | Sibling ASINs (colour/size variants), not collected as their own rows |
bookVariations | [{"format":"Hardcover","price":24.99,"asin":"B0...","url":"/dp/B0..."}] | Edition/format options, for book-type listings |
Reviews (embedded array, capped โ see the FAQ below)
| Field | Example Value | Use Case |
|---|---|---|
reviews | [{...}] | Up to 10 reviews, each with the fields below |
reviews[].text | "Great sound for the price." | Review body |
reviews[].title | "Solid earbuds" | Review headline |
reviews[].rating | "5.0 out of 5 stars" | Star rating text |
reviews[].date | "Reviewed in the United States on August 3, 2026" | Raw date string |
reviews[].userName | "J. Carter" | Reviewer display name |
reviews[].verifiedPurchase | true | Verified-purchase badge |
reviews[].helpfulVotes | 12 | Helpful-vote count |
reviews[].reviewId | "R1A2B3C4D5" | Review id |
reviews[].url | "/gp/customer-reviews/R1A2B3C4D5" | Direct link to the review |
reviews[].reviewCountry | "the United States" | Country parsed from the date line |
reviews[].imageUrlList | ["https://.../review-img.jpg"] | Reviewer-attached images |
reviews[].variationList | ["Color: Black"] | Variant the review was left against |
reviews[].profilePath | "/gp/profile/amzn1.account...." | Reviewer profile link |
reviewsAvailableOnPage | 142 | Total review nodes visible on the page (independent of the cap) |
reviewsReturned | 10 | How many were actually included on this row |
Status fields
| Field | Example Value | Use Case |
|---|---|---|
statusCode | 200, 404, or 502 | 404 = page not found; 502 = page could not be read after retries |
statusMessage | "FOUND", "PARTIAL", "NOT_FOUND", "UNAVAILABLE" | PARTIAL means the page rendered without the main title element |
โ ๏ธ On a failed product-page fetch, the row only carries statusCode, statusMessage, title (null), price (null), buyBoxPresent (false), priceSource ("unavailable") plus the identity/provenance fields above โ the rest of the product fields (manufacturer, reviews, productDetails, images, etc.) are omitted from the row entirely, not returned as null. Filter on success to separate complete records from failed fetches.
๐ฒ Pricing and availability signals
price, buyBoxPresent and priceSource are the fields worth trusting first: price is read only from the product's own buy-box scope, and when no buy-box renders the row reports price: null, buyBoxPresent: false, priceSource: "unavailable" rather than picking up a neighbouring number. A pricing analyst combines price, retailPrice and priceSaving to build a discount table across a category ranking, and warehouseAvailability plus soldBy/fulfilledBy to see whether the lowest price is Amazon-fulfilled or a third-party offer.
๐ฏ Targeting and filter fields
sourceList, listCategory and listRank are what you segment on after the fact โ group rows by category, or slice the top 10 vs. the rest of a ranking. bestsellerRanks and categoriesExtended carry the product's own category placement, useful for cross-checking against the list it was collected from. On the input side, topRanksOnly, minCardRating and maxCardPrice narrow the ranked cards before any product page is fetched, so a filtered run doesn't spend a fetch on an item you were going to drop anyway.
๐ How does this scraper differ from the official Amazon API?
Amazon's Product Advertising API (PA-API 5.0) has been retired and folded into the Creators API, Amazon's current official catalog API โ confirmed on Amazon's own developer documentation, checked 2026-08-15. To use it at all, you must already be enrolled in the Amazon Associates program and have at least 10 qualifying sales in the trailing 30 days on that marketplace (source: Amazon Creators API eligibility docs, affiliate-program.amazon.com/creatorsapi/docs, checked 2026-08-15) โ access can pause again if sales drop below that bar. This Actor needs neither.
| Feature | Amazon Creators API (official) | This scraper |
|---|---|---|
| Access requirement | Approved Associates account + 10 qualifying sales in the trailing 30 days (checked 2026-08-15) | An Apify account; no Amazon account needed |
| Ranked bestseller / new-release list | No dedicated ranked-list browsing endpoint in the current docs; per-item sales rank only | Reads the public Best Sellers / New Releases / Most Wished For pages directly, rank included per item |
| Category โ many products in one call | Per-item lookup and search, not list browsing | listTypes + categoryNodes expands a whole ranked list to products in one run |
| Review data | Not returned by the catalog endpoints | Up to 10 reviews embedded per product row |
| Filtering before collection | Not applicable | topRanksOnly, minCardRating, maxCardPrice qualify items before the detail fetch |
| Setup time | Program enrollment, approval, ongoing sales requirement | Add Actor input and run |
Why does Amazon gate its own catalog API behind an Associates sales quota?
The Creators API restricts access to active Amazon affiliates with a live sales record, not to developers who simply want catalog data (checked on Amazon's own eligibility docs, 2026-08-15). That is workable for an affiliate site already driving Amazon sales, but it blocks anyone who wants a one-off or periodic ranked-list snapshot without first building an Associates sales history. This scraper reads the same list and product pages a shopper's browser would, so it has no sales-quota or approval step to satisfy.
Use the Creators API when you are already an approved Associate publishing affiliate links and want first-party sales-tracked links. Use this scraper when you need structured ranked-list and product data without an Associates account, or faster than a new affiliate account can qualify for API access.
๐ก How to use data extracted from Amazon
๐ Category managers and pricing analysts
Set listTypes: ["best-sellers"] with categoryNodes for the categories you track, maxProductsPerList to cap the pull, and minCardRating/maxCardPrice to focus on the segment that matters. The run returns listRank, price, retailPrice, manufacturer and bestsellerRanks for every qualifying item, ready to load into a spreadsheet or BI tool for a dated category snapshot.
๐ข Agencies tracking client and competitor rankings
Point the same list at a client's category on a schedule (Apify Schedules), and compare listRank and price run over run. listItemsFound vs. listItemsAdvertised on every row tells you how much of the ranking was actually readable that run, so a rank change isn't confused with a partial read.
๐ Market research and assortment analysis
Run Best Sellers and Most Wished For against the same category and compare what ranks in each โ sourceList on every row tells you which list it came from. Combine manufacturer, price and attributeCount across a category to see brand concentration and spec density at the top of a ranking.
๐ค AI agents and automated pipelines
An agent framework can call this Actor as a tool, pass in a category or ASIN list, and read back structured price, productRating and productDetails fields to answer product-research questions without parsing HTML itself โ no Amazon credentials required on the agent's side.
๐ผ Input sample
Every field is optional โ supply at least one ranked list (listUrls, or listTypes + categoryNodes) or one entry in asins.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
listUrls | No | array | Amazon Best Sellers, New Releases or Most Wished For list addresses. | ["https://www.amazon.com/gp/bestsellers/electronics/"] |
listTypes | No | array | One or more ranked-list families (best-sellers, new-releases, most-wished-for), combined with categoryNodes below. | ["best-sellers", "new-releases"] |
categoryNodes | No | array | Category slugs as they appear in a list address (electronics, kitchen, books) or numeric Amazon browse-node ids (172282, 11036491). | ["electronics"] |
listPagesToScan | No | integer (min 1, max 10) | How many ranked-list views to read per list. Each adds up to 30 further ranked positions. Default 1. | 2 |
maxProductsPerList | No | integer (min 0) | Stop after this many qualifying products per list. 0 keeps every qualifying item. Default 3. | 10 |
topRanksOnly | No | integer (min 0) | Ignore any item whose rank is higher than this number. 0 keeps every rank. Default 0. | 20 |
minCardRating | No | string enum: "" (Any rating), "3.0", "3.5", "4.0", "4.2", "4.5", "4.7", "4.8" | Keep only items whose star rating on the ranked list clears this bar. Default "". | "4.5" |
maxCardPrice | No | integer (min 0) | Keep only items priced at or below this amount on the ranked list, in the marketplace currency. 0 keeps every price. Default 0. | 50 |
skipDuplicateAsins | No | boolean | When two lists rank the same product, collect it once. Every rank it held is still reported in listAppearances. Default true. | true |
listOnly | No | boolean | Return the ranked cards (rank, title, price, rating, image) without collecting the full product record for each one. Default false. | false |
asins | No | array | One or more product ASINs or product addresses. Each one becomes a product record. | ["B07GBZ4Q68"] |
marketplaceDomain | No | string enum (22 marketplaces, e.g. "amazon.com", "amazon.co.uk", "amazon.de" โฆ) | The Amazon marketplace to read. Default "amazon.com". | "amazon.com" |
amazonDomain | No | string | Legacy key for the same setting as marketplaceDomain; a value here other than "amazon.com" takes precedence. Default "amazon.com". | "amazon.com" |
pageLanguage | No | string enum: "" (Marketplace default), "en-US", "en-GB", "de-DE", "fr-FR", "es-ES", "it-IT", "ja-JP", "zh-CN", "nl-NL", "pt-BR", "sv-SE", "pl-PL", "tr-TR", "ar-AE" | Request localized content. Empty uses the marketplace default. | "en-US" |
language | No | string enum: "", "en-US", "en-GB", "de-DE", "fr-FR", "es-ES", "it-IT", "ja-JP", "zh-CN" | Legacy key for the same setting as pageLanguage; a value here takes precedence. Default "". | "" |
exitCountry | No | string enum (23 values incl. "AUTO", e.g. "US", "GB", "DE" โฆ) | Read the marketplace as a shopper in this country. Prefill "US". | "US" |
proxyCountry | No | string enum: "AUTO", "US", "GB", "DE", "FR", "ES", "IT", "CA", "AU", "JP" | Legacy key for the same setting as exitCountry; a value other than "AUTO" takes precedence. Default "AUTO". | "AUTO" |
proxyConfiguration | No | object | Network settings for the run. Default {"useApifyProxy": true} is recommended so the marketplace region stays consistent with the country above. | {"useApifyProxy": true} |
{"listTypes": ["best-sellers", "new-releases"],"categoryNodes": ["electronics"],"listPagesToScan": 1,"maxProductsPerList": 10,"minCardRating": "4.5","skipDuplicateAsins": true,"marketplaceDomain": "amazon.com","exitCountry": "US","proxyConfiguration": { "useApifyProxy": true }}
โ ๏ธ Common pitfall: listUrls only accepts addresses that match a supported ranked-list pattern (/gp/bestsellers, /zgbs, /gp/new-releases, /gp/most-wished-for). Paste a category browse page or a product page in there by mistake, and it is silently skipped with a log warning โ not a hard input error โ so a run can finish with fewer results than expected without failing.
๐ฝ Output sample
One row per product by default; one row per ranked card when listOnly is true. Results are structured JSON, downloadable as JSON, CSV or Excel from the run's dataset, or read row-by-row through the Apify API.
Default mode โ type: "product"
{"sourceList": "best-sellers","listRank": 7,"listRankBadge": 7,"listCategory": "Electronics","listPage": 1,"listUrl": "https://www.amazon.com/gp/bestsellers/electronics/","listItemsFound": 28,"listItemsAdvertised": 50,"listAppearances": [{ "sourceList": "best-sellers", "listRank": 7, "listCategory": "Electronics", "listPage": 1, "listUrl": "https://www.amazon.com/gp/bestsellers/electronics/" }],"cardTitle": "Wireless Earbuds, Bluetooth 5.3, 40H Playtime","cardPrice": 29.99,"cardRating": 4.6,"cardReviewCount": 18342,"cardImageUrl": "https://m.media-amazon.com/images/I/example._AC_UL320_.jpg","statusCode": 200,"statusMessage": "FOUND","url": "https://www.amazon.com/dp/B07GBZ4Q68","asin": "B07GBZ4Q68","title": "Wireless Earbuds, Bluetooth 5.3, 40H Playtime, IPX7 Waterproof","manufacturer": "SoundCore","productRating": "4.6 out of 5 stars","countReview": 18342,"price": 27.99,"buyBoxPresent": true,"priceSource": "buy-box","retailPrice": 39.99,"priceSaving": 12.00,"soldBy": "Anker Direct","sellerId": "A1B2C3D4E5","fulfilledBy": "Amazon.com","warehouseAvailability": "In Stock.","priceShippingInformation": "FREE delivery Tue, Aug 19","deliveryMessage": "FREE delivery Tue, Aug 19","bestsellerRanks": [{ "rank": 3, "category": "Earbud Headphones" }],"features": ["Bluetooth 5.3 with a stable, low-latency connection", "40 hours total playtime with the charging case"],"aboutProduct": [{ "name": "Brand", "value": "SoundCore" }],"productDescription": "Experience crystal-clear sound with SoundCore's latest earbuds...","productDetails": [{ "name": "Item model number", "value": "A3939011" }],"productSpecification": [{ "name": "Item model number", "value": "A3939011" }],"attributeCount": 24,"categoriesExtended": [{ "name": "Electronics", "url": "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics", "node": "172282" }],"imageUrlList": ["https://m.media-amazon.com/images/I/example._AC_SL1500_.jpg"],"mainImage": { "imageUrl": "https://m.media-amazon.com/images/I/example._AC_SL1500_.jpg", "imageWidth": 1500, "imageHeight": 1500, "imageResolution": "1500 x 1500" },"videoeUrlList": [],"variations": [{ "asin": "B07GBZ4Q69", "labels": ["Black"], "dimensions": ["Color"], "dpUrl": "/dp/B07GBZ4Q69" }],"bookVariations": [],"reviews": [{"text": "Great sound for the price.","date": "Reviewed in the United States on August 3, 2026","rating": "5.0 out of 5 stars","title": "Solid earbuds","userName": "J. Carter","url": "/gp/customer-reviews/R1A2B3C4D5","imageUrlList": [],"variationList": ["Color: Black"],"reviewId": "R1A2B3C4D5","reviewCountry": "the United States","verifiedPurchase": true,"helpfulVotes": 12,"profilePath": "/gp/profile/amzn1.account.example"}],"reviewsAvailableOnPage": 142,"reviewsReturned": 10,"importantInformation": [],"pastSales": "1K+ bought in past month","type": "product","isChild": false,"amazonDomain": "amazon.com","language": null,"proxyCountry": "US","scrapedAt": "2026-08-15T10:04:22Z","success": true}
Ranked-cards-only mode โ listOnly: true, type: "list_item"
{"sourceList": "best-sellers","listRank": 7,"listRankBadge": 7,"listCategory": "Electronics","listPage": 1,"listUrl": "https://www.amazon.com/gp/bestsellers/electronics/","listItemsFound": 28,"listItemsAdvertised": 50,"listAppearances": [],"cardTitle": "Wireless Earbuds, Bluetooth 5.3, 40H Playtime","cardPrice": 29.99,"cardRating": 4.6,"cardReviewCount": 18342,"cardImageUrl": "https://m.media-amazon.com/images/I/example._AC_UL320_.jpg","type": "list_item","isChild": false,"asin": "B07GBZ4Q68","url": "https://www.amazon.com/dp/B07GBZ4Q68","title": "Wireless Earbuds, Bluetooth 5.3, 40H Playtime","amazonDomain": "amazon.com","language": null,"proxyCountry": "US","scrapedAt": "2026-08-15T10:04:22Z","success": true}
๐ฏ How do you filter and target specific products?
This Actor is built for precision before collection: the ranked-list card already carries rank, title, price and rating, so unwanted items are dropped before a product page is ever fetched.
- List address vs. list-type + category. Paste
listUrlsdirectly when you already have the exact list address, including any page you want to start from. UselistTypes+categoryNodeswhen you want the Actor to build the address โ this also lets you fan out one run across several categories or several list families at once. - Scope depth.
listPagesToScan(1โ10) controls how many ranked-list views are read per list; each view adds up to 30 further ranked positions.topRanksOnlythen trims the result to the leaders you actually want, regardless of how deep you scanned. - Quality thresholds.
minCardRatingdrops items below a star-rating bar (items with no rating are dropped once a bar is set);maxCardPricedrops items above a price ceiling, both read from the ranked-list card, not the product page. - Volume control.
maxProductsPerListcaps how many qualifying items are kept per list, andskipDuplicateAsinscollapses a product that ranks on more than one list into a single row (with every rank it held preserved inlistAppearances).
{ "listTypes": ["best-sellers"], "categoryNodes": ["electronics"], "topRanksOnly": 10 }
{ "listUrls": ["https://www.amazon.com/gp/new-releases/kitchen/"], "minCardRating": "4.5", "maxCardPrice": 40 }
{ "listTypes": ["best-sellers", "most-wished-for"], "categoryNodes": ["electronics"], "skipDuplicateAsins": true, "maxProductsPerList": 15 }
๐ Want to try other Amazon scrapers?
| Scraper | What it extracts |
|---|---|
| Amazon Search Scraper By Country & Currency | Amazon search results across marketplaces, priced in local currency |
| Amazon Price Tracker โ Title, Image & Product Updates | Price, title and image change tracking for a fixed list of ASINs |
| Amazon DE Sellers Leads Scraper โ Product Price & Ratings | Seller and product-price leads on the amazon.de marketplace |
| eBay Product Listing Scraper With Sold Price Data | eBay listings with sold-price history |
| Walmart Reviews Scraper With Seller & Variant Details | Walmart product reviews with seller and variant detail |
| Shopify Products Scraper With Variant & SKU Rows | Shopify storefront catalogues, one row per variant/SKU |
๐ป How to extract Amazon data programmatically
This Actor runs as a standard Apify Actor: one API call starts the run, and structured JSON comes back from the dataset โ no scraping code of your own to maintain.
Python example
from apify_client import ApifyClientclient = ApifyClient("<APIFY_API_TOKEN>")run = client.actor("<your-username>/amazon-product-details-scraper-bestsellers-and-new-releases").call(run_input={"listTypes": ["best-sellers"],"categoryNodes": ["electronics"],"minCardRating": "4.5","maxProductsPerList": 20,"marketplaceDomain": "amazon.com",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["asin"], item["title"], item["price"])
Export to spreadsheets or CRM
From the Apify Console, export a run's dataset as CSV or Excel and map columns directly: asin โ SKU, title โ Product Name, manufacturer โ Brand, price โ Price, productRating โ Rating, listRank โ Rank. Import the file into Sheets, Excel, or your CRM's bulk-import tool.
โ๏ธ Is it legal to scrape Amazon?
Scraping publicly visible Amazon product and ranked-list pages โ the kind of data any shopper's browser can already load โ is generally lawful; Best Sellers, New Releases and product pages are published precisely to be browsed and compared. This is business and catalogue data (prices, ranks, product attributes), so database-rights and Amazon's own Conditions of Use are the relevant framing, not GDPR, which governs personal data rather than product listings.
One caveat: the embedded reviews array carries reviewer display names (reviews[].userName) and profile links (reviews[].profilePath) โ public review-author handles, which are a form of personal data if stored and processed in bulk. Consult legal counsel for commercial applications involving bulk storage of personal data.
โ FAQ
How does the scraper handle a delisted or out-of-stock product?
There is no dedicated "delisted" flag. A removed ASIN typically returns statusCode: 404 and statusMessage: "NOT_FOUND"; an in-stock-page-but-no-current-offer product returns buyBoxPresent: false and priceSource: "unavailable" instead of a stale price. Check warehouseAvailability for the marketplace's own availability text on a live page.
Can I get reviews along with the product records?
Yes โ every type: "product" row carries an embedded reviews array, capped at 10 reviews per product (this cap is fixed in the code, not an input parameter). reviewsAvailableOnPage reports how many review nodes were actually visible on the page, and reviewsReturned reports how many made it onto the row (at most 10).
How accurate is the price and availability data?
The Actor returns whatever the buy box shows at request time โ price is read only from the product's own buy-box scope, never substituted from a neighbouring item. When no buy box renders, the row reports price: null, buyBoxPresent: false, priceSource: "unavailable" rather than a guessed number. Because Amazon prices change continuously, treat any pull as a dated snapshot and re-run for current pricing.
How many records can I get per run?
There is no single total-records cap. Volume is a function of how many lists/categories you supply, listPagesToScan (capped at 1โ10 views per list, each adding up to 30 further ranked positions), and maxProductsPerList (0 = keep every qualifying item on that list).
How do the pre-collection filters work?
topRanksOnly, minCardRating and maxCardPrice are evaluated against the ranked-list card before any product page is fetched โ so a run that only wants the top 10, above 4.5 stars, under $50, never spends a product-page fetch on an item outside those bounds.
Does this scraper work with Claude, ChatGPT, and AI agent frameworks?
There is no separate MCP server for this Actor. It is callable as a standard Apify API endpoint from any agent framework or HTTP client โ including Claude, ChatGPT, or a custom LangChain/LlamaIndex tool โ using the Apify API or apify-client SDK shown above.
What should I check when comparing Amazon bestseller/product scrapers?
Compare on the fields actually returned per row (does it join list rank to a full product record, or just the tile?), whether price is scoped to the buy box or estimated, and whether reviews are included. This README documents every field this Actor pushes, from its own source code, so you can compare line by line against another listing's stated output.
Can I use this scraper without an Amazon developer account or Associates membership?
Yes. The Actor needs only an Apify account to run โ it reads Amazon's public list and product pages the way a browser would, with no Amazon login, API key, or Associates enrollment involved.
โ Conclusion
Amazon Product Details Scraper (Bestsellers & New Releases) turns a Best Sellers, New Releases or Most Wished For list into structured, per-product JSON โ rank, price, brand, attributes, and up to 10 reviews per item โ without an Amazon Associates account or API approval. Category managers, pricing analysts and agencies use it for dated ranking snapshots; AI agents call it as a plain Apify tool. Add a list or category in the input above and run it from the Apify Console or the API.