Bulk Image Downloader — All Images from URLs + ZIP
Pricing
$0.50 / 1,000 images
Bulk Image Downloader — All Images from URLs + ZIP
Download all images from web pages or a list of image URLs: largest srcset size, lazy-loaded and linked full-size images, filters by width, height and format, duplicates removed by content. Files, metadata and one ZIP. $0.50 per 1,000 images.
Pricing
$0.50 / 1,000 images
Rating
0.0
(0)
Developer
Technical Dost Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
Bulk Image Downloader saves every image from a list of web pages, or downloads a list of image URLs, in one run. For each page it finds <img> images (taking the largest size from srcset), lazy-loaded images (data-src), <picture> sources, og:image / twitter:image, and links to full-size images in galleries. Filter by minimum width and height and format (JPG, PNG, WebP, GIF, AVIF, SVG...), and duplicates are removed by file content, not just by URL. You get every file in the run's key-value store, one ZIP with all images, and a dataset row per image with dimensions, format, size, alt text, source page and a direct download link.
What you get
- Page mode: finds img, srcset (largest), lazy-load attributes, picture sources, og:image and linked full-size images.
- URL mode: paste direct image URLs to download them in bulk.
- Filters: minimum width and height (skips icons and thumbnails) and file formats; format detected from file bytes.
- Duplicates removed by SHA-1 of the content, even when the same image has different URLs.
- Output: each image as a file, one images.zip, and metadata rows (width, height, format, bytes, alt, page, download URL).
- Fair billing: you pay only for saved images; skipped and failed ones are free.
How to use Bulk Image Downloader
- Paste Page or image URLs (product pages, galleries, articles, or direct .jpg/.png links).
- Set Minimum width / height to skip icons, choose Formats, and limits.
- Run. Download images.zip from the Storage tab (key-value store), or use each row's downloadUrl.
Input example
{"startUrls": ["https://en.wikipedia.org/wiki/Golden_Gate_Bridge","https://upload.wikimedia.org/wikipedia/commons/0/0c/GoldenGateBridge-001.jpg"],"minWidth": 300,"minHeight": 200,"maxImagesPerPage": 50}
All fields are described in the Input tab.
Output example
{"imageUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/0/0c/GoldenGateBridge-001.jpg/1280px-GoldenGateBridge-001.jpg","pageUrl": "https://en.wikipedia.org/wiki/Golden_Gate_Bridge","alt": "Golden Gate Bridge","foundIn": "img","format": "jpg","width": 1280,"height": 960,"sizeBytes": 252236,"sha1": "6a7921a510c4e1b0d5f3a8e2c9b7d6f4a3e2c1b0","fileName": "1280px-GoldenGateBridge-001-6a7921a510.jpg","downloadUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/1280px-GoldenGateBridge-001-6a7921a510.jpg","scrapedAt": "2026-11-01T21:05:00.000Z"}
Output fields
| Field | Description |
|---|---|
imageUrl | Image URL. |
pageUrl | Page the image was found on (empty for direct URLs). |
alt | Alt text. |
foundIn | img, picture, meta, link or direct. |
format | File format. |
width | Width in px. |
height | Height in px. |
sizeBytes | File size. |
sha1 | SHA-1 of the file (deduplication). |
fileName | Key in the key-value store. |
downloadUrl | Direct download link. |
scrapedAt | When the image was saved. |
Export results as JSON, CSV, Excel, XML or HTML, or read them with the API.
Use cases
- E-commerce: pull product photos from supplier or competitor pages.
- Datasets for AI and computer vision: collect images with alt text and source page.
- Content and design teams: save all images from articles, galleries or moodboards at full size.
- Website migrations and audits: export a site's images with dimensions and file sizes.
- Archiving: keep copies of images referenced in your own pages.
How much does Bulk Image Downloader cost?
This Actor uses pay-per-event pricing: $0.0005 per image ($0.5 per 1,000). Platform usage is included. There is no start fee. Images that are too small, in an unwanted format, duplicates or failed downloads are skipped and not charged.
Set Maximum cost per run in the run options to cap your spend; the Actor stops when the limit is reached.
Use Bulk Image Downloader with AI agents (MCP)
Give Claude, ChatGPT, Cursor or any MCP client this Actor as a tool through the hosted Apify MCP server:
$claude mcp add --transport http apify "https://mcp.apify.com/?tools=technicaldost/bulk-image-downloader-website-images" --header "Authorization: Bearer YOUR_APIFY_TOKEN"
Or in a JSON MCP config:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=technicaldost/bulk-image-downloader-website-images","headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }}}}
The tool is named technicaldost--bulk-image-downloader-website-images. Ask your agent, for example, to "run Bulk Image Downloader with {"startUrls": ["https://en.wikipedia.org/wiki/Golden_Gate_Bridge", "https://upload.wikimedia.org/wikipedia/commons/0/0c/GoldenGateBridge-001.jpg"], "minWidth": 300, "minHeight": 200, "maxImagesPerPage": 50}".
Run Bulk Image Downloader via API
curl -X POST "https://api.apify.com/v2/acts/technicaldost~bulk-image-downloader-website-images/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": ["https://en.wikipedia.org/wiki/Golden_Gate_Bridge", "https://upload.wikimedia.org/wikipedia/commons/0/0c/GoldenGateBridge-001.jpg"], "minWidth": 300, "minHeight": 200, "maxImagesPerPage": 50}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("technicaldost/bulk-image-downloader-website-images").call(run_input={"startUrls": ["https://en.wikipedia.org/wiki/Golden_Gate_Bridge", "https://upload.wikimedia.org/wikipedia/commons/0/0c/GoldenGateBridge-001.jpg"], "minWidth": 300, "minHeight": 200, "maxImagesPerPage": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('technicaldost/bulk-image-downloader-website-images').call({"startUrls": ["https://en.wikipedia.org/wiki/Golden_Gate_Bridge", "https://upload.wikimedia.org/wikipedia/commons/0/0c/GoldenGateBridge-001.jpg"], "minWidth": 300, "minHeight": 200, "maxImagesPerPage": 50});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Integrations
Schedule runs (daily, hourly) in Apify Console and send results to Google Sheets, Slack, Make, Zapier, n8n, Airbyte or your own webhook.
FAQ
Where are the images?
In the run's key-value store (Storage tab): one file per image plus images.zip with all of them. Each dataset row also has a direct downloadUrl.
Does it work on JavaScript-heavy sites?
It reads the page HTML, which covers most sites, including lazy-loading via data-src/srcset. Images that only appear after JavaScript runs (infinite scroll, client-rendered galleries) may be missed; paste their direct image URLs instead.
How large can images and the ZIP be?
Single files up to 25 MB. The ZIP holds up to 400 MB; beyond that every image is still saved as its own file.
Can I download any image?
Only download images you have the right to use. Respect copyright and the websites' terms.
How is it priced?
$0.50 per 1,000 saved images. No start fee; skipped images are free.
Is it legal to scrape this data?
The Actor collects publicly available information only and does not log in or bypass access controls. Use the data in line with the website's terms and the laws that apply to you, especially when processing personal data.
Related Actors
More tools from the same developer that work well together with this one:
- Website Brand & Favicon Extractor: Pull the brand assets a website declares about itself: favicons and apple-touch icons at every size, logo, Open Graph and Twitter card images, theme colour,…
- Webpage to Markdown: Convert any web page into clean, LLM-ready Markdown.
- Robots.txt & Sitemap Extractor by Domain: Fetch and parse robots.txt and XML sitemaps for any domain.
- Zalando Scraper | $1/1K · Prices, Sizes & Stock: Scrape Zalando products from category, search and product URLs.