Skip to content
//Bulk File & Image Downloader example\\

Check links without saving

Read the type, size and dimensions of each file and report broken links, without storing anything.

Updated November 13, 2026

What this example returns

The dataset’s “Files” view shows 10 columns: #, Link, Download, File name, Type, Size (bytes), Width, Height, Error, and Code. See every output field.

What each setting does

The input this example runs Bulk File & Image Downloader with. “Try this input” opens it in the console, where you can run it as-is or change any field first.

File links fileUrls

https://upload.wikimedia.org/wikipedia/commons/9/9a/Gull_portrait_ca_usa.jpg, https://raw.githubusercontent.com/mozilla/pdf.js/v4.0.379/test/pdfs/tracemonkey.pdf, https://raw.githubusercontent.com/python-openxml/python-docx/v1.1.2/tests/test_files/test.docx, https://raw.githubusercontent.com/mediae…

Direct links to the files to download, one per line: images, PDFs, documents, spreadsheets, audio, video, archives or any other file. Google Drive, Dropbox and GitHub share links are turned into download links automatically. You can also (or instead) take links from a dataset or from JSON items below.

File types fileTypes

images, documents

Keep only these kinds of files. Leave empty to keep every file. Other files get a free row that says why they were skipped.

Minimum file size (KB) minSizeKb

2

Skip files smaller than this, for example icons and tracking pixels.

Maximum file size (MB) maxSizeMb

10

Skip files larger than this. The download stops as soon as a file passes the size, so nothing more is transferred.

Minimum image width (px) minWidth

300

Skip images narrower than this. Applies to images only.

Minimum image height (px) minHeight

300

Skip images lower than this. Applies to images only.

Save files to saveTo

Check links only (save nothing)

Key-value store: every file gets its own download link, and one link downloads all files as a ZIP (files up to 100 MB each). S3 bucket: files go to your own AWS S3 or S3-compatible bucket (any size). Check only: links are downloaded and checked (status, type, size, image dimensions) but nothing is saved.

Default: Key-value store (a link per file + ZIP of all) → this example uses Check links only (save nothing)

.json
{
  "fileUrls": [
    "https://upload.wikimedia.org/wikipedia/commons/9/9a/Gull_portrait_ca_usa.jpg",
    "https://raw.githubusercontent.com/mozilla/pdf.js/v4.0.379/test/pdfs/tracemonkey.pdf",
    "https://raw.githubusercontent.com/python-openxml/python-docx/v1.1.2/tests/test_files/test.docx",
    "https://raw.githubusercontent.com/mediaelement/mediaelement-files/master/big_buck_bunny.mp4",
    "https://upload.wikimedia.org/wikipedia/commons/3/3f/Fronalpstock_big.jpg",
    "https://raw.githubusercontent.com/python-pillow/Pillow/11.0.0/Tests/images/hopper.png",
    "https://upload.wikimedia.org/wikipedia/commons/does-not-exist-404.jpg",
    "https://scrape.ly/",
    "http://169.254.169.254/latest/meta-data/",
    "ftp://files.example.org/file.zip",
    "https://upload.wikimedia.org/wikipedia/commons/9/9a/Gull_portrait_ca_usa.jpg"
  ],
  "saveTo": "none",
  "fileTypes": [
    "images",
    "documents"
  ],
  "minSizeKb": 2,
  "maxSizeMb": 10,
  "minWidth": 300,
  "minHeight": 300
}

What it costs

You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices: compute, proxies, browser and storage cost nothing extra.

  • File downloadedfrom $0.00015One file downloaded and saved to the key-value store or your S3 bucket, or checked; includes its first 10 MB. Failed and skipped links are free.
  • Large file, per 10 MBfrom $0.0004Each further started 10 MB of a file larger than 10 MB.
  • Residential proxy, per MBfrom $0.0003Each started MB downloaded through the Residential proxy group (charged instead of the per-10 MB fee).
  • Run startfrom $0.0025Charged once when the run starts.

Full pricing

When to use this example

From the Bulk File & Image Downloader readme:

What if a link fails?

The row says why (error, errorCode), and the link is free. Timeouts, refusals and server errors are retried up to 3 times from new IP addresses; missing files (404) are not retried.

Can I schedule it or call it from the API?

Yes. Run it on a schedule, after a scraper with an automation, or from the API with fileUrls, items or datasetId in the input.

Other ways to run Bulk File & Image Downloader

All examples of Bulk File & Image Downloader

About Bulk File & Image Downloader

Download every file from a list of links, a dataset field or JSON items: images, PDFs, documents, audio, video and archives. Each file gets a download link and one link gets all files as a ZIP, or the files go to your own S3 bucket. Filters by type, size and image dimensions.

Price:
from $0.15 / 1,000 results
Developer:
Querystone

Bulk File & Image Downloader pageOutput fieldsPricing

Related actors

//From the blog\\

Latest articles

All articles

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

No credit card. No setup calls.