Amazon Scraper (Pay-Per-Event)
Pricing
Pay per event
Amazon Scraper (Pay-Per-Event)
Pay-per-event Amazon search scraper — a cheaper, better drop-in for automation-lab/amazon-scraper. Returns price, discount %, rating, reviews, availability, seller, bestseller rank, Prime, brand, image & URL across 11 marketplaces. Keyword or URL input, sortable.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Arnas
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape Amazon search results — prices, list prices, discounts, ratings, reviews, availability, seller, bestseller rank, Prime badge, sponsored flags, brand, image, and direct product URLs — across 11 marketplaces. A cheaper, more capable drop-in for automation-lab/amazon-scraper.
What does Amazon Scraper do?
Amazon Scraper extracts product data from Amazon search results. For every keyword (or search URL) you provide, it returns one structured record per unique product — current price, list/original price, discount percent, rating, review count, availability, seller, bestseller rank, Prime badge, sponsored flag, brand, image, and the direct product URL.
Use it for price monitoring, competitive intelligence, dropshipping research, market analysis, and deal tracking — without managing proxies, captcha gates, or HTML drift yourself.
Run it once on demand or schedule it to track price changes over time. Results download as JSON, CSV, or Excel, or stream live via the Apify API.
Why use Amazon Scraper?
- Cheaper than the reference. Pay-per-event at $0.001/run + $0.003/product — about 25% cheaper than
automation-lab/amazon-scraper's $0.004/product (Free tier), and the gap holds at scale. - Keyword OR URL input. The reference is keyword-only. This actor accepts plain keywords and Amazon search/category URLs — paste a URL straight out of the browser if you prefer.
- 11 marketplaces. US, UK, DE, FR, ES, IT, CA, JP, IN, AU, MX — one more than the reference, picked from a dropdown rather than memorizing TLDs.
- Sortable. Order results by relevance, price (low→high / high→low), average customer review, or newest arrivals — matching the reference's sort options.
- Run-level deduplication. Duplicate ASINs that appear across overlapping keyword searches or sponsored-then-organic placements are written once and billed once, not twice.
- Numeric prices + computed discount.
priceandlistPriceValueare returned as numbers (ready for math, including European decimal-comma formats like1.299,00 €), and we computediscountPercentandonSalefor you so you can sort by deepest discount directly. - Marketplace-aware currency.
USD,GBP,EUR,CAD,JPY,INR,AUD,MXNpopulated automatically per row. - Residential proxy by default. Amazon's WAF blocks datacenter IPs within minutes — RESIDENTIAL is the default and captcha-style responses trigger automatic session rotation.
- Pay-per-event pricing. No monthly subscription. Only pay for unique products written to the dataset.
What data can you extract?
Each product in the output includes:
| Field | Description |
|---|---|
asin | Amazon Standard Identification Number (stable across pages — used for deduplication) |
title | Product title |
url | Canonical /dp/<ASIN> product URL on the marketplace |
price | Current price as a number (in the marketplace's local currency) |
priceString | Raw price string as shown on the page (e.g., "$19.99", "1.299,00 €") |
listPrice | List/strike-through price as a string |
listPriceValue | List price as a number — easier to math against |
discountPercent | Computed discount percentage (1 decimal place) |
onSale | Whether the product has a list price > current price |
currency | ISO 4217 currency code (USD, GBP, EUR, CAD, JPY, INR, AUD, MXN) |
rating | Average rating (0–5) |
reviewCount | Number of customer reviews |
availability | Stock status when shown on the card (e.g., "In Stock", "Only 3 left in stock"). Best-effort; null when not surfaced. |
sellerName | Seller when a "Sold by" fragment is present on the card. Best-effort; usually null on search pages (lives on the PDP). |
bestsellerRank | Bestseller rank when a "Best Seller" badge (#1) or "#N in Category" text appears. Best-effort; null otherwise. |
thumbnail | Product image URL |
isPrime | Whether the listing carries a Prime badge |
isSponsored | Whether the listing is a sponsored placement |
brand | Product brand. Best-effort: inferred from the first token of the title against a generic-word denylist. null when uncertain. Follow url to the PDP for canonical brand data. |
marketplace | Marketplace enum (US, UK, DE, …) |
pageNumber | Which search result page this product appeared on |
searchQuery | Which keyword surfaced this product. null when the seed was a startUrl. |
scrapedAt | ISO 8601 timestamp when the record was extracted |
Output example
{"asin": "B09JQMJHXY","title": "Sony WH-1000XM5 Wireless Industry Leading Noise Canceling Headphones","url": "https://www.amazon.com/dp/B09JQMJHXY","price": 298.00,"priceString": "$298.00","listPrice": "$399.99","listPriceValue": 399.99,"discountPercent": 25.5,"onSale": true,"currency": "USD","rating": 4.6,"reviewCount": 18421,"availability": "In Stock","sellerName": null,"bestsellerRank": 1,"thumbnail": "https://m.media-amazon.com/images/I/.....jpg","isPrime": true,"isSponsored": false,"brand": "Sony","marketplace": "US","pageNumber": 1,"searchQuery": "wireless headphones","scrapedAt": "2026-06-02T13:40:32.821Z"}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
How to use Amazon Scraper
- Click Try for free on this page.
- Enter one or more keywords in Search keywords (e.g.,
wireless earbuds,laptop stand). Or paste Amazon search URLs into Start URLs. - Pick the Marketplace (defaults to US) and optionally a Sort order.
- Optionally adjust Max products per search and Max search pages.
- Click Start. Results stream to the Output tab as they are scraped.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | string[] | — | Keywords to search on Amazon. One search per keyword. |
startUrls | object[] | — | Amazon search/category URLs. Marketplace inferred from URL host. |
marketplace | enum | US | One of US, UK, DE, FR, ES, IT, CA, JP, IN, AU, MX. Applies to keyword seeds. |
sort | enum | relevance | relevance, price_low, price_high, avg_rating, newest. Applies to keyword seeds; URL seeds keep their own ordering. |
maxProductsPerSearch | integer | 100 | Max unique products per seed (1–1000). |
maxSearchPages | integer | 5 | Max result pages per seed (1–20 accepted for drop-in compatibility; fetching is internally capped at ~7, where Amazon stops returning distinct results). |
maxRequestRetries | integer | 5 | Retries on 429 / 503 / captcha (1–10). |
proxyConfiguration | object | RESIDENTIAL | Apify proxy. Datacenter IPs are blocked within minutes — keep RESIDENTIAL. |
Provide at least one of searchQueries or startUrls.
How much does it cost to scrape Amazon?
Pay-per-event:
- Actor start: $0.001 per run.
- Product scraped: $0.003 per unique product written to the dataset (deduplicated by ASIN across the run).
Example: 1,000 products = $0.001 + (1,000 × $0.003) = $3.001. Compare against automation-lab/amazon-scraper's $0.004/product (Free tier) → $4.001 for the same 1,000 products. This actor is ~25% cheaper, with no monthly subscription required.
Tips and advanced options
- Stick to RESIDENTIAL. Amazon blocks datacenter IPs almost immediately. The default configuration is correct.
- Use broader keywords than narrow ones to maximize page coverage. Amazon caps keyword search at ~7 pages — a narrow query may saturate at page 3.
- For deeper category coverage, paste paginated category URLs into
startUrls(each URL is fetched as page 1 and not paginated further; you control depth by supplying multiple URLs). - Mix marketplaces in one run by combining
startUrlsfrom different Amazon domains. Each URL infers its own marketplace. - Cost ceiling. Set a maxItems cap in the Apify Console run settings to bound charges. The actor honors
eventChargeLimitReachedand stops cleanly when the cap is reached. - Schedule it with Apify Schedules to build a daily price-history dataset by keyword.
Legality and ToS disclaimer
This actor scrapes publicly accessible search-results data from Amazon. Web scraping is legal in most jurisdictions when applied to public data, but you are responsible for ensuring your use complies with Amazon's Terms of Service, applicable laws, and any contractual obligations you have. Do not scrape personal or sensitive data. For commercial use cases, consult legal counsel.
FAQ
Does this scraper require an Amazon API key or login? No — it operates on publicly accessible search-results HTML.
Does it scrape full product detail pages (PDPs)? Not in v0.1. This actor extracts the fields visible on the search results page. PDP scraping (feature bullets, variant matrix, A+ content, full seller breakdown) is on the roadmap.
Why are availability, sellerName, or bestsellerRank sometimes null? Amazon's search-results HTML exposes these only sporadically — availability and bestseller badges appear on some cards, and seller name almost always lives on the PDP rather than the search card. We parse them when confidently present and return null otherwise rather than guessing. Follow url to the PDP for canonical values.
Why is brand sometimes null? Amazon's main-frame search HTML rarely exposes a structured brand field. We infer it from the title's first token against a generic-word denylist; when neither the title nor a card attribute is confident, we return null. Follow url to the PDP for canonical brand data.
Why does priceString sometimes show a different currency than currency? The currency field is derived from the marketplace you select (US → USD). The priceString preserves Amazon's raw, as-served value. When the residential proxy happens to exit in a different country, Amazon localizes the displayed prices to that country, so priceString may read e.g. "MXN 44.76" on a US run. The numeric price matches priceString. To force a single consistent currency, pin the proxy to the marketplace's country via proxyConfiguration.apifyProxyCountry (e.g., "US") — note this narrows the IP pool and can slightly raise block rates.
Can I run this against amazon.cn or amazon.com.br? Not in v0.1. The supported marketplaces are US, UK, DE, FR, ES, IT, CA, JP, IN, AU, MX. Open an Issue with your use case and we can prioritize.
Why does my run produce fewer products than maxProductsPerSearch? Two reasons: (1) Amazon caps keyword search at ~7 pages, so very specific keywords may saturate before reaching the cap. (2) Some sponsored placements duplicate organic ASINs; run-level dedup writes each ASIN once.
Support
Have a feature request or hitting an issue? Open a ticket on the actor's Issues tab. We respond quickly and treat early-adopter feedback as design input.