Kanto Labs
Bulk Image Downloader icon

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.

$0.002 per imageFailed inputs are freeLaunching soon

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 largest srcset / <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

Site migrations and backupsGrab every image from your own old site before moving it.
Catalog teamsCollect product photos from supplier pages you are allowed to use.
ML dataset buildersBuild image sets from open-licensed sources, with alt text as labels.
Content and SEO auditsList every image on a page with size, format and alt text; missing alt is an SEO issue.

Example

Input and output

One dataset row per result, downloadable as JSON, CSV or Excel, or read through the Apify API.

Input
{
  "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.

Output (one row)
{
  "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.

$0.002image saved · $2.00 per 1,000

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).

Example costs
You runYou 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
Worked example. You scan 50 category pages: 1,500 photos, 220 duplicates and 80 icons below your minimum width.1,500 saved × $0.002 = $3.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.

Run it on Apify