Amazon Search Scraper · 20 Marketplaces
Pricing
from $1.00 / 1,000 results
Amazon Search Scraper · 20 Marketplaces
Extract Amazon search results by keyword or /s?k= URL across 20 marketplaces. Returns ASIN, title, price, list price, stars, reviews, sponsored / Prime / Amazon's Choice / Best Seller flags, delivery promise, coupon, purchase volume and page position. Pay-per-result, no login.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Ale
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
Amazon Search Scraper
Extract Amazon search results by keyword or /s?k=... URL across 20 marketplaces. Returns ASIN, title, price, list price, stars, review count, Prime / sponsored / Amazon's Choice / Best Seller flags, delivery promise, coupon, purchase volume, page position and more. Pay-per-result, no login required.
What it does
You give it Amazon search keywords or direct search URLs. You get back clean, structured JSON, one row per search result.
- Search by keyword list (each keyword runs a separate search) or by direct
/s?k=...URLs - Paginate up to 20 pages per keyword (around 16 organic rows per page)
- Filter by price range, minimum stars, Prime-only (US in v1)
- Pick the Amazon sort order: relevance, price ascending or descending, average customer review, newest arrivals, featured
- Optionally drop sponsored rows from the output
- Every row carries the keyword that surfaced it, the page number, and the slot position
Sample output
{"asin": "B09B8V1LZ3","title": "Amazon Echo Dot (5th Gen, 2022 release) | With bigger vibrant sound","url": "https://www.amazon.com/dp/B09B8V1LZ3","marketplace": "US","searchQuery": "echo dot","sortBy": "relevance","page": 1,"positionOnPage": 1,"positionOverall": 1,"isSponsored": false,"isAmazonChoice": true,"isBestSeller": false,"isPrime": true,"price": { "value": 49.99, "currency": "$", "raw": "$49.99" },"listPrice": { "value": 59.99, "currency": "$", "raw": "$59.99" },"stars": 4.7,"reviewsCount": 193736,"thumbnailImage": "https://m.media-amazon.com/images/I/example.jpg","deliveryText": "FREE delivery Mon, Jun 16","fastDeliveryText": "Or fastest delivery Sat, Jun 14","badgeText": "Climate Pledge Friendly","couponText": "Save $5 with coupon","prevPurchased": true,"purchaseVolumeText": "10K+ bought in past month","variantHint": "Available in 4 colors"}
Pricing
$0.001 per actor start, plus $0.001 per scraped result. Roughly $1 per 1,000 results.
You only pay for results that successfully return data. Failed fetches are not charged.
New to Apify? Every account gets a $5 free monthly platform credit, enough for around 5,000 results on this actor before you commit to paying anything. Plenty to test the full feature set.
Why this scraper
Full SERP teaser data. Many search scrapers stop at ASIN, title and price. This one also returns delivery promises, coupons, badges, purchase volume, sponsored flag, variant hint, on-page position and overall position. Everything a shopper actually sees on the result card.
Per-page positions echoed back. The page, positionOnPage and positionOverall fields let you track ranking changes over time without re-implementing slot accounting downstream. Sponsored rows still count against the on-page position so the numbers match what a shopper sees.
20 marketplaces. Auto-detects the right marketplace from any amazon.<TLD>/s?k=... URL. For keyword searches, the country input picks the marketplace. Accept-Language is tuned per country so prices and currencies render in the right locale.
Filterable at the source. Price range, minimum stars, and the Amazon sort dropdown are all passed through to Amazon's own SERP URL parameters. No client-side filtering surprises.
Pay only for results. $0.001 per successfully scraped row. Failed fetches are not charged.
Use with AI Agents (MCP)
Connect this actor to any MCP-compatible AI client: Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.
Apify MCP server URL:
https://mcp.apify.com?tools=santamaria-automations/amazon-search-scraper
Example prompt once connected:
"Use
amazon-search-scraperto find the top 50 results for 'wireless earbuds' on amazon.com. Return ASINs ranked by position."
Clients that support dynamic tool discovery (Claude.ai, VS Code) will receive the full input schema automatically.
Input
| Field | Type | Description |
|---|---|---|
searchQueries | array of strings | Search keywords. Each keyword runs a separate search. |
startUrls | array | Direct Amazon search URLs (/s?k=...). Marketplace auto-detected from the TLD. |
country | string | Marketplace for searchQueries: US, UK, DE, FR, IT, ES, CA, MX, BR, NL, SE, PL, TR, JP, IN, AU, SG, SA, AE, EG. |
language | string | AUTO matches the marketplace, or pick one: en, de, fr, it, es, ja, pt, ar, tr, sv, nl, pl. |
maxResultsPerQuery | integer | Max rows per keyword. 0 means no per-keyword cap (uses maxPages). |
maxResults | integer | Hard cap across all queries combined. 0 means unlimited. |
maxPages | integer | How many SERP pages to walk per keyword. Up to 20. |
sortBy | string | relevance, price-asc-rank, price-desc-rank, review-rank, date-desc-rank, featured-rank. |
minPrice | integer | Lower bound for the price filter, in the marketplace's currency. 0 means no filter. |
maxPrice | integer | Upper bound for the price filter. 0 means no filter. |
minStars | integer | Filter by minimum stars: 0 (off), 1, 2, 3, or 4. |
primeOnly | boolean | Restrict to Prime-eligible offers. US only in v1, silently ignored elsewhere. |
includeSponsored | boolean | When false, drop sponsored rows from output. Default true. |
concurrency | integer | Parallel SERP fetches, 1 to 20. Default 5. |
You can mix searchQueries and startUrls in the same run.
Example input
{"searchQueries": ["echo dot", "smart speaker"],"country": "US","maxResultsPerQuery": 50,"maxPages": 4,"sortBy": "review-rank","minStars": 4,"includeSponsored": false,"concurrency": 5}
Output fields
Identity and ranking
asin, title, url, marketplace, searchQuery, sortBy, page, positionOnPage, positionOverall
Pricing
priceas{value, currency, raw}listPrice(struck-through original when on sale)
Social proof
stars(0 to 5)reviewsCountprevPurchased(true when Amazon shows "X bought in past month")purchaseVolumeText(the literal text Amazon shows)
Badges
isSponsored,isAmazonChoice,isBestSeller,isPrimebadgeText(Climate Pledge Friendly, sale percentage, etc.)couponText(coupon promo text when shown)
Shipping and teaser
deliveryText(primary delivery promise)fastDeliveryText(fastest delivery option)variantHint("Available in 3 colors" or "+2 sizes")
Media
thumbnailImage
Run metadata
input, scrapedAt
Common use cases
- Rank tracking. Monitor where a SKU appears for a target keyword over time using
positionOverall. - Competitive intelligence. Compare badges, prices and stars across the top N results for a category keyword.
- Sponsored share. Use
isSponsoredto measure paid-placement intensity across a keyword set. - New launch monitoring. Sort by
date-desc-rankto surface new arrivals for a keyword. - Coupon and deal mining. Filter rows where
couponTextorlistPriceis populated to surface active promotions.
Notes and limits
- One row per result, not per ASIN. The same ASIN appearing under two keywords produces two rows, each tagged with its
searchQuery. This is intentional so you can compare ranks for the same ASIN across keyword variants. - Pagination depth. Amazon's SERP typically caps around 20 pages. The actor stops earlier when a page returns fewer than 4 organic rows.
primeOnlyis US-only in v1. Other marketplaces use different Prime filter IDs, scheduled for v1.1.- Filters are passed via the SERP URL. This is the same path the website uses. If Amazon's filter UI behaves oddly (e.g. minStars combined with a category-restricted keyword), the actor reflects that behavior rather than overriding it.
- Sponsored rows. Set
includeSponsored: falseto drop them. They're still detected and counted against the on-page position so the numbers stay consistent with what shoppers see.
Fields that may be null
Some fields are situational. They populate when Amazon shows them on the SERP card and stay null otherwise. This is not an extraction bug:
listPriceonly populates when the product is on sale.starsandreviewsCountare null on results with zero reviews.deliveryTextandfastDeliveryTextonly when Amazon renders a delivery promise on the card.badgeText,couponText,purchaseVolumeText,variantHintonly when the corresponding badge or teaser is shown.isPrimeis best-effort on the SERP. Amazon serves a different rendering to signed-out viewers (delivery upsell text instead of an icon badge), so the SERP-level signal is less reliable than the Product Scraper'sisPrime. For accurate Prime status, pass the ASINs into the Amazon Product Scraper as a follow-up step.
Recommended concurrency
3 to 5 concurrent SERP fetches is the sweet spot. Higher works but transient blocks become more frequent. Pages within a single keyword are walked sequentially to preserve session warmth. Cross-query parallelism is what the concurrency setting controls.
Multi-marketplace runs
Mixing marketplaces in one run is supported. Accept-Language, locale headers, and the proxy country are tuned per query. Expect slightly longer runtime on smaller marketplaces (.sa, .ae, .eg, .sg) where Amazon's anti-bot is more aggressive.
Related Actors
- Amazon Product Scraper: pull the full 50+ field PDP detail for any ASIN returned here (description, A+ content, variants, AI review summary, top reviews).
- Amazon Bestsellers Scraper: scrape Amazon's bestseller, movers and shakers, new releases, most wished for and most gifted rankings.
- Amazon Seller Scraper: extract seller storefronts, ratings, business addresses and full product catalogs.
Support
For issues, feature requests, or marketplaces not yet supported, please open an issue on the Issues tab of this actor. We typically respond within 24 hours.
Contact: contact@nanoscrape.com