InstantUnzip
Pricing
Pay per event
InstantUnzip
InstantUnzip downloads any ZIP file from a given URL and extracts its contents automatically. No manual steps or temporary files—just provide the link and get all extracted files saved directly to the Apify Key-Value Store.
0.0 (0)
Pricing
Pay per event
0
1
0
Last modified
3 days ago
📦 InstantUnzip - Effortless ZIP File Extraction
Automatically download, extract, and store ZIP file contents in seconds.
InstantUnzip is a powerful Apify Actor that downloads ZIP files from any URL, extracts all contents, and stores them in your key-value store. It's built with a fair, usage-based pricing model and includes plan-based limits to suit everyone from hobbyists to enterprise users.
✨ Key Features
- 💰 Fair Pricing - A pay-per-file model ensures you only pay for what you extract.
- 🚀 Tiered Limits - Generous limits for Free, Pro, and Business users.
- 🎯 Smart Content Detection - Automatically identifies common file types (images, documents, etc.).
- 🛡️ Secure by Design - Sanitizes filenames and prevents malicious path traversal.
- 🍎 macOS Friendly - Automatically ignores
.DS_Storeand._metadata files. - 📊 Detailed Logging - Track extraction progress and see exactly which files were processed.
- 🔄 Error Resilient - Continues extracting valid files even if some entries in the ZIP are corrupted.
🎯 Use Cases
- Data Processing Pipelines: Extract datasets, CSVs, and JSON files from archives for automated analysis.
- Image Bulk Processing: Download image collections and feed them to image processing or AI actors.
- Content Archival: Automatically unzip and store website backups, reports, or documentation.
- E-commerce Automation: Process product image packages from suppliers automatically.
- Web Scraping Enhancement: Combine with scrapers to download and extract ZIP files found on websites.
🚀 Quick Start
Input
The actor accepts a simple JSON input with a single required field:
{"url": "https://example.com/your-file.zip"}
Run via API
curl -X POST https://api.apify.com/v2/acts/GWGDDegLMeubNPYpg/runs \-H "Authorization: Bearer YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"url": "https://example.com/file.zip"}'
📤 Output
All extracted files are stored in the Key-Value Store associated with the actor run. Each file is stored with:
- Key: Sanitized filename (e.g.,
product_photo.jpg) - Value: File content as binary data
- Content-Type: Automatically detected MIME type (if recognized)
You can access the files via the Apify Console under the run's Storage tab or programmatically via the API.
📊 Pricing Tiers & Limits
This Actor enforces different limits based on your Apify subscription plan. This ensures fair usage and provides a clear upgrade path as your needs grow.
| Plan | Max ZIP Size | Max Files in ZIP | Max Runs / Month |
|---|---|---|---|
| Free | 10 MB | 100 | 50 |
| Pro | 100 MB | 1,000 | 500 |
| Business | 500 MB | Unlimited | 5,000 |
| Enterprise | Unlimited | Unlimited | Unlimited |
If you hit a limit, the Actor will fail with a clear error message prompting you to upgrade.
💰 Pricing Model
This Actor uses a pay-per-file model, making it cost-effective for any task size.
- File Extraction Fee (
zip-extraction): You are charged a small fee for each file successfully extracted.- Base Rate: $0.02 per extracted file.
- Discounts: Paid Apify plans (Bronze, Silver, Gold) receive significant discounts on this rate.
- Actor Start Fee: A tiny platform fee is applied for each Actor run (e.g., $0.00005).
This model ensures you only pay for the value you receive. The free Apify plan includes $5 of platform credits every month, which covers thousands of file extractions for free.
⚙️ Configuration
Input Schema
{"title": "InstantUnzip Input","type": "object","schemaVersion": 1,"properties": {"url": {"title": "ZIP File URL","type": "string","description": "Direct public URL to the .zip file you want to extract.","editor": "textfield","example": "https://github.com/apify/apify-js/archive/refs/heads/master.zip"}},"required": ["url"]}
🔧 Integration with Other Actors
You can easily chain this Actor with others in Apify Tasks or use it inside your own code.
import { Actor } from 'apify';// Step 1: Run InstantUnzip to extract filesconst unzipRun = await Actor.call('GWGDDegLMeubNPYpg', {url: 'https://example.com/images.zip'});// Step 2: Get the Key-Value Store ID from the run's outputconst storeId = unzipRun.defaultKeyValueStoreId;// Step 3: Access and process each extracted fileconst client = Actor.newClient();const store = client.keyValueStore(storeId);const { keys } = await store.listKeys();for (const key of keys) {if (key.key === 'OUTPUT') continue; // Skip the actor's own output recordconst fileRecord = await store.getRecord(key.key);// Process your file here...// fileRecord.value contains the file bufferconsole.log(`Processing file: ${key.key}`);}
🐛 Troubleshooting
Q: "Failed to download: 403 Forbidden" or other HTTP errors.
- The URL is likely not publicly accessible. Ensure it's a direct download link that doesn't require a login.
Q: "ZIP file is too large" or "Too many files in ZIP".
- You have exceeded the limits of your current Apify plan. The error message will specify the limit you hit. Please upgrade your plan to process larger files. See the "Pricing Tiers & Limits" section above.
Q: "Monthly run limit reached".
- You have used all the free runs allocated to this Actor for the month on your plan. You can either upgrade or wait until the next calendar month.
Q: Some files were skipped.
- The logs will indicate why. Common reasons are invalid filenames or macOS metadata files (
.DS_Store,._*), which are skipped by design.
📝 Supported Content-Types
The Actor automatically detects and sets Content-Type for the following common extensions. All other files are saved as application/octet-stream.
| Extensions | Content Type |
|---|---|
.txt | text/plain |
.json | application/json |
.html | text/html |
.jpg, .jpeg | image/jpeg |
.png | image/png |
.gif | image/gif |
.webp | image/webp |
.pdf | application/pdf |
Made with ❤️ for the Apify Community
