Amazon Search Scraper · 20 Marketplaces · Ranks & Ads avatar

Amazon Search Scraper · 20 Marketplaces · Ranks & Ads

Pricing

from $1.00 / 1,000 search results

Go to Apify Store
Amazon Search Scraper · 20 Marketplaces · Ranks & Ads

Amazon Search Scraper · 20 Marketplaces · Ranks & Ads

Scrape Amazon search results by keyword or URL on 20 marketplaces: ASIN, title, price, list price, stars, reviews, sponsored/Prime/Amazon's Choice/Best Seller flags, delivery, coupon, bought-in-past-month and position, plus organic rank, sales estimate, video ads and brand banners. No login.

Pricing

from $1.00 / 1,000 search results

Rating

0.0

(0)

Developer

Divya Raj

Divya Raj

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 hours ago

Last modified

Share

What does Amazon Search Scraper do?

Amazon Search Scraper is an Amazon search results scraper and keyword rank tracker. It turns any keyword or Amazon search URL into a clean table of every product on the results page (the Amazon SERP), on 20 Amazon marketplaces. Each row has the ASIN, title, price, list price, stars, review count, page position, sponsored / Prime / Amazon's Choice / Best Seller flags, delivery promise, coupon and "bought in past month" volume. Sponsored video ads and brand banners come along in the same run.

It reads Amazon search pages over plain HTTP, with no browser and no login, so runs are fast and cheap. On Apify you also get API access, scheduling, integrations (Google Sheets, Make, Zapier, webhooks), proxy rotation and run monitoring.

Try it: type a keyword, pick a marketplace and click Start. Or call it as an Amazon search API from your own code (see Standby mode).

Why use Amazon Search Scraper?

  • Keyword and rank tracking. See where your products and your competitors' products rank for each keyword, with both the position shoppers see and an organic rank that skips ads.
  • Price and promotion monitoring. Track prices, list prices, coupons and deals across marketplaces. Monitoring mode outputs only products that are new or changed since the last run.
  • Product and market research. Find best sellers, compare ratings and reviews, and size demand with estimated monthly sales taken from Amazon's "bought in past month" label.
  • Advertising intelligence. Every row says whether it's sponsored, and sponsored video ads and brand banners (with their featured ASINs) are captured too, so you see who is buying ads on a keyword.
  • Local prices. Set a delivery ZIP or postal code to get the prices and delivery dates shoppers in that area see.

How to scrape Amazon search results

  1. Enter one or more keywords in Search keywords and choose a Marketplace, or paste Amazon search links into Search URLs.
  2. Optionally set Max results per keyword, Sort by, a price range, minimum stars or Prime only.
  3. Under Proxy Configuration, select the Residential group (see proxies).
  4. Click Start.
  5. Download the results from the Output tab as JSON, CSV, Excel or HTML, or fetch them with the API.

You don't need links at all: keywords plus a marketplace build the right URLs for you. If you paste links, use search result pages, the page you land on after typing in Amazon's search box. Their address contains /s?k=:

WorksDoesn't work
https://www.amazon.com/s?k=wireless+headphoneshttps://www.amazon.com/dp/B09BF64J55 (product page)
https://www.amazon.de/s?k=kaffeemaschinehttps://www.amazon.com/stores/Nike/page/... (brand store)
https://www.amazon.com/s?k=laptop&rh=n%3A565108 (filters kept)https://www.amazon.com/b?node=679255011 (category page)

Unsupported links are skipped with a warning in the log; they don't crash the run.

Input: keywords, marketplace and filters

All fields are on the Input tab. The main ones:

FieldDefaultDescription
searchQueriesKeywords. Each is a separate search, echoed in every row as searchQuery.
startUrlsAmazon search URLs (/s?k=...). The marketplace comes from each URL.
countryUSUS, CA, MX, BR, UK, DE, FR, IT, ES, NL, SE, PL, TR, JP, IN, AU, SG, SA, AE, EG.
languageAUTOLanguage asked of Amazon. AUTO uses the marketplace's own.
maxResultsPerQuery50Most rows per keyword. 0 = no limit.
maxResults0Most rows in the whole run. 0 = no limit.
maxPages5Pages per keyword (1–20). A search also stops at its last page.
sortByrelevancerelevance, price-asc-rank, price-desc-rank, review-rank, date-desc-rank, featured-rank.
minPrice / maxPrice0Price range in the marketplace's currency. 0 = open.
minStars0Minimum rating, 1–4, also checked on every row.
primeOnlyfalsePrime-eligible products only (amazon.com).
includeSponsoredtruefalse leaves out sponsored products, video ads and banners. Positions stay as shoppers see them.
deliveryZipCodesDelivery postcode per marketplace, e.g. {"US": "10001", "DE": "10115"}.
monitoringModeoffchanges outputs only new or changed products (see below).
concurrency5Pages fetched at the same time (1–20).
proxyConfigurationApify ProxyProxy settings. Residential recommended.

Example:

{
"searchQueries": ["echo dot", "smart speaker"],
"country": "US",
"maxResultsPerQuery": 50,
"sortBy": "review-rank",
"minStars": 4,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Less common fields: rankChangeThreshold and monitorStoreName for monitoring, saveHtml for debugging, and scrapeMode: "ads" for the sponsored-ads-only output. The older field names searchTerms, domain and maxItems are still accepted.

Output: Amazon search results data

One row per search result. A row from a live wireless earbuds search on amazon.com:

{
"asin": "B0FQFB8FMG",
"title": "Apple AirPods Pro 3 Wireless Earbuds with Active Noise Cancellation",
"url": "https://www.amazon.com/dp/B0FQFB8FMG",
"marketplace": "US",
"searchQuery": "wireless earbuds",
"sortBy": "relevance",
"page": 1,
"positionOnPage": 2,
"positionOverall": 2,
"isSponsored": false,
"isAmazonChoice": false,
"isBestSeller": true,
"isPrime": true,
"price": { "value": 199.0, "currency": "$", "raw": "$199.00", "currencyCode": "USD" },
"listPrice": { "value": 249.0, "currency": "$", "raw": "$249.00", "currencyCode": "USD" },
"stars": 4.4,
"reviewsCount": 16767,
"thumbnailImage": "https://m.media-amazon.com/images/I/61solmQSSlL._AC_UY218_.jpg",
"deliveryText": "Join Prime to get FREE delivery Today 6 PM - 11 PM",
"fastDeliveryText": "Or Non-members get FREE delivery Mon, Oct 26",
"badgeText": null,
"couponText": null,
"prevPurchased": true,
"purchaseVolumeText": "10K+ bought in past month",
"variantHint": null,
"bestSellerCategory": "in Earbud & In-Ear Headphones",
"input": { "country": "US", "sortBy": "relevance", "maxPages": 5, "...": "..." },
"scrapedAt": "2026-10-21T05:52:27Z",
"type": "result",
"organicRank": 2,
"adType": null,
"badges": ["Best Seller", "Prime"],
"boughtPastMonthCount": 10000,
"estimatedMonthlySales": { "low": 10000, "high": 19999, "isEstimate": true },
"deliveryLocation": "New York 10001",
"zipApplied": null
}

Brand banners are type: "banner" rows with headline, brand and featuredAsins. Video ads are sponsored rows with adType: "video"; they sit outside the result grid, so their positions are empty. A page that still fails after retries becomes a free type: "error" row and the run continues.

You can download the dataset in various formats such as JSON, HTML, CSV or Excel.

Data fields

FieldDescription
asin, title, url, thumbnailImageThe product.
marketplace, searchQuery, sortBy, inputWhich search the row came from.
page, positionOnPage, positionOverallPosition as shoppers see it, sponsored cards included.
organicRankPosition among organic results only.
isSponsored, adTypeSponsored flag and ad format (sponsored_product, video, brand_banner).
isAmazonChoice, isBestSeller, bestSellerCategory, isPrime, badges, badgeTextBadges on the card.
price, listPrice{value, currency, raw, currencyCode}.
stars, reviewsCountRating and number of ratings.
purchaseVolumeText, boughtPastMonthCount, estimatedMonthlySales"10K+ bought in past month", as text, as a number and as a low/high band. The band is an estimate: Amazon rounds the label down.
couponText, deliveryText, fastDeliveryText, variantHint, prevPurchasedPromotions, delivery promise and other card details.
deliveryLocation, zipAppliedThe delivery location the page was priced for, and whether your postcode was applied.
scrapedAtUTC timestamp.

scrapeMode: "ads" keeps this Actor's original output: only the sponsored placements, as rows with keyword, domain, page, asin, title, price, rating, reviewsCount, adPlacement (Headline Brand Banner, Sponsored Video Row Ad or Search Grid Inline) and scrapedAt. API calls that send the older searchTerms / domain fields get this output automatically.

Monitoring mode: only new or changed products

Set Monitoring to Only new or changed results and schedule the Actor, for example daily. It keeps each search's last results in a named key-value store (amazon-search-monitor by default) and outputs, and charges for, only:

  • new products (changeType: "new"), and
  • changed products (changeType: "changed") whose price, list price, coupon, badges, rating, "bought in past month" figure or title changed, or whose rank moved by at least Rank change that counts places (default 3).

Changed rows carry changedFields, priceDelta, rankDelta (negative means it moved up) and the previous values. Use a different Monitoring store name per client or project to keep separate histories.

Delivery ZIP or postal code

Prices, delivery dates and availability depend on the delivery address. Set Delivery ZIP or postal code per marketplace, e.g. {"US": "10001", "DE": "10115"}, at no extra charge. Every row shows deliveryLocation and zipApplied, so you never mistake default-location prices for local ones. Postcodes work on amazon.com, amazon.de and amazon.ca; amazon.co.uk doesn't accept them yet.

Proxies and what to expect

Amazon serves full result pages most reliably to residential IP addresses, so select the Residential group under Proxy Configuration. On datacenter proxies, including the default Apify Proxy, you may get reduced pages, fewer results or a CAPTCHA. The Actor detects CAPTCHAs and reduced pages and retries with a fresh session, but it can't return data Amazon didn't serve.

A page usually has 16 to 60 products, depending on the keyword and the layout Amazon picks for the request.

How much does it cost to scrape Amazon?

$1 per 1,000 results ($0.001 per result), plus $0.001 per run start. Compute and proxy costs are included, so that's all you pay. For example, 50 results for one keyword cost about $0.05.

Error rows are never charged, and monitoring runs charge only for products that are new or changed. The Pricing tab always shows the current price.

Three ways to cap a run:

  • Max results per keyword and Max total results: the number of rows.
  • Max pages per keyword: the number of search pages read.
  • Maximum cost per run in Run options: the run stops cleanly when it's reached.

Tips

  • Start with one keyword and maxResultsPerQuery: 20 to check the output, then scale up.
  • Use sortBy: "review-rank" with minStars: 4 to find the best-rated products fast.
  • Schedule daily runs with monitoring mode to build a price and rank history without paying for unchanged rows.
  • Use the Standby API below when you need results in real time inside your own app.

Amazon search API (Standby mode)

With Standby, the Actor stays warm and answers HTTP requests instead of running once:

GET https://<your-actor>.apify.actor/?keyword=wireless+earbuds&domain=amazon.com&mode=search&maxPages=1

It responds with the rows as a JSON array. Query parameters: keyword (repeatable), url (repeatable), domain, maxPages, mode (search for every result; ads, the default, for sponsored ads only) and zip (a delivery postcode for domain).

FAQ

Is scraping Amazon legal? This Actor collects only publicly visible, non-personal product data from search result pages. Scraping public data is generally lawful in many jurisdictions, but it depends on your location, purpose and the applicable terms. Review Amazon's Terms of Service and consult your own legal counsel before running at scale. You're responsible for how you use the output.

Can I track Amazon keyword rankings? Yes. Every row has positionOverall (as shoppers see it) and organicRank (ads excluded). Schedule a daily run, optionally with monitoring mode, to build a rank history per keyword and ASIN.

Can I use it as an Amazon search results API? Yes, in two ways: start runs through the Apify API and read the dataset, or call the Standby URL and get the rows back in the HTTP response.

How is it different from other Amazon search scrapers? Besides the standard fields (ASIN, title, price, stars, reviews, badges, sponsored flag, position), it adds organic rank, an estimated monthly sales band, delivery ZIP or postcode pricing, monitoring mode, sponsored video ads and brand banners with their featured ASINs.

Does it collect personal data? No. It extracts product listings and ads only.

Why did I get few or no results? Almost always the proxy: use Residential. The run's RUN_STATS record lists pages read and failed, CAPTCHAs, rows by type and why the run stopped.

Can it scrape product detail pages? No, only search result pages. Product page URLs are skipped with a warning.

Known limitations. Amazon changes its markup regularly; a major layout change can need an update. Tested live on 19 marketplaces in October 2026. amazon.fr currently answers every request with a JavaScript robot check, which an HTTP-only scraper can't pass, so FR searches return a free error row. Smaller marketplaces (MX, IT, TR, AE, PL) block more often; the Actor retries with fresh sessions. isPrime is most reliable on amazon.com.

Support

Found a bug or need a field that isn't extracted? Open a ticket on the Issues tab. Custom scraping solutions are available on request.