Instagram Master Scraper — Profiles, Posts & Content avatar

Instagram Master Scraper — Profiles, Posts & Content

Pricing

Pay per usage

Go to Apify Store
Instagram Master Scraper — Profiles, Posts & Content

Instagram Master Scraper — Profiles, Posts & Content

Scrape complete Instagram data in one workflow: full profiles, all posts, reels, and detailed metadata including comments, tags, and alt text. Supports multiple profiles, content limits, concurrency, intelligent polling, and cost-controlled progressive data collection.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Transcript Downloader

Transcript Downloader

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

4 hours ago

Last modified

Share

Instagram Profile, Posts & Reels Scraper

Scrape complete Instagram data in one workflow: full profiles, all posts, reels, and detailed metadata including comments, tags, audio, and alt text. Supports multiple profiles, content limits, concurrency, intelligent polling, and cost-controlled progressive data collection.


📚 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


✨ Features

🎯 Progressive Data Collection

  • Level 1: Profile Data - Get basic profile information including followers, bio, and profile image
  • Level 2: Posts & Reels List - Fetch all posts and reels with partial metadata
  • Level 3: Detailed Metadata - Get complete metadata including comments, tagged users, audio info, and more

🔥 Key Capabilities

  • Multiple Profiles - Process multiple Instagram profiles in one run
  • Flexible Control - Choose exactly what data you need
  • Cost Management - Content limits help control API costs
  • Concurrent Processing - Fast data retrieval with configurable concurrency
  • Intelligent Polling - Automatic handling of pending requests
  • Comprehensive Error Handling - Detailed error reporting for failed requests
  • Structured Output - Clean, organized data ready for analysis

📊 What You Can Extract

Profile Data:

  • Username, full name, biography
  • Followers, following counts
  • Total posts count
  • Profile image, verification status
  • External URL, category
  • List ID for fetching posts

Posts & Reels (Partial Metadata):

  • Post/Reel URLs and IDs
  • Captions and hashtags
  • Like and comment counts
  • Post dates and types
  • Thumbnail images
  • Video URLs (for reels)

Detailed Metadata:

  • Complete engagement metrics
  • Latest comments with user info
  • Tagged users and locations
  • Audio/music information
  • Coauthor and partnership details
  • Carousel content (multiple photos/videos)
  • Accessibility alt text
  • And much more!

📥 Input Configuration

Required Parameters

ParameterTypeDescription
profileUrlsArrayInstagram profile URLs (e.g., https://www.instagram.com/username/)
apiTokenStringYour Transcript Downloader API token (from dashboard.transcriptdownloader.com)

Optional Parameters

ParameterTypeDefaultDescription
includePostsListBooleantrueFetch all posts and reels from the profile
includeDetailedMetadataBooleanfalseGet complete metadata for each post/reel
contentLimitInteger50Maximum number of posts/reels to fetch detailed metadata for (0 = unlimited)
waitForCompletionBooleantrueWait for pending data to be processed
maxWaitTimeInteger20Maximum wait time in minutes for data processing
pollingIntervalInteger30Polling interval in seconds for pending requests
maxConcurrencyInteger3Maximum concurrent API requests

Example Input

{
"profileUrls": [
"https://www.instagram.com/instagram/",
"https://www.instagram.com/natgeo/"
],
"apiToken": "your-api-token-here",
"includePostsList": true,
"includeDetailedMetadata": true,
"contentLimit": 20,
"waitForCompletion": true,
"maxWaitTime": 20,
"pollingInterval": 30,
"maxConcurrency": 3
}

📤 Output Format

The actor outputs one record per profile with the following structure:

{
"profileUrl": "https://www.instagram.com/instagram/",
"status": "success",
"profileData": {
"account": "instagram",
"full_name": "Instagram",
"biography": "Discover what's new on Instagram",
"followers": 600000000,
"following": 120,
"posts_count": 7500,
"profile_image": "https://...",
"is_verified": true,
"external_url": "https://about.instagram.com",
"category": "App Page",
"list_id": "01K7TQ6X1K3C4Z3VA1TFB1J7G4",
"cost": "1.000"
},
"listId": "01K7TQ6X1K3C4Z3VA1TFB1J7G4",
"posts": [
{
"id": 123,
"url": "https://www.instagram.com/p/ABC123/",
"caption": "Post caption",
"likes": 50000,
"comments": 1200,
"date_posted": "2025-10-15T10:30:00Z",
"content_type": "post",
"image_url": "https://...",
"user_posted": "instagram"
}
],
"reels": [
{
"id": 124,
"url": "https://www.instagram.com/reel/XYZ789/",
"description": "Reel description",
"likes": 100000,
"views": 5000000,
"date_posted": "2025-10-14T15:00:00Z",
"content_type": "reel",
"video_url": "https://...",
"thumbnail": "https://...",
"user_posted": "instagram"
}
],
"detailedContent": [
{
"status": "success",
"type": "post",
"url": "https://www.instagram.com/p/ABC123/",
"caption": "Detailed caption",
"likes": 50000,
"comments": 1200,
"latest_comments": [
{
"comment": "Great post!",
"user_commenting": "user123",
"likes": 50
}
],
"tagged_users": [
{
"username": "tagged_user",
"full_name": "Tagged User"
}
],
"location": {
"name": "New York, NY"
},
"hashtags": ["#instagram", "#photography"]
}
],
"summary": {
"totalPosts": 45,
"totalReels": 15,
"detailedContentCount": 20,
"profileCost": "1.000",
"listCost": "12.500",
"contentCost": "0.500",
"totalCost": "14.000",
"processingTime": "125.3s"
},
"errors": []
}

💰 Cost Management

The Instagram Scraper helps you manage API costs effectively:

Cost Structure

  • Profile Scraping: ~1.000 credit per profile
  • List Scraping: ~12.500 credits per profile (all posts/reels)
  • Content Metadata: ~0.025 credits per post/reel

Cost Control Strategies

1. Basic Profile Only (Lowest Cost)

{
"includePostsList": false,
"includeDetailedMetadata": false
}

Cost: ~1.000 credit per profile

2. Profile + Posts List (Medium Cost)

{
"includePostsList": true,
"includeDetailedMetadata": false
}

Cost: ~13.500 credits per profile

3. Profile + Limited Detailed Content (Controlled Cost)

{
"includePostsList": true,
"includeDetailedMetadata": true,
"contentLimit": 20
}

Cost: ~14.000 credits per profile (13.500 + 20 × 0.025)

4. Complete Data (Full Cost)

{
"includePostsList": true,
"includeDetailedMetadata": true,
"contentLimit": 0
}

Cost: Varies by profile size (13.500 + [number of posts] × 0.025)

🚀 Use Cases

Marketing & Brand Analysis

  • Track competitor profiles and content strategy
  • Analyze engagement trends across posts
  • Monitor brand mentions and tagged content
  • Research influencer content performance

Content Research

  • Discover trending hashtags and topics
  • Study successful content formats
  • Analyze posting patterns and timing
  • Research visual content trends

Social Media Management

  • Audit client Instagram profiles
  • Export content for reporting
  • Track campaign performance
  • Analyze audience engagement

Data Analysis & Research

  • Academic research on social media
  • Sentiment analysis on comments
  • Network analysis of tagged users
  • Temporal analysis of posting behavior

⚙️ How It Works

The Instagram Scraper orchestrates a three-step process:

Step 1: Profile Scraping

  • Fetches basic profile information
  • Obtains the list_id needed for posts/reels
  • Handles pending requests with polling
  • Validates profile existence

Step 2: Posts & Reels List (Optional)

  • Uses list_id from profile data
  • Fetches all posts and reels
  • Returns partial metadata for each item
  • Separates posts and reels for easy filtering

Step 3: Detailed Metadata (Optional)

  • Fetches complete metadata for each post/reel
  • Processes in concurrent batches
  • Respects content limit
  • Includes comments, tags, audio, and more

Intelligent Features

  • Automatic Polling: Handles long-running API requests
  • Error Recovery: Retries failed requests with exponential backoff
  • Rate Limiting: Respects API limits with delays
  • Concurrent Processing: Speeds up bulk operations
  • Progress Tracking: Detailed logging throughout execution

🔄 Data Flow

Profile URLs
Profile API → Get list_id + Profile Data
[If includePostsList]
List API → Get all Posts & Reels
[If includeDetailedMetadata]
Content API (batched) → Get Detailed Metadata
Combined Output

⚠️ Rate Limiting & Performance

API Rate Limits

ScopeLimitWindow
Per User (API Token)90 requests1 minute
Per IP (unauthenticated)90 requests1 minute

When rate limits are exceeded, the API returns 429 Too Many Requests. The actor handles this automatically with built-in retry logic.

Processing Times

This actor calls three different API operations, each with different processing characteristics:

OperationTypical DurationMaximum WaitRecommended Poll Interval
Profile Fetch5-30 seconds60 minutes30 seconds
Posts/Reels List3-60 minutes3 hours180 seconds
Content Metadata5-60 seconds60 minutes30 seconds
  • Profile only: Usually instant (< 5 seconds)
  • With posts list: 3-5 minutes for first request (cached afterwards within 30-minute window)
  • With detailed metadata: Varies by content limit (~1-2 seconds per item)

Retry Behavior

The actor automatically retries on transient errors (429, 500, 503) with exponential backoff (base delay 1s, max delay 60s, up to 5 attempts). It does not retry on client errors (401, 403, 404) since those require user action.

Response Headers

The API returns rate limit headers you can monitor in logs:

HeaderDescription
X-RateLimit-LimitMax requests allowed in window
X-RateLimit-RemainingRequests remaining in current window
Retry-AfterSeconds to wait before retrying (on 429)

🛠️ Best Practices

Performance Optimization

  1. Use Content Limits: Set contentLimit to avoid fetching metadata for hundreds of posts
  2. Adjust Concurrency: Increase maxConcurrency for faster processing of multiple items
  3. Sequential Profiles: The actor processes profiles sequentially to respect rate limits
  4. Polling Intervals: The API recommends 30 seconds for profile/content and 180 seconds for list operations

Cost Optimization

  1. Start Small: Test with includeDetailedMetadata: false first
  2. Use Limits: Set reasonable contentLimit values (20-50 posts)
  3. Target Specific Content: Combine with post-processing to filter desired content

Reliability

  1. Enable Waiting: Keep waitForCompletion: true for complete data
  2. Adjust Timeouts: Increase maxWaitTime for large profiles
  3. Monitor Errors: Check the errors array in output for failed items

📊 Output Examples

Basic Profile Only

Perfect for quick profile checks and follower tracking:

{
"profileUrl": "https://www.instagram.com/username/",
"status": "success",
"profileData": {
"account": "username",
"followers": 150000,
"posts_count": 250
},
"summary": {
"totalCost": "1.000"
}
}

Profile + Posts List

Great for content analysis and trend research:

{
"profileUrl": "https://www.instagram.com/username/",
"status": "success",
"profileData": { ... },
"posts": [45 posts with partial metadata],
"reels": [15 reels with partial metadata],
"summary": {
"totalPosts": 45,
"totalReels": 15,
"totalCost": "13.500"
}
}

Complete Data Collection

Ideal for deep analysis and research:

{
"profileUrl": "https://www.instagram.com/username/",
"status": "success",
"profileData": { ... },
"posts": [45 posts],
"reels": [15 reels],
"detailedContent": [20 posts/reels with complete metadata],
"summary": {
"totalPosts": 45,
"totalReels": 15,
"detailedContentCount": 20,
"totalCost": "14.000"
}
}

⚠️ Important Notes

API Requirements

Data Freshness

  • Profile data is fetched in real-time
  • Lists may be cached for recent requests (30-minute window)
  • Detailed content is always fetched fresh

Error Handling

  • Failed items are tracked in the errors array
  • Partial success is indicated by status: "partial"
  • Individual content failures don't stop the entire run

Looking for more granular control? Check out our specialized actors:

  • Instagram Profile Scraper: Profile data only
  • Instagram Posts & Reels List Scraper: List scraping with list_id
  • Instagram Post & Reel Metadata Scraper: Detailed metadata for specific URLs

🙋 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.


Made with ❤️ by Transcript Downloader | Website | API Dashboard