Instagram Content – Post & Reel Metadata Scraper avatar
Instagram Content – Post & Reel Metadata Scraper

Pricing

Pay per usage

Go to Apify Store
Instagram Content – Post & Reel Metadata Scraper

Instagram Content – Post & Reel Metadata Scraper

Fetch detailed metadata for any Instagram post or reel using its URL. Retrieves captions, hashtags, images, videos, audio presence, likes, comments, tagged users, location, and engagement metrics.

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

6 days ago

Last modified

Share

Fetch detailed metadata for any Instagram post or reel using its URL. Retrieves captions, hashtags, images, videos, audio presence, likes, comments, tagged users, location, and engagement metrics.


📚 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

  • 📸 Posts & Reels: Process both content types with a single actor
  • 🚀 Real-time data: Get up-to-date engagement metrics instantly
  • 📊 Rich metadata: Likes, comments, views, engagement scores, hashtags
  • 👥 User data: Tagged users, coauthors, partnerships
  • 🎵 Audio info: Original audio tracks, artist details (for reels)
  • 🖼️ Media URLs: High-quality image and video links
  • 🔁 Batch processing: Handle multiple URLs simultaneously
  • ⚙️ Concurrency control: Adjust processing speed (1-10 concurrent)
  • 🔄 Automatic polling: Waits for processing when needed
  • 🚦 Rate limiting: Built-in delays to respect API limits
  • 💰 Cost tracking: Monitor API usage per content item
  • 🧠 Error tracking: All failures logged with detailed error information

🔧 Input Parameters

The actor accepts the following input:

ParameterTypeRequiredDefaultDescription
contentUrlsarray✅ Yes-List of Instagram post/reel URLs
apiTokenstring✅ Yes-Your Transcript Downloader API bearer token
waitForCompletionbooleanNotrueWhether to wait for content processing (most are instant)
maxWaitTimenumberNo5Max time to wait for processing (1-10 minutes)
pollingIntervalnumberNo15How often to check status when waiting (10-60 seconds)
maxConcurrencynumberNo3Max concurrent content requests (range: 1-10)

📥 Sample Input

Process Multiple Posts & Reels

{
"contentUrls": [
"https://www.instagram.com/p/DOZIZ-pkTQT",
"https://www.instagram.com/reel/XYZ789",
"https://www.instagram.com/p/ABC123"
],
"apiToken": "your-api-token",
"waitForCompletion": true,
"maxWaitTime": 5,
"pollingInterval": 15,
"maxConcurrency": 3
}

🔗 Supported URL Formats

✅ https://www.instagram.com/p/SHORTCODE (posts)
✅ https://www.instagram.com/reel/SHORTCODE (reels)
✅ http://www.instagram.com/p/SHORTCODE (HTTP also supported)
✅ https://instagram.com/p/SHORTCODE (without www)

📤 Output Format

Each content URL will produce a dataset item with detailed metadata:

Post Response

{
"contentUrl": "https://www.instagram.com/p/ABC123",
"status": "success",
"type": "post",
"expectedType": "post",
"content": {
"status": "success",
"type": "post",
"instagram_id": "post_12345",
"caption": "Amazing sunset today! #nature #photography",
"hashtags": ["#nature", "#photography", "#sunset"],
"likes": 5000,
"comments": 250,
"num_comments": 250,
"date_posted": "2025-09-10T15:30:00Z",
"user_posted": "photographer_user",
"account": "photographer_user",
"image_url": "https://scontent.cdninstagram.com/image.jpg",
"url": "https://www.instagram.com/p/ABC123/",
"shortcode": "ABC123",
"content_type": "image",
"is_verified": true,
"is_paid_partnership": false,
"user_posted_id": "12345678",
"profile_url": "https://www.instagram.com/photographer_user/",
"followers": 150000,
"posts_count": 500,
"profile_image_link": "https://profile.jpg",
"engagement_score_view": 92.3,
"location": {"name": "Mountain View, CA"},
"alt_text": "Beautiful sunset over mountains",
"photos_number": 1,
"images": ["https://image1.jpg", "https://image2.jpg"],
"latest_comments": [
{
"comment": "Beautiful shot!",
"user_commenting": "commenter1",
"likes": 15,
"profile_picture": "https://commenter1.jpg",
"created_at": "2025-09-10T16:00:00Z"
}
],
"tagged_users": [
{
"username": "tagged_user",
"full_name": "Tagged User Name",
"is_verified": false,
"profile_picture": "https://tagged.jpg"
}
],
"audio": [
{
"audio_asset_id": "audio_123",
"original_audio_title": "Original Audio Track",
"ig_artist_username": "artist_user"
}
],
"coauthor_producers": ["Co Author Name"],
"partnership_details": [
{
"profile_id": "partner_123",
"username": "brand_partner",
"profile_url": "https://www.instagram.com/brand_partner/"
}
],
"post_content": [
{
"index": 0,
"type": "image",
"url": "https://content1.jpg",
"instagram_id": "content_id_123"
}
],
"cost": "0.025"
},
"summary": {
"contentType": "post",
"likes": 5000,
"comments": 250,
"views": null,
"totalCost": "0.025",
"processingTime": "2.3s"
},
"downloadInfo": {
"id": "01HXYZ987654321",
"type": "instagram_post",
"status": "success"
}
}

Reel Response

{
"contentUrl": "https://www.instagram.com/reel/XYZ789",
"status": "success",
"type": "reel",
"expectedType": "reel",
"content": {
"status": "success",
"type": "reel",
"post_id": "reel_12345",
"description": "Check out this amazing dance! #dance #viral",
"hashtags": ["#dance", "#viral", "#trending"],
"likes": 25000,
"views": 500000,
"video_view_count": 500000,
"video_play_count": 480000,
"num_comments": 1200,
"date_posted": "2025-09-09T12:00:00Z",
"user_posted": "dancer_user",
"account": "dancer_user",
"video_url": "https://scontent.cdninstagram.com/reel.mp4",
"thumbnail": "https://reel_thumbnail.jpg",
"url": "https://www.instagram.com/reel/XYZ789/",
"shortcode": "XYZ789",
"content_type": "reel",
"product_type": "reel",
"length": 30,
"videos_duration": 30,
"is_verified": true,
"is_paid_partnership": false,
"followers": 2500000,
"posts_count": 800,
"videos": ["https://scontent.cdninstagram.com/reel.mp4"],
"latest_comments": [
{
"comment": "Amazing moves! 🔥",
"user_commenting": "fan_user",
"likes": 50,
"date_of_comment": "2025-09-09T13:00:00Z",
"num_replies": 5,
"avatar": "https://fan_avatar.jpg"
}
],
"tagged_users": [
{
"username": "dance_partner",
"full_name": "Dance Partner Name",
"is_verified": false,
"profile_picture": "https://partner.jpg"
}
],
"coauthor_producers": ["Choreographer Name"],
"cost": "0.025"
},
"summary": {
"contentType": "reel",
"likes": 25000,
"comments": 1200,
"views": 500000,
"totalCost": "0.025",
"processingTime": "1.8s"
},
"downloadInfo": {
"id": "01HXYZ987654321",
"type": "instagram_reel",
"status": "success"
}
}

Pending Response

{
"contentUrl": "https://www.instagram.com/p/ABC123",
"status": "pending",
"expectedType": "post",
"download_id": "01HXYZ987654321",
"message": "Post scraping initiated. Data will be available shortly.",
"cost": "0.025",
"downloadInfo": {
"id": "01HXYZ987654321",
"type": "instagram_post",
"status": "pending"
},
"summary": {
"processingTime": "0.8s"
}
}

Failed Response

{
"contentUrl": "https://www.instagram.com/p/INVALID",
"expectedType": "post",
"error": "Incorrect ID or media restricted",
"status": "failed"
}

🚀 How to Use

Quick Start

  1. Get your API token from Transcript Downloader
  2. Find Instagram URLs of posts or reels you want to analyze
  3. Run the actor with your URLs
  4. Access results in the dataset

Example Workflow

// Step 1: Collect URLs
{
"contentUrls": [
"https://www.instagram.com/p/ABC123",
"https://www.instagram.com/reel/XYZ789"
],
"apiToken": "your-token"
}
// Step 2: Results are saved to dataset with complete metadata

❌ Error Handling

The actor gracefully handles common API errors:

Status CodeMeaningAction
400Incorrect ID or media restrictedVerify URL and content access
401Insufficient credits or invalid tokenCheck credits and API token
403Invalid API tokenRegenerate API token
500Failed to fetch content or processing errorRetry or check content validity
503Service temporarily unavailableRetry later

Failed content items 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: 3-5 for content
  • 📊 Processing time:
    • Most content: Instant (1-3 seconds)
    • Some content: May require brief processing
    • Average: 2-5 seconds per item

⏱️ First-Time Scraping & Profile Caching

  • First-time scraping: When scraping content from a profile for the first time, it may take longer as the profile needs to be fetched and cached by our system
  • Subsequent scraping: Content from previously scraped profiles returns much faster due to profile caching
  • Cache benefit: Dramatically reduces processing time for repeated scraping of content from the same profile
  • Why caching helps: We cache profile data, so future content requests for the same profile don't need to re-fetch basic profile information

💡 Tip: If you're scraping multiple posts/reels from the same profile, the first content item may take a bit longer, but subsequent items will be nearly instant.


💡 Best Practices

For Content Analysis

{
"contentUrls": [
"https://www.instagram.com/p/POST1",
"https://www.instagram.com/p/POST2",
"https://www.instagram.com/reel/REEL1"
],
"apiToken": "your-token",
"waitForCompletion": true,
"maxConcurrency": 5
}

Use case: Analyze individual posts/reels for engagement, comments, hashtags

For Competitor Research

{
"contentUrls": ["https://www.instagram.com/p/COMPETITOR_POST"],
"apiToken": "your-token",
"waitForCompletion": true
}

Use case: Deep dive into competitor content strategy

General Tips

  • ✅ Use higher concurrency (3-5) for faster processing
  • ✅ Most content returns instantly, no long waits needed
  • ✅ Monitor costs using the summary.totalCost field
  • ✅ Mix posts and reels in the same run
  • ✅ Check engagement_score_view for performance metrics
  • ✅ Use latest_comments for sentiment analysis
  • ✅ Extract hashtags for trend analysis
  • ✅ Private or restricted content may return errors

📊 Data Available

For Posts:

  • Engagement: Likes, comments, engagement score
  • Media: High-quality image URLs (multiple for carousels)
  • Content: Caption, hashtags, location, alt text
  • Users: Account info, tagged users, partnerships
  • Audio: Audio tracks (if used)
  • Comments: Latest comments with user details
  • Metadata: Post date, verification status, product type

For Reels:

  • Engagement: Likes, comments, views, play count
  • Media: Video URL, thumbnail, length
  • Content: Description, hashtags
  • Users: Account info, tagged users, coauthors
  • Audio: Audio track details (if available)
  • Comments: Top comments with replies count
  • Metadata: Post date, verification status

🎯 Use Cases

  • Content Analysis: Analyze engagement patterns, optimal content types
  • Competitor Research: Study successful content from competitors
  • Influencer Vetting: Verify engagement metrics before partnerships
  • Trend Tracking: Identify viral content, trending hashtags
  • Brand Monitoring: Track branded content, partnerships, mentions
  • Sentiment Analysis: Analyze comments for audience sentiment
  • Performance Benchmarking: Compare your content against industry standards
  • Content Archiving: Save snapshots of important posts/reels
  • Hashtag Research: Discover effective hashtag combinations
  • Audio Trends: Track popular audio tracks in reels

🔄 Integration with Other Actors

This actor works with the Instagram suite:

  1. Profile Scraper → Get profile + recent posts → Extract interesting post URLs
  2. List Scraper → Get all posts from profile → Extract specific post URLs
  3. Content Scraper (this actor) → Get detailed metadata for specific posts/reels

Complete Workflow:

Profile → List → Content Metadata

💳 Pricing & Billing

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

  • Per content item: Low cost per post/reel (~$0.025 typically)
  • Real-time processing: Most content returns instantly
  • Cost displayed: Exact cost shown in each response

📊 Very cost-effective for individual content analysis.
View full details and subscription plans on our pricing page


📈 Monitoring & Analytics

Track your usage with the built-in summary data:

{
"summary": {
"contentType": "post",
"likes": 5000,
"comments": 250,
"views": null,
"totalCost": "0.025",
"processingTime": "2.3s"
}
}

Use this data to:

  • Monitor API costs per content item
  • Track processing performance
  • Analyze engagement metrics
  • Compare posts vs reels performance

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