Amazon Products Scraper - Fast & Efficient (with Sales Data)
Pricing
from $5.55 / 1,000 results
Amazon Products Scraper - Fast & Efficient (with Sales Data)
Scrape Amazon product pages — title, price, BSR, badges, variants, reviews, specs, plus monthly-sales/revenue estimates calibrated against Amazon's own bought-in-past-month badges. Three input modes: keyword search, direct URLs, or raw ASINs.
Pricing
from $5.55 / 1,000 results
Rating
0.0
(0)
Developer
Automly
Actor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
🛒 Amazon Products Scraper — with Sales & Revenue Estimates
The only Apify Amazon scraper that returns estimated monthly sales and revenue for every product, calibrated against Amazon's own bought-in-past-month badges. Built for sellers, FBA researchers, brand teams, and analysts who need volume signal — not just static product data.
From $5.55 per 1,000 results. 30+ fields. 9 marketplaces. BSR + sales estimates included.
✅ 30+ fields per product — title, brand, price, BSR, badges, variants, reviews, specs, related ASINs, monthly sales & revenue estimates
✅ 3 input modes — search by keyword, list of URLs, or raw ASINs
✅ 9 marketplaces — .com .co.uk .de .fr .it .es .ca .com.mx .in
✅ Fast & lightweight — runs at sub-second latency per product, much cheaper than browser-based scrapers
✅ Auto-paginates search results until you hit maxResultsPerKeyword
✅ Multi-layout parser — handles standard products, books, devices, OOS items, variants, mobile/lite layouts
What makes this Actor different from other Amazon scrapers?
Most Amazon scrapers stop at price + title. This one tells you what's actually selling:
{"asin": "B00HEZ888K","title": "OXO Good Grips Heavy Duty Garlic Press, Die-Cast Zinc, Black","price": "$20.99","best_sellers_rank": [{"rank": 680, "category": "Kitchen & Dining"}],"bought_in_past_month": "6K+", // ← Amazon's bucketed signal"estimated_monthly_sales": 3590, // ← OUR per-category model"estimated_monthly_revenue": "$75,354.10" // ← formatted with same currency as price}
How the estimate works: per-category cubic curve in log10(BSR), calibrated directly against Amazon's own bought-in-past-month badges (the "20K+", "6K+" labels Amazon shows on product pages). Validated to ±55% per-product median error in COM. ~89% BSR coverage across 28 top-level categories.
This is the same volume signal premium seller-research tools charge $40-100/month for — built into every product row, included in your per-result pricing.
How does it compare to other Amazon scrapers?
| Feature | This actor | Typical Amazon scrapers |
|---|---|---|
| Best Sellers Rank (BSR) | ✅ All visible ranks | ⚠️ Often missing |
| Estimated monthly sales | ✅ Calibrated per-category | ❌ None do this |
| Estimated monthly revenue | ✅ sales × price | ❌ None do this |
| Bought-in-past-month badge | ✅ Surfaced | ⚠️ Inconsistent |
| Variants with ASINs + dimensions | ✅ Full list | ⚠️ Often parent-only |
| Review distribution (per-star) | ✅ All 5 stars | ⚠️ Total only |
| Coupons + discount % | ✅ Both | ⚠️ Usually price only |
| Marketplaces | 9 | 1-3 typical |
| Speed | ✅ sub-second per product | ❌ multi-second renders |
| Price | from $5.55 / 1K | $5-30 / 1K |
The sales/revenue estimates alone replace a $40-100/month subscription to premium seller-research tools — included at no extra cost in every product row.
🚀 Use Cases
| Who | What they do with it |
|---|---|
| FBA sellers | Find untapped niches by sweeping a category and ranking by estimated_monthly_revenue |
| Brand teams | Track competitor pricing, BSR, and inventory ("Only 3 left") across an ASIN list daily |
| Affiliates / dropshippers | Identify hot products in real time before they go viral |
| Pricing analysts | Pull discount %, coupons, list price, current price across thousands of SKUs |
| Marketplace consultants | Bulk-extract specs, dimensions, item model numbers for catalog migration |
| AI / ML teams | Build product-search + recommendation training sets with rich structured data |
📥 Input modes (pick one)
1) Keywords — search Amazon and scrape every result
{"keywords": ["garlic press", "yoga mat", "stainless water bottle"],"maxResultsPerKeyword": 200,"fullDetails": true,"marketplace": "com","concurrency": 4}
The actor paginates Amazon's search until maxResultsPerKeyword unique products are collected per keyword, then drills into each product page (when fullDetails: true) for full data.
2) Direct URLs
{"startUrls": [{"url": "https://www.amazon.com/dp/B00HEZ888K"},{"url": "https://www.amazon.com/dp/B0BZYCJK89"}]}
3) Raw ASINs
{"asins": ["B00HEZ888K", "B0BZYCJK89", "B0014BYHJE"],"marketplace": "com"}
📤 Output sample (one row per product)
{"asin": "B0BZYCJK89","url": "https://www.amazon.com/dp/B0BZYCJK89","title": "Owala FreeSip Insulated Stainless Steel Water Bottle with Straw, BPA-Free Sports Water Bottle, Great for Travel, 24 Oz, Denim","brand": "Owala","price": "$29.99","list_price": "$34.99","discount_percent": 14,"coupon": null,"rating": 4.7,"review_count": 118592,"review_distribution": {"5_star_pct": 86, "4_star_pct": 7, "3_star_pct": 2, "2_star_pct": 1, "1_star_pct": 4},"best_sellers_rank": [{"rank": 1, "category": "Kitchen & Dining"}],"bought_in_past_month": "20K+","estimated_monthly_sales": 48953,"estimated_monthly_revenue": "$1,468,089.47","categories": ["Home & Kitchen", "Kitchen & Dining", "Travel & To-Go Drinkware", "..."],"features": ["BPA-free Tritan...", "..."],"description": "...","specs": {"Brand Name": "Owala", "Manufacturer": "Owala", "..." : "..."},"variants":[{"asin": "B097...", "dimensions": {"Color": "Denim", "Size": "24 oz"}}, "..."],"images": ["https://m.media-amazon.com/images/I/...jpg"],"availability": "In Stock","stock_left": null,"sold_by": "Amazon.com","is_prime": true,"is_fba": true,"badges": ["Amazon's Choice"],"related_asins": ["B0...", "..."],"search_keyword": "stainless water bottle","search_position": 1,"scraped_at": "2026-04-27T..."}
30+ fields per product — see Output schema below for the full list.
🌍 Marketplaces supported
com co.uk de fr it es ca com.mx in
The marketplace selects:
- the URL host used for searches and ASIN lookups
- the locale cookies sent (
i18n-prefs,lc-main) - which per-category sales-estimate curve is used
⚙️ Input parameters
| Field | Type | Default | Notes |
|---|---|---|---|
keywords | string[] | [] | Search Amazon for each. Mutually exclusive with startUrls / asins. |
startUrls | {url}[] | [] | Direct product URLs. |
asins | string[] | [] | Plain 10-char ASINs. |
maxResultsPerKeyword | int | 50 | Cap per keyword (1-500). |
fullDetails | bool | true | If false, search returns lightweight listing data only — much faster but no BSR. |
marketplace | enum | "com" | One of the 9 supported TLDs. |
concurrency | int | 4 | Parallel product fetches (1-16). |
proxyConfiguration | object | Apify residential | Apify proxy is recommended; datacenter usually blocked. |
📋 Output schema
asin string 10-char Amazon product IDurl string canonical /dp/<asin> URLtitle stringbrand stringprice string "$25.55" — display string with currencylist_price string "$34.99" — MSRP / strike-throughdiscount_percent int % off list pricecoupon string promo / S&S coupon stringrating float 0–5review_count intreview_distribution {5_star_pct, 4_star_pct, ..., 1_star_pct}best_sellers_rank [{rank, category}, ...] all visible BSR mentionsbought_in_past_month string "20K+", "6K+", etc.estimated_monthly_sales int ← our calibrated estimateestimated_monthly_revenue string "$1,234.56" — formatted with same currency as pricecategories string[] breadcrumb pathfeatures string[] bullet pointsdescription string long-form descriptionspecs {key: value} product details tablevariants [{asin, dimensions}] color/size combos with their own ASINsimages string[] high-res image URLsavailability string "In Stock", "Only 3 left", ...stock_left int parsed from "Only N left"sold_by string buy-box winnerships_from stringis_prime boolis_fba boolbadges string[] Amazon's Choice, Best Seller, ...related_asins string[] "Customers also bought" carouselsearch_keyword string when from search-modesearch_position int 1-indexed position in search resultssponsored boolscraped_at ISO-8601 UTC timestamp
How much does it cost to scrape Amazon products?
From $5.55 per 1,000 successfully scraped products. Pay-per-result — no compute-units math, no surprise proxy bills, no monthly fees.
| Volume | Cost |
|---|---|
| 100 products (test run) | $0.56 |
| 1,000 products | $5.55 |
| 10,000 products | $55.50 |
| 100,000 products | $555.00 |
What's included:
- ✅ All 30+ fields per product (price, BSR, estimated monthly sales + revenue, variants, reviews, specs, …)
- ✅ Apify residential proxy bundled — you don't bring your own
- ✅ Built-in anti-blocking + auto-retry on rate-limited pages
- ✅ All 9 marketplaces (US, UK, DE, FR, IT, ES, CA, MX, IN)
What "successfully scraped" means: a product page that returns at least the core fields (title, ASIN, price or availability). Failed fetches after all retries are not billed.
Compare with other Apify Amazon scrapers:
| Actor | Price / 1K | BSR? | Sales estimates? |
|---|---|---|---|
| This actor | $5.55 | ✅ | ✅ |
| junglee/free-amazon-product-scraper | $6.20 | ✅ | ❌ |
| akash9078/amazon-product-scraper | $5.00 | ⚠️ partial | ❌ |
| getdataforme/amazon-product-reviews | $9.00 | ❌ (reviews only) | ❌ |
| dtrungtin/amazon-scraper | $30.00 | ⚠️ partial | ❌ |
For very large jobs (50K+/month), reach out for volume pricing.
How do I get started? Quick start guide
From the Apify Console
- Click Try for free
- Paste your input — keywords, URLs, or ASINs
- Click Start
- Download results as JSON, CSV, Excel, or pull via API
Via the Apify API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('automly/amazon-products-scraper').call({keywords: ['yoga mat'],maxResultsPerKeyword: 100,marketplace: 'com',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]); // first product
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("automly/amazon-products-scraper").call(run_input={"keywords": ["yoga mat"],"maxResultsPerKeyword": 100,"marketplace": "com",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Locally with the Apify CLI
git clone <this-repo>cd amazon-products-scraper-actorapify run # reads storage/key_value_stores/default/INPUT.json
How does the sales estimator work?
log10(monthly_sales) = c0 + c1·y + c2·y² + c3·y³, y = log10(BSR)
A separate cubic curve is fit per (marketplace, category) pair, calibrated directly against Amazon's own bought-in-past-month badges — the "20K+", "6K+" labels Amazon now shows on product pages. The badges are the ground-truth anchors; no third-party data goes into the model.
Validated against held-out Amazon-reported badges:
- Median per-product error: ±55% (variance is largely intrinsic — Amazon shows the same BSR for products with very different actual sales)
- 89% BSR coverage across 28 top-level Amazon categories
- 5 categories without calibration: Camera & Photo, Cell Phones, Movies & TV, CDs & Vinyl, Software — these products will still return BSR but
estimated_monthly_sales: null
How does it avoid Amazon's bot detection?
The actor includes a multi-tier anti-blocking system that automatically handles Amazon's anti-bot challenges and rate limits:
- Residential proxy rotation — fresh exit IP per keyword, so a single degraded session can't poison the whole run
- Auto-retry on challenge / rate-limit — transparent recovery without manual intervention
- Locale-aware requests — full desktop layout with US currency, so BSR and badges are surfaced consistently
The full pipeline is invisible to you — just enable Apify residential proxy in proxyConfiguration and the actor handles the rest.
⚠️ Known limitations
We'd rather tell you up-front than have you hit them mid-run:
- 5 categories without sales calibration: Camera & Photo, Cell Phones & Accessories, Movies & TV, CDs & Vinyl, Software. These products still return BSR, but
estimated_monthly_sales: null. Other 23 top-level categories are calibrated. - No review text — only counts + per-star distribution. Review pages need their own paginated scraper; pair us with
getdataforme/amazon-product-reviews-scraperif you need full text. - No Q&A — on the roadmap.
- Variant pricing — you get the variant ASIN + its dimensions (color, size). To get each variant's specific price, feed those ASINs back into the actor in a second run.
- ±55% sales-estimate variance — this is intrinsic to the BSR signal (Amazon shows the same BSR for products with very different actual sales). The estimate is calibrated against Amazon's own bought-in-past-month badges, but no estimator can be tighter than the source data allows.
❓ Frequently asked questions
Is it legal to scrape Amazon?
Yes — this actor only fetches publicly visible product pages, the same data anyone with a browser can see. We don't access logged-in pages, private APIs, or personal data. Use the output for analysis, research, and pricing intelligence; respect Amazon's terms of service and your local data-protection laws (GDPR, CCPA) for your specific use case.
Will my run get blocked?
Unlikely with default settings. The three-tier fetch chain solves WAF challenges automatically and rotates residential exit IPs per keyword. We've benchmarked sustained runs of thousands of products without manual intervention. For very large jobs (50K+) the safest pattern is to split into multiple runs.
Does this work for Amazon Brand products like Echo Dot or Kindle?
Yes for most fields, but Amazon hides BSR for some of its own out-of-stock devices — that's an Amazon-side data limitation, not a parser issue. Price is still extracted (from the JSON olpMessage fallback used for the Devices layout).
How fresh is the BSR data?
Real-time per request. Amazon updates BSR hourly; whatever you see in your browser at scrape-time is what you get in the output.
How accurate is the sales estimate?
Median per-product error of ±55% validated against held-out Amazon bought-in-past-month badges. The estimator is great for ranking products by relative volume and getting order-of-magnitude estimates. It's not a substitute for inventory-level signal data. See "How the sales estimator works" above.
Can I bring my own proxy?
Yes — set proxyConfiguration.proxyUrls to your own residential proxy URLs (DataImpulse, Bright Data, etc.). You'll save on Apify's proxy markup and may get faster throughput.
Can I get review TEXT, not just counts?
Not in this actor. Pair us with getdataforme/amazon-product-reviews-scraper for full review text.
🔗 Pair with other Apify Actors
- 🔗 Apify Web Scraper — for sites this actor doesn't cover
- 🔗 Apify Google Maps Scraper — combine product data with local availability
- 🔗 Apify AI Product Matcher — match Amazon ASINs against other retailers