# Changelog of Amazon Product Scraper 🛒 (bulk keyword & ASIN export) (`tagadanar/amazon-product-scraper`) Actor

- **URL**: https://apify.com/tagadanar/amazon-product-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/tagadanar/amazon-product-scraper.md

## Changelog

### 2026-09-13

- **Fixed: missing prices on amazon.de, .fr, .it, .es and .co.uk.** Amazon only
  shows prices to someone it will deliver to, so European and UK searches came
  back with most prices missing, and product pages with no Buy Box. Searches and
  prices on those sites are now read from inside the site's own country, in the
  local currency with local delivery costs.
- **New on product pages:** `lowestNewPrice` and its seller, `otherOffersCount`,
  `shippingPrice`, `deliveryText`, `coupon`, `fulfilledByAmazon`, `priceRegion`.
- **Clearer "no price" rows:** `no-featured-offer` (sellers exist, no Buy Box),
  `no-offer` (checked twice), and `offers-unavailable` (not billed).
- A run that reaches its time limit stops taking new work and says what it
  skipped.

### 2026-09-08

- **Fixed: a round-dollar price could read a thousand times too low.** The rule
  for deciding which separator was the decimal one looked only at which came
  last, so a comma-grouped whole number with no decimals — `$1,500`, as Amazon's
  split price block renders it when the fraction span is missing — was read as
  the European `1.50`. A comma is now a decimal point only when one or two digits
  follow it, which leaves every European price reading exactly as before.

### 0.1.1 (2026-08-29)

- Internal proxy ladder, cheapest first: the container's own egress, then
  Apify's shared datacenter pool, then residential. It is re-decided every run
  and there is no proxy input — Amazon's answer to "does this IP get a page"
  flipped in both directions inside four days, so a verdict settled once at
  publish time would be wrong within the week.
- The product-page pass now suspends itself if a run is pushed onto the metered
  proxy class. A search card is 11.4 KB of wire and stays profitable there; a
  product page is ~480 KB, which costs more than the product-detail event
  charges. Affected rows carry status `not-fetched`, are never billed, and the
  run says so. Keyword results are unaffected.

### 0.1.0 (2026-08-28)

First release.

- Bulk extraction from search keywords, ASINs and product links across
  amazon.com, .co.uk, .de, .fr, .it and .es.
- One flat row per product: price, list price, discount, rating, review count,
  image, badges, coupon, delivery wording, stock wording, Prime and sponsored
  flags, plus the keyword, page and rank position that found it.
- Optional product page pass adds brand, Best Sellers Rank, stock, seller,
  the About this item bullets and the image gallery.
- Stops at Amazon's real result-depth limit of 20 pages per keyword instead of
  billing the filler page Amazon serves past the end.
- Rows from a blocked page, or from Amazon's cached price-less copy, are
  delivered with an explicit status and are never charged.
- A refused request is retried on both TLS fingerprints with fresh cookies and a
  5s/20s/45s backoff, because Amazon's 503 is a throttle that clears with time.
  A run that is refused anyway says "Blocked by Amazon" and names what it tried,
  and never reports a refusal as "no results".
- A keyword with no matches is reported from Amazon's own result count, so the
  unrelated suggestion cards Amazon renders on that page are not shipped as
  results.
- The route to Amazon is now chosen automatically, cheapest first, and re-decided
  on every run rather than fixed in advance. The run summary names the route that
  delivered the pages. There is still nothing to configure.
