Bulk File Downloader: Download Files from URLs — Ferrywren avatar

Bulk File Downloader: Download Files from URLs — Ferrywren

Pricing

Pay per event

Go to Apify Store
Bulk File Downloader: Download Files from URLs — Ferrywren

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

CyberMax

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 minutes ago

Last modified

Share

Ferrywren: Bulk File Downloader — Download Files from URLs to 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):

FromFile in the ZIPTypeBytesFound in
irs.gov/forms-pubs/about-form-w-90001-iw9.pdfpdf189,808link "Print version PDF"
irs.gov/forms-pubs/about-form-w-90002-p1281.pdfpdf808,789link "Publication 1281, Backup Withholding…"
irs.gov/forms-pubs/about-form-w-90003-p5027.pdfpdf93,363link "Publication 5027, Identity Theft…"
irs.gov/pub/irs-pdf/fw9.pdf0001-fw9.pdfpdf140,815direct link (the page's copy was a duplicate: free)
gstatic.com/webp/gallery/1.webp0001-1.webpwebp30,320direct 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.

JobInputResult
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

FerrywrenTypical file downloader
Works from pages, not only direct linksYes: finds file links, <a download>, ?file= links, embedded PDFs, <video>/<audio> sourcesUsually direct URLs only
Real file typeChecked 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
DuplicatesRemoved by content (SHA-256), freeRarely
Big filesStreamed to disk, ZIP parts split automatically; memory stays flatOften buffered in memory
Price$0.0015 per file; big files add $0.002 per 10 MB above the first 10 MBPer file plus start fees

Input

FieldWhat it does
urlsFile links and/or web pages, one per line (required).
fileTypesOptional 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.
outputzip (one ZIP), zipPerPage (one ZIP per input URL) or files (a download link per file).
sameDomainOnly, urlPattern, excludeUrlPatternNarrow which links on a page are followed.
maxFileSizeMb, minFileSizeKb, maxFilesPerPage, maxFilesTotalLimits. Skipped files are free.
monitor, monitorKeyOnly files never delivered before for this watchlist.
proxyConfigurationOptional 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 ApifyClient
client = 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

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.