OnlyFans Downloader & Scraper API avatar
OnlyFans Downloader & Scraper API

Pricing

Pay per event

Go to Store
OnlyFans Downloader & Scraper API

OnlyFans Downloader & Scraper API

Developed by

ClearPath

ClearPath

Maintained by Community

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

0.0 (0)

Pricing

Pay per event

0

Total users

3

Monthly users

3

Runs succeeded

82%

Last modified

15 hours ago

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

{
"urls": ["creator1", "creator2", "https://onlyfans.com/creator3"],
"username": "your_email@example.com",
"password": "your_password",
"media_limit": 50,
"notification_email": "notifications@yourdomain.com"
}

2. Advanced Configuration with Telegram

{
"urls": ["creator1", "creator2"],
"username": "your_email@example.com",
"password": "your_password",
"media_limit": 100,
"notification_email": "notifications@yourdomain.com",
"telegram_user_id": "123456789"
}

3. Cost Estimation (Dry Run)

{
"urls": ["creator1", "creator2"],
"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

ParameterTypeDescriptionRequired
urlsArrayOnlyFans usernames or profile URLsโœ… Yes
usernameStringYour OnlyFans email addressโœ… Yes
passwordStringYour OnlyFans password (securely encrypted)โœ… Yes
media_limitIntegerMax media items per creator (0 = unlimited, 1-10000)No (default: 0)
dry_runBooleanCost estimation mode (no actual processing)No
notification_emailStringEmail for download link notificationsโœ… Yes
telegram_user_idStringTelegram user ID for instant notificationsNo
webhook_urlStringWebhook URL for completion notificationsNo

๐Ÿ”” 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.20 per GB 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 ~3MB each, 30% videos ~80MB each):

  • 100 Items (~2.6 GB): ~$0.52
    • 70 photos + 30 videos
  • 500 Items (~13 GB): ~$2.60
    • 350 photos + 150 videos
  • 1000+ Items (~26 GB): ~$5.20+
    • 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.20 per GB 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

// 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-media-downloader').call({
urls: ['creator1', 'creator2'],
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-media-downloader').call({
urls: ['creator1', 'creator2'],
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):

{
"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:

{
"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:

{
"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:

{
"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:

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:

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

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

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

{
"status": "completed",
"message": "Processing 2 OnlyFans profiles for your-email@domain.com",
"total_urls": 2,
"urls": [
"creator1",
"creator2"
],
"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.20 per GB
  • 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

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.20 per GB 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.


๐Ÿ”’ 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
  • 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.20 per GB processed

๐Ÿ’ผ 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.