Amazon Product Search Scraper
Pricing
from $2.00 / 1,000 product founds
Amazon Product Search Scraper
Search Amazon by keyword (or paste a search/category URL) across 18 marketplaces and get product listings enriched with full detail-page data: feature bullets, description, all images, brand, best-sellers rank, buybox seller, breadcrumbs, variations, rating and reviews. Pay-per-event. MCP-ready.
Pricing
from $2.00 / 1,000 product founds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
62
Total users
38
Monthly active users
9 days ago
Last modified
Categories
Share
Amazon Product Search Scraper — Full Detail Data
Amazon Product Search Scraper is an Apify Actor for teams, apps, and AI agents that need Amazon product listings from a keyword search or an Amazon search/category URL. It accepts a single search keyword, multiple keywords, or search/category URLs, and returns one dataset record per product. Each record can include search-result fields such as ASIN, title, URL, marketplace, price, rating, review count, rank signals, and sponsored placement, plus detail-page fields such as brand, feature bullets, description, all images, suitable-sellers rank, buybox seller, breadcrumbs, variations, and product details. The output is structured for analysis, routing, and downstream agent workflows, and the actor is usable through Apify MCP.
Best fit and connected workflows
This actor fits workflows that start with Amazon discovery and continue into structured product handling.
Good workflow routes include:
- Keyword discovery for a category, followed by shortlist creation from the returned product records.
- Marketplace-specific monitoring when you already know which Amazon domain you want to search.
- SERP analysis where
organicRank,globalPosition, andisSponsoredhelp you read the result order. - Product research and catalog building when you want search data and detail-page data in one dataset.
- AI agent workflows that need a predictable tool for Amazon product search.
If you already have a filtered Amazon search page or category page, paste the URL into startUrls. If you are starting from a topic, use searchQuery or searchQueries.
Use A natural next workflow step is Amazon Product Details Scraper for focused record-level enrichment. When discovery is complete and the next step is ranking-oriented analysis of selected Amazon records, Amazon Bestsellers Scraper fits that handoff. If the workflow shifts from product discovery to seller research, Amazon Seller Email Scraper - Public Contact Finder continues from the returned product records.
Practical scenario
Maya is preparing a buying brief for "wireless earbuds" in the US marketplace. She starts with searchQuery, keeps enrichDetails enabled, and limits the run with maxResults. The actor returns rows with ASIN, title, price, rating, review count, organic rank, sponsored flag, brand, feature bullets, images, and availability. Maya uses those fields to compare products, then opens the returned product URLs for selected items that need a deeper review.
Input fields
| Field | Type | Purpose |
|---|---|---|
searchQuery | string | Single Amazon search keyword. Example: wireless earbuds. |
searchQueries | array of strings | Bulk keyword mode. Example: ["gaming mouse", "mechanical keyboard"]. |
startUrls | array of objects | Amazon search-result or category URLs to scrape directly. Example: { "url": "https://www.amazon.com/s?k=running+shoes" }. |
country | string | Marketplace code for keyword searches. Example: US, UK, or DE. |
maxResults | integer | Maximum number of products to return across the run. Example: 50. |
enrichDetails | boolean | Adds detail-page fields such as brand, bullets, description, images, BSR, buybox seller, breadcrumbs, and variations. Example: true. |
sortBy | string | Search sort order for keyword searches. Example: relevance, priceAsc, avgCustomerReview. |
includeSponsored | boolean | Includes sponsored placements and flags them with isSponsored. Example: true. |
maxSearchPages | integer | Maximum search-result pages to explore per seed. Example: 5. |
proxyConfiguration | object | Proxy settings for the run. Default uses Apify Proxy; select UNBLOCKER to route the whole run through it. |
useUnblockerFallback | boolean | On by default: after a zero-result classified block, retry at most two unique search seeds through Unblocker once. Set false to use only the selected proxy route. |
Focused input example
{"searchQuery": "wireless earbuds","country": "US","maxResults": 25,"enrichDetails": true,"sortBy": "relevance","includeSponsored": true,"maxSearchPages": 3}
Output fields
Each dataset row represents one Amazon product record. The actor writes product rows to the dataset, and the output object also includes execution metadata in the key-value store.
| Field | Description | Example |
|---|---|---|
recordType | Dataset record kind. | product |
asin | Amazon Standard Identification Number for the returned product. | B0EXAMPLE12 |
title | Product title from search results or the detail page. | Wireless Earbuds |
url | Canonical product URL for the returned ASIN. | https://www.amazon.com/dp/B0EXAMPLE12 |
marketplace | Marketplace where the row was collected. | US |
searchQuery | Search keyword that produced the row. | wireless earbuds |
searchUrl | Search or category URL used as the seed. | https://www.amazon.com/s?k=wireless+earbuds |
sourceType | Seed type that produced the row, such as keyword or URL-based search. | search |
page | Search page number where the product appeared. | 1 |
positionOnPage | Position of the product on that page. | 1 |
organicRank | Organic position in the search results. | 1 |
globalPosition | Overall position across the run. | 1 |
isSponsored | Sponsored placement flag. | false |
price | Current price. | 39.99 |
listPrice | Strike-through list price, when available. | 49.99 |
currency | Currency code. | USD |
discountPercent | Price discount versus list price. | 20 |
rating | Star rating. | 4.6 |
reviewCount | Number of ratings or reviews. | 18234 |
boughtInPastMonth | Purchase activity text shown by Amazon. | 10K+ bought in past month |
isPrime | Prime-eligibility flag. | true |
thumbnail | Search result thumbnail URL. | https://example.com/thumb.jpg |
badgeText | Badge text shown in the listing. | Sponsored |
deliveryText | Delivery text from the listing. | FREE delivery Tue, ... |
couponText | Coupon text from the listing. | Save 10% |
availabilityText | Availability text from the listing. | In Stock |
detailScraped | Indicates whether detail-page enrichment was collected. | true |
brand | Brand from the detail page. | Example Brand |
featureBullets | Feature bullets from the detail page. | ["Bluetooth 5.3", "USB-C case"] |
description | Product description text. | Wireless earbuds with charging case. |
images | Detail-page image URLs. | ["https://example.com/image1.jpg"] |
imageCount | Number of collected images. | 5 |
breadcrumbs | Category breadcrumb trail. | ["Electronics", "Headphones", "Earbud Headphones"] |
category | Category text from the product page. | Earbud Headphones |
bestSellersRank | BSR entries from the detail page. | [{ "rank": 12, "category": "Earbud Headphones" }] |
availability | Availability text from the product page. | In Stock |
soldBy | Buybox seller or merchant. | Example Seller |
shipsFrom | Shipping origin. | Amazon |
brandStoreUrl | Brand store link, when present. | https://www.amazon.com/stores/... |
hasAplusContent | Indicates A+ content presence. | true |
variations | Variation data such as color or size. | [{ "theme": "Color", "values": ["Black"] }] |
productDetails | Key-value technical details from the product page. | {"Connectivity": "Bluetooth"} |
scrapedAt | Timestamp for the record. | 2026-06-19T00:00:00.000Z |
_warnings | Record-level notes captured during collection. | ["detail page partial"] |
Illustrative output record
{"recordType": "product","asin": "B0EXAMPLE12","title": "Wireless Earbuds","url": "https://www.amazon.com/dp/B0EXAMPLE12","marketplace": "US","searchQuery": "wireless earbuds","searchUrl": "https://www.amazon.com/s?k=wireless+earbuds","sourceType": "search","page": 1,"positionOnPage": 1,"organicRank": 1,"globalPosition": 1,"isSponsored": false,"price": 39.99,"listPrice": 49.99,"currency": "USD","discountPercent": 20,"rating": 4.6,"reviewCount": 18234,"detailScraped": true,"brand": "Example Brand","featureBullets": ["Bluetooth connectivity","Charging case included"],"description": "Example product description.","images": ["https://example.com/image1.jpg","https://example.com/image2.jpg"],"breadcrumbs": ["Electronics","Headphones","Earbud Headphones"],"bestSellersRank": [{"rank": 12,"category": "Earbud Headphones"}],"availability": "In Stock","soldBy": "Example Seller","shipsFrom": "Amazon","scrapedAt": "2026-06-19T00:00:00.000Z"}
How it works
The actor uses two phases in one run:
- Search Amazon by keyword or by Amazon search/category URL.
- Optionally enrich each product by loading its
/dp/detail page and merging the result into the same row.
The live contract uses a CheerioCrawler with a session pool and proxy handling that prefers residential traffic and falls back to datacenter when needed. The dataset keeps search rank, sponsored placement, pricing signals, and detail-page fields together, which makes it straightforward to sort, filter, and pass downstream.
Handling verified anti-bot blocks
The default route remains the least-cost standard proxy path. When it returns zero products after a retry-exhausted classified 403, 429, 5xx, robot-check, or soft-block response, useUnblockerFallback: true retries at most two unique search seeds once through Apify Unblocker. This protects normal runs from a broad smart-proxy fan-out while giving an isolated blocked run a bounded recovery path. Set it to false if you want to use only the selected proxy route.
For a deliberately full-Unblocker run, select Apify's UNBLOCKER proxy group:
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["UNBLOCKER"]}}
Unblocker is not a claim that every Amazon request can be bypassed. It chooses the best country by default and is billed separately by Apify per successful request; check the live proxy pricing for the account before large runs. The actor accepts the valid application/octet-stream HTML response that Unblocker can return, applies a bounded 1–10 second cooldown before retrying an Amazon block or empty page, and exposes only a safe proxyRoute label, fallback counts, and bounded page-category diagnostics in OUTPUT and RUN_SUMMARY.
Pricing
This actor uses Pay per event plus Apify platform usage. Open the live Pricing tab on the actor page for the current charges and the platform usage components.
The event model is based on the work performed:
- actor start
- product found
- product detail enriched, when detail-page enrichment is collected
Example in words: if a run returns twenty products and detail enrichment is enabled for each returned product, the execution includes a product-found event for each product, plus a product-detail-enriched event for each product whose detail page is collected. The live Pricing tab shows the current amounts and the final breakdown.
Use with AI agents (MCP)
This actor is available as an Apify Actor usable through Apify MCP. It lets an agent search Amazon by keyword or Amazon search/category URL and receive structured product records with optional detail-page enrichment.
Precise tool description: search Amazon across the configured marketplace, collect product rows from search results, and enrich those rows with product detail data when enrichDetails is enabled.
Exact Actor identity: khadinakbar/amazon-product-search-scraper
Search Amazon for "wireless earbuds" in the US marketplace, return the first 20 products with detail enrichment enabled, and summarize the results by title, price, rating, review count, organic rank, and brand. Keep sponsored placements in the dataset and mark which rows were enriched.
Output interpretation:
organicRankshows the organic position.globalPositionshows the overall position across the run.isSponsoredmarks ad placements.detailScrapedshows whether the detail page was collected for the row.searchQuery,searchUrl, andmarketplacepreserve provenance.maxSearchPagescontrols how many search pages are explored per seed.maxResultssets the overall product cap and therefore the cost cap.- When
enrichDetailsis on, each returned row can include product-page fields from the detail page.
JavaScript Apify API example
import { ApifyClient } from 'apify-client';const APIFY_TOKEN = process.env.APIFY_TOKEN;const client = new ApifyClient({token: APIFY_TOKEN,});const run = await client.actor('khadinakbar/amazon-product-search-scraper').call({searchQuery: 'wireless earbuds',country: 'US',maxResults: 10,enrichDetails: true,});const dataset = await client.dataset(run.defaultDatasetId).listItems();console.log(dataset.items);
Best results and outcome guidance
Use searchQuery when you want one topic in one run. Use searchQueries when you want several topics to share one dataset. Use startUrls when you already have a search-result page or category page and want the actor to collect products from that exact source.
For a focused run:
- Align
countrywith the Amazon marketplace you want to analyze. - Set
includeSponsoredbased on whether you want ad placements in the same dataset. - Use
maxSearchPagesto shape how deep the run goes into the result set. - Keep
enrichDetailson when you want brand, bullets, images, BSR, buybox seller, breadcrumbs, and variations. - Lower
maxResultswhen you want a smaller, tighter product set.
Continue the workflow
- Then use 🛒 Amazon Reviews Scraper — Ratings & Sentiment to continue from Amazon Product Search Scraper — Full Detail Data discovery into engagement data for the selected records.
- Then use Amazon Search Scraper to extend Amazon Product Search Scraper — Full Detail Data research with a complementary discovery contract.
Design note
I found that the output contract always requires recordType, asin, and scrapedAt, which gives every row a stable identity and timestamp even when other fields are empty.
FAQ
Can I start from a keyword and a marketplace at the same time?
Yes. Use searchQuery or searchQueries together with country to choose the marketplace for keyword searches.
Can I paste an Amazon search page URL?
Yes. startUrls accepts Amazon search-result and category URLs, and the marketplace is read from each URL's domain.
What records end up in the dataset?
One record per returned product. The dataset is centered on recordType: "product" with one row per ASIN.
How do I connect discovery to deeper product research?
Use this actor first to discover products, then route selected records into a downstream actor such as Amazon Product Details Scraper.
How can I keep search runs focused?
Use maxResults to cap the total number of products and maxSearchPages to limit how deep each seed is explored.
Responsible use
Use this actor for public Amazon search and product-page data in a way that follows applicable laws, Amazon's terms, and your own data-handling obligations. Review how you store, transform, and republish scraped content, especially when product descriptions, images, or seller data are involved.