# Changelog of Boozt Product Scraper \[💰$1.8] — Nordic Fashion Prices & Stock (`blackfalcondata/boozt-com-scraper`) Actor

- **URL**: https://apify.com/blackfalcondata/boozt-com-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/blackfalcondata/boozt-com-scraper.md

## Changelog

All notable changes to this Actor are documented here.

### \[Unreleased]

#### Fixed

- Runs with Include Full Details on now read product pages ten at a time instead of five, so a 100-product run finishes noticeably faster.
- Memory use is capped below the run's memory limit, so a very large run ends cleanly instead of being killed.
- A search or product page the site turns away is now tried more times before it is given up, so a run no longer fails on its first search page when the site is refusing many requests.
- A connection that stops answering no longer fails the whole search: the page is fetched again over a fresh connection, so a run that used to end with "Failed to scrape" and no results now completes.
- A run you stop yourself now shuts down cleanly: an incremental run that is stopped can be started again straight away instead of being turned away as "already running".

### \[0.1.7] — 2026-10-04

#### Fixed

- A brief connection failure while reading a search or product page is now retried instead of ending the run or leaving that page out.
- Incremental runs can be started again right after the previous one finishes; a second run within 30 minutes no longer ends early as "already running".
- Emit Expired Records now delivers: products that disappeared since the last run come back as rows with `changeType` EXPIRED (with the title, brand, URL and price remembered from earlier runs). They count against Max Results and your cost limit.
- Description Format `html` and `markdown` now deliver content: descriptions are provided as `descriptionHtml`, `descriptionMarkdown` and `descriptionText`. A row without that variant keeps its plain `description` instead of losing it.
- Skip Reposts works: each product carries a `contentHash` (brand, title, colour and store), so a product relisted under a new id after an earlier one expired is recognised (`isRepost`, `repostOfId`).
- Incremental change detection now also notices changes to the deal price, original price, stock status and available sizes.
- New `gtin13` field: per-size GTIN-13 barcodes (with Include Full Details on). `eanId` is Boozt's internal id, not a barcode; the store copy now says so.
- When search pages repeat products, the run reads further pages to reach Max Results.
- A mistyped store is rejected also when start URLs are given but none is recognised; start URLs given as `{ "url": "..." }` objects are accepted.
- Price history only advances for products that were actually delivered, so a price change held back by a limit is reported on the next run.
- Detail pages are fetched only for products that will be delivered (not for unchanged ones or ones past your limits).
- Price-change fields (`previousPrice`, `priceChange`, `priceChangePct`, `priceChangedAt`) and the repost fields are listed in the dataset view; the price-change fields also appear in compact output.

#### Changed

- Incremental mode compares the first Max Results results in Boozt's relevance order; this is now stated in the input descriptions (set Max Results to 0 to track everything). Start URL filters, sort and page parameters are ignored (also stated).
- Upgrade note: state saved by earlier versions is compared with the earlier change-detection fields once, so products do not all turn UPDATED on the first run after upgrading; deal price, original price, stock and size changes are detected from the second run on.
- Store copy no longer mentions filters that do not exist.

### \[0.1.6] — 2026-10-04

#### Fixed

- With several search terms or start URLs, each product now shows the search term that actually found it.
- A misspelled `location` (anything other than the store's country/language, like `se/sv`) now stops the run with a clear message instead of quietly scraping the Danish store.
- When product pages cannot be opened, the run log and run status now say how many products are missing detail fields.
- `inStock` is empty instead of `false` when Boozt does not report stock for a product.

### \[0.1.3] — 2026-10-04

#### Fixed

- A run that cannot read the source now ends as failed instead of finishing successfully with no results.
- Start URLs work: paste a Boozt search result URL and the store and search term are read from it.
- Your maximum cost per run is respected up front — the run stops collecting once the limit is reached instead of continuing to scan.
- Searching several stores in one run now returns each store's products; the same product in a second store is no longer dropped as a duplicate.
- When some result pages cannot be read, the run status now says the results are incomplete.

### \[0.1.0] — 2026-10-03

Initial release.

#### Added

- Scrape products from boozt.com.
