Bulk File Downloader: Download Files from URLs — Ferrywren
Pricing
Pay per event
Bulk File Downloader: Download Files from URLs — Ferrywren
Bulk file downloader: download files from a list of URLs, or every PDF, Word, Excel, CSV and ZIP linked on web pages, into one ZIP or separate links. Type checked from the bytes, duplicates removed, a row per file with size and SHA-256. $1.50 per 1,000 files.
Pricing
Pay per event
Rating
0.0
(0)
Developer
CyberMax
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 minutes ago
Last modified
Categories
Share
Ferrywren: Bulk File Downloader — Download Files from URLs to ZIP
Every file from your links or pages, checked, in one ZIP
Give it file links, or web pages that link to files; get one ZIP (or one download link per file) of every PDF, Word, Excel, PowerPoint, CSV, ZIP, image, audio or video file, with a row per file: type checked from its bytes, size and SHA-256. $0.0015 per file.
▶ Try it now with a prefilled input · $0.0015 per file, duplicates and skips free (1,000 files = $1.50) · Apify's free plan includes $5 of credit a month
Built for: analysts collecting reports and filings · ops teams archiving price lists, spec sheets and manuals · researchers building document sets · anyone with a spreadsheet column of file URLs
Real output (real run, 24 Oct 2026, input below: 5 files, one ZIP, 1 duplicate skipped free):
| From | File in the ZIP | Type | Bytes | Found in |
|---|---|---|---|---|
| irs.gov/forms-pubs/about-form-w-9 | 0001-iw9.pdf | 189,808 | link "Print version PDF" | |
| irs.gov/forms-pubs/about-form-w-9 | 0002-p1281.pdf | 808,789 | link "Publication 1281, Backup Withholding…" | |
| irs.gov/forms-pubs/about-form-w-9 | 0003-p5027.pdf | 93,363 | link "Publication 5027, Identity Theft…" | |
| irs.gov/pub/irs-pdf/fw9.pdf | 0001-fw9.pdf | 140,815 | direct link (the page's copy was a duplicate: free) | |
| gstatic.com/webp/gallery/1.webp | 0001-1.webp | webp | 30,320 | direct link |
{"urls": ["https://www.irs.gov/forms-pubs/about-form-w-9", "https://www.irs.gov/pub/irs-pdf/fw9.pdf", "https://www.gstatic.com/webp/gallery/1.webp"]}
Ready-made inputs (one click)
Paste one of these into the Input tab and press Start.
| Job | Input | Result |
|---|---|---|
| First try (3 URLs) | {"urls": ["https://www.irs.gov/forms-pubs/about-form-w-9", "https://www.irs.gov/pub/irs-pdf/fw9.pdf", "https://www.gstatic.com/webp/gallery/1.webp"]} | One ZIP with the form, its publications and an image; the duplicate is skipped free. |
| All PDFs from one page | {"urls": ["https://www.irs.gov/forms-pubs/about-form-w-9"], "fileTypes": ["pdf"], "output": "zip"} | Every PDF linked from the page, in one ZIP. |
| A download link per file | {"urls": ["https://www.irs.gov/forms-pubs/about-form-w-9"], "fileTypes": ["documents"], "output": "files"} | Each file gets its own link, ready for Make, Zapier or n8n. |
Use cases
- Download all PDFs from a website page: annual reports, investor decks, government forms, product manuals, safety data sheets. Point Ferrywren at the page; it finds every document link (including
download.php?file=…style links and embedded PDF viewers) and downloads them. - URL list to ZIP: paste a column of file links from a spreadsheet or a scraper's output; get one tidy ZIP with original file names.
- Media backup: MP4, MP3, WAV and image files linked from your own pages, with sizes and hashes for an inventory.
- New-file alerts: monitor mode on a schedule returns only files that appeared since the last run (new filings, new price lists, new datasheets).
- Feeding AI pipelines: each file gets a public download link (
"output": "files") that a RAG loader, Make, Zapier or n8n step can pick up.
Why Ferrywren
| Ferrywren | Typical file downloader | |
|---|---|---|
| Works from pages, not only direct links | Yes: finds file links, <a download>, ?file= links, embedded PDFs, <video>/<audio> sources | Usually direct URLs only |
| Real file type | Checked from the file's own bytes (a "PDF" link that returns a login page is not delivered and not charged) | Trusts the URL or header |
| Duplicates | Removed by content (SHA-256), free | Rarely |
| Big files | Streamed to disk, ZIP parts split automatically; memory stays flat | Often buffered in memory |
| Price | $0.0015 per file; big files add $0.002 per 10 MB above the first 10 MB | Per file plus start fees |
Input
| Field | What it does |
|---|---|
urls | File links and/or web pages, one per line (required). |
fileTypes | Optional filter: pdf, docx, xlsx, csv, mp4 … or a group: documents, images, video, audio, archives. Empty = keep every direct link; pages are searched for documents and archives. |
output | zip (one ZIP), zipPerPage (one ZIP per input URL) or files (a download link per file). |
sameDomainOnly, urlPattern, excludeUrlPattern | Narrow which links on a page are followed. |
maxFileSizeMb, minFileSizeKb, maxFilesPerPage, maxFilesTotal | Limits. Skipped files are free. |
monitor, monitorKey | Only files never delivered before for this watchlist. |
proxyConfiguration | Optional proxy for sites that block datacenter IPs. Blocked downloads are retried once through Apify Proxy automatically. |
Output
One dataset row per delivered file: fileUrl, downloadUrl (the ZIP or the file's own link), fileName, fileType, mimeType, bytes, sha256, inputUrl, linkText, source (link, download-link, embed, media, direct). URLs that could not be read get a url-error row with the HTTP status (free). The run's OUTPUT record lists the ZIP parts and per-URL counts.
Pricing
- $0.0015 per file delivered ($1.50 per 1,000).
- $0.002 per started 10 MB above the first 10 MB of one file (a 35 MB video = 3 blocks = $0.006 extra). PDFs, documents and spreadsheets are almost always under 10 MB.
- Free: duplicates, filtered files, links that turn out to be HTML pages, failed downloads, failed URLs.
- Set a maximum charge per run in Apify's run options and Ferrywren stops cleanly when it is reached.
Run it on a schedule
Apify Console → Schedules → Create new → cron 0 7 * * 1 (Mondays) → Add Actor → Ferrywren with your pages and "monitor": true. Through the API:
POST https://api.apify.com/v2/schedules?token=YOUR_TOKEN{"name": "ferrywren-new-reports","cronExpression": "0 7 * * 1","timezone": "America/New_York","isEnabled": true,"actions": [{"type": "RUN_ACTOR","actorId": "cybermax/bulk-file-downloader","runInput": {"body": "{\"urls\":[\"https://www.example.com/investors/reports\"],\"fileTypes\":[\"pdf\"],\"monitor\":true,\"monitorKey\":\"ir-reports\"}","contentType": "application/json"}}]}
Add an email, Slack or webhook notification on "Run succeeded" under the Actor's Integrations tab.
Integrations
API (synchronous): POST https://api.apify.com/v2/acts/cybermax~bulk-file-downloader/run-sync-get-dataset-items?token=YOUR_TOKEN with the input JSON returns the file rows.
Make / Zapier: Apify app → "Run an Actor" (cybermax/bulk-file-downloader, run synchronously, "output": "files") → "Get dataset items" → map downloadUrl, fileName, fileType into Google Drive, Dropbox, Airtable or your CMS.
n8n: Apify node ("Run an Actor and get dataset"), or HTTP Request:
POST https://api.apify.com/v2/acts/cybermax~bulk-file-downloader/run-sync-get-dataset-items?token=YOUR_TOKEN{"urls": ["https://www.irs.gov/forms-pubs/about-form-w-9"], "fileTypes": ["pdf"], "output": "files"}
Google Sheets:
=IMPORTDATA("https://api.apify.com/v2/acts/cybermax~bulk-file-downloader/runs/last/dataset/items?format=csv&fields=fileUrl,fileType,bytes,downloadUrl&token=YOUR_TOKEN")
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("cybermax/bulk-file-downloader").call(run_input={"urls": ["https://www.irs.gov/forms-pubs/about-form-w-9"], "fileTypes": ["pdf"]})print(client.key_value_store(run["defaultKeyValueStoreId"]).get_record("OUTPUT")["value"]["zips"])
AI agents (MCP): https://mcp.apify.com/?tools=cybermax/bulk-file-downloader (Authorization: Bearer YOUR_TOKEN). Typical prompts: "Download every PDF linked on these three investor pages as a ZIP", "Get these 40 CSV export links and give me one download link each".
When NOT to use it
- Files behind a login or a paywall: Ferrywren only downloads what a visitor without an account can open.
- Streaming platforms (YouTube, TikTok, Spotify and similar): those are not files on a page, and their terms forbid downloading. Use direct file links you have the right to download.
- Pages that build their links with JavaScript: Ferrywren reads the HTML the server sends; such pages report "no links" (free).
- Whole-site crawls: it reads the pages you list and the files they link to; it doesn't follow links to other pages.
FAQ
Why not a browser extension or wget? Fine for one page on your laptop. Ferrywren runs on a schedule without you, checks each file's real type, removes duplicates, splits big ZIPs, and hands every file a link your automations can use.
Why not the file downloaders that only take direct links? Most of the time you have a page, not a list of file URLs. Ferrywren does both in one run, and charges nothing for links that turn out to be HTML pages.
Can an AI agent use it (MCP)? Yes. Add https://mcp.apify.com/?tools=cybermax/bulk-file-downloader as an MCP server in Claude, Cursor, VS Code or any MCP client.
How big can a file be? Up to 3.8 GB per file (maxFileSizeMb). Files stream to disk, so memory stays flat; for very large videos raise the run's memory, which also raises its disk.
How long are files kept? In the run's storage for your Apify plan's retention period (7 days on the free plan). Copy them somewhere permanent.
Is it legal to use? Ferrywren downloads files that pages offer publicly, with no login. Files usually belong to their owners; get the rights before you reuse or republish them. This is general information, not legal advice.
Start now
▶ Try Ferrywren with a prefilled input · $0.0015 per file, duplicates and skips free. Questions or a missing file type? Open an issue on the Store page and it gets answered the same day.
Also from CyberMax
- Picpail — bulk image downloader: every image on a page, as full-size originals, in one ZIP.
- Inkpluck — article extractor: the text of blog and news pages as Markdown.
- Capturewren — website screenshot API: a screenshot and the text of each page.
Changelog
- 2026-10-24: First release: file links and pages, type detection from bytes, content dedupe, ZIP / ZIP per page / file links, streaming for big files, monitor mode.
© 2026 CyberMax. All rights reserved.