Instagram Profile – User Profile & Metadata Scraper
Pricing
Pay per usage
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
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
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 Key • API Pricing
🔧 Input Parameters
The actor accepts the following input:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
profileUrls | array | ✅ Yes | - | List of Instagram profile URLs |
apiToken | string | ✅ Yes | - | Your Transcript Downloader API bearer token |
waitForCompletion | boolean | No | true | Whether to wait for full profile scraping (all posts) |
maxWaitTime | number | No | 10 | Max time to wait for scraping completion (1-30 minutes) |
pollingInterval | number | No | 30 | How often to check status when waiting (10-120 seconds) |
maxConcurrency | number | No | 2 | Max 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
- Get your API token from Transcript Downloader
- Add Instagram profile URLs in the format:
https://www.instagram.com/usernamehttps://instagram.com/username(also supported)
- Choose your mode:
- Instant mode: Set
waitForCompletion: falsefor instant results with recent posts - Full mode: Set
waitForCompletion: trueto get all posts (takes longer)
- Instant mode: Set
- Run the actor and access results in the dataset
❌ Error Handling
The actor gracefully handles common API errors:
| Status Code | Meaning | Action |
|---|---|---|
| 400 | Invalid Instagram URL | Check URL format |
| 401 | Insufficient credits or invalid token | Check credits and API token |
| 403 | Invalid API token | Regenerate API token |
| 404 | Profile does not exist or has been deleted | Verify profile exists |
| 429 | Rate limit exceeded | Actor handles with delays |
| 500 | Third party service error or processing error | Retry automatically |
| 503 | Service temporarily unavailable | Retry 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: falsefor quick checks - ✅ Use
waitForCompletion: truefor comprehensive analysis - ✅ Keep
maxConcurrencylow (1-2) to avoid rate limits - ✅ Monitor costs using the
summary.totalCostfield - ✅ 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 accountis_professional_account: Whether the account is a professional accounthighlights_count: Number of story highlights on the profileis_joined_recently: Indicates if the user joined Instagram recentlyhas_channel: Whether the account has a broadcast channelbusiness_address: Physical address for business accountslist_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
listCostfield
📊 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.