# Changelog of Amazon Product Scraper | $1.00 per 1K Results (`tovuk/amazon-product-scraper`) Actor

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

## Changelog

### 1.0

- Added a closed, bounded input contract for queries, URLs, ASINs, marketplaces, delivery context, pagination, projection, and timeout controls.
- Added normalized Amazon product and commerce output fields with six focused Dataset views, including diagnostics.
- Added verified catalog, rank, rating-distribution, offer, seller, fulfillment, variation, primary-media, and detail-provenance fields without opening the Dataset boundary to unknown service data.
- Added runtime-backed rating, review-count, title, sponsored, nested-review, date, sort, and page-concurrency controls without exposing validation-only fields.
- Added durable `CONTINUATION`, billed Dataset diagnostics with a `DIAGNOSTIC` key-value-store copy, and validated `RUN_SUMMARY` records.
- Added spending-limit-aware, page-at-a-time Dataset publishing with cursor and result bounds.
- Added lossless cursor pagination with cycle and no-progress detection instead of an arbitrary page ceiling.
- Added a closed Amazon Dataset field boundary with runtime type, enum, length, collection, nested-object, and final item-size validation.
- Added credential-free HTTPS validation and sensitive-query rejection for Amazon identity, seller, and public media URLs.
- Added URL-page-aware operation matching, exact ASIN entity provenance, and one deterministic marketplace across named targets, generated targets, source URLs, and result identity URLs.
- Added normalized target deduplication and international Unicode city hints to reduce repeated work without narrowing marketplace coverage.
- Added bounded network retries for idempotent reads and an absolute run deadline.
- Added safe HTTP ownership for input, service authorization, and request-lifecycle failures without reading error bodies.
- Added request-identity pinning across every poll so a response cannot switch a run to unrelated data.
- Added separate fetched and published item counts to successful run summaries.
- Added explicit fetched and published product counts plus diagnostic presence and details to successful run summaries.
- Added exactly one billed, agent-readable diagnostic Dataset item for handled empty, invalid, and recoverable zero-product outcomes when event capacity remains.
- Set release pricing to one tiered Dataset-item event, at `$1.00` per 1,000 product or diagnostic items on every paid plan and `$100.00` per 1,000 on Free, with no start fee, add-on events, or platform-usage surcharge.
- Added successful diagnostic completion for handled outcomes plus an isolated compiled-entrypoint regression that enforces a zero exit, an exact diagnostic shape, and no customer-visible stack or source-location diagnostics.
- Uses TypeScript 7 with strict native Go type checking, Rust linting, and Rust formatting across all maintained source and tests.
- Added automated PPE accounting, exact-final-event stopping coverage, platform adapter, public-surface, schema congruency, and data-boundary coverage without manually charging Apify synthetic events.
- Added executable validation for all eight prepared Task inputs and regional context in the pricing Dataset view.
- Reduced the production image to compiled runtime code and production dependencies.
- Added a public-safe README with marketplace, operation, pricing, limitation, privacy, and troubleshooting guidance.
- Removed the public 1,000-result ceiling: `maxItems: 0` now streams without a separate item cap, while large listing runs use bounded 1,000-result internal requests with global deduplication and positions.
- Removed same-market navigation and category URLs from `sellerUrl` while preserving validated seller storefront URLs.
- Preserved source search-page provenance alongside result position in validated Dataset rows and views.
- Aligned the Store title and regular description with current Apify discoverability guidance while keeping Console SEO metadata as a separate publishing surface.
- Replaced free-form output projection with an exact 86-field selector synchronized to the 88-property product Dataset contract.
- Added native date-picker inputs and exact calendar-date validation for nested review filters.
- Added the user-selected Amazon "a" and smile PNG icon.
- Fixed visible Amazon HTML taking precedence over stale JSON-LD prices, locale-grouped French counts, caller target order, direct-target completeness, no-buy-box offer fallback, A+ images, deal badges, and Important Information extraction.
- Added repeat-safe cross-request deduplication, per-page opaque cursor checkpoints, first/last request identity, and explicit complete, item-limit, or spending-limit continuation outcomes.
- Added deterministic request-creation idempotency, exact in-flight request recovery, signed cross-run continuation of a lost create response, platform-timeout checkpoint margin, and default Dataset plus Request Queue reconciliation.
- Removed the Actor-visible 1,000-page ceiling: source page 1,001 and later now follows an opaque backend continuation cursor without unsupported page arithmetic.
- Keeps one current public contract using `marketplace`, `deliveryLocation`, `url`, canonical camelCase service responses, and explicit `firstRequestId`.
