Instagram Profile & Posts Scraper
Pricing
from $0.01 / 1,000 results
Instagram Profile & Posts Scraper
Scrape Instagram profiles and their recent posts. Get follower counts, engagement metrics, and detailed post data. Profile scraping (followers, following, bio, etc.). Recent posts with engagement metrics. Supports reels and regular posts. No login required (public profiles only).
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer

John Rippy
Actor stats
0
Bookmarked
9
Total users
4
Monthly active users
4 days ago
Last modified
Categories
Share
Instagram Profile & Posts Scraper - Followers, Engagement, Reels & AI Sentiment Analysis
Scrape public Instagram profiles and posts with full engagement metrics. Extract follower counts, bio data, recent posts, reels, likes, comments, hashtags, and posting patterns. Includes Camoufox anti-detection, optional Firecrawl API fallback, and AI sentiment analysis with 5 provider options (BYOK). Essential for influencer research, competitive analysis, and brand monitoring.
Table of Contents
- Features
- Who Should Use This Actor
- How It Works
- Quick Start
- Input Parameters
- Output Format
- AI Sentiment Analysis
- Pricing
- Real-World Use Cases
- Advanced Configurations
- Webhook & Automation Integration
- API Examples
- Anti-Detection Technology
- Comparison to Official APIs
- FAQ
- Troubleshooting
- Data Export Options
- Rate Limits & Best Practices
- Legal & Compliance
Features
Core Scraping Capabilities
- Profile Metrics - Followers, following, posts count, verification status
- Bio & Links - Biography, external URL, business category
- Recent Posts - Up to 50 posts per profile with engagement data
- Reels Support - Scrape both regular posts and reels
- Stories Highlights - Profile highlights count and metadata
- Hashtag Extraction - Hashtags from captions for trend analysis
- Business Account Detection - Category and contact info for business profiles
Anti-Detection Suite
- Camoufox Stealth Browser - C++ level browser fingerprint evasion
- Human-like Behavior - Natural scrolling, random delays, mouse movements
- Residential Proxies - Apify residential proxy rotation (default)
- Firecrawl Fallback - API-based scraping when browser methods fail (BYOK)
AI Intelligence (BYOK)
- Sentiment Analysis - 5 AI providers for caption tone analysis
- Content Classification - Automatic categorization of post types
- Trend Detection - Identify viral patterns and engagement anomalies
Integration Ready
- Webhook Delivery - Real-time results to your endpoint
- Scheduled Runs - Automated daily/weekly monitoring
- Export Formats - JSON, CSV, Excel, XML
- No Login Required - Works with public Instagram profiles
- Demo Mode - Test with sample data before going live
Who Should Use This Actor?
Influencer Marketing Teams
Evaluate potential influencer partners before signing contracts. Analyze follower counts, engagement rates, content quality, and posting consistency. Compare multiple creators side-by-side.
Example workflow:
- Input 10 potential influencer usernames
- Scrape 20 posts each with sentiment analysis
- Export to Google Sheets for team review
- Calculate engagement rates: (likes + comments) / followers × 100
Social Media Managers
Track competitor Instagram strategies. Monitor posting frequency, content types, and engagement patterns to inform your own social strategy.
Example workflow:
- Schedule weekly scrapes of 5 competitors
- Track posting frequency and best posting times
- Identify high-performing content themes
- Adapt strategy based on competitor insights
Marketing Agencies
Build comprehensive Instagram analytics reports for clients. Compare client performance against competitors with real engagement data.
Example workflow:
- Monthly scrape: client + 3 competitors
- Auto-generate comparison reports
- Identify content gaps and opportunities
- Present data-driven recommendations
Brand Managers
Monitor competitor product launches, campaign creatives, and audience reactions on Instagram.
Example workflow:
- Alert on competitor new post activity
- Track campaign hashtag performance
- Monitor audience sentiment around launches
- Benchmark against industry standards
E-Commerce Companies
Research competitor product photography, promotional strategies, and user engagement with product posts.
Example workflow:
- Scrape competitor product posts
- Analyze best-performing product shots
- Track promotional content frequency
- Identify seasonal posting patterns
Talent Agencies & Creator Managers
Discover and evaluate Instagram creators for partnerships, sponsorships, and talent representation.
Example workflow:
- Build creator database with metrics
- Track growth trends over time
- Verify engagement authenticity
- Match creators to brand opportunities
Academic Researchers
Study social media behavior, content trends, and engagement patterns for academic research.
Example workflow:
- Collect posts on specific topics/hashtags
- Analyze posting patterns and engagement
- Study sentiment and content evolution
- Export for statistical analysis tools
How It Works
Architecture Overview
┌─────────────────────────────────────────────────────────────────┐│ Instagram Scraper v2.1 │├─────────────────────────────────────────────────────────────────┤│ ││ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ││ │ Input │───▶│ Scraper │───▶│ Output │ ││ │ Usernames │ │ Engine │ │ Dataset │ ││ └──────────────┘ └──────────────┘ └──────────────┘ ││ │ │ ││ ▼ │ ││ ┌──────────────┐ │ ││ │ Camoufox │ │ ││ │ Browser │ │ ││ └──────────────┘ │ ││ │ │ ││ ┌───────┴───────┐ │ ││ ▼ ▼ │ ││ ┌──────────┐ ┌──────────┐ │ ││ │ Browser │ │Firecrawl │ │ ││ │ Mode │ │ Fallback │ │ ││ └──────────┘ └──────────┘ │ ││ │ │ │ ││ └───────┬───────┘ │ ││ ▼ ▼ ││ ┌──────────────┐ ┌──────────────┐ ││ │ AI │───▶│ Webhook │ ││ │ Sentiment │ │ Delivery │ ││ │ (Optional) │ │ (Optional) │ ││ └──────────────┘ └──────────────┘ ││ │└─────────────────────────────────────────────────────────────────┘
Scraping Process
- Input Validation - Validates usernames and configuration
- Browser Launch - Spins up Camoufox stealth browser with residential proxy
- Profile Navigation - Navigates to each Instagram profile
- Data Extraction - Extracts profile info and scrolls to load posts
- Post Processing - Gathers engagement metrics for each post
- AI Analysis - Optional sentiment analysis on captions (BYOK)
- Data Output - Saves to Apify dataset and optional webhook delivery
Quick Start
Demo Mode (Free Test)
{"demoMode": true}
Returns realistic sample data so you can test your integrations without any charges.
Scrape Public Profiles (Basic)
{"usernames": ["nike", "adidas"],"maxPosts": 12,"includeReels": true,"demoMode": false}
With Apify Residential Proxy (Recommended)
{"usernames": ["cocacola", "pepsi", "redbull"],"maxPosts": 20,"includeReels": true,"proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]},"demoMode": false}
With Firecrawl API Fallback
{"usernames": ["targetbrand"],"maxPosts": 12,"useFirecrawl": true,"firecrawlApiKey": "fc-your-api-key","demoMode": false}
With AI Sentiment Analysis
{"usernames": ["nike"],"maxPosts": 20,"enableSentimentAnalysis": true,"aiProvider": "anthropic","aiApiKey": "sk-ant-your-api-key","demoMode": false}
Full Configuration Example
{"usernames": ["nike", "adidas", "puma", "newbalance", "asics"],"maxPosts": 30,"includeReels": true,"enableSentimentAnalysis": true,"aiProvider": "openai","aiApiKey": "sk-your-openai-key","aiModel": "gpt-4o-mini","useFirecrawl": true,"firecrawlApiKey": "fc-your-firecrawl-key","proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]},"webhookUrl": "https://your-webhook.com/instagram-results","demoMode": false}
Input Parameters
Required Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
usernames | array | - | Instagram usernames to scrape (without @ symbol). Max 100 per run. |
Scraping Options
| Parameter | Type | Default | Description |
|---|---|---|---|
maxPosts | number | 12 | Maximum posts per profile (1-50) |
includeReels | boolean | true | Include reels in scraped posts |
includeComments | boolean | false | Include top comments on each post |
maxComments | number | 10 | Maximum comments per post (if enabled) |
demoMode | boolean | true | Return sample data for testing (no charges) |
Firecrawl Configuration (BYOK)
| Parameter | Type | Default | Description |
|---|---|---|---|
useFirecrawl | boolean | false | Use Firecrawl API as scraping fallback |
firecrawlApiKey | string | - | Your Firecrawl API key |
AI Sentiment Analysis (BYOK)
| Parameter | Type | Default | Description |
|---|---|---|---|
enableSentimentAnalysis | boolean | false | Enable AI caption analysis |
aiProvider | string | - | AI provider: openai, anthropic, google, mistral, cohere |
aiApiKey | string | - | Your AI provider API key |
aiModel | string | - | Custom model override (optional) |
Proxy Configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
proxy | object | Residential | Proxy configuration object |
proxy.useApifyProxy | boolean | true | Use Apify proxy service |
proxy.apifyProxyGroups | array | ["RESIDENTIAL"] | Proxy groups to use |
Integration Options
| Parameter | Type | Default | Description |
|---|---|---|---|
webhookUrl | string | - | Webhook URL for results delivery |
Output Format
Profile Data Structure
{"username": "nike","fullName": "Nike","biography": "Just Do It. #Nike","profilePicUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/...","followersCount": 305000000,"followingCount": 150,"postsCount": 1234,"isVerified": true,"isBusinessAccount": true,"businessCategory": "Product/Service","externalUrl": "https://nike.com","highlightsCount": 15,"overallSentiment": {"score": 0.72,"label": "positive","summary": "Predominantly upbeat, inspirational content"},"latestPosts": [{"id": "ABC123XYZ","shortcode": "ABC123XYZ","url": "https://instagram.com/p/ABC123XYZ","type": "image","caption": "Just Do It. The new Air Max 2026 is here. #AirMax #Nike #Innovation","displayUrl": "https://scontent.cdninstagram.com/v/t51.2885-15/...","videoUrl": null,"likesCount": 500000,"commentsCount": 5000,"timestamp": "2026-01-20T15:30:00.000Z","isVideo": false,"isReel": false,"hashtags": ["AirMax", "Nike", "Innovation"],"mentions": ["@athletes"],"reactions": {"likes": 500000,"comments": 5000,"shares": 12000,"saves": 45000},"sentiment": {"score": 0.85,"label": "positive","confidence": 0.92,"summary": "Upbeat promotional content with inspirational tone","tone": "inspiring"},"comments": [{"author": "fan_account","content": "Love the new design!","timestamp": "2026-01-20T16:00:00.000Z","likes": 150,"replies": 3,"sentiment": {"score": 0.9,"label": "positive"}}]}],"engagementRate": 1.64,"averageLikes": 485000,"averageComments": 4200,"postingFrequency": "2.3 posts/day","scrapedAt": "2026-01-28T10:30:00.000Z"}
Post Types Detected
| Type | Description |
|---|---|
image | Single image post |
video | Video post (non-reel) |
carousel | Multi-image/video post |
reel | Instagram Reel |
Sentiment Analysis Output
When AI sentiment analysis is enabled, each post includes:
{"sentiment": {"score": 0.85,"label": "positive","confidence": 0.92,"summary": "Upbeat promotional content with inspirational messaging","tone": "inspiring","emotions": ["excitement", "motivation", "pride"],"topics": ["product launch", "athletic performance", "innovation"]}}
| Field | Type | Range | Description |
|---|---|---|---|
score | number | -1 to 1 | Sentiment score (negative to positive) |
label | string | - | Classification: negative, neutral, positive |
confidence | number | 0 to 1 | AI confidence in prediction |
summary | string | - | Brief description of content tone |
tone | string | - | Emotional tone (inspiring, humorous, informative, etc.) |
emotions | array | - | Detected emotions in content |
topics | array | - | Key topics identified |
AI Sentiment Analysis (BYOK)
Enable AI-powered sentiment analysis to understand the tone of Instagram captions. Bring Your Own Key (BYOK) - costs are billed directly to your AI provider account.
Supported Providers
| Provider | Default Model | Best For | Cost Estimate |
|---|---|---|---|
| OpenAI | gpt-4o-mini | Fast, affordable analysis | ~$0.001/post |
| Anthropic | claude-3-haiku | Nuanced understanding | ~$0.002/post |
| gemini-1.5-flash | Cost-effective at scale | ~$0.0005/post | |
| Mistral | mistral-small | European data residency | ~$0.001/post |
| Cohere | command-r | Enterprise deployments | ~$0.001/post |
Custom Model Override
Override the default model for any provider:
{"enableSentimentAnalysis": true,"aiProvider": "openai","aiApiKey": "sk-your-key","aiModel": "gpt-4o"}
Sentiment Output Interpretation
| Score Range | Label | Meaning |
|---|---|---|
| -1.0 to -0.3 | Negative | Critical, complaints, disappointment |
| -0.3 to 0.3 | Neutral | Informational, factual, balanced |
| 0.3 to 1.0 | Positive | Enthusiastic, happy, promotional |
Pricing (Pay-Per-Event)
Event-Based Pricing
| Event | Description | Price |
|---|---|---|
profile_scraped | Per Instagram profile scraped | $0.08 |
Cost Examples
| Scenario | Profiles | Posts/Profile | Total Cost |
|---|---|---|---|
| Quick test | 1 | 12 | $0.08 |
| Influencer review | 5 | 20 | $0.40 |
| Competitor audit | 10 | 30 | $0.80 |
| Weekly monitoring | 20 | 12 | $1.60 |
| Large research | 100 | 50 | $8.00 |
| Demo mode | Any | Any | $0.00 |
Additional Costs (BYOK)
- Firecrawl API: Charged by Firecrawl (your account)
- AI Sentiment: Charged by AI provider (your account)
- Apify Proxy: Included in platform usage
Real-World Use Cases
Use Case 1: Influencer Vetting Pipeline
Goal: Evaluate 20 potential micro-influencers for a fitness brand campaign.
{"usernames": ["fitness_creator_1", "wellness_coach_2", "gym_life_3","healthy_living_4", "workout_queen_5", "muscle_builder_6","yoga_master_7", "nutrition_pro_8", "cardio_king_9","strength_training_10", "fitness_journey_11", "gym_motivation_12","health_tips_13", "workout_daily_14", "fit_lifestyle_15","gym_addict_16", "fitness_goals_17", "workout_routine_18","healthy_habits_19", "exercise_everyday_20"],"maxPosts": 30,"includeReels": true,"enableSentimentAnalysis": true,"aiProvider": "anthropic","aiApiKey": "sk-ant-your-key","demoMode": false}
Expected output: 20 profiles with 600 posts, engagement metrics, and sentiment analysis.
Cost: $1.60 + AI costs ($1.20) = $2.80 total
Use Case 2: Weekly Competitor Monitoring
Goal: Track 5 competitors' Instagram activity every week.
{"usernames": ["competitor_1", "competitor_2", "competitor_3", "competitor_4", "competitor_5"],"maxPosts": 20,"includeReels": true,"proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]},"webhookUrl": "https://hooks.zapier.com/hooks/catch/123456/abcdef/","demoMode": false}
Zapier workflow:
- Instagram Scraper sends results to Zapier
- Zapier routes data to Google Sheets
- Weekly Slack notification with summary
- Trend charts auto-update in Data Studio
Monthly cost: 4 runs × $0.40 = $1.60/month
Use Case 3: Brand Sentiment Dashboard
Goal: Monitor your brand's Instagram sentiment in real-time.
{"usernames": ["your_brand"],"maxPosts": 50,"includeComments": true,"maxComments": 20,"enableSentimentAnalysis": true,"aiProvider": "openai","aiApiKey": "sk-your-key","webhookUrl": "https://your-dashboard.com/api/sentiment","demoMode": false}
Dashboard integration:
- Real-time sentiment score display
- Trend graphs over time
- Alert on negative sentiment spikes
- Comment sentiment breakdown
Use Case 4: Content Research & Ideation
Goal: Analyze top-performing content in your niche for inspiration.
{"usernames": ["niche_leader_1", "niche_leader_2", "niche_leader_3","niche_leader_4", "niche_leader_5"],"maxPosts": 50,"includeReels": true,"enableSentimentAnalysis": true,"aiProvider": "google","aiApiKey": "your-google-ai-key","demoMode": false}
Analysis workflow:
- Export to CSV
- Sort by engagement rate
- Identify common themes in top posts
- Note posting times of high performers
- Catalog content formats (carousel vs. reel vs. image)
Use Case 5: Product Launch Tracking
Goal: Monitor competitor product launch and audience reaction.
{"usernames": ["competitor_brand"],"maxPosts": 30,"includeComments": true,"maxComments": 50,"enableSentimentAnalysis": true,"aiProvider": "anthropic","aiApiKey": "sk-ant-your-key","demoMode": false}
Intelligence gathered:
- Launch announcement post engagement
- Audience sentiment in comments
- Comparison to their typical engagement
- Key feedback themes from comments
Advanced Configurations
High-Volume Scraping (100+ Profiles)
For large-scale scraping, split into batches:
{"usernames": ["batch_1_usernames..."],"maxPosts": 12,"proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]},"demoMode": false}
Best practices:
- Split into batches of 20-30 profiles
- Wait 15-30 minutes between batches
- Use residential proxies (default)
- Schedule overnight for large jobs
Firecrawl + Browser Hybrid
Use Firecrawl as automatic fallback when browser scraping fails:
{"usernames": ["hard_to_scrape_profile"],"maxPosts": 20,"useFirecrawl": true,"firecrawlApiKey": "fc-your-key","proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]},"demoMode": false}
Multi-Provider AI Analysis
Run sentiment analysis with different providers for comparison:
Run 1 (OpenAI):
{"usernames": ["test_profile"],"enableSentimentAnalysis": true,"aiProvider": "openai","aiApiKey": "sk-openai-key"}
Run 2 (Anthropic):
{"usernames": ["test_profile"],"enableSentimentAnalysis": true,"aiProvider": "anthropic","aiApiKey": "sk-anthropic-key"}
Webhook & Automation Integration
Webhook Configuration
{"usernames": ["competitor"],"maxPosts": 12,"webhookUrl": "https://your-endpoint.com/webhook"}
Webhook Payload Format
{"event": "ACTOR_RUN_SUCCEEDED","actorId": "instagram-scraper","runId": "abc123xyz","datasetId": "def456uvw","itemCount": 5,"results": [{"username": "nike","followersCount": 305000000,"latestPosts": [...]}]}
Platform Integrations
Zapier
- Create a Zapier webhook trigger
- Copy webhook URL to
webhookUrlparameter - Route data to Google Sheets, Slack, Airtable, etc.
Make.com (Integromat)
- Create a webhook module in Make
- Use the webhook URL in your Instagram Scraper input
- Process and route data to 1000+ apps
n8n (Self-hosted)
- Add a Webhook node in n8n
- Configure Instagram Scraper with your n8n webhook URL
- Build custom workflows with full control
Popular Automation Workflows
| Trigger | Action | Use Case |
|---|---|---|
| Competitor posts | Slack notification | Real-time competitive awareness |
| Weekly scrape | Google Sheets append | Influencer database building |
| Sentiment change | Email alert | Brand monitoring |
| New posts detected | Airtable record | Content calendar tracking |
| High engagement post | Team notification | Trend identification |
Apify Scheduled Runs
Schedule automated runs directly in Apify:
- Go to Actor page → Schedules tab
- Create new schedule
- Set frequency (daily, weekly, monthly)
- Configure input JSON
- Enable notifications
API Examples
Start a Run via API
curl -X POST "https://api.apify.com/v2/acts/jrippy~instagram-scraper/runs" \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-d '{"usernames": ["nike", "adidas"],"maxPosts": 20,"demoMode": false}'
Get Run Results
curl "https://api.apify.com/v2/actor-runs/RUN_ID/dataset/items" \-H "Authorization: Bearer YOUR_APIFY_TOKEN"
Python Integration
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"usernames": ["nike", "adidas", "puma"],"maxPosts": 20,"includeReels": True,"enableSentimentAnalysis": True,"aiProvider": "openai","aiApiKey": "sk-your-openai-key","demoMode": False}run = client.actor("jrippy/instagram-scraper").call(run_input=run_input)# Get resultsdataset_items = list(client.dataset(run["defaultDatasetId"]).iterate_items())for profile in dataset_items:print(f"{profile['username']}: {profile['followersCount']:,} followers")print(f" Engagement rate: {profile.get('engagementRate', 'N/A')}%")print(f" Sentiment: {profile.get('overallSentiment', {}).get('label', 'N/A')}")
Node.js Integration
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const input = {usernames: ['nike', 'adidas', 'puma'],maxPosts: 20,includeReels: true,enableSentimentAnalysis: true,aiProvider: 'openai',aiApiKey: 'sk-your-openai-key',demoMode: false};const run = await client.actor('jrippy/instagram-scraper').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(profile => {console.log(`${profile.username}: ${profile.followersCount.toLocaleString()} followers`);console.log(` Engagement: ${profile.engagementRate}%`);});
Anti-Detection Technology
Camoufox Stealth Browser
This scraper uses Camoufox, a C++ level browser fingerprint evasion tool that makes automated browsing appear as genuine human activity.
How it works:
- Randomizes browser fingerprints (canvas, WebGL, audio)
- Mimics real human behavior patterns
- Evades JavaScript-based bot detection
- Rotates user agents and screen resolutions
Human-like Behavior Patterns
The scraper implements realistic browsing:
- Natural scroll speeds with random pauses
- Random delays between actions (1-5 seconds)
- Mouse movement simulation
- Click patterns that mimic human interaction
Residential Proxy Rotation
Default configuration uses Apify's residential proxy pool:
- Real IP addresses from residential ISPs
- Automatic rotation between requests
- Geographic targeting available
- No datacenter IP fingerprinting
Firecrawl API Fallback
When browser-based scraping encounters blocks:
- Automatically switches to Firecrawl API
- Uses Firecrawl's infrastructure for extraction
- Seamlessly merges results with browser data
Comparison to Official APIs
Instagram Graph API (Official)
| Feature | Graph API | This Scraper |
|---|---|---|
| Access | Only accounts you manage | Any public profile |
| Setup | Facebook developer app required | None |
| Authentication | OAuth 2.0 | Not required |
| Real-time | Yes | Scheduled |
| Comment management | Yes | Read-only |
| Insights/Analytics | Yes | Engagement metrics |
| Cost | Free (rate limited) | Pay-per-profile |
Best for Graph API: Managing your own Instagram account, posting, responding to comments.
Best for this Scraper: Competitor analysis, influencer research, market research, any public profile.
Instagram Basic Display API
- Status: Being deprecated by Meta
- Access: Only your own account
- Use case: Personal media access
Alternative Tools Comparison
| Tool | Monthly Cost | Public Profiles | AI Sentiment | API Access |
|---|---|---|---|---|
| Later | $25+ | Limited | No | Limited |
| Iconosquare | $49+ | Limited | No | Yes |
| HypeAuditor | $299+ | Yes | Limited | Yes |
| Sprout Social | $249+ | Yes | Yes | Yes |
| This Scraper | Pay-per-use | Yes | Yes (BYOK) | Yes |
This Scraper's Advantages
- Any public profile - Not limited to accounts you manage
- Camoufox anti-detection - C++ level fingerprint evasion
- Firecrawl fallback - API alternative when browser fails
- AI sentiment analysis - 5 provider options (BYOK)
- Business account detection - Category and contact data
- Pay-per-result pricing - No monthly subscription
- Full API access - Integrate with any system
- Export flexibility - JSON, CSV, Excel, XML
FAQ
General Questions
Q: Do I need an Instagram account? A: No. This scraper works with public Instagram data. No login or authentication required.
Q: Can I scrape private profiles? A: No. Only public profiles can be scraped. Private profiles are protected by Instagram's privacy settings.
Q: What about Instagram's terms of service? A: This scraper accesses publicly available data only. See Legal & Compliance section for details.
Q: How often can I run the scraper? A: There's no hard limit, but we recommend starting with small batches (1-3 profiles) and waiting 15-30 minutes between larger runs to avoid detection.
Technical Questions
Q: What is Camoufox? A: Camoufox is a C++ level browser fingerprint evasion tool. It makes automated browsing appear as genuine human activity to Instagram's detection systems.
Q: Should I use Firecrawl? A: Firecrawl is an optional API-based scraping fallback. Enable it if browser-based scraping gets blocked. Requires your own Firecrawl API key (BYOK).
Q: What AI providers are supported for sentiment analysis? A: OpenAI, Anthropic (Claude), Google (Gemini), Mistral, and Cohere. Each requires your own API key (BYOK).
Q: How many profiles can I scrape per run? A: Start with 1-3 profiles and increase gradually. For large jobs (100+ profiles), split into batches of 20-30 with 15-30 minute gaps.
Q: Why use residential proxies? A: Residential proxies use real IP addresses from home internet connections, making requests appear more legitimate than datacenter IPs.
Pricing Questions
Q: What does BYOK mean? A: Bring Your Own Key. You provide API keys for Firecrawl and AI providers. Those services charge your account directly.
Q: Is demo mode really free? A: Yes. Demo mode returns sample data with zero charges. Use it to test your integrations.
Q: How is pricing calculated? A: $0.08 per profile scraped. Posts are included in the profile charge.
Troubleshooting
Common Issues
"Profile not found"
Possible causes:
- Username is misspelled (remember: no @ symbol)
- Profile has been deactivated or renamed
- Profile is set to private
Solutions:
- Verify username by visiting
instagram.com/usernamein a browser - Check for recent username changes
- Confirm profile is public
"Getting blocked by Instagram"
Possible causes:
- Too many profiles in one run
- Running too frequently
- Datacenter proxies being used
Solutions:
- ✅ Enable Apify residential proxy (default)
- ✅ Reduce profiles to 3-5 per run
- ✅ Wait 15-30 minutes between runs
- ✅ Enable Firecrawl fallback
- ✅ Try at different times of day
"No posts returned"
Possible causes:
- Profile has no public posts
maxPostsset too low- Profile only has Stories (not supported)
Solutions:
- Increase
maxPostsvalue - Set
includeReels: true - Verify profile has visible posts
"Demo data showing unexpectedly"
Cause: demoMode is set to true (default)
Solution: Set demoMode: false in your input
"AI sentiment analysis not working"
Possible causes:
- Invalid API key
- Wrong provider name
- AI provider rate limits
Solutions:
- Verify API key is valid and has credits
- Check provider spelling:
openai,anthropic,google,mistral,cohere - Try a different AI provider
"Firecrawl not activating"
Possible causes:
- Firecrawl not enabled
- Invalid Firecrawl API key
Solutions:
- Set
useFirecrawl: true - Verify
firecrawlApiKeyis correct - Check Firecrawl account has credits
"Webhook not receiving data"
Possible causes:
- Invalid webhook URL
- Webhook endpoint not responding
- Firewall blocking Apify IPs
Solutions:
- Test webhook URL with a simple curl request
- Check endpoint returns 200 status
- Whitelist Apify IP ranges if needed
- Check webhook service logs for errors
Error Codes
| Error | Meaning | Solution |
|---|---|---|
PROFILE_NOT_FOUND | Username doesn't exist | Verify username |
PROFILE_PRIVATE | Profile is private | Cannot scrape private profiles |
RATE_LIMITED | Instagram blocked request | Wait and retry with fewer profiles |
PROXY_ERROR | Proxy connection failed | Try different proxy group |
AI_API_ERROR | AI provider error | Check API key and credits |
FIRECRAWL_ERROR | Firecrawl API failed | Verify Firecrawl key |
Data Export Options
Available Formats
| Format | Use Case | How to Access |
|---|---|---|
| JSON | API integrations | Default dataset format |
| CSV | Excel, Google Sheets | Dataset export option |
| Excel | Business reports | Dataset export option |
| XML | Legacy systems | Dataset export option |
Export via Apify Console
- Go to run results
- Click "Export" button
- Select format (JSON, CSV, Excel, XML)
- Download file
Export via API
# JSONcurl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=json"# CSVcurl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv"# Excelcurl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=xlsx"
Rate Limits & Best Practices
Recommended Limits
| Scenario | Profiles/Run | Wait Between Runs |
|---|---|---|
| Testing | 1-3 | 5 minutes |
| Normal usage | 5-10 | 15 minutes |
| Batch jobs | 20-30 | 30 minutes |
| Large research | 50+ | Split into batches |
Best Practices
- Start small - Begin with 1-3 profiles, scale gradually
- Use residential proxies - Default setting, highly recommended
- Enable Firecrawl - Automatic fallback when blocked
- Schedule off-peak - Run during low-traffic hours
- Batch large jobs - Split 100+ profiles into smaller runs
- Monitor success rate - Track which profiles succeed/fail
- Rotate timing - Don't run at exactly the same time daily
Legal & Compliance
Data Usage
This scraper collects publicly available Instagram data only:
- Public profile information
- Public post content and engagement metrics
- Public comments (if enabled)
What This Scraper Does NOT Do
- ❌ Access private profiles
- ❌ Bypass privacy settings
- ❌ Scrape logged-in user data
- ❌ Store Instagram credentials
- ❌ Access Instagram's internal APIs
Compliance Considerations
- GDPR: Collected data may contain personal information. Users are responsible for GDPR compliance when processing EU resident data.
- CCPA: Similar considerations for California residents.
- Terms of Service: Users should review Instagram's ToS for their specific use case.
Recommended Use Cases
✅ Market research and competitive analysis ✅ Influencer discovery and vetting ✅ Academic research (with appropriate ethics approval) ✅ Brand monitoring of public mentions ✅ Content strategy research
Not Recommended
❌ Scraping for spam or harassment ❌ Building unauthorized follower databases ❌ Circumventing privacy settings ❌ Commercial resale of scraped data
Live View API
Monitor scraping progress in real-time during execution.
Endpoints
| Endpoint | Description |
|---|---|
GET /status | Current scraping phase and progress |
GET /profiles | Profiles scraped so far |
GET /posts | Aggregated posts from all profiles |
GET /sentiment | Sentiment analysis summary |
GET /engagement | Aggregate engagement statistics |
Example: Check Progress
$curl "https://api.apify.com/v2/actor-runs/RUN_ID/web-server/status"
Response:
{"phase": "scraping-posts","profilesQueued": 5,"profilesCompleted": 3,"profilesFailed": 0,"postsScraped": 45,"elapsedSeconds": 120,"mode": "browser","aiProvider": "openai"}
Support & Resources
Documentation
Get Help
Related Actors
- TikTok Scraper - Scrape TikTok profiles and videos
- LinkedIn Profile Scraper - Scrape LinkedIn profiles
- Twitter/X Scraper - Scrape Twitter profiles and tweets
Built by John Rippy | Actor Arsenal
Instagram is a trademark of Meta Platforms, Inc. This scraper is not affiliated with, endorsed by, or sponsored by Meta.