Bulk Image Downloader: Image URLs and Page Images to Files
Pricing
$2.00 / 1,000 image saveds
Bulk Image Downloader: Image URLs and Page Images to Files
Download images in bulk from a list of image URLs or from web pages you name. Saves each file with a download link, width, height, format, size and SHA256; skips duplicates, tiny icons and broken links. $2 per 1,000 images.
Pricing
$2.00 / 1,000 image saveds
Rating
0.0
(0)
Developer
Hay Equipos
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Turn a list of image links, or a list of web pages, into saved image files. Each saved image gets a row with a download link, the original URL, the page it came from, its alt text, format, width, height, file size and a SHA256 fingerprint. Duplicates, icons below your size limit, broken links and files that are not images are skipped and cost nothing.
Price: $2 per 1,000 images saved. Nothing else is charged.
Two ways to use it
- Image URLs. You already have the links (from a product feed, a spreadsheet, another scraper's output). The actor downloads each one and saves it.
- Page URLs. You name the pages. The actor reads each page's HTML and collects every
img(taking the largest size fromsrcset, and lazy loading attributes such asdata-src),picturesources, and the share image fromog:imageandtwitter:image. Then it downloads them.
You can mix both in one run.
Input
{"imageUrls": ["https://books.toscrape.com/media/cache/2c/da/2cdad67c44b002e7ead0cc35693c0e8b.jpg"],"pageUrls": ["https://books.toscrape.com/"],"maxImagesPerPage": 50,"minWidth": 100,"allowedTypes": ["jpg", "png", "webp"],"keyValueStoreName": "my-product-images"}
| Option | What it does |
|---|---|
minWidth, minHeight | Skip small images such as icons, logos and tracking pixels (free) |
allowedTypes | Keep only some formats: jpg, png, webp, gif, svg, avif, ico, bmp, tiff, heic |
maxFileSizeMb | Skip files above this size (default 25 MB) |
skipDuplicates | Save identical files once, even from different URLs (on by default) |
keyValueStoreName | Save into a named store that is kept after the run's own storage expires |
maxImages, maxImagesPerPage | Caps for the run and for each page |
Output example
{"imageUrl": "https://books.toscrape.com/media/cache/2c/da/2cdad67c44b002e7ead0cc35693c0e8b.jpg","pageUrl": "https://books.toscrape.com/","alt": "A Light in the Attic","foundIn": "img","success": true,"fileName": "2cdad67c44b002e7ead0cc35693c0e8b.jpg","storeKey": "4752d0ef411f-2cdad67c44b002e7ead0cc35693c0e8b.jpg","fileUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/4752d0ef411f-2cdad67c44b002e7ead0cc35693c0e8b.jpg?signature=<signature>","format": "jpg","contentType": "image/jpeg","bytes": 9876,"width": 125,"height": 155,"sha256": "4752d0ef411f..."}
Failed or skipped rows have success: false and a plain error, for example The server answered HTTP 404, Not an image (content type text/html) or Same file already saved in this run.
Getting the files. Each fileUrl is a signed link that downloads the image directly, with no API token needed, so you can pass it to a spreadsheet, a CMS or an AI agent. In Apify Console, open the run's Storage tab, Key value store, to browse or download them all. The Apify API and client libraries can list and fetch every record of the store for a bulk export.
Pricing
Pay per event: $0.002 per image saved ($2 per 1,000). No start fee and no platform usage on top. Broken links, non images, files over the size limit, images below your minimum size, formats you excluded, duplicates and robots.txt skips are all free. You can cap the spend of any run with the maximum charge setting in Apify.
Limits
- Page mode reads the HTML the server sends. Images that a page adds later with JavaScript, CSS background images and images inside iframes are not collected.
- Some sites refuse downloads from cloud servers or require a login. Those files come back as free error rows. The actor does not try to get around blocks, logins or captchas.
- The actor identifies itself honestly as
ApifyImageDownloaderand respects robots.txt by default, including rules written for Apify crawlers. Turn this off only for sites you own or may download from. - Requests to the same site are spaced out (4 per second for files, 1 per second for pages); many sites are fetched in parallel.
- Up to 20,000 images per run and 100 MB per file.
- Files in a run's default store follow your Apify data retention. Use
keyValueStoreNameto keep them.
FAQ
Do I have the right to download these images? That is up to you and the image owner. The actor is a downloader like any browser's "save image". Use it for your own images, images you have a license for, or uses the law allows.
Why is width or height empty for some images? A few formats (AVIF, HEIC, some SVGs) do not state the size in a way the actor reads without decoding the whole file. The file is still saved.
Can I get a ZIP? Not yet; files are stored one by one so each has its own link. Fetch them through the API or the Console storage view.
Can an AI agent use it? Yes. Pass imageUrls or pageUrls, then read fileUrl from each row.