Instagram Profile – User Profile & Metadata Scraper avatar
Instagram Profile – User Profile & Metadata Scraper

Pricing

Pay per usage

Go to Apify Store
Instagram Profile – User Profile & Metadata Scraper

Instagram Profile – User Profile & Metadata Scraper

Extract complete Instagram profiles and posts with follower stats, engagement metrics, captions, hashtags, media URLs, and related accounts.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Transcript Downloader

Transcript Downloader

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Instagram Profile & Posts Scraper

Extract complete Instagram profiles and posts with follower stats, engagement metrics, captions, hashtags, media URLs, and related accounts. Supports instant fetch (recent posts) or full scraping, batch processing, concurrency control, polling, and detailed error tracking.


✨ Features

  • 👤 Profile extraction: Get follower count, following, bio, verified status, and more
  • 📸 Posts scraping: Extract recent posts with likes, comments, captions, and media URLs
  • 🎯 Two modes: Instant fetch (recent posts) or full scraping (all posts)
  • 🔁 Batch processing: Handle multiple profiles simultaneously
  • ⚙️ Concurrency control: Adjust processing speed with configurable limits
  • 🔄 Automatic polling: Waits for full profile scraping when enabled
  • 🚦 Rate limiting: Built-in delays to respect API limits
  • 💰 Cost tracking: Monitor API usage per profile
  • 🧠 Error tracking: All failures logged with detailed error information
  • 📊 Rich metadata: Hashtags, related accounts, highlights, engagement scores

📚 API Documentation

For complete API reference, endpoint details, and advanced usage examples, visit our official documentation:

Transcript Downloader API Documentation

Get Your API KeyAPI Pricing


🔧 Input Parameters

The actor accepts the following input:

ParameterTypeRequiredDefaultDescription
profileUrlsarray✅ Yes-List of Instagram profile URLs
apiTokenstring✅ Yes-Your Transcript Downloader API bearer token
waitForCompletionbooleanNotrueWhether to wait for full profile scraping (all posts)
maxWaitTimenumberNo10Max time to wait for scraping completion (1-30 minutes)
pollingIntervalnumberNo30How often to check status when waiting (10-120 seconds)
maxConcurrencynumberNo2Max concurrent profile requests (range: 1-5)

📥 Sample Input

Instant Mode (Recent posts)

{
"profileUrls": [
"https://www.instagram.com/mrbeast",
"https://www.instagram.com/cristiano"
],
"apiToken": "your-api-token",
"waitForCompletion": false,
"maxConcurrency": 2
}

Full Mode (All posts, waits for completion)

{
"profileUrls": [
"https://www.instagram.com/mrbeast"
],
"apiToken": "your-api-token",
"waitForCompletion": true,
"maxWaitTime": 10,
"pollingInterval": 30,
"maxConcurrency": 1
}

📤 Output Format

Each profile will produce a dataset item with the following structure:

Successful Response

{
"profileUrl": "https://www.instagram.com/mrbeast",
"status": "success",
"profile": {
"account": "mrbeast",
"instagram_id": "12345678",
"fbid": "17841400455970028",
"profile_name": "MrBeast",
"full_name": "Jimmy Donaldson",
"biography": "Doing things that no one has done before...",
"profile_image_link": "https://scontent.cdninstagram.com/...",
"followers": 150000000,
"following": 500,
"posts_count": 1250,
"is_verified": true,
"is_private": false,
"is_business_account": true,
"is_professional_account": true,
"avg_engagement": 5.2,
"category_name": "Entrepreneur",
"highlights_count": 8,
"is_joined_recently": false,
"has_channel": true,
"business_address": "Los Angeles, CA",
"email": "contact@example.com",
"external_url": ["https://website.com"],
"profile_url": "https://www.instagram.com/mrbeast/"
},
"posts": [
{
"id": 123,
"instagram_id": "post_12345",
"url": "https://www.instagram.com/p/ABC123/",
"caption": "Post caption text with #hashtags",
"likes": 5000000,
"comments": 25000,
"date_posted": "2025-09-10T15:30:00Z",
"content_type": "image",
"image_url": "https://...",
"video_url": null,
"thumbnail": "https://...",
"hashtags": ["#challenge", "#giveaway"],
"location": {"name": "Los Angeles"},
"shortcode": "ABC123",
"is_paid_partnership": false,
"post_content": [
{
"index": 0,
"type": "image",
"url": "https://image.jpg",
"instagram_id": "content_id_123"
}
]
}
],
"related_accounts": [
{
"instagram_id": "87654321",
"user_name": "related_user",
"profile_name": "Related User",
"is_private": false,
"is_verified": true,
"profile_pic_url": "https://..."
}
],
"highlights": ["highlight1", "highlight2"],
"bio_hashtags": ["#entrepreneur", "#creator"],
"post_hashtags": ["#challenge", "#giveaway"],
"summary": {
"totalPosts": 1250,
"totalCost": "0.050",
"listCost": "12.500",
"processingTime": "15.2s"
},
"downloadInfo": {
"id": "01K575ZB8HT9BY4QATJ7848BVK",
"type": "instagram_profile",
"status": "success"
},
"listInfo": {
"list_id": "01K575ZB8HT9BY4QATJ784DJN",
"list_cost": "12.500"
}
}

Pending Response (when waitForCompletion is false)

{
"profileUrl": "https://www.instagram.com/mrbeast",
"status": "pending",
"download_id": "01HXYZ123456789",
"message": "Profile scraping initiated. All posts will be processed. Please be patient as it may take a few minutes.",
"summary": {
"processingTime": "2.1s"
}
}

Failed Response

{
"profileUrl": "https://www.instagram.com/invalid",
"error": "Profile does not exist or has been deleted",
"status": "failed"
}

🚀 How to Use

  1. Get your API token from Transcript Downloader
  2. Add Instagram profile URLs in the format:
    • https://www.instagram.com/username
    • https://instagram.com/username (also supported)
  3. Choose your mode:
    • Instant mode: Set waitForCompletion: false for instant results with recent posts
    • Full mode: Set waitForCompletion: true to get all posts (takes longer)
  4. Run the actor and access results in the dataset

❌ Error Handling

The actor gracefully handles common API errors:

Status CodeMeaningAction
400Invalid Instagram URLCheck URL format
401Insufficient credits or invalid tokenCheck credits and API token
403Invalid API tokenRegenerate API token
404Profile does not exist or has been deletedVerify profile exists
429Rate limit exceededActor handles with delays
500Third party service error or processing errorRetry automatically
503Service temporarily unavailableRetry later

Failed profiles are captured in the dataset with error information.


⚠️ Rate Limiting & Performance

  • 🔄 API Rate Limit: 75 requests per minute
  • ⏱️ Built-in delays: Automatic delays between requests
  • 🚦 Concurrency control: Recommended maxConcurrency: 1-2 for Instagram
  • 📊 Processing time:
    • Instant mode (recent posts): ~5-15 seconds per profile
    • Full mode (all posts): ~2-10 minutes per profile (depends on post count)

💡 Best Practices

For Quick Analysis (Instant Results)

{
"profileUrls": ["https://www.instagram.com/profile1", "https://www.instagram.com/profile2"],
"apiToken": "your-token",
"waitForCompletion": false,
"maxConcurrency": 2
}

Use case: Quick profile checks, follower counts, recent engagement

For Deep Analysis (All Posts)

{
"profileUrls": ["https://www.instagram.com/profile"],
"apiToken": "your-token",
"waitForCompletion": true,
"maxWaitTime": 15,
"pollingInterval": 30,
"maxConcurrency": 1
}

Use case: Complete content analysis, historical data, all posts metadata

General Tips

  • ✅ Use waitForCompletion: false for quick checks
  • ✅ Use waitForCompletion: true for comprehensive analysis
  • ✅ Keep maxConcurrency low (1-2) to avoid rate limits
  • ✅ Monitor costs using the summary.totalCost field
  • ✅ Validate profile URLs before running large batches
  • ✅ Private accounts may return limited data or errors
  • ✅ Business accounts typically provide richer metadata

🆕 New Profile Fields Available

The API now returns additional profile information:

  • fbid: Facebook ID associated with the Instagram account
  • is_professional_account: Whether the account is a professional account
  • highlights_count: Number of story highlights on the profile
  • is_joined_recently: Indicates if the user joined Instagram recently
  • has_channel: Whether the account has a broadcast channel
  • business_address: Physical address for business accounts
  • list_cost: Cost for fetching the complete posts list (returned upfront)

These fields are available in the profile object of the response.


🔗 Supported URL Formats

The actor supports Instagram profile URLs in the following formats:

✅ https://www.instagram.com/username
✅ https://instagram.com/username
✅ http://www.instagram.com/username
✅ http://instagram.com/username

❌ Not supported:

❌ https://www.instagram.com/p/POST_ID/ (individual posts)
❌ https://www.instagram.com/username/reels/
❌ https://www.instagram.com/username/tagged/

📈 Monitoring & Analytics

Track your usage with the built-in summary data:

{
"summary": {
"totalPosts": 1250,
"totalCost": "0.050",
"listCost": "12.500",
"processingTime": "45.2s"
}
}

Use this data to:

  • Monitor API costs per profile
  • Track processing performance
  • Plan batch processing strategies
  • Optimize concurrency settings

💳 Pricing & Billing

The Transcript Downloader API used by this actor requires a valid API token. API usage is billed separately:

  • Instant fetch (recent posts): Lower cost per profile
  • Full scraping (all posts): Higher cost based on post count
  • List processing: Additional cost shown in listCost field

📊 Pricing varies by profile size and data volume. Visit our site to checkout pricing.
View full details and subscription plans on our pricing page


🎯 Use Cases

  • Influencer Marketing: Analyze engagement rates, follower counts, content strategy
  • Competitor Research: Track competitors' posting frequency, hashtags, content types
  • Brand Monitoring: Monitor brand mentions, user-generated content, partnerships
  • Content Analysis: Analyze successful post patterns, optimal posting times
  • Market Research: Identify trends, popular hashtags, related accounts
  • Social Listening: Track conversations, comments, engagement metrics

🙋 Support

Need help? Visit Transcript Downloader Support. We respond within 24 business hours.

For technical issues with this actor, check the run logs for detailed error messages.


📄 License

This actor is provided under the ISC License.