iG Profile Scraper avatar
iG Profile Scraper
Under maintenance

Pricing

$17.99/month + usage

Go to Apify Store
iG Profile Scraper

iG Profile Scraper

Under maintenance

Developed by

Aijaz Alee

Aijaz Alee

Maintained by Community

5.0 (1)

Pricing

$17.99/month + usage

0

5

1

Last modified

11 days ago

Analyze Instagram followers or following to find valuable profiles. Filter large accounts by engagement, contact info, and business category to discover influencers, leads, or ideal customers. Perfect for lead generation, market research, and influencer marketing.


🚀 Quick Start Guide

Step-by-Step Tutorial for Beginners

Step 1: Choose Your Operation Mode

  • Decide how you want to find leads (single account, multiple accounts, specific list, or network expansion)

Step 2: Configure Your Target

  • Enter the Instagram handle(s) you want to analyze

Step 3: Set Data Extraction

  • Choose what information to extract (email, phone, website, etc.)

Step 4: Apply Filters (Optional)

  • Filter by keywords, followers, location, etc. to get qualified leads only

Step 5: Add Your Session Cookie

  • Get better results by adding your Instagram session cookie (see guide below)

Step 6: Run the Actor

  • Click "Save & Start" and wait for results

📋 Table of Contents

  1. Choose Operation Mode
  2. Configure Mode-Specific Settings
  3. Data Extraction Options
  4. Advanced Filtering
  5. Run & Storage Options
  6. Getting Instagram Session Cookie
  7. Use Cases & Examples
  8. Tips & Best Practices

1. Choose Operation Mode

Select how you want to scrape Instagram profiles:

🎯 Mode 1: Analyze a Single Account's Followers/Following

When to use: Analyze one competitor or influencer's audience

  • Scrapes followers or following from a single target account
  • Perfect for competitor analysis
  • Ideal for finding potential customers from similar businesses

Example:

{
"operationMode": "single",
"targetAccount": "instagram"
}

🎯 Mode 2: Batch Analyze Followers/Following

When to use: Analyze multiple accounts at once

  • Scrapes followers/following from multiple target accounts
  • Process several competitors simultaneously
  • Build comprehensive audience databases

Example:

{
"operationMode": "batch",
"targetProfiles": ["competitor1", "competitor2", "competitor3"]
}

🎯 Mode 3: Analyze a Specific List of Accounts

When to use: Enrich existing leads with data

  • Enriches a provided list of profiles with detailed information
  • Does NOT scrape their followers
  • Perfect for verifying and updating existing lead lists

Example:

{
"operationMode": "specificList",
"specificProfiles": ["lead1", "lead2", "lead3"]
}

🎯 Mode 4: Network Expansion (Find Similar Profiles)

When to use: Discover new leads similar to your best customers

  • Uses Instagram's "Suggested for You" algorithm
  • Finds lookalike audiences
  • Discovers new influencers in your niche

Example:

{
"operationMode": "networkExpansion",
"startProfiles": ["ideal_customer1", "ideal_customer2"],
"searchDepth": 1
}

2. Configure Mode-Specific Settings

For Mode 1: Single Account

FieldDescriptionExample
Target AccountInstagram handle (without @)claudeai
Scrape FollowersExtract followers list✅ Enabled
Scrape FollowingExtract following list❌ Disabled
Max ProfilesMaximum profiles to process100

Sample Configuration:

{
"operationMode": "single",
"targetAccount": "instagram",
"scrapeFollowers": true,
"scrapeFollowing": false,
"maxProfiles": 100
}

For Mode 2: Batch Processing

FieldDescriptionExample
Target Profiles ListMultiple Instagram handles["openai", "claudeai", "google"]
Scrape FollowersExtract followers from each✅ Enabled
Scrape FollowingExtract following from each❌ Disabled
Max Per AccountLimit per account (cost control)50
Max Profiles TotalOverall maximum150

Sample Configuration:

{
"operationMode": "batch",
"targetProfiles": ["competitor1", "competitor2", "competitor3"],
"scrapeFollowers": true,
"scrapeFollowing": false,
"maxProfilesPerAccount": 50,
"maxProfiles": 150
}

For Mode 3: Specific List

FieldDescriptionExample
Profiles to AnalyzeList of handles to enrich["user1", "user2"]
Max ProfilesMaximum to process100

Sample Configuration:

{
"operationMode": "specificList",
"specificProfiles": ["potential_client1", "potential_client2", "lead_from_event"],
"maxProfiles": 100
}

For Mode 4: Network Expansion

FieldDescriptionExample
Start ProfilesSeed accounts to find similar["influencer1"]
Search DepthHow deep to expand (1-3)1 (Recommended)
Max ProfilesMaximum similar profiles200

Sample Configuration:

{
"operationMode": "networkExpansion",
"startProfiles": ["successful_influencer1", "top_competitor"],
"searchDepth": 1,
"maxProfiles": 200
}

3. ⚙️ Data Extraction Options

Select what information to collect from each profile. These options apply to ALL modes.

Available Extractions:

OptionDescriptionUse Case
✉️ Extract EmailFind email in bio and contact infoLead generation, outreach
📱 Extract PhoneExtract phone numbers from bioDirect contact, sales calls
🌐 Extract WebsiteGet website URL from profileResearch, partnership outreach
🏢 Extract Business CategoryIdentify industry/nicheMarket segmentation
📍 Extract Physical AddressGet business locationLocal targeting
📈 Calculate Engagement RateAnalyze audience engagementInfluencer vetting
📝 Extract Post CaptionsGet recent post textContent analysis
🔍 Deep Search in PostsFind hidden contact infoAdvanced lead generation

For Lead Generation:

{
"extractEmail": true,
"extractPhone": true,
"extractWebsite": true,
"extractBusinessCategory": true
}

For Influencer Marketing:

{
"calculateEngagement": true,
"extractEmail": true,
"extractWebsite": true,
"extractPostCaptions": true
}

For Market Research:

{
"extractBusinessCategory": true,
"extractWebsite": true,
"calculateEngagement": true
}

4. 🔬 Advanced Filtering (Optional)

Use these filters to get highly targeted lists and save on processing costs.

Filter by Keywords

What it does: Only includes profiles containing specific keywords in their bio or name

Example:

{
"filterKeywords": ["entrepreneur", "founder", "CEO", "coach"],
"searchKeywordsIn": "both"
}

Options for Search Location:

  • bio - Search in biography only
  • fullName - Search in full name only
  • both - Search in both bio and name

Filter by Location

What it does: Filter profiles mentioning specific locations

Example:

{
"filterLocation": ["New York", "NYC", "Manhattan", "Brooklyn"]
}

Filter by Profile Language

What it does: Filter by detected language in bio

Available Languages:

  • English (en)
  • Spanish (es)
  • French (fr)
  • German (de)
  • Italian (it)
  • Portuguese (pt)
  • Arabic (ar)
  • Hindi (hi)

Example:

{
"filterLanguage": "en"
}

Filter by Follower Count

What it does: Set minimum and maximum follower ranges

Use Cases:

  • Micro-influencers: 1,000 - 10,000
  • Mid-tier influencers: 10,000 - 100,000
  • Macro-influencers: 100,000 - 1,000,000
  • Small businesses: 500 - 5,000

Example:

{
"minFollowers": 1000,
"maxFollowers": 50000
}

Filter by Last Post Date

What it does: Only include accounts that posted after a specific date

Example:

{
"lastPostDate": "2024-01-01"
}

Filter by Posting Frequency

What it does: Ensure accounts post regularly

Example:

{
"minPostsInDays": 5,
"postingFrequencyDays": 30
}

This finds accounts with at least 5 posts in the last 30 days


Filter by Recent Reels

What it does: Filter by presence of reels

Options:

  • disabled - Don't filter by reels
  • hasReels - Only accounts with recent reels
  • noReels - Only accounts without reels

Example:

{
"filterRecentReels": "hasReels"
}

Filter by Engagement

What it does: Find high-engagement accounts

Options:

{
"minMedianViews": 1000,
"filterViewsRatio": true
}

Views/Followers Ratio: Enables 30% minimum engagement filter


Filter by Contact Info Presence

What it does: Only include profiles with contact information

Options:

  • any - No filter
  • hasEmail - Must have email
  • hasPhone - Must have phone
  • hasWebsite - Must have website
  • hasAny - Has at least one contact method

Example:

{
"filterContactInfo": "hasEmail"
}

Filter by Website Presence

What it does: Only include profiles with websites

Example:

{
"filterWebsitePresence": true
}

Filter by Account Type

What it does: Filter by Instagram account category

Options:

  • any - All account types
  • business - Business accounts only
  • creator - Creator accounts only
  • personal - Personal accounts only

Example:

{
"filterAccountType": "business"
}

Filter for Influencers Only

What it does: Only include influencer accounts

Example:

{
"filterInfluencers": true
}

Filter by Business Category

What it does: Target specific business categories/industries

Example:

{
"filterBusinessCategory": ["Fashion", "Fitness", "Food & Beverage", "Travel"]
}

Filter by Verification Status

What it does: Filter by blue checkmark status

Options:

  • any - All accounts
  • verified - Verified accounts only
  • notVerified - Non-verified accounts only

Example:

{
"filterVerified": "verified"
}

5. ▶️ Run & Storage Options

Proxy Configuration

⚠️ REQUIRED: Instagram requires proxies. Always use residential proxies.

Recommended Configuration:

{
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Cost: Residential proxies cost approximately $0.50 per 1,000 requests


Why you need it:

  • Access more profile data
  • Avoid rate limiting
  • Higher success rate
  • Better quality data

How to get it: See section below

Add it to your input:

{
"sessionCookie": "your_session_id_here"
}

Run Options

Start a Fresh Run: Always enabled by default

  • Creates new dataset for each run
  • Previous results are saved separately

Enable Offline Mode: Optional (for testing)

  • Processes cached data without making new requests

Step-by-Step Guide:

Step 1: Open Instagram in your web browser

Step 2: Open Developer Tools

  • Windows/Linux: Press F12 or Ctrl + Shift + I
  • Mac: Press Cmd + Option + I

Step 3: Navigate to Cookies

  • Click on the "Application" tab (Chrome) or "Storage" tab (Firefox)
  • In the left sidebar, expand "Cookies"
  • Click on "https://www.instagram.com"

Step 4: Find Session ID

  • Look for a cookie named sessionid
  • Click on it to see the full value

Step 5: Copy the Value

  • Select the entire Value field
  • Copy it (Ctrl+C or Cmd+C)

Step 6: Paste into Actor

  • In the actor input, find "Instagram Session Cookie" field
  • Paste the value
  • ⚠️ Keep this private - it's like your password!

Security Tips:

  • ✅ Never share your session cookie
  • ✅ Use a dedicated Instagram account for scraping
  • ✅ Regenerate cookie monthly for security
  • ❌ Don't use your personal Instagram account

Use Cases & Examples

1. Lead Generation for B2B Sales

Scenario: Find business owners in the marketing industry

Configuration:

{
"operationMode": "single",
"targetAccount": "hubspot",
"scrapeFollowers": true,
"maxProfiles": 500,
"extractEmail": true,
"extractWebsite": true,
"filterKeywords": ["marketing", "agency", "founder", "CEO"],
"filterAccountType": "business",
"filterContactInfo": "hasEmail",
"minFollowers": 1000,
"maxFollowers": 50000
}

Result: List of marketing agency owners with contact information


2. Influencer Discovery for Brand Partnerships

Scenario: Find micro-influencers in the fitness niche

Configuration:

{
"operationMode": "networkExpansion",
"startProfiles": ["kayla_itsines", "joe_wicks"],
"searchDepth": 1,
"maxProfiles": 200,
"calculateEngagement": true,
"extractEmail": true,
"filterInfluencers": true,
"minFollowers": 10000,
"maxFollowers": 100000,
"filterKeywords": ["fitness", "workout", "health"],
"filterViewsRatio": true
}

Result: Engaged fitness influencers with good engagement rates


3. Competitor Audience Analysis

Scenario: Understand who follows your competitors

Configuration:

{
"operationMode": "batch",
"targetProfiles": ["competitor1", "competitor2", "competitor3"],
"scrapeFollowers": true,
"maxProfilesPerAccount": 100,
"maxProfiles": 300,
"extractBusinessCategory": true,
"extractWebsite": true,
"filterAccountType": "business",
"minFollowers": 500
}

Result: Demographics and businesses following competitors


4. Local Business Prospecting

Scenario: Find local businesses in New York

Configuration:

{
"operationMode": "single",
"targetAccount": "newyorkcity",
"scrapeFollowers": true,
"maxProfiles": 300,
"extractEmail": true,
"extractPhone": true,
"extractAddress": true,
"filterLocation": ["New York", "NYC", "Brooklyn", "Manhattan"],
"filterAccountType": "business",
"filterWebsitePresence": true,
"minFollowers": 500,
"maxFollowers": 10000
}

Result: Local NYC businesses with contact details


5. Enrich Existing Lead List

Scenario: Update and verify existing leads

Configuration:

{
"operationMode": "specificList",
"specificProfiles": [
"lead_from_conference1",
"lead_from_conference2",
"potential_client1"
],
"maxProfiles": 100,
"extractEmail": true,
"extractPhone": true,
"extractWebsite": true,
"calculateEngagement": true
}

Result: Enriched lead data with current information


💡 Tips & Best Practices

For Best Results:

1. Start Small

  • Test with 10-20 profiles first
  • Verify data quality before scaling
  • Adjust filters based on results

2. Use Filters Wisely

  • More filters = higher quality leads
  • More filters = higher cost per qualified lead
  • Balance quality vs quantity

3. Session Cookie is Essential

  • Get 3-5x better data with session cookie
  • Avoid rate limits and blocks
  • Use a dedicated Instagram account

4. Cost Management

{
"maxProfiles": 100,
"maxProfilesPerAccount": 50
}
  • Set limits to control costs
  • Estimated: $0.10 - $0.30 per 100 profiles

5. Regular Scheduling

  • Set up weekly or monthly runs
  • Keep lead lists fresh and updated
  • Use Apify's scheduling feature

6. Combine Multiple Filters

{
"filterKeywords": ["founder"],
"filterAccountType": "business",
"filterContactInfo": "hasEmail",
"minFollowers": 1000,
"maxFollowers": 50000
}

7. Export and Integration

  • Export to CSV for CRM import
  • Use Apify integrations for automation
  • Connect to Google Sheets, Zapier, Make.com

📊 Output Data Format

Each scraped profile includes:

{
"username": "example_user",
"fullName": "John Doe",
"bio": "Digital Marketing Expert | CEO at MarketCo | Helping brands grow",
"email": "john@example.com",
"phone": "+1-555-0123",
"website": "https://example.com",
"followers": 25430,
"following": 892,
"posts": 456,
"businessCategory": "Marketing",
"engagementRate": "3.5%",
"accountType": "business",
"isVerified": false,
"url": "https://instagram.com/example_user",
"scrapedAt": "2025-10-19T14:30:00.000Z"
}

⚠️ Important Notes

Compliance

  • ✅ Only scrape publicly available data
  • ✅ Respect Instagram's Terms of Service
  • ✅ Comply with GDPR and data protection laws
  • ✅ Use data responsibly

Technical Limitations

  • Instagram may rate limit requests
  • Some profiles may have limited public data
  • Session cookie improves but doesn't guarantee all data
  • Residential proxies are required

Costs

  • Residential Proxies: ~$0.50 per 1,000 requests
  • Compute Units: Based on runtime
  • Estimated Total: $0.10 - $3.00 per 100-1,000 profiles

🆘 Troubleshooting

No Data Returned

Solution: Add Instagram session cookie

Slow Performance

Solution: Reduce maxProfiles or use fewer filters

High Costs

Solution: Use more aggressive filters upfront

Blocked/Rate Limited

Solution:

  • Ensure residential proxies are enabled
  • Add delays between requests
  • Use session cookie
  • Reduce scraping speed

📞 Support

For questions, issues, or feature requests:

  • Use Apify platform support
  • Check actor documentation
  • Review example configurations above

📄 License

This actor is available for use on the Apify platform.

Version: 1.0.0
Last Updated: October 2025

On this page

Share Actor: