# Changelog of Bulk Image Downloader API: Save Page Images with Sizes (`rowcraft/bulk-image-downloader`) Actor

- **URL**: https://apify.com/rowcraft/bulk-image-downloader/changelog.md
- **Full Actor documentation**: https://apify.com/rowcraft/bulk-image-downloader.md

## Changelog

### 1.0.1 (2026-10-17)

- README: real screenshots of the input form and of a results table from Apify Console; the Use cases section links the public examples.

### 1.0.0 (2026-10-17)

- First release: the images of a list of web pages (and of direct image links) saved in the run's key-value store, one row per image saved with width, height, format, size in bytes, SHA-1, file key and download link.
- Images are found in `<img>` (including the lazy-loading attributes `data-src`, `data-lazy-src`, `data-original`), `srcset`, `<picture><source>` and `og:image`; optionally in links to image files and in inline CSS `background-image`. By default one file per picture (its largest listed version); `allSizes` saves every listed version.
- Format, width and height are read from the file header (jpeg, png, gif, webp, avif, svg, bmp, ico, tiff); no metadata is read or delivered. Filters: minimum width and height (default 100 x 100 px), formats, images per page, largest file (default 15 MB), duplicates by SHA-1.
- robots.txt is read and obeyed on the page host and on every image host, a Crawl-delay is applied up to 10 s, one request per second per host by default (minimum 250 ms), private addresses refused on the platform, redirects followed by hand, no proxies, no CAPTCHA solving.
- `COVERAGE` lists every page and every image that was not saved (too_small, format_filtered, duplicate, unchanged, too_large, not_image, not_found, blocked, robots_disallowed, error, not_checked); only saved images are charged.
- Standard Rowcraft automation: an image is saved again only when its content changed (`onlyNew`, `stateName`), end-of-run notification (`notifyUrl`), charge cap respected, stop with the summary saved 90 seconds before the run timeout.
