OnlyFans Downloader & Scraper API

OnlyFans Downloader & Scraper API

by clearpath

OnlyFans Downloader & Scraper - Download all media content including DRM videos, images, and posts. Automated ZIP packaging with email notifications. ...

598 runs
199 users
Try This Actor

Opens on Apify.com

About OnlyFans Downloader & Scraper API

OnlyFans Downloader & Scraper - Download all media content including DRM videos, images, and posts. Automated ZIP packaging with email notifications. Professional OnlyFans API solution.

What does this actor do?

OnlyFans Downloader & Scraper API is a web scraping and automation tool available on the Apify platform. It's designed to help you extract data and automate tasks efficiently in the cloud.

Key Features

  • Cloud-based execution - no local setup required
  • Scalable infrastructure for large-scale operations
  • API access for integration with your applications
  • Built-in proxy rotation and anti-blocking measures
  • Scheduled runs and webhooks for automation

How to Use

  1. Click "Try This Actor" to open it on Apify
  2. Create a free Apify account if you don't have one
  3. Configure the input parameters as needed
  4. Run the actor and download your results

Documentation

OnlyFans Media Downloader | Complete Media Download Solution 📥 The most advanced OnlyFans downloader - Download, process, and organize complete media collections with automated notifications and intelligent ZIP packaging. --- ## 🎯 Why Choose Our OnlyFans Downloader? ### 📥 Complete Media Download Solution - One-Click Simplicity - Download all accessible content from your favorite creators with ease - Full Media Processing - Downloads all images, videos, and content - Intelligent ZIP Packaging - Automatically splits large collections into 2GB parts - Organized File Structure - Clean, organized downloads with proper naming - Automated Notifications - Email and Telegram alerts when downloads are ready ### ⚡ Advanced Download Features - High-Speed Processing - Optimized download algorithms for maximum speed - Original Quality Downloads - Maintains highest resolution and clarity as intended by creators - Universal Access - Download from any creator you're subscribed to or following - No Software Required - Cloud-based processing accessible from any device with internet - Secure Authentication - Safe login handling via encrypted credential processing - Cost Estimation - Dry run mode for accurate cost predictions - Unlimited Processing - Set media_limit to 0 for complete collections ### 🔔 Smart Notification System - Email Notifications - Receive download links directly in your inbox - Telegram Integration - Instant notifications via Telegram bot - Webhook Support - Custom webhook notifications for automation - Multi-Part Support - Handles large collections split into manageable ZIP files --- ## 🚀 What Does This OnlyFans Downloader Include? Our comprehensive OnlyFans media downloader provides complete content processing and organization: ### 📱 Media Download Capabilities - ✅ High-resolution images - Original quality photo downloads - ✅ Full video content - Complete highest-resolution video files - ✅ DRM-protected content - Seamlessly handles DRM-protected videos from posts and stories - ✅ Batch processing - Multiple creators in one run ### 📦 Smart Packaging & Organization - ✅ Automatic ZIP creation - Organized archives ready for download - ✅ 2GB part splitting - Large collections split into manageable chunks - ✅ Folder organization - Content sorted by creator and date ### 🔔 Notification & Delivery - ✅ Email delivery - Download links sent to your inbox - ✅ Telegram notifications - Instant alerts via Telegram bot - ✅ Error reporting - Detailed feedback on any issues --- ## 🎯 Perfect For Content Creators & Agencies ### 📊 Content Management - Archive Creation - Build comprehensive content libraries - Backup Solutions - Secure off-platform content storage - Content Analysis - Analyze performance across media types - Portfolio Building - Organize content for presentations ### 🔍 Research & Analysis - Competitor Research - Study successful content strategies - Trend Analysis - Identify popular content formats - Quality Assessment - Analyze visual content performance - Archive Preservation - Long-term content preservation ### 💼 Business Applications - Client Presentations - Organized content portfolios - Content Audits - Comprehensive media reviews - Brand Analysis - Study visual branding strategies - Market Research - Content trend identification --- ## 📥 How to Use the OnlyFans Media Downloader ### 1. Basic Media Download json { "url": "https://onlyfans.com/creator1", "username": "your_email@example.com", "password": "your_password", "media_limit": 50, "notification_email": "notifications@yourdomain.com" } ### 2. Advanced Configuration with Telegram json { "url": "creator1", "username": "your_email@example.com", "password": "your_password", "media_limit": 100, "notification_email": "notifications@yourdomain.com", "telegram_user_id": "123456789" } Important: 1. Get your Telegram User ID: Message @userinfobot on Telegram 2. Message our bot first: Send any message to @OnlyFansDownloaderAPIBot (required for notifications to work) 3. Add your User ID: Include telegramUserId in your configuration ### 3. Cost Estimation (Dry Run) json { "url": "creator1", "username": "your_email@example.com", "password": "your_password", "media_limit": 0, "dry_run": true, "notification_email": "notifications@yourdomain.com", "webhook_url": "https://your-app.com/webhook" } ### 4. Input Parameters | Parameter | Type | Description | Required | | ------------------ | ------- | ----------------------------------------------------- | --------------- | | url | Array | OnlyFans username or profile URL | ✅ Yes | | username | String | Your OnlyFans email address | ✅ Yes | | password | String | Your OnlyFans password (securely encrypted) | ✅ Yes | | media_limit | Integer | Max media items per creator (0 = unlimited, 1-10000) | No (default: 0) | | dry_run | Boolean | Cost estimation mode (no actual processing) | No | | notification_email | String | Email for download link notifications | ✅ Yes | | telegram_user_id | String | Telegram user ID for instant notifications | No | | webhook_url | String | Webhook URL for completion notifications | No | --- ## 🔔 Smart Notification System ### 📧 Email Notifications Receive professionally formatted emails with: - Completion notifications with ZIP links - File size information and part counts ### 📱 Telegram Integration Get instant notifications via Telegram: - Immediate completion alerts - Direct download links - Error notifications and support ### 📦 Multi-Part ZIP Handling For large collections: - Automatic splitting at 2GB per ZIP file - Sequential naming (Part 1, Part 2, etc.) - Independent extraction - each ZIP works standalone - Total size reporting across all parts --- ## 🔧 How It Works - Behind the Scenes ### 🚀 Processing Pipeline 1. Authentication - Secure login with your OnlyFans credentials 2. Content Discovery - Identify all available media for specified creators 3. Download Processing - High-speed media download and organization 4. Archive Creation - Intelligent ZIP packaging 5. Notification Delivery - Email/Telegram alerts with download links ### 💾 Storage & Delivery - Secure Cloud Storage - Files stored on enterprise-grade cloud infrastructure - High-Speed Downloads - Optimized content delivery network - Global Availability - Download from anywhere worldwide ### 🔒 Privacy & Security - Encrypted Processing - All credentials encrypted during processing - Secure Storage - Files stored with enterprise-grade security --- ## 💰 Pricing & Value ### 📊 Transparent Pricing Structure Our OnlyFans downloader uses a pay-per-GB model with no hidden fees: - Processing Fee - $0.10 per 100 MB of media scraped - No Monthly Fees - Pay only for what you process - Predictable Costs - Clear pricing based on actual file sizes - Cost Estimation - Use dry run mode to estimate costs before processing ### 💎 Cost-Effective Benefits - No Infrastructure Needed - No servers or storage to manage - Instant Scalability - Handle any size collection - Professional Results - Enterprise-grade processing and delivery - Time Savings - Automated processing vs manual downloads ### 🎯 Estimated Costs Based on typical OnlyFans content (70% photos ~2MB each, 30% videos ~20MB each): - 100 Items (~740 MB): ~$0.74 - 70 photos + 30 videos - 500 Items (~3.7 GB): ~$3.70 - 350 photos + 150 videos - 1000+ Items (~7.4 GB): ~$7.40+ - 700 photos + 300 videos ### 💡 Cost Estimation Tips - Use Dry Run Mode - Get accurate cost estimates before processing - Set Media Limits - Control costs by limiting items per creator - Actual costs vary based on creator's content mix and file quality Pricing: $0.10 per 100 MB of successfully processed media --- ## 📊 Output & Results ### 🗂️ Organized File Structure CreatorName_2025-06-05/ ├── images/ │ ├── 2025-05-24_post_123456_image_1.jpg │ ├── 2025-05-24_post_123456_image_2.jpg │ └── ... ├── videos/ │ ├── 2025-05-23_post_789012_video.mp4 │ └── ... --- ## 🔧 Integration & Automation ### 🤖 API Integration javascript // Node.js example - Cost estimation first const ApifyClient = require('apify-client'); const client = new ApifyClient({ token: 'your_token' }); // First, estimate costs with dry run const estimationRun = await client.actor('clearpath/onlyfans-downloader').call({ url: 'creator1', username: 'your_email@example.com', password: 'your_password', media_limit: 0, // Unlimited dry_run: true, notification_email: 'notifications@yourdomain.com' }); const estimation = await client.dataset(estimationRun.defaultDatasetId).listItems(); console.log('Estimated cost:', estimation.items[0].estimated_cost_usd); // Then process if cost is acceptable const run = await client.actor('clearpath/onlyfans-downloader').call({ url: 'creator1', username: 'your_email@example.com', password: 'your_password', media_limit: 500, // Or set based on estimation notification_email: 'notifications@yourdomain.com', webhook_url: 'https://your-app.com/webhook' }); ### 🔄 Automation Capabilities - Scheduled Downloads - Regular content archiving - Webhook Integration - Real-time processing notifications - Batch Processing - Multiple creators in single runs - Custom Workflows - Integration with existing systems --- ## 🔗 Webhook Integration ### 📡 Webhook Payload Structure When webhook notifications are enabled, the system sends POST requests to your specified webhook URL with detailed payload information. All webhooks include signature verification for security. #### Job Completion Webhook Sent when media processing completes (success or failure): json { "event": "job_completed", "timestamp": "2025-06-06T14:30:00.000Z", "job": { "id": "12345678-1234-5678-9012-123456789abc", "username": "target_creator", "status": "completed", "processed_count": 245, "failed_count": 5, "total_count": 250, "api_request_count": 15 }, "download": { "type": "single", "url": "https://download.example.com/archive.zip", "size_bytes": 1073741824, "size_formatted": "1.0 GB" }, "billing": { "charge_amount": 2.15, "currency": "USD" } } #### Multi-Part Download Webhook For large collections split into multiple ZIP files: json { "event": "job_completed", "timestamp": "2025-06-06T14:30:00.000Z", "job": { "id": "12345678-1234-5678-9012-123456789abc", "username": "target_creator", "status": "completed", "processed_count": 1500, "failed_count": 50, "total_count": 1550, "api_request_count": 75 }, "download": { "type": "multi_part", "parts": [ { "part_number": 1, "url": "https://download.example.com/archive_part1.zip", "size_bytes": 2147483648, "size_formatted": "2.0 GB" }, { "part_number": 2, "url": "https://download.example.com/archive_part2.zip", "size_bytes": 1073741824, "size_formatted": "1.0 GB" } ], "total_parts": 2, "total_size_bytes": 3221225472, "total_size_formatted": "3.0 GB" }, "billing": { "charge_amount": 6.44, "currency": "USD" } } #### Cost Estimation Webhook (Dry Run) Sent when dry run cost estimation completes: json { "event": "cost_estimation_completed", "timestamp": "2025-06-06T14:30:00.000Z", "dry_run": true, "login_username": "your_email@example.com", "target_usernames": ["creator1", "creator2"], "estimation": { "total_media_count": 1250, "estimated_size_gb": 12.5, "estimated_cost_usd": 2.50, "breakdown": { "creator1": { "media_count": 750, "estimated_size_gb": 7.5, "estimated_cost_usd": 1.50 }, "creator2": { "media_count": 500, "estimated_size_gb": 5.0, "estimated_cost_usd": 1.00 } } } } #### Failed Job Webhook Sent when processing fails: json { "event": "job_completed", "timestamp": "2025-06-06T14:30:00.000Z", "job": { "id": "12345678-1234-5678-9012-123456789abc", "username": "target_creator", "status": "failed", "processed_count": 0, "failed_count": 0, "total_count": 0, "api_request_count": 3 }, "error": { "message": "Authentication failed - invalid credentials" } } ### 🔐 Webhook Security All webhooks include cryptographic signatures for verification using HMAC-SHA256. #### Required Headers Content-Type: application/json User-Agent: OnlyFans-Media-Processor/1.0 X-Webhook-Signature-256: sha256=<hmac_signature> X-Webhook-Timestamp: <unix_timestamp> #### Signature Verification The webhook signature is generated using HMAC-SHA256 with a secret key. Verify signatures to ensure webhooks are legitimate: Python Example: python import hmac import hashlib import time def verify_webhook_signature(payload_body, signature_header, webhook_secret, timestamp_header): # Check timestamp to prevent replay attacks (within 5 minutes) current_time = int(time.time()) webhook_time = int(timestamp_header) if abs(current_time - webhook_time) > 300: # 5 minutes return False # Create signature verification string: timestamp.payload signature_string = f"{timestamp_header}.{payload_body}" # Calculate expected signature expected_signature = hmac.new( webhook_secret.encode('utf-8'), signature_string.encode('utf-8'), hashlib.sha256 ).hexdigest() # Extract signature from header (remove 'sha256=' prefix) received_signature = signature_header.replace('sha256=', '') # Secure comparison return hmac.compare_digest(expected_signature, received_signature) # Usage in your webhook handler def handle_webhook(request): payload_body = request.body.decode('utf-8') signature = request.headers.get('X-Webhook-Signature-256') timestamp = request.headers.get('X-Webhook-Timestamp') if verify_webhook_signature(payload_body, signature, YOUR_WEBHOOK_SECRET, timestamp): # Webhook is verified, process the payload payload = json.loads(payload_body) print(f"Verified webhook: {payload['event']}") else: # Invalid signature - reject the webhook print("Webhook signature verification failed") Node.js Example: javascript const crypto = require('crypto'); function verifyWebhookSignature(payloadBody, signatureHeader, webhookSecret, timestampHeader) { // Check timestamp (within 5 minutes) const currentTime = Math.floor(Date.now() / 1000); const webhookTime = parseInt(timestampHeader); if (Math.abs(currentTime - webhookTime) > 300) { return false; } // Create signature verification string const signatureString = `${timestampHeader}.${payloadBody}`; // Calculate expected signature const expectedSignature = crypto .createHmac('sha256', webhookSecret) .update(signatureString) .digest('hex'); // Extract received signature const receivedSignature = signatureHeader.replace('sha256=', ''); // Secure comparison return crypto.timingSafeEqual( Buffer.from(expectedSignature, 'hex'), Buffer.from(receivedSignature, 'hex') ); } #### Security Best Practices - Always verify signatures before processing webhook data - Check timestamps to prevent replay attacks (reject webhooks older than 5 minutes) - Use HTTPS endpoints for webhook URLs - Store webhook secrets securely (environment variables, secret managers) - Log signature failures for security monitoring - Rate limit webhook endpoints to prevent abuse #### Webhook Secret Management - Generate a strong, random webhook secret (32+ characters) - Store the secret securely in your application configuration - Use the same secret for signature generation and verification - Rotate secrets periodically for enhanced security ### 🔧 Integration Examples #### Express.js Webhook Handler javascript const express = require('express'); const crypto = require('crypto'); const app = express(); app.use(express.raw({ type: 'application/json' })); app.post('/webhook/onlyfans-processor', (req, res) => { const signature = req.headers['x-webhook-signature-256']; const timestamp = req.headers['x-webhook-timestamp']; const payload = req.body.toString(); if (!verifyWebhookSignature(payload, signature, process.env.WEBHOOK_SECRET, timestamp)) { return res.status(401).send('Unauthorized'); } const data = JSON.parse(payload); switch (data.event) { case 'job_completed': if (data.job.status === 'completed') { console.log('Job completed:', data.job.id); // Handle successful completion if (data.download) { console.log('Download URLs:', data.download); } } else { console.log('Job failed:', data.error?.message); } break; case 'cost_estimation_completed': console.log('Cost estimation:', data.estimation); break; } res.status(200).send('OK'); }); #### Flask Webhook Handler python from flask import Flask, request, jsonify import hmac import hashlib import json import time app = Flask(__name__) @app.route('/webhook/onlyfans-processor', methods=['POST']) def handle_webhook(): signature = request.headers.get('X-Webhook-Signature-256') timestamp = request.headers.get('X-Webhook-Timestamp') payload = request.get_data(as_text=True) if not verify_webhook_signature(payload, signature, os.getenv('WEBHOOK_SECRET'), timestamp): return jsonify({'error': 'Unauthorized'}), 401 data = json.loads(payload) if data['event'] == 'job_completed': if data['job']['status'] == 'completed': print(f"Job {data['job']['id']} completed successfully") # Process download URLs else: print(f"Job {data['job']['id']} failed: {data.get('error', {}).get('message', 'Unknown error')}") elif data['event'] == 'cost_estimation_completed': print(f"Cost estimation: ${data['estimation']['estimated_cost_usd']:.2f}") return jsonify({'status': 'received'}), 200 --- ## 📊 Dry Run Cost Estimation Output When you enable dry run mode ("dry_run": true), the actor performs cost estimation without processing any media. Here's the output structure you can expect: ### Cost Estimation Response json { "status": "completed", "message": "Processing 2 OnlyFans profiles for your-email@domain.com", "total_urls": 2, "url": "creator1", "media_limit": 250, "dry_run": true, "notification_email": "notification@mail.com", "telegram_user_id": "1602930891", "webhook_url": null, "dispatched_at": "2025-06-08T05:44:47.273666", "estimation_completed": true, "estimation_status": "completed", "estimated_media_count": 400, "estimated_cost_usd": 0.18, "creator_estimates": [ { "username": "creator1", "estimated_items": 200, "estimated_size_gb": 0.117, "estimated_cost_usd": 0.02 }, { "username": "creator2", "estimated_items": 200, "estimated_size_gb": 0.765, "estimated_cost_usd": 0.15 } ], "estimation_summary": "Cost estimation completed successfully" } ### Understanding the Estimation - estimated_media_count: Total number of media items found across all creators - estimated_cost_usd: Total estimated cost at $0.10 per 100 MB - creator_estimates: Individual breakdown per creator with: - Number of estimated items - Estimated total size in GB - Individual cost estimate - estimation_completed: Confirms the estimation process finished successfully The estimation analyzes a sample of each creator's media (typically 10%) to calculate file sizes, then extrapolates to estimate the total cost for processing all available content. --- ## ❓ Frequently Asked Questions ### Q: How long do download links stay active? A: Currently, download links remain active for 30 days after processing completion, giving you plenty of time to download your content. ### Q: What's the maximum file size I can download? A: There's no hard limit. Large collections are automatically split into 2GB ZIP parts for easier handling and faster downloads. ### Q: Can I download private/subscription content? A: Yes, you can download any content you have legitimate access to through your OnlyFans account and active subscriptions. ### Q: How are notifications sent? A: You'll receive notifications via email and Telegram (if configured) when your download processing completes. ### Q: What happens if processing fails? A: You'll receive detailed error notifications, and our support team can help resolve any issues. Failed runs don't incur full charges. ### Q: How is pricing calculated? A: Pricing is $0.10 per 100 MB of successfully downloaded media. Use the dry run mode to get accurate cost estimates before processing any content. ### Q: What is dry run mode? A: Dry run mode analyzes a sample of available media (10%) to estimate total costs without downloading anything. Perfect for budgeting large collections before committing to full processing. ### Q: Can I limit processing costs? A: Yes! Set a media_limit to control how many items are processed per creator, or use dry run mode first to estimate costs for unlimited collections. --- ## 🛡️ Privacy & Legal Compliance ### 🔒 Data Security - Encrypted Credentials - All login information securely encrypted via Apify's "secret inputs" which are encrypted during the Actor's run - Secure Infrastructure - Enterprise-grade cloud storage - GDPR Compliant - European data protection standards ### ⚖️ Legal Use Only - Download only content you have legitimate access to - Respect creators' intellectual property rights - Comply with OnlyFans terms of service - Use for personal archiving and legitimate research only ### 🔞 Content Warning This downloader processes adult content from OnlyFans (18+ platform). By using this tool, you confirm: - You are 18+ years of age - You understand the nature of content being processed - You will use this tool responsibly and legally - You have legitimate access to content being downloaded --- ## 🚀 Get Started with OnlyFans Media Downloads ### 🆓 Try It Today - Start with Apify's free tier - Use dry run mode first to estimate costs for any collection - Test with small collections (set media_limit to <100) - No long-term commitments - pay only $0.10 per 100 MB processed media data ### 💼 Production Ready - Scales to handle massive collections - Enterprise-grade reliability and security - 24/7 processing availability ### 🆘 Need Support? Our team is here to help with your OnlyFans downloading needs: - 📧 Email: [max@mapa.slmail.me] - 💬 Support: Use the Issues tab for technical questions - 📖 Documentation: Comprehensive guides available --- Ready to start downloading and organizing OnlyFans content efficiently? 🚀 Start Downloading Now --- Disclaimer: This OnlyFans downloader is for legitimate content archiving, backup, and research purposes only. Users must comply with all applicable laws, regulations, and OnlyFans' terms of service. Only download content you have legitimate rights to access through your own subscriptions and account.

Common Use Cases

Market Research

Gather competitive intelligence and market data

Lead Generation

Extract contact information for sales outreach

Price Monitoring

Track competitor pricing and product changes

Content Aggregation

Collect and organize content from multiple sources

Ready to Get Started?

Try OnlyFans Downloader & Scraper API now on Apify. Free tier available with no credit card required.

Start Free Trial

Actor Information

Developer
clearpath
Pricing
Paid
Total Runs
598
Active Users
199
Apify Platform

Apify provides a cloud platform for web scraping, data extraction, and automation. Build and run web scrapers in the cloud.

Learn more about Apify

Need Professional Help?

Couldn't solve your problem? Hire a verified specialist on Fiverr to get it done quickly and professionally.

Find a Specialist

Trusted by millions | Money-back guarantee | 24/7 Support