Amazon Product Search & Bestsellers Scraper avatar

Amazon Product Search & Bestsellers Scraper

Pricing

from $2.50 / 1,000 product results

Go to Apify Store
Amazon Product Search & Bestsellers Scraper

Amazon Product Search & Bestsellers Scraper

Scrape Amazon search results, Best Sellers and New Releases by keyword or URL on 7 marketplaces: ASIN, title, price, list price, rating, reviews, badges, sponsored flag, position, Prime and delivery. On amazon.com: ASIN lookups, product details, ZIP pricing. No browser needed, pay per result.

Pricing

from $2.50 / 1,000 product results

Rating

0.0

(0)

Developer

Yevhenii Molodtsov

Yevhenii Molodtsov

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

20 hours ago

Last modified

Share

Scrape Amazon search results, Best Sellers and product data

This Amazon scraper turns Amazon search results, Best Sellers and New Releases lists, and product pages into clean, structured data. Give it keywords, Amazon URLs or ASINs and get one row per product: ASIN, title, price and list price, rating, review count, badges, sponsored flag, search position, Prime and delivery info. Export it as JSON, CSV or Excel, or pull it through the API.

It sends plain HTTP requests, with no browser, and retries blocked pages automatically. You don't need a login, cookies or proxy setup. The output is compatible with the common Amazon scraper output format, so existing pipelines keep working when you switch.

Typical runs: about 900 search results for three keywords (up to 300 each) in 2–3 minutes, the top 600 of six Best Sellers lists in under 30 seconds, and product details at roughly 2–3 seconds per product.

Who it's for:

  • Amazon sellers and brands: track keyword rankings, competitor prices, coupons and badges.
  • Product researchers: size a niche by price, rating, review count and "bought in past month" volume.
  • Category and trend watchers: monitor Best Sellers and New Releases on a schedule.
  • Developers and analysts: feed Amazon data into dashboards, spreadsheets, databases or AI agents.

What data do you get?

Every search, Best Sellers or New Releases row includes:

FieldWhat it contains
asin, title, urlAmazon product ID, product title and product link
brandBrand name, when Amazon shows it on the result card
price, listPriceCurrent price and the struck-through list price as { value, currency }
pricePerUnitUnit price, e.g. { "value": 4.5, "currency": "USD", "unit": "count" }
stars, reviewsCountAverage rating and number of ratings
badges, isBestSeller, isAmazonChoice, amazonChoiceTextBest Seller, Amazon's Choice / Overall Pick and deal badges
isSponsoredtrue for sponsored (ad) placements
categoryPageData.productPosition, categoryPageData.pageNumberPosition on the results page, and the page number
organicPositionOverall organic rank across all pages, not counting ads
isPrime, delivery, isFreeDeliveryPrime eligibility, delivery text and free-delivery flag
couponCoupon text, e.g. "You pay $48.99 with coupon"
monthlyPurchaseVolumeAmazon's "bought in past month" label, e.g. "20K+ bought in past month"
offersCount, offersLowestPriceNumber of other offers and the lowest offer price
variationsCount, variantAsinsNumber of variants (colors, sizes) and their ASINs
thumbnailImage, highResolutionImagesThumbnail and full-resolution image URLs
locationText, loadedCountryCodeDelivery location the prices were loaded for, and the marketplace country
bestsellerPageDataOn Best Sellers / New Releases rows: rank (position), categoryName, categoryFullName, categoryUrl
searchQuery, input, scrapedAtThe keyword or URL that found the product, and the scrape time

With Scrape product details on (amazon.com), each product also gets data from its own page: the feature bullets, full description, all images, seller, Best Sellers ranks in every category, stock status, variants and delivery. ASIN lookups always return these details.

How to scrape Amazon

  1. Enter search keywords, paste Amazon URLs (search, category, Best Sellers, New Releases or product pages), or list ASINs.
  2. Pick the marketplace and sort order for keywords, and set max results per keyword or URL.
  3. Click Start, then download the results or open the Overview table.

Example input: two keyword searches on amazon.com plus the top 100 Best Sellers in Electronics.

{
"keywords": ["wireless earbuds", "coffee maker"],
"categoryOrProductUrls": [
{ "url": "https://www.amazon.com/gp/bestsellers/electronics" }
],
"marketplace": "amazon.com",
"sort": "relevanceblender",
"maxItemsPerStartUrl": 100
}

Run it through the API

Call the Actor from your own code with the official Apify clients.

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('xmolodtsov/amazon-search-scraper').call({
keywords: ['wireless earbuds', 'phone case'],
marketplace: 'amazon.com',
maxItemsPerStartUrl: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
from apify_client import ApifyClient
client = ApifyClient(token="YOUR_APIFY_TOKEN")
run = client.actor("xmolodtsov/amazon-search-scraper").call(
run_input={"asins": ["B078NN17K3", "B07S98411N"], "marketplace": "amazon.com"},
)
items = client.dataset(run["defaultDatasetId"]).list_items().items

Use it from an AI agent (MCP)

Connect your MCP client to https://mcp.apify.com?actors=xmolodtsov/amazon-search-scraper and the agent can search Amazon, read Best Sellers lists or look up ASINs as a tool call. The usual pricing and free-plan limits apply.

How much does it cost to scrape Amazon?

This Actor is priced pay per result. You pay for products saved to the dataset, plus an optional add-on for each product enriched with its product page. Platform usage is included: there's no separate bill for compute or proxies. The price depends on your Apify plan:

Apify planPer 1,000 resultsProduct details add-on, per 1,000 products
Free$4.00$1.00
Starter$3.50$1.00
Scale$3.00$1.00
Business and higher$2.50$0.75

Worked examples on the Starter plan:

  • 5 keywords × 200 results = 1,000 results → $3.50
  • Top 100 Best Sellers in 10 categories = 1,000 results → $3.50
  • 1,000 ASINs looked up with full product details → $3.50 + $1.00 = $4.50

Runs that return nothing cost nothing. Setting a delivery ZIP code is free. You can also set a maximum cost per run in the run options, and the Actor stops cleanly when it reaches it.

Is it free?

You can try it for free. Apify's Free plan includes a monthly usage credit that you can spend on pay-per-result Actors like this one, with no payment method required. On the Free plan, this Actor is limited to 10 results per run and 5 runs per calendar month (the counter resets on the 1st). The developer sets these limits, not Apify. Each free run says so in its status message. Once you've used the monthly runs, the next run ends successfully with an explanation and no charge. Any paid Apify plan removes these limits.

Input

FieldTypeDefaultWhat it does
keywordsarray of stringsnoneSearch terms, one per line, searched on marketplace
categoryOrProductUrlsarray of { "url": … }noneSearch (/s?k=…), category (/b?node=…), Best Sellers (/gp/bestsellers/…, /zgbs/…), New Releases and product (/dp/ASIN, amazon.com) URLs; the marketplace comes from each URL
asinsarray of stringsnoneASINs to scrape full product pages for (amazon.com only); each is charged as a result plus the product details add-on
marketplacestringamazon.comSite for keywords and ASINs: amazon.com, amazon.co.uk, amazon.de, amazon.fr, amazon.it, amazon.es or amazon.ca
sortstringrelevanceblenderAmazon's sort orders: relevanceblender (Featured), price-asc-rank, price-desc-rank, review-rank, date-desc-rank, exact-aware-popularity-rank (Best sellers)
zipCodestringnone5-digit US ZIP code: amazon.com prices and delivery for that location
maxItemsPerStartUrlinteger100Max products per keyword or URL (1–10,000); the Free plan caps a whole run at 10
maxSearchPagesPerStartUrlinteger400Max result pages per keyword or URL
includeSponsoredbooleantrueKeep sponsored cards (always flagged with isSponsored)
scrapeProductDetailsbooleanfalseOpen each product page and add its details (amazon.com; charged as the add-on)
proxyConfigurationobjectautomaticOptional. The Actor picks the right Apify Proxy exit for each marketplace by default

One run accepts up to 1,000 keywords and URLs, which are scraped in parallel.

Tips for better results

Set a delivery ZIP code. Amazon shows prices, availability and delivery dates for a specific delivery location. Set zipCode (e.g. 10001) to see amazon.com results the way a shopper in that area sees them, at no extra cost. If you leave it empty, Amazon picks a US location itself. The location is recorded in locationText.

Use category URLs to go deeper. Amazon stops a plain keyword search at about 300 results. If you scope the search to a department, for example https://www.amazon.com/s?k=lego&i=toys-and-games, Amazon serves up to 400 result pages instead. Filters you apply on Amazon (price range, brand, rating, Prime) stay in the URL, so filter on the site, copy the URL and paste it in.

Turn on product details only where you need them. Listing rows already include price, rating, reviews, badges and delivery. Turn on Scrape product details when you need feature bullets, descriptions, all images, the seller or Best Sellers ranks. The add-on applies only to products that were actually enriched.

Batch keywords in one run. Add all your keywords to a single run rather than starting one run per keyword. They're scraped in parallel, and a product found by several keywords is saved only once.

Output

Each product is one item in the dataset. Example item from a keyword search on amazon.com (ZIP code 10001):

{
"title": "BLACK+DECKER 12-Cup Drip Coffee Maker with Vortex Brewing",
"url": "https://www.amazon.com/dp/B01GJOMWVA",
"asin": "B01GJOMWVA",
"brand": null,
"price": { "value": 29.73, "currency": "USD" },
"listPrice": { "value": 34.99, "currency": "USD" },
"stars": 4.4,
"reviewsCount": 50567,
"thumbnailImage": "https://m.media-amazon.com/images/I/61Rdl5C2AHL._AC_UL320_.jpg",
"highResolutionImages": ["https://m.media-amazon.com/images/I/61Rdl5C2AHL.jpg"],
"locationText": "Deliver to New York 10001",
"loadedCountryCode": "US",
"input": "coffee maker",
"scrapedAt": "2026-10-03T13:09:14.535Z",
"isAmazonChoice": true,
"amazonChoiceText": "Overall Pick",
"isBestSeller": false,
"isPrime": true,
"isSponsored": false,
"monthlyPurchaseVolume": "20K+ bought in past month",
"delivery": "FREE delivery Thu, Oct 8 on $35 of items shipped by Amazon",
"isFreeDelivery": true,
"coupon": null,
"badges": ["Overall Pick", "Early Prime Big Deal"],
"pricePerUnit": null,
"offersCount": null,
"offersLowestPrice": null,
"variationsCount": 2,
"variantAsins": ["B01GJOMWVA", "B01GJOMWYC"],
"searchQuery": "coffee maker",
"organicPosition": 1,
"categoryPageData": {
"categoryUrl": "https://www.amazon.com/s?k=coffee+maker",
"isSponsored": false,
"bestsellerBadge": null,
"productPosition": 1,
"pageNumber": 1
},
"bestsellerPageData": null
}

The Overview view in the Output tab shows the key columns. This preview is from a real run for the keyword "yoga mat" on amazon.com:

Amazon search scraper output: products with image, ASIN, title, price, stars, reviews and search position

Guarantees and failure semantics

Blocked pages are retried, then reported. Amazon sometimes blocks a request. The Actor retries blocked pages automatically and reports any keyword or URL that stayed blocked.

When a run fails. A run is marked FAILED, so that your retries and alerts fire, when:

  • no products were saved and at least one keyword or URL stayed blocked after retries, or
  • more than 20% of the keywords and URLs, and more than two, stayed blocked after retries (the products saved from the others stay in the dataset), or
  • the input is invalid (for example an unsupported marketplace, a malformed ASIN or ZIP code), or Amazon rejects the delivery ZIP code.

When blocks fail a run, its status message starts with a reason code such as blocked:, timeout: or network:, followed by a short summary.

When a run succeeds. If only a few keywords or URLs are blocked, you get the rest, and the status message lists the ones that were blocked and the ones that stopped early after blocks, so you can re-run just those. A run that returns no products because Amazon had none for your search ends SUCCEEDED. Stopping at your maximum cost per run or at the Free plan cap is also a normal SUCCEEDED run.

What you pay for. Only products saved to the dataset, plus the details add-on for products that were actually enriched. A run with no results costs nothing. If a product page stays blocked, the product is still saved with its listing data and no add-on is charged. An ASIN that Amazon doesn't know returns no row and isn't charged.

Run statistics. Each run's key-value store holds a STATISTICS record with item, page, request and blocked-attempt counts for monitoring.

Integrations

  • Apify API and clients: start runs and read results from any language, or with the JavaScript and Python clients.
  • Schedules: run daily price, ranking or Best Sellers checks.
  • Webhooks: get notified or trigger your own endpoint when a run finishes or fails.
  • Exports: download datasets as JSON, CSV, Excel or XML.
  • Google Sheets, Zapier, Make and n8n: send products to a spreadsheet or the next step of a workflow.

More scrapers from this developer

TikTok: TikTok Search Scraper: videos and creators for any keyword, pay per result · TikTok Profile Scraper (Pay Per Result): profiles, followers and latest posts by username · TikTok Comments Scraper: comments and full reply threads from any video · TikTok Hashtag Scraper: videos for any hashtag, with views, likes and music · TikTok Sound & Music Scraper: videos that use a sound or song

Social & news: Reddit Search Scraper: posts by keyword, subreddit or author · Google News Scraper: Google News results as clean full-text articles

E-commerce: Prom.ua Product Search Scraper: Prom.ua product search results, no browser needed

Maps & leads: Google Maps Scraper: places, leads and emails from Google Maps

Ads: Facebook Ad Library Scraper (Meta Ads Library): ads from the Meta Ad Library, with EU reach and payers

Video: YouTube Transcript Scraper: transcripts, subtitles and captions from YouTube videos

FAQ

This Actor collects only publicly available product data: what any visitor sees on Amazon without logging in. It never signs in and never touches account or order data. Product listings are generally not personal data, but some fields can be (for example, a seller who trades under their own name). If you process personal data, comply with laws such as the GDPR and CCPA, and use the data only for legitimate purposes. You are responsible for how you use the results. Rules vary by country and use case, so consult your legal counsel if you're unsure. For background, see Apify's guide Is web scraping legal?

How many results can I get per keyword?

A plain keyword search ends at about 300 results. That's Amazon's own limit, not this Actor's. Add a department or category to the search URL to reach up to 400 result pages. Best Sellers and New Releases lists end at rank 100.

Does it include sponsored results?

Yes. Sponsored cards are included and flagged with isSponsored, and organicPosition skips them. Set includeSponsored to false to drop them. Amazon decides how many ads each visitor sees, so sponsored counts vary between runs.

Which Amazon marketplaces are supported?

amazon.com, amazon.co.uk, amazon.de, amazon.fr, amazon.it, amazon.es and amazon.ca. Prices come in each marketplace's currency, as an ISO code such as USD, GBP or EUR. Product details, ASIN lookups and the ZIP code option are available on amazon.com.

Why aren't Movers & Shakers, Most Wished For and Gift Ideas supported?

Amazon serves those lists empty to visitors who aren't logged in, so there's nothing to scrape. Best Sellers and New Releases lists are fully supported.

Will I get duplicate products?

No. A product found by several keywords or search URLs is saved once per run. Best Sellers and New Releases rows are deduplicated per list, so a product ranked in two lists gets one row in each, with its rank in that list.

Does it work with my existing Amazon data pipeline?

The output is compatible with the common Amazon scraper output format: the same field names (price, stars, reviewsCount, categoryPageData, bestsellerPageData and so on) and the same input keys (categoryOrProductUrls, maxItemsPerStartUrl, maxSearchPagesPerStartUrl, scrapeProductDetails). Most integrations work unchanged.

Support

Found a bug or need a field? Open an issue in the Issues tab.