Instagram Profile Scraper avatar

Instagram Profile Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Instagram Profile Scraper

Instagram Profile Scraper

Scrape Instagram profiles like a pro πŸ“Έ Get πŸ‘₯ followers, πŸ“ bio, πŸ–ΌοΈ profile pics, and βœ… verification status in seconds. Fast. Reliable. Scalable.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

WebScrap

WebScrap

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

6

Monthly active users

3 days ago

Last modified

Share

Scrape Instagram user profiles to extract detailed information including follower count, biography, profile pictures, verification status, and more.

Features

  • πŸ” Scrape multiple Instagram profiles in one run
  • πŸ”„ Hybrid Scraping Engine: Automatically switches between API and Selenium (with Meta Tag extraction) for maximum reliability
  • πŸ“± Mobile Emulation Fallback: Automatically switches to mobile device emulation if desktop scraping is blocked, often bypassing simple login walls.
  • πŸ“Š Extract comprehensive profile information (biography, follower count, posts, etc.)
  • πŸ›‘οΈ Robust: Validation logic ensures no incomplete data is returned
  • πŸ”„ Automatic data export to Apify dataset

Input

The actor accepts the following input parameters:

Input Parameters

  • usernames (required): Array of Instagram usernames to scrape (without @ symbol)

    • Type: Array<string>
    • Example: ["instagram", "cristiano", "nasa"]
  • use_legacy (optional): Boolean flag to force usage of Selenium/DOM scraping (bypassing API)

    • Type: boolean
    • Default: false

Sample Input

{
"use_legacy": false,
"usernames": ["nasa"]
}

Output

The actor extracts comprehensive profile data including basic info, statistics, posts, and related profiles.

Output Fields

Basic Information:

  • inputUrl: Full Instagram profile URL
  • id: Instagram user ID
  • username: Instagram username
  • url: Instagram profile URL
  • fullName: Display name
  • biography: Profile bio/description

About Object:

  • about.country: Country (if available)
  • about.date_joined: Join date
  • about.is_verified: Verification status
  • about.id: User ID
  • about.username: Username

Statistics:

  • followersCount: Number of followers
  • followsCount: Number of accounts following
  • postsCount: Number of posts
  • highlightReelCount: Number of highlight reels
  • igtvVideoCount: Number of IGTV videos

Account Details:

  • isBusinessAccount: Business account status
  • joinedRecently: Recently joined flag
  • hasChannel: Has channel flag
  • businessCategoryName: Business category
  • private: Private account status
  • verified: Verified badge status

Links & Media:

  • externalUrl: Primary link in bio
  • externalUrlShimmed: Shimmed external URL
  • externalUrls: Array of all bio links with titles
  • profilePicUrl: Profile picture URL (150x150)
  • profilePicUrlHD: High-res profile picture (320x320)

Social Data:

  • relatedProfiles: Array of related Instagram profiles
  • latestPosts: Array of recent posts (up to 12) with full metadata
  • latestIgtvVideos: Array of IGTV videos with details

Sample Output

{
"inputUrl": "https://www.instagram.com/nasa",
"id": "528817151",
"username": "nasa",
"url": "https://www.instagram.com/nasa",
"fullName": "NASA",
"biography": "πŸš€ 🌎 Exploring the universe and our home planet. Verification: nasa.gov/socialmedia",
"about": {
"accounts_with_shared_followers": null,
"country": null,
"date_joined": null,
"date_joined_as_timestamp": null,
"date_verified": null,
"date_verified_as_timestamp": null,
"former_usernames": 0,
"id": "528817151",
"is_verified": true,
"username": "nasa"
},
"followersCount": 98209149,
"followsCount": 92,
"postsCount": 4591,
"highlightReelCount": 7,
"igtvVideoCount": 171,
"isBusinessAccount": true,
"joinedRecently": false,
"hasChannel": false,
"businessCategoryName": null,
"private": false,
"verified": true,
"externalUrl": "https://www.nasa.gov/",
"externalUrlShimmed": "https://l.instagram.com/?u=https%3A%2F%2Fwww.nasa.gov%2F&e=...",
"externalUrls": [
{
"title": "Launches & Landings",
"lynx_url": "https://l.instagram.com/?u=http%3A%2F%2Fnasa.gov%2Fevents&e=...",
"url": "http://nasa.gov/events",
"link_type": "external"
},
{
"title": "NASA+",
"lynx_url": "https://l.instagram.com/?u=https%3A%2F%2Fplus.nasa.gov%2F&e=...",
"url": "https://plus.nasa.gov",
"link_type": "external"
}
],
"profilePicUrl": "https://instagram.famd21-2.fna.fbcdn.net/v/...",
"profilePicUrlHD": "https://instagram.famd21-2.fna.fbcdn.net/v/...",
"relatedProfiles": [
{
"id": "953293389",
"full_name": "International Space Station",
"is_private": false,
"is_verified": true,
"profile_pic_url": "https://...",
"username": "iss"
}
],
"latestPosts": [
{
"id": "3710009743416087462",
"type": "Video",
"shortCode": "DN8mjSFjdOm",
"caption": "We're going up, up, up, it's our moment! 🎢...",
"hashtags": ["NASARoman", "Astrophysics", "SpaceTelescope"],
"mentions": ["NASAGoddard", "NASAUniverse"],
"url": "https://www.instagram.com/p/DN8mjSFjdOm/",
"commentsCount": 429,
"dimensionsHeight": 853,
"dimensionsWidth": 480,
"displayUrl": "https://scontent-lga3-3.cdninstagram.com/v/...",
"images": [],
"videoUrl": "https://scontent-lga3-2.cdninstagram.com/o1/v/...",
"alt": null,
"likesCount": 53833,
"videoViewCount": 926847,
"timestamp": "2025-08-29T17:16:11.000Z",
"childPosts": [],
"ownerUsername": "nasa",
"ownerId": "528817151",
"productType": "clips",
"taggedUsers": [
{
"full_name": "NASA Goddard",
"id": "3808579",
"is_verified": true,
"profile_pic_url": "https://...",
"username": "nasagoddard"
}
],
"isCommentsDisabled": false
}
],
"latestIgtvVideos": [
{
"id": "3073651751604454027",
"type": "Video",
"shortCode": "CqnzfuxpAKL",
"title": "",
"caption": "On April 3, we announced the team of space explorers...",
"commentsCount": 2378,
"dimensionsHeight": 1920,
"dimensionsWidth": 1080,
"displayUrl": "https://...",
"likesCount": 330976,
"videoDuration": 1122.054,
"videoViewCount": 2430081,
"videoUrl": "https://...",
"timestamp": "2023-04-04T17:04:37.000Z",
"ownerUsername": "nasa",
"ownerId": "528817151"
}
]
}

Usage

Running on Apify Platform

  1. Go to the Apify Console
  2. Navigate to Actors β†’ Your Actor
  3. Click "Run" and provide input
  4. View results in the Dataset tab

Avoiding Rate Limits

Instagram has strict rate limiting. To avoid 429 errors:

  1. Enable Apify Proxy (Recommended)

    • In input settings, enable "Proxy configuration"
    • Select "Use Apify Proxy"
    • This rotates IPs and reduces rate limit issues
  2. Scrape Fewer Profiles

    • Start with 1-3 profiles per run
    • Wait 5-10 minutes between runs
  3. Automatic Retry Logic

    • Actor automatically retries failed requests with exponential backoff
    • Waits 5s, 10s, 20s between retries
  4. Error Messages

    • 429 Rate limit = Instagram blocked your IP temporarily
    • Timeout waiting for profile = Page took too long to load
    • Solution: Enable proxy or wait before retrying

Notes

⚠️ Important:

  • Instagram may rate-limit or block requests if you scrape too aggressively
  • Use Apify Proxy for production scraping to avoid rate limits
  • Always respect Instagram's Terms of Service and robots.txt
  • Use reasonable delays between requests
  • This actor is for educational purposes