Media · Apify actor
Save every image from a list of pages, as links and one ZIP
Download all images from any list of web pages, or a plain list of image URLs, and get each one back as a public link plus one ZIP file. It finds lazy-loaded pictures, the largest srcset variant, og:image and CSS backgrounds, removes duplicates, and can filter, convert and resize.
Launching soon. Bulk Image Downloader is built, tested and priced, and is waiting to go public on the Apify Store. The button below opens its Store page, which will be live shortly.
What it does
Bulk Image Downloader, in short
- Finds
<img>and lazy-load attributes, the largestsrcset/<picture>variant,og:image, Twitter cards, image links and CSS backgrounds - De-duplicates by the SHA-256 of the image content: the same photo at 5 URLs is saved and billed once
- Filters by minimum width, height and file size (drops tracking pixels) and by format
- Converts to JPEG, PNG or WEBP and resizes to a maximum dimension
- A dataset row per image with alt text, size, format and dimensions
- One
images.zip(split into 100 MB parts for big runs)
Who it's for
Built for
Example
Input and output
One dataset row per result, downloadable as JSON, CSV or Excel, or read through the Apify API.
{
"urls": ["https://www.nasa.gov/image-of-the-day/"],
"minWidth": 400,
"convertTo": "webp",
"maxDimension": 1600
}From a real test run with the input above, shortened. The run's summary record links the ZIP.
{
"pageUrl": "https://www.nasa.gov/image-of-the-day/",
"alt": "NASA’s Integrated Medical Model (IMM)",
"foundIn": "img",
"fileName": "iss075e0088825-large.webp",
"format": "webp",
"width": 1600,
"height": 1067,
"bytes": 297758,
"originalBytes": 396125,
"sha256": "14e19800cc18b7f6...",
"fileUrl": "https://api.apify.com/v2/key-value-stores/.../records/...webp",
"error": null
}Pricing
Pay per result. Failures are free.
No subscription, no monthly minimum. Apify platform compute is included in the price; Apify also adds a tiny start fee per run ($0.00005 per GB of run memory).
| You run | You pay |
|---|---|
| The demo run (20 book covers) | $0.04 |
| 50 category pages × ~30 photos | $3.00 |
| Convert 10,000 image links to WEBP | $20.00 |
300 skipped = $0.00
Not charged:
- The pages themselves and the ZIP
- Duplicates and filtered-out images
- Images that fail to download
Only download images you have the right to use. Social networks and stock-photo sites whose terms forbid automated downloading are refused by the actor. You can set Maximum cost per run in the run options and the actor stops cleanly when it is reached.
FAQ
Questions
Does it render JavaScript?
No. It reads the page HTML like a fast crawler, which covers lazy-load attributes, srcset and meta images. Images injected only by client-side JavaScript after load are not seen.
How do I get only large photos?
Set minWidth to 400-800 and keep minFileSizeKb at 2 or more.
Are animated GIFs converted?
No. Animated images are always kept in their original format.
Where are the files?
In the run's key-value store. Download them one by one from fileUrl, or all at once from the ZIP link in the run's OUTPUT record.
Which sites are refused?
Sites whose terms forbid automated downloading, such as Instagram, Facebook, TikTok, X, LinkedIn, Pinterest, Amazon, Google, Getty and Shutterstock.
Try Bulk Image Downloader on Apify
Apify's free plan includes monthly platform credit you can use to try it. Also callable from AI assistants through the Kanto Labs MCP server.
Other Kanto Labs tools
Tech Stack Detector
CMS, ecommerce, analytics, frameworks, CDN and hosting for any list of domains.
Document to Markdown
PDF, DOCX, PPTX, XLSX, EPUB and HTML to clean Markdown with RAG chunks.
Website SEO Audit
0-100 score and a prioritized fix list per page, broken links and AI crawler checks.