Amazon Products Scraper - Fast & Efficient (with Sales Data) avatar

Amazon Products Scraper - Fast & Efficient (with Sales Data)

Pricing

from $5.55 / 1,000 results

Go to Apify Store
Amazon Products Scraper - Fast & Efficient (with Sales Data)

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

Automly

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

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?

FeatureThis actorTypical Amazon scrapers
Best Sellers Rank (BSR)✅ All visible ranks⚠️ Often missing
Estimated monthly sales✅ Calibrated per-category❌ None do this
Estimated monthly revenuesales × 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
Marketplaces91-3 typical
Speed✅ sub-second per product❌ multi-second renders
Pricefrom $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

WhoWhat they do with it
FBA sellersFind untapped niches by sweeping a category and ranking by estimated_monthly_revenue
Brand teamsTrack competitor pricing, BSR, and inventory ("Only 3 left") across an ASIN list daily
Affiliates / dropshippersIdentify hot products in real time before they go viral
Pricing analystsPull discount %, coupons, list price, current price across thousands of SKUs
Marketplace consultantsBulk-extract specs, dimensions, item model numbers for catalog migration
AI / ML teamsBuild 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

FieldTypeDefaultNotes
keywordsstring[][]Search Amazon for each. Mutually exclusive with startUrls / asins.
startUrls{url}[][]Direct product URLs.
asinsstring[][]Plain 10-char ASINs.
maxResultsPerKeywordint50Cap per keyword (1-500).
fullDetailsbooltrueIf false, search returns lightweight listing data only — much faster but no BSR.
marketplaceenum"com"One of the 9 supported TLDs.
concurrencyint4Parallel product fetches (1-16).
proxyConfigurationobjectApify residentialApify proxy is recommended; datacenter usually blocked.

📋 Output schema

asin string 10-char Amazon product ID
url string canonical /dp/<asin> URL
title string
brand string
price string "$25.55" — display string with currency
list_price string "$34.99" — MSRP / strike-through
discount_percent int % off list price
coupon string promo / S&S coupon string
rating float 0–5
review_count int
review_distribution {5_star_pct, 4_star_pct, ..., 1_star_pct}
best_sellers_rank [{rank, category}, ...] all visible BSR mentions
bought_in_past_month string "20K+", "6K+", etc.
estimated_monthly_sales int ← our calibrated estimate
estimated_monthly_revenue string "$1,234.56" — formatted with same currency as price
categories string[] breadcrumb path
features string[] bullet points
description string long-form description
specs {key: value} product details table
variants [{asin, dimensions}] color/size combos with their own ASINs
images string[] high-res image URLs
availability string "In Stock", "Only 3 left", ...
stock_left int parsed from "Only N left"
sold_by string buy-box winner
ships_from string
is_prime bool
is_fba bool
badges string[] Amazon's Choice, Best Seller, ...
related_asins string[] "Customers also bought" carousel
search_keyword string when from search-mode
search_position int 1-indexed position in search results
sponsored bool
scraped_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.

VolumeCost
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:

ActorPrice / 1KBSR?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

  1. Click Try for free
  2. Paste your input — keywords, URLs, or ASINs
  3. Click Start
  4. 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 ApifyClient
client = 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-actor
apify 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-scraper if 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