Amazon Scraper: Products, Search Results & Best Sellers
Pricing
from $1.49 / 1,000 products
Amazon Scraper: Products, Search Results & Best Sellers
Scrape Amazon products by URL, ASIN or keyword, search results and Best Seller lists on any marketplace: price, rating and star breakdown, reviews count, Best Sellers Rank, specs, images, variants, seller, delivery for your ZIP and seller offers. No login, no browser.
Pricing
from $1.49 / 1,000 products
Rating
0.0
(0)
Developer
DeepMine
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Scrape Amazon products by URL, ASIN or keyword, whole search results and Best Seller lists, on any Amazon marketplace: price and list price, rating with the star breakdown, reviews count, Best Sellers Rank, every spec, features, images, variants, seller, delivery for your ZIP code, seller offers, seller profiles and Amazon's AI review summary. No login, no cookies, no browser.
| title | brand | price | stars | reviewsCount | position | listName | asin |
|---|---|---|---|---|---|---|---|
| Apple EarPods Headphones with USB-C Plug, Wired Ear Buds wit⦠| Apple | $19.00 | 4.5 | 19,206 | 2 | Electronics | B0DCH8VDXF |
| Apple AirTag (2nd Generation): Tracker for Keychain, Wallet,β¦ | Apple | $24.00 | 4.6 | 12,062 | 3 | Electronics | B0GJTFXNRX |
| Amazon Fire TV Stick 4K Plus with AI-powered Fire TV Search,β¦ | Amazon | $69.99 | 4.6 | 115,523 | 5 | Electronics | B0F7Z4QZTT |
With πͺ Seller profiles on, every third-party seller gets a row of its own:
| sellerName | sellerBusinessName | sellerAddress | sellerPhone | sellerRating12mStars | sellerRating12mCount | sellerRating12mPositivePercent |
|---|---|---|---|---|---|---|
| 6ave | 6TH AVENUE EXPRESS LLC | 50 Atrium Drive, SOMERSET, NJ, 08873, US | 800-927-0702 | 4.6 | 1,341 | 91 |
| World of Books (previously glenthebookseller) | SBYB, INC. | 900 KNELL ST, UNIT E, MONTGOMERY, IL, 60538-1381, US | 4.6 | 20,999 | 89 | |
| B King | Shenzhen Shanshanzikeji Youxiangongsi | Minxin Community, Minzhi Street, Longhua District, β¦ Shenzhen, Guangdong, 518131, CN | 4.9 | 2,476 | 100 |
$1.99 per 1,000 products on the Starter plan ($2.49 Free, $1.69 Scale, $1.49 Business, Platinum and Diamond). Seller offers, only if you turn them on: $0.75 per 1,000 offers. Seller profiles, only if you turn them on: $0.99 per 1,000 sellers, once per seller per run. The prefilled run (40 products: 20 from a search and 20 best sellers, offers off) costs about $0.08 on Starter.
What you can scrape
- Products by URL (
amazon.com/dp/B0β¦, any marketplace) or by ASIN. - Search results by keyword or by a search URL with any filters (price, brand, Primeβ¦), and category pages
(
amazon.com/b?node=β¦). - Ranked lists: Best Sellers, New Releases, Movers & Shakers, Most Wished For, Most Gifted: all 100 ranks.
- Seller offers ($): every seller's price, condition, delivery and rating from the all-offers panel, in a second dataset.
- Seller profiles ($): business name, business address, phone, storefront and ratings (30 days, 90 days, 12 months, lifetime, with the star breakdown) of the buy box seller and every offer's seller, read once per seller per run: one row per seller in a third dataset, and the profile on their product and offer rows.
- Delivery location: prices, stock and delivery dates for a ZIP / postcode, or for international shipping to a country. Other marketplaces are read for their own capital (amazon.de: Berlin, in EUR) unless you set one.
How to use it
- Paste π Amazon URLs (products, searches, best seller lists) or type π Search keywords.
- Set π Max products per URL or keyword (a best seller list has 100).
- Leave π Full product details on for the full row; off returns only what the list shows (title, price, rating, reviews, image, position), much faster, at the same price.
- Press Start. Rows stream into the dataset in the list's order. The first 3 go out as soon as their pages
arrive, so they can come in a different order; every row has its
positionin the list (search rows also theirpageNumber).
Saved inputs of junglee/Amazon-crawler run as they are: categoryOrProductUrls, maxItemsPerStartUrl,
maxSearchPagesPerStartUrl, scrapeProductDetails, maxOffers, scrapeSellers,
maxProductVariantsAsSeparateResults, zipCode and countryCode work the same way. scrapeProductVariantPrices,
locationDeliverableRoutes, useCaptchaSolver, proxyCountry and non-English language are not used: the log and
the run summary say so.
Pricing
You pay per product in the dataset, once per product per run however many of your inputs list it, at your Apify plan's price (see the Pricing tab). Seller offers are charged per offer, only when ποΈ Seller offers per product is above 0. Seller profiles are charged per seller, once per run however many products it sells, only when πͺ Seller profiles is on; Amazon itself has no profile page and is never charged. Products that fail are listed in the run summary and never charged. A run stops at your spending limit without reading pages it can't deliver.
Output
One row per product (the default dataset), with the same keys on every row; anything Amazon doesn't show is
null. Views: π Overview, π Stats (every number), π Details, π Buy box and π¬ Reviews.
| Key | What it is |
|---|---|
| thumbnailImage | The main picture |
| title, brand, author | Title, brand, book author |
| asin, url | Amazon's id and the product page |
| price, priceValue, currency | Price as shown ($19.00), as a number, ISO currency |
| listPrice, listPriceValue, discountPercent | Crossed-out list price and the discount in percent |
| priceRange, priceRangeMin, priceRangeMax | Variation parents: the price range |
| unitPrice, subscribeSavePrice | Price per unit ("$4.25 / count"), the Subscribe & Save price |
| coupon, promotions | The buy box coupon ("Apply $2 coupon") and other promotions ("Buy 4, save 10%") |
| shippingPrice, shippingPriceValue | Delivery price ('Free' or the amount) |
| inStock, inStockText, stockLeft, condition | Availability, units left ("Only 4 left in stock"), the buy box condition |
| isPrime | Prime delivery on the buy box offer |
| stars, reviewsCount | Average rating and number of ratings |
| fiveStarPercent β¦ oneStarPercent | The star breakdown in percent |
| hasReviews | Whether it has ratings |
| aiReviewsSummarySnippet, aiReviewsSummary, aiReviewsKeywords | Amazon's "Customers say" summary and aspects |
| topReviews, topReviewsCount | The reviews the product page shows (8-13 when it shows them), one JSON object each: id, title, stars, date, country, verified purchase, helpful votes, variant, text, images. No reviewer names |
| reviewHighlights, reviewsLayout | Amazon's review snippets per aspect (~30, each with its review id); which of the two the page showed (A: full reviews, B: highlights) |
| monthlyPurchaseVolume, monthlyPurchases | "10K+ bought in past month" and the number |
| isAmazonChoice, amazonChoiceText | The Amazon's Choice badge |
| isBestSeller, bestSellerBadge, isClimatePledgeFriendly, badges | The #1 Best Seller badge, Climate Pledge Friendly, every badge shown |
| bestsellerRank, bestsellerCategory, bestsellerCategoryUrl | Best Sellers Rank in the main category |
| bestsellerRanks, bestsellerRankUrls | Every rank shown ("#12 in Earbud Headphones") and its list |
| breadCrumbs | The category path |
| descriptionSnippet, description, bookDescription | Description (or the seller's A+ "Product description") |
| features | The "About this item" bullets |
| attributes, productOverview, manufacturerAttributes | Product details, overview and technical specs as "Key: Value" |
| modelNumber, manufacturer, dateFirstAvailable, isbn13 | The same facts as their own columns (date as YYYY-MM-DD) |
| importantInformation, sustainabilityFeatures | Safety/legal notes, Climate Pledge Friendly features |
| aPlusContent, aPlusImages, aPlusVideos | The A+ (From the manufacturer) block |
| brandStory, brandStoryImages | The "From the brand" block |
| productComparisonAsins | ASINs in the comparison table |
| relatedAsins, relatedAsinsSource | The "Customers also viewed / bought" carousel's ASINs and its heading (never a sponsored carousel) |
| galleryThumbnails, highResolutionImages, videosCount, videoUrls | Gallery images, videos and their video files (mp4 / m3u8) |
| variantAsins, variantDimensions, variantAttributes, variantDetails | Variants: ASINs, what they differ in, this one's values, each variant |
| variantPrices, variantImages | Each variant's price ("ASIN: $19.99", when its swatch shows one or it was read as its own row) and picture |
| sellerName, sellerId, sellerUrl | The buy box seller |
| soldBy, shipsFrom, isFulfilledByAmazon | Who sells and who ships the buy box offer, and whether Amazon ships it |
| offersCount | Offers on the all-offers panel (with offers on), else the count the product page or a best seller list shows |
| lowestOfferPrice, lowestOfferText | The all-offers link: "New & Used (5) from $17.87" and that lowest price |
| returnPolicy, support, storeUrl | Returns, support, the brand store |
| delivery, fastestDelivery, locationText, loadedCountryCode | Delivery promise and the location it was read for |
| answeredQuestions, reviewsUrl | Answered questions (when shown), the reviews page |
| listType, position, pageNumber, isSponsored, badge | Where it was found: Product, Search or a ranked list, its rank/position |
| listName, listFullName, listUrl, subcategories, subcategoryUrls | The list or search it came from |
| marketplace, originalAsin, unNormalizedProductUrl, input, scrapedAt | Provenance and time (UTC) |
ποΈ Seller Offers (second dataset, with offers on): asin, productTitle, position, isPinnedOffer (the buy box), condition, price, priceValue, currency, shippingPrice, shippingPriceValue, delivery, shipsFrom, sellerName, sellerId, sellerUrl, sellerRating and its numbers (sellerStars, sellerRatingsCount, sellerPositivePercent12m: "4.5 out of 5, 553 ratings, 91% positive over 12 months"), offersUrl, productUrl, marketplace, input, scrapedAt.
πͺ Seller Profiles (third dataset, with seller profiles on): one row per seller: sellerLogoUrl, sellerName, sellerId, sellerBusinessName, sellerAddress, sellerAddressLines, sellerPhone, sellerDetails (other labelled lines, such as a VAT number), sellerUrl, sellerStorefrontUrl, sellerFeedbackSummary, and for each period (30d, 90d, 12m, Lifetime) sellerRating30dStars, sellerRating30dCount, sellerRating30dPositivePercent (4-5 star ratings, as Amazon counts "positive") and sellerRating30dBreakdown ("5 star: 84% (1,131)"); then sellerAbout, foundOnAsin (the product that named it first), marketplace, input, scrapedAt. Buyer feedback comments are never read.
With seller profiles on, product rows (after sellerUrl, for the buy box seller) and offer rows (for that offer's
seller) also carry sellerProfileStatus (read; amazon: Amazon itself, amazon.com rows get Amazon's business
record; failed: Amazon refused the page on every try; notRead: your spending limit or the run's end came first;
noSellerId; null: no seller), sellerBusinessName, sellerAddress, sellerPhone, sellerStorefrontUrl and the 12 rating
numbers (sellerRating30dStars β¦ sellerRatingLifetimePositivePercent).
π§Ύ Run summary (the OUTPUT record): per input its status, products delivered, products it listed that an
earlier input already delivered (with their position), failures; the delivery location per marketplace; calls and
traffic; thin product pages asked again (thinPagesRetried: Amazon sometimes serves a page without its price,
availability and rating breakdown, so it is read once more on a new IP and the fuller page is kept) and how many stayed
thin (thinPagesKept); with seller profiles on, sellers: profiles read, failed and not read.
Field map for junglee/Amazon-crawler users
Every field junglee/Amazon-crawler returns (its 57 product fields, then its seller profile fields) has a place here, flattened so it fits a table:
| junglee field | Our key(s) |
|---|---|
| aiReviewsSummary | aiReviewsSummary, aiReviewsKeywords |
| amazonChoiceText | amazonChoiceText |
| answeredQuestions | answeredQuestions |
| aPlusContent | aPlusContent, aPlusImages, aPlusVideos |
| asin | asin |
| attributes | attributes |
| attributesMapped | attributes |
| author | author |
| bestsellerPageData | position, listName, listFullName, listUrl |
| bestsellerRanks | bestsellerRanks, bestsellerRankUrls, bestsellerRank, bestsellerCategory, bestsellerCategoryUrl |
| bookDescription | bookDescription |
| brand | brand |
| brandStory | brandStory, brandStoryImages |
| breadCrumbs | breadCrumbs |
| categoryPageData | position, pageNumber, isSponsored, badge, listUrl |
| condition | condition |
| delivery | delivery |
| description | description |
| fastestDelivery | fastestDelivery |
| features | features |
| galleryThumbnails | galleryThumbnails |
| hasReviews | hasReviews |
| highResolutionImages | highResolutionImages |
| importantInformation | importantInformation |
| input | input |
| inStock | inStock |
| inStockText | inStockText |
| isAmazonChoice | isAmazonChoice |
| listPrice | listPrice, listPriceValue |
| loadedCountryCode | loadedCountryCode |
| locationText | locationText |
| manufacturerAttributes | manufacturerAttributes |
| monthlyPurchaseVolume | monthlyPurchaseVolume, monthlyPurchases |
| offers | offersCount + the offers dataset |
| originalAsin | originalAsin |
| price | price, priceValue, currency |
| priceRange | priceRange, priceRangeMin, priceRangeMax |
| productComparison | productComparisonAsins |
| productOverview | productOverview |
| returnPolicy | returnPolicy |
| reviewsCount | reviewsCount |
| reviewsLink | reviewsUrl |
| seller | sellerName, sellerId, sellerUrl |
| shippingPrice | shippingPrice, shippingPriceValue |
| stars | stars |
| starsBreakdown | fiveStarPercent .. oneStarPercent |
| support | support |
| sustainabilityFeatures | sustainabilityFeatures |
| thumbnailImage | thumbnailImage |
| title | title |
| unNormalizedProductUrl | unNormalizedProductUrl |
| url | url |
| variantAsins | variantAsins |
| variantAttributes | variantAttributes |
| variantDetails | variantDetails, variantDimensions, variantPrices, variantImages |
| videosCount | videosCount |
| visitStoreLink | storeUrl |
| seller.businessName | sellerBusinessName |
| seller.address | sellerAddress, sellerAddressLines |
| seller.phone | sellerPhone |
| seller.storefrontUrl | sellerStorefrontUrl |
| seller.rating30Days / rating90Days / rating12Months / ratingLifetime .starsOutOf5, .ratingCount | sellerRating30dStars, sellerRating30dCount β¦ sellerRatingLifetimeStars, sellerRatingLifetimeCount |
| seller.rating⦠.percentageNStar, .absoluteNStar | sellerRating30dBreakdown ⦠sellerRatingLifetimeBreakdown, sellerRating30dPositivePercent ⦠|
| seller.VAT, seller.email | sellerDetails (when the profile shows them) |
| offers[].seller.reviewsCount, .averageRating | sellerRatingsCount, sellerStars (offer rows) |
junglee/amazon-bestsellers: name β title, thumbnailUrl β
thumbnailImage, categoryName / categoryFullName / categoryUrl β listName / listFullName / listUrl,
numberOfOffers β offersCount.
Other Amazon product scrapers' fields: discount_percent β discountPercent, coupon β coupon, unit_price β
unitPrice, subscribe_save_price β subscribeSavePrice, videos β videoUrls, ships_from β shipsFrom,
sold_by / soldBy β soldBy, model_number β modelNumber, manufacturer β manufacturer, stock_left β
stockLeft, is_fba β isFulfilledByAmazon, is_prime β isPrime, related_asins β relatedAsins, badges β
badges, top_reviews β topReviews.
Limits
- Reviews: the product row has the rating, the star breakdown, the AI summary and the reviews the product page shows logged out (8-13 full reviews, or Amazon's highlight snippets); deeper review lists need a sign-in, which this Actor never uses.
- Rows are read from Amazon's English pages; titles and descriptions keep the language the seller wrote them in.
- A delivery postcode Amazon rejects stops that marketplace's inputs (rather than return another location's prices).
- Image links are Amazon's own and don't expire.
FAQ
Do I need proxies? No: the default Apify datacenter proxy works for Amazon. A page Amazon refuses is asked again on another IP.
Why did a product come out once when two inputs list it? You pay once per product per run; the run summary lists the second input's position for it.
What if a run is interrupted? Resurrect it: products already in the dataset are never pushed or charged again, seller offers are charged exactly once, for the offers stored, and seller profiles once per seller stored.
Your feedback
Found a bug, or a field you need? Open an issue on the Issues tab and we'll answer within two days. If the data helped you, a short review on this page helps other users find the Actor.