Amazon Scraper — Search, Products & Best Sellers (No Login) avatar

Amazon Scraper — Search, Products & Best Sellers (No Login)

Pricing

from $1.00 / 1,000 search results

Go to Apify Store
Amazon Scraper — Search, Products & Best Sellers (No Login)

Amazon Scraper — Search, Products & Best Sellers (No Login)

Pricing

from $1.00 / 1,000 search results

Rating

0.0

(0)

Developer

Bruno Aguilera Silva

Bruno Aguilera Silva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Amazon Scraper — Search, Products & Best Sellers (No Login)

Extract Amazon data from search results, product pages and Best Sellers lists in four marketplaces: amazon.com, .com.mx, .com.br and .co.jp. Prices as numbers with their currency, exact rating counts with the 1–5 star breakdown, Best Sellers Rank and product details, in one consistent output format.

Built for reliability: browser-grade connections, automatic retries on blocked pages, and you only pay for results delivered.

Public pages only. No login, no CAPTCHA solving.

What you get

  • Search, product details and Best Sellers in one actor, with one output format.
  • You only pay for results. Blocked pages, retries and empty searches are never charged.
  • Exact ratings, not "1.6K". With includeRatingsHistogram (on by default) every search result, Best Sellers item and product detail gets the exact number of ratings and the 1–5 star breakdown.
  • Prices you can compute with. price.value is a number and price.currency an ISO code read from the price Amazon shows.
  • Transparent about the connection. Every record says in fetchTier whether it came through a datacenter or a residential IP, and the final status message reports blocked pages recovered and lost.

Use cases

  • Market research: what sells, at what price and with what rating, in a category or keyword.
  • Best Sellers tracking: snapshots of the top 100 in any category.
  • Catalog enrichment: titles, features, images and attributes for a list of ASINs.

Quick start

Search results:

{
"mode": "search",
"searchTerms": ["wireless earbuds"],
"marketplace": "amazon.com",
"maxItemsPerStart": 50
}

Product details for a list of ASINs:

{
"mode": "product",
"asins": ["B09FT58QQP", "B0C2W1KLSS"],
"marketplace": "amazon.com"
}

Top 100 Best Sellers of a category:

{
"mode": "bestsellers",
"startUrls": [{ "url": "https://www.amazon.com/gp/bestsellers/electronics" }],
"maxItemsPerStart": 100
}

Input

The input is checked before anything runs or is charged. A field the actor does not read, an input the chosen mode does not use (for example asins in search mode), or a feature that is not available yet makes the run fail at once with a message that says what to change. Nothing is silently ignored.

FieldTypeDefaultDescription
modeenumsearchsearch, product or bestsellers. product works on amazon.com, amazon.com.mx and amazon.com.br.
searchTermsstring[][]Keywords for search mode. With no input at all, the actor searches "wireless earbuds" on amazon.com; if you pick a marketplace and leave this empty, it searches a headphones term in that marketplace's language.
asinsstring[][]ASINs for product mode. An invalid ASIN produces an error row and is not charged.
startUrlsURL[][]Amazon URLs of the mode's type: search and category URLs (/s?k=…, /s?rh=…, /b?node=…) in search, product URLs (/dp/ASIN) in product, Best Sellers URLs (/gp/bestsellers/…, or the /Best-Sellers-…/zgbs/… links from Amazon's menu) in bestsellers. The marketplace comes from each URL's domain. A category URL keeps its filters, sort order and page. Any other page (deals, stores, New Releases, the Best Sellers home page without a category, a search without a term, an invalid page, or a page in another language such as /-/es/ or language=es_US) is rejected before the run starts, with the reason. Each marketplace is read in its default language. Duplicate inputs (the same term, ASIN or URL twice) are fetched once and each duplicate gets its own skipped summary row. If Apify migrates the run to another server, results already delivered are not delivered or charged again. The same product or page given twice is fetched and charged once, including overlapping pages of the same search (/s?k=x and /s?k=x&page=2): no page and no product is charged twice across them. Best Sellers mode needs at least one Best Sellers URL.
marketplaceenumamazon.comAmazon site used for searchTerms and asins.
maxItemsPerStartinteger50Maximum results per search term, URL or category.
maxPagesinteger20Maximum result pages per search or category.
maxItemsinteger500Maximum results for the whole run.
scrapeProductDetailsbooleanfalseIn search and bestsellers modes, open every product and return the full product record (charged as product details). Only on amazon.com, amazon.com.mx and amazon.com.br.
includeRatingsHistogrambooleantrueAdd the exact rating count and the 1–5 star breakdown.
allowResidentialFallbackbooleantrueIf a page is still blocked after 7 attempts on datacenter IPs, use residential IPs for the last 3 attempts. A page lost after all 10 attempts gets one more round of 5 attempts about a minute later (at most 2 pages per run), because Amazon's blocks are often short bursts.
proxyConfigurationobjectApify datacenter proxyDatacenter proxy (useApifyProxy, optional datacenter group, country US only) or your own proxyUrls.
maxResidentialMBinteger200Residential traffic limit per run (0–500), measured with a conservative estimate of what the proxy bills. When it is reached, retries stay on datacenter IPs and pages that still fail are reported as blocked and not charged.

Output

Product (type: "product"), from a product page (detailLevel: "full"):

{
"type": "product",
"asin": "B09FT58QQP",
"marketplace": "amazon.com",
"url": "https://www.amazon.com/dp/B09FT58QQP",
"title": "TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones",
"brand": "TOZO",
"price": { "value": 13.96, "currency": "USD", "raw": "$13.96" },
"listPrice": { "value": 19.99, "currency": "USD", "raw": "$19.99" },
"availability": "In Stock",
"inStock": true,
"buyBoxSeller": { "name": "Worgo", "id": "A1B1TP8XQ7ZVJZ" },
"stars": 4.3,
"ratingsTotal": 118394,
"ratingsHistogram": { "5": 67, "4": 15, "3": 8, "2": 4, "1": 6 },
"bestsellerRanks": [{ "rank": 18, "category": "Electronics" }, { "rank": 1, "category": "Sleep Earbuds" }],
"categoryPath": ["Electronics", "Headphones, Earbuds & Accessories", "Headphones & Earbuds", "Earbud Headphones", "Sleep Earbuds"],
"features": ["…"],
"images": ["https://m.media-amazon.com/images/I/….jpg"],
"attributes": { "Brand": "TOZO" },
"detailLevel": "full",
"fetchTier": "datacenter",
"scrapedAt": "2026-10-22T07:10:12.000Z"
}

Fields that Amazon does not show for a product are null (or an empty list). A few things worth knowing:

  • Search results (detailLevel: "card") carry what the result card shows: title, price, list price, stars, searchPosition, page and isSponsored. page is Amazon's result page; searchPosition counts from 1 on the first page the actor fetched for that search (a start URL with page=3 starts counting there). Card rating counts are rounded by Amazon ("4.3K"): then ratingsTotal is null and ratingsTotalApprox has the rounded number; with includeRatingsHistogram you get the exact count.
  • Best Sellers lists have 50 items per page. Amazon renders full data for about 30 of them; the rest come with asin, url, bestsellerRank and, with includeRatingsHistogram, stars and ratings. Turn on scrapeProductDetails to complete them.
  • Local prices. The actor asks for each marketplace's own currency and, when a page hides prices, sets a guest delivery location in a large city of that country (for example New York 10001 on amazon.com, Mexico City 06600 on amazon.com.mx, São Paulo 01310-100 on amazon.com.br), the same "Deliver to" choice any visitor can make without an account. Prices and availability are therefore the ones a shopper in that city sees. price.currency always reflects the text Amazon showed.
  • Some products only show their price after being added to the cart ("See price in cart"), and some sellers do not ship to the marketplace's default location. The actor never adds anything to a cart, so price is null on those records. With scrapeProductDetails, when the product page shows no price but the search or Best Sellers card did, the card's price is used. In search mode, when a result card shows no price ("Click to see price", products with several options), the actor reads the price from that product's page once, at no extra charge.
  • stars is null for products without reviews (never 0). With includeRatingsHistogram, stars comes from the same ratings breakdown as the histogram.
  • isPrime is true when the Prime badge is visible, otherwise null. Amazon hides the badge from most visitors who are not signed in, so expect null on most records; do not read null as "not Prime".
  • ratingsHistogram values are percentages, as Amazon publishes them. It is null when the product has no ratings.
  • listPrice is only the struck-through "was" price shown by Amazon, as Amazon shows it (it is not validated; it is null when it equals the price). Unit prices ("€12.82/kg") and instalment prices are not list prices and are not returned there.

If two requested ASINs lead to the same product page (merged or redirected ASINs), the product is delivered and charged once; the second ASIN gets a skipped summary row saying so. A definitive HTTP error from Amazon (for example 410) is reported as error and not retried. Every product record carries a start field with the search term, URL or ASIN that produced it: the same product found by two different searches is delivered (and charged) once per search, and start tells them apart; with scrapeProductDetails it is delivered once per run. Search terms are limited to 200 characters and URLs to 2,000. proxyConfiguration takes either the Apify datacenter proxy (optionally a datacenter group and a country) or your own proxyUrls, not both; residential and Google SERP groups are rejected, and if the proxy refuses the connection, or your own proxy cannot be reached, the run fails with that reason instead of retrying.

Each start (search term, ASIN or URL) also produces a free type: "run_summary" row with its status (ok, empty, blocked, not_found, error, or skipped when the run reached maxItems or its charge limit before that start, or another start URL already covers the same pages), results, pages fetched, blocked pages recovered and lost, and residential traffic used. It is never charged.

Pricing

You pay per result delivered: a search result, a product detail or a Best Sellers item. Run summaries, error rows, blocked pages, retries and empty searches are not charged. Set a maximum cost per run and the actor stops cleanly when it is reached. The current prices are shown on the Pricing tab.

Supported marketplaces

Search and Best Sellers: amazon.com, amazon.com.mx, amazon.com.br and amazon.co.jp.

Product details (product mode and scrapeProductDetails): amazon.com, amazon.com.mx and amazon.com.br. On amazon.co.jp, asking for product details returns a clear error before anything runs or is charged.

ASINs can differ between marketplaces: a product that exists on amazon.com may not exist on amazon.com.mx (it appears as not_found).

Default run

With no input, the actor searches amazon.com for "wireless earbuds" and returns up to 50 products, usually in 1–4 minutes. If Amazon blocks a page, the actor retries it (up to 10 attempts, then one more round a minute later); a search that stays blocked is reported as blocked and not charged.

Limits

  • Public pages only. The actor never signs in, so it does not return the paginated review list, which Amazon only shows to signed-in users.
  • Amazon blocks some requests. The actor retries with a new connection and, if needed, a residential IP, up to your maxResidentialMB. If a page cannot be fetched it is reported as blocked in the run summary and not charged.

Roadmap

Not available yet; listed so you know what is planned. Nothing here is promised for a date.

  • Seller offers (offers mode and includeOffers).
  • Public reviews shown on the product page, with star and verified-purchase filters, and Amazon's "Customers say" summary.
  • Price-change monitoring (onlyChanged): return only products whose price or availability changed since the previous run.
  • Delivery location (zipCode).
  • Product variations.
  • More marketplaces (France, Italy, Spain, Canada, Australia, Netherlands and others).

FAQ

Why is a price missing? Some products have no featured offer or are unavailable, or Amazon does not ship them to the location of the connection used.

Is this affiliated with Amazon? No. It is an independent tool that collects publicly visible information from Amazon pages.

Support

Open an issue in the Issues tab. Issues are answered within 48 hours. Changes to output fields are announced in the changelog and never break existing fields.