Bulk File & Image Downloader
Pricing
from $0.35 / 1,000 files
Bulk File & Image Downloader
Download files and pictures in bulk: paste file links, or give web pages and get every picture, PDF, video or other file on them. Each file is stored with a shareable link, its size, type and SHA-256, plus an optional ZIP of everything.
Pricing
from $0.35 / 1,000 files
Rating
0.0
(0)
Developer
Sanira Botheju
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
What does Bulk File & Image Downloader do?
It downloads files in bulk and stores each one in your Apify storage with a link you can open or share. Give it either:
- File addresses: direct links to pictures, PDFs, spreadsheets, videos or any other file. Paste them, or link a text file or a Google Sheet that lists them.
- Pages to collect files from: ordinary web pages. The tool reads each page, finds its pictures (also the large version in
srcset, lazy-loaded pictures and the page's preview image), documents, audio, video or archives, and downloads them.
For every file you get the stored file's link, its name, type, size, SHA-256 checksum and, for pictures, the width and height. Tick Also pack all files into one ZIP to get everything in a single files.zip as well.
What data do you get?
| Field | What it holds |
|---|---|
fileUrl | Link to the stored file; it opens without logging in to Apify |
fileName, fileKey | The file's name, and its key in the run's key-value store |
contentType, bytes | The type the server gave (for example image/png) and the size in bytes |
width, height | Picture size in pixels |
sha256 | Checksum, to find duplicates or check a file later |
url, finalUrl, foundOn | The address, where it redirected, and the page it was found on |
status, error | downloaded, or failed with a code such as HTTP_404, FILE_TOO_LARGE, NOT_A_FILE or TIMEOUT |
The run summary (SUMMARY in the key-value store) counts what was downloaded and failed, lists each page with the number of files found on it, and links the ZIP.
How to download files in bulk
- Paste your file links under File addresses, or your pages under Pages to collect files from (or both).
- For pages, choose the kinds of files under Files to collect from pages: pictures are chosen by default.
- Press Start. Open the Files tab of the run and click the links, or download the ZIP from the summary.
How much does it cost to download files?
You pay per file, plus a small amount for large files, because moving data costs money:
| Plan | Per file | Per megabyte above a file's first |
|---|---|---|
| Free and Starter | $0.50 per 1,000 files | $0.30 per GB ($0.0003 per MB) |
| Scale | $0.43 per 1,000 files | $0.27 per GB |
| Business | $0.35 per 1,000 files | $0.25 per GB |
Each file includes its first megabyte; every started megabyte after that costs $0.0003 (1 MB is 1,000,000 bytes). Examples at the Free and Starter price:
| What you download | Cost |
|---|---|
| 1,000 product pictures of 300 KB each | $0.50 |
| 100 PDFs of 2.5 MB each | $0.11 |
| One 100 MB video | $0.03 |
An address that cannot be downloaded (a 404, a timeout, a file over your size limit) is one result too and costs the price of one file. Apify's free plan gives $5 of credit each month, enough for about 10,000 small pictures. Set a maximum cost for the run, and the tool stops before it would go over it, also in the middle of large files.
Input
{"urls": [{ "url": "https://apify.com/favicon.ico" },{ "url": "https://crawlee.dev/img/crawlee-light.svg" }],"pageUrls": [{ "url": "https://crawlee.dev/" }],"fileTypes": ["images", "documents"],"maxFilesPerPage": 100,"maxFileSizeMb": 50,"zip": true}
More options: other file endings to collect from pages (extensions, for example ["dwg", "stl"]), only files on the page's own site (sameSiteOnly), files in all (maxFiles), downloads at the same time in all and per website, the time limit per file, and the User-Agent.
Output example
{"url": "https://crawlee.dev/img/crawlee-light.svg","position": 2,"foundOn": null,"status": "downloaded","httpStatus": 200,"finalUrl": null,"contentType": "image/svg+xml","fileName": "crawlee-light.svg","fileKey": "00002-crawlee-light.svg","fileUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/00002-crawlee-light.svg","bytes": 6365,"extraMegabytes": 0,"sha256": "192e40bd55d97abcb3e1c562d17bf98b5997654209724165ffa02377477ed89a","width": 106,"height": 28,"inZip": null,"timeMs": 758,"downloadedAt": "2026-10-16T14:54:34.238Z","error": null}
What can you use it for?
- Save every picture of your own shop or website, for a backup or a move to a new platform.
- Turn a spreadsheet column of picture or document links into stored files with checksums and sizes.
- Collect the PDFs, price lists or manuals linked from a page you are allowed to use.
- Feed pictures to an AI or image pipeline, with the size and type of each one known in advance.
- Check that file links still work: failed downloads come with the HTTP status and the reason.
Use it from the API
curl -X POST "https://api.apify.com/v2/acts/cyber1nj3ct0r~bulk-file-downloader/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": [{"url": "https://apify.com/favicon.ico"}]}'
The same works from Python, JavaScript, Make, Zapier and n8n through Apify's integrations. Each result row holds fileUrl; the files can also be fetched from the run's key-value store by fileKey.
FAQ
Which files does it find on a page?
Pictures: every <img> (the largest size in srcset, else the lazy-loading address such as data-src, else src), <picture> sources, the page's preview image for social sites, its icons and video posters. Video and audio: the page's <video> and <audio> sources. Documents, archives and the endings you add: links whose address ends with that file ending. Pictures drawn by style sheets or loaded later by scripts are not seen, because the tool reads the page's HTML without running it.
Does it respect robots.txt?
Yes, for pages and for the files found on them: what a site's robots.txt does not allow is skipped and counted in the summary. Addresses you list under File addresses are downloaded as given, like a browser would.
A site blocks the tool. What can I do?
The tool says who it is in its User-Agent and does not get round blocks, logins, paywalls or robot checks, and it uses no proxies. If a site refuses it, the result says so with the HTTP status. Only download files you have the right to use.
Can it download videos from YouTube, Instagram or TikTok?
No. It downloads files that sit at their own address and the files of ordinary web pages; it does not take videos out of streaming or social sites.
What happens to very large files?
They are written to disk as they come in, never held in memory, so the size of a file does not need more memory. Files above Largest file (50 MB by default, up to 2,000 MB) are not downloaded. When a server does not say how big a file is, the download stops at that size and the part already downloaded is counted.
Where are the files, and for how long?
In the run's key-value store, next to the results. Apify deletes a run's storage once your plan's data retention period has passed (on the free plan, the 10 most recent runs are kept for 4 months), so download or move the files you want to keep. The ZIP is limited by the run's disk space, which is twice its memory: for a very large ZIP, give the run more memory.
Something does not work
Open an issue on the tool's Issues tab with the run's link. Issues are answered.