Amazon Search Results Scraper avatar

Amazon Search Results Scraper

Pricing

$0.60 / 1,000 search result scrapeds

Go to Apify Store
Amazon Search Results Scraper

Amazon Search Results Scraper

Collect Amazon search results for any keyword, with sponsored placements flagged and organic rank reported separately. Filter by price, stars and Prime before collecting, pick your Amazon marketplace, and optionally attach the complete product record to every result.

Pricing

$0.60 / 1,000 search result scrapeds

Rating

0.0

(0)

Developer

Hamza

Hamza

Maintained by Community

Actor stats

0

Bookmarked

195

Total users

101

Monthly active users

15 days ago

Last modified

Share

Search Amazon the way a shopper does, and get the whole results list back as clean structured data. Give the actor one or more search terms and it returns every product Amazon shows for them — title, ASIN, price, stars, rating count, Prime status, badges and delivery promise — with paid placements clearly flagged and organic rank counted separately from them. It is built for sellers tracking where their listings actually appear, agencies auditing ad saturation, and anyone doing product research who needs Amazon's own ordering rather than a guess at it.

What you can do with it

  • Track keyword rank. See exactly where a product sits for a search term, both as Amazon displays it and as it ranks once ads are removed.
  • Audit sponsored saturation. Count how much of a search term is paid placement, and which brands are buying it.
  • Research a niche fast. Pull hundreds of products for a term with price, rating and review volume, ready for a spreadsheet or a model.
  • Watch competitors. Re-run on a schedule and diff price, stars and rank over time.
  • Filter before you collect. Restrict to a price band, a minimum star rating or Prime-eligible products so you only pay for the rows you want.

What you get

One row per search result. Abridged sample:

{
"keyword": "protein powder",
"marketplace": "us",
"page": 1,
"position": 49,
"organicPosition": null,
"isSponsored": true,
"asin": "B008QHPVO4",
"title": "Optimum Nutrition Gold Standard 100% Whey Protein Powder",
"url": "https://www.amazon.com/dp/B008QHPVO4",
"image": "https://m.media-amazon.com/images/I/71qVeA8rZ8L._AC_UL320_.jpg",
"price": 54.99,
"currency": "USD",
"listPrice": 64.99,
"typicalPrice": null,
"rating": 4.6,
"ratingsCount": 862,
"boughtInPastMonth": "10K+",
"isPrime": true,
"isAmazonsChoice": false,
"isBestSeller": false,
"badge": "Best Seller",
"deliveryText": "FREE delivery Thu, Aug 14",
"variantCount": 12,
"scrapedAt": "2026-08-07T09:14:02.881Z"
}

Input reference

SettingTypeDefaultDescription
Search keywordslist of text— (required)Search terms. Each is searched separately and every row says which term found it.
Maximum results per keywordinteger100Stop after this many results for each search term.
Sort results byselectrelevanceHow Amazon should order results: relevance, price low to high, price high to low, average customer rating, newest arrivals, or best selling.
Exclude sponsored placementsyes/nonoDrop paid placements. When off they are kept and flagged.
Minimum priceinteger—Only return products at or above this price, in the selected marketplace's own currency.
Maximum priceinteger—Only return products at or below this price.
Minimum star ratinginteger—Only return products rated at least this many stars (whole stars, 1 to 4).
Prime eligible onlyyes/nonoOnly return products flagged as Prime eligible.
Amazon marketplaceselectusWhich country's Amazon site to read. Results come back in that marketplace's own currency.
Parallel targetsinteger4How many search terms to work on at the same time. Higher is faster, but Amazon serves fewer complete results when pushed hard. Leave at 4 unless you have a reason.

Output fields

FieldTypeDescription
keywordstringThe search term that found this result.
marketplacestringThe Amazon marketplace this result came from.
pageintegerWhich block of results it appeared in.
positionintegerPosition exactly as Amazon displayed it, ads included.
organicPositioninteger | nullPosition with paid placements removed. null for a sponsored result.
isSponsoredbooleanWhether this is a paid placement.
asinstringAmazon's product identifier.
titlestringFull product title, not the shortened version.
urlstringClean link to the product, free of tracking.
imagestringProduct image shown in the results.
imageLargestringFull-size original of the result image (no resize suffix).
imagesstring[]Every image found on the result card, full size, de-duplicated.
brandstringBrand line shown on the result, when present.
stockTextstringStock message such as "Only 3 left in stock".
couponTextstringCoupon offer shown on the result.
unitPricestringPrice per unit, such as "$0.50 / count".
dealTextstringDeal label (Limited time deal, Lightning Deal...).
discountPercentnumberPercentage off shown on the result.
sustainabilityTextstringClimate Pledge Friendly / Small Business style labels.
subscribeAndSaveTextstringSubscribe & Save offer text.
otherOffersTextstring"More buying choices" / other offers line.
soldByTextstringSeller or shipper line, when shown.
moreOptionsTextstring"+N colors/sizes" style line.
freeShippingText, fastestDeliveryTextstringDelivery lines as shown.
cardDataobjectRaw data attributes of the result card.
trackingobjectAmazon's content-tracking attributes on the card.
cardTextLinesstring[]Every text line on the result card, in order. Nothing the card shows is lost.
ariaLabelsstring[]Every accessibility label on the card.
linksobject[]Every link on the card (text and full URL).
pricenumber | nullCurrent price. null when Amazon shows no price for that product.
currencystring | nullCurrency the price was published in, read from Amazon itself.
listPricenumber | nullStruck-through list price, when Amazon shows one.
typicalPricenumber | nullAmazon's "typical price" market average, kept separate from a real list price so no invented discount appears.
ratingnumber | nullAverage star rating out of 5.
ratingsCountinteger | nullHow many customers rated it — a much larger number than the count of written reviews.
boughtInPastMonthstring | nullAmazon's "N+ bought in past month" badge text.
isPrimebooleanPrime eligibility as shown on the result.
isAmazonsChoicebooleanCarries Amazon's Choice / Overall Pick badge.
isBestSellerbooleanCarries the Best Seller badge.
badgestring | nullAny other badge text on the result.

Fields Amazon does not show for a product (for example a list price or a badge) are left out of that row instead of being returned as null. | deliveryText | string | null | The delivery promise Amazon printed. | | variantCount | integer | null | How many size/colour options the listing offers. | | scrapedAt | string | ISO timestamp of collection. |

Pricing

Pay-per-event. You are billed for what you actually receive.

You are chargedWhen
$0.60 per 1,000 search resultsFor every result written to the dataset.

Worked example. Five search terms at 200 results each gives 1,000 rows and costs $0.60.

Limits & what this actor cannot do

  • Amazon publishes a limited set of public results for any one search term — a few hundred at most. A larger limit returns what Amazon actually makes available rather than an unlimited catalogue. Amazon's own printed result count is a rough estimate and is deliberately not reported as a total.
  • Sponsored placements sit inside Amazon's own results. They are flagged so you can keep them or exclude them, but they cannot be made to disappear from the ordering Amazon actually served.
  • Prices, ranks, ratings and stock are a snapshot at the moment of collection and keep changing afterwards.
  • Prices and availability differ between Amazon marketplaces; results reflect the marketplace you select, in that marketplace's own currency.
  • Amazon does not publish a price for every product in a results list. Those products come back with an empty price rather than a guess, and they are not returned at all when a price filter is set.
  • Products that are removed, restricted or unavailable in the selected marketplace are reported as unavailable rather than returned empty.
  • Customer questions and answers are not publicly listed and are not returned.
  • Speed depends on the size of the job and on Amazon's own response times; no fixed throughput is promised.
  • Amazon's terms govern automated access. You are responsible for using the data lawfully and in line with the source site's terms, and for handling any personal data in line with applicable privacy law.

FAQ

Do I need an Amazon account? No. The actor only reads what Amazon publishes to anyone.

Does it need my login or password? No, and there is nowhere to enter one.

Can I schedule it? Yes. Schedule it on Apify like any other actor and diff the output over time to watch rank and price move.

Is the data complete? It is complete for what Amazon publicly serves. Amazon caps how deep any one search goes, so very large targets return the few hundred results Amazon actually makes available rather than an entire catalogue.

Why do some results have no price? Because Amazon showed none. That happens on real listings, and the actor reports it honestly rather than substituting a delivery fee or a related product's price.

What is the difference between position and organicPosition? position is where Amazon displayed the result, ads included. organicPosition counts only unpaid results, so it is the rank your listing holds on merit. Sponsored results have no organic position.