Instagram Posts & Reels List – Bulk Content Metadata Scraper avatar
Instagram Posts & Reels List – Bulk Content Metadata Scraper

Pricing

Pay per usage

Go to Apify Store
Instagram Posts & Reels List – Bulk Content Metadata Scraper

Instagram Posts & Reels List – Bulk Content Metadata Scraper

Retrieve the full list of posts and reels from any Instagram profile using its list_id. Get partial metadata, thumbnails, captions, dates, likes, comments, and media URLs for every post and reel in bulk.

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

Retrieve the full list of posts and reels from any Instagram profile using its list_id. Get partial metadata, thumbnails, captions, dates, likes, comments, and media URLs for every post and reel in bulk.


📚 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

  • 📸 Complete list download: Get all posts and reels from a profile
  • 🎬 Multiple content types: Posts, reels, carousels, images, videos
  • 📊 Rich metadata: Likes, comments, views, engagement scores, hashtags
  • 👥 Relationship data: Tagged users, coauthors, partnerships, audio info
  • 🔁 Batch processing: Handle multiple lists simultaneously
  • ⚙️ Concurrency control: Adjust processing speed with configurable limits
  • 🔄 Automatic polling: Waits for list scraping when enabled (typically 3-5 min)
  • 🚦 Rate limiting: Built-in delays to respect API limits
  • 💰 Cost tracking: Monitor API usage per list
  • 🧠 Error tracking: All failures logged with detailed error information
  • Cached results: Returns cached data for recent successful jobs

🔧 Input Parameters

The actor accepts the following input:

ParameterTypeRequiredDefaultDescription
listIdsarray✅ Yes-List of Instagram list IDs (from profile endpoint)
apiTokenstring✅ Yes-Your Transcript Downloader API bearer token
waitForCompletionbooleanNotrueWhether to wait for complete list scraping
maxWaitTimenumberNo15Max time to wait for scraping completion (1-30 minutes)
pollingIntervalnumberNo30How often to check status when waiting (10-120 seconds)
maxConcurrencynumberNo2Max concurrent list requests (range: 1-5)

📥 Sample Input

{
"listIds": [
"01K575ZB8HT9BY4QATJ7848BVK",
"01K575ZB8HT9BY4QATJ784DJN"
],
"apiToken": "your-api-token",
"waitForCompletion": true,
"maxWaitTime": 15,
"pollingInterval": 30,
"maxConcurrency": 2
}

📝 How to Get List IDs

List IDs are obtained from the Instagram Profile Scraper response:

{
"list": {
"list_id": "01K575ZB8HT9BY4QATJ7848BVK",
"list_cost": "12.500"
}
}

Workflow:

  1. Use Instagram Profile Scraper to get profile data
  2. Extract list.list_id from the response
  3. Use this list ID in this actor to get all posts/reels

📤 Output Format

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

Successful Response

{
"listId": "01K575ZB8HT9BY4QATJ7848BVK",
"status": "success",
"items": [
{
"type": "post",
"instagram_id": "3780275965541531021",
"caption": null,
"description": "Beautiful post description",
"likes": 11,
"comments": 5,
"num_comments": 5,
"date_posted": "2025-12-04 16:00:33",
"user_posted": "username",
"account": "username",
"image_url": "https://scontent.cdninstagram.com/...",
"video_url": null,
"url": "https://www.instagram.com/p/ABC123/",
"shortcode": "ABC123",
"content_type": "Image",
"photos_number": 0,
"videos_duration": null,
"location": null,
"post_id": "3780275965541531021",
"datetime": "2025-12-04 16:00:33",
"photos": ["https://image1.jpg"],
"videos": [],
"images": ["https://image1.jpg"],
"audio": []
},
{
"type": "reel",
"post_id": "3780273348857873344",
"description": "Reel description with #hashtags",
"likes": 25000,
"views": 0,
"video_view_count": 0,
"video_play_count": 480000,
"num_comments": 1200,
"date_posted": "2025-12-04 15:55:45",
"user_posted": "username",
"account": "username",
"video_url": null,
"thumbnail": "https://thumbnail.jpg",
"url": "https://www.instagram.com/reel/XYZ789/",
"shortcode": "XYZ789",
"content_type": "reel",
"content_id": "reel_content_123",
"product_type": "clips",
"length": null,
"videos_duration": null,
"is_verified": false,
"videos": [null]
}
],
"posts": [
/* Array of posts only (filtered from items) */
],
"reels": [
/* Array of reels only (filtered from items) */
],
"summary": {
"totalItems": 21,
"totalPosts": 20,
"totalReels": 1,
"totalCost": "0.149",
"processingTime": "125.3s"
},
"downloadInfo": {
"posts": {
"id": "01KBNV7FBDJ1JZNPM6YEYBYG0E",
"media_id": "77007569848",
"type": "instagram_list_posts",
"cost": "0.142",
"status": "success",
"response": null,
"created_at": "2025-12-04T23:30:36.000000Z"
},
"reels": {
"id": "01KBNV7FBJR0QZ9A2PEVVC279N",
"media_id": "77007569848",
"type": "instagram_list_reels",
"cost": "0.007",
"status": "success",
"response": null,
"created_at": "2025-12-04T23:31:40.000000Z"
}
},
"message": "List downloading completed successfully."
}

Pending Response (when waitForCompletion is false)

{
"listId": "01K575ZB8HT9BY4QATJ7848BVK",
"status": "pending",
"downloads": [
{
"id": "01KBNRQPSP8WXHSVPJ7CNBQEBP",
"media_id": "77007569848",
"type": "instagram_list_posts",
"cost": "0.075",
"status": "pending",
"response": null,
"created_at": "2025-12-04T22:46:42.000000Z"
},
{
"id": "01KBNRQPSW2BDZD2N5WKP79VGT",
"media_id": "77007569848",
"type": "instagram_list_reels",
"cost": "0.075",
"status": "pending",
"response": null,
"created_at": "2025-12-04T22:46:42.000000Z"
}
],
"message": "List downloading is in progress.",
"summary": {
"processingTime": "2.1s"
}
}

Failed Response

{
"listId": "01K575ZB8HT9BY4QATJ7848BVK",
"error": "Profile not found - Fetch profile first before requesting list",
"status": "failed"
}

🚀 How to Use

Complete Workflow

Step 1: Get profile and list ID

// Run Instagram Profile Scraper first
{
"profileUrls": ["https://www.instagram.com/mrbeast"],
"apiToken": "your-token"
}

Step 2: Extract list_id from response

{
"list": {
"list_id": "01K575ZB8HT9BY4QATJ7848BVK"
}
}

Step 3: Run this actor with the list_id

{
"listIds": ["01K575ZB8HT9BY4QATJ7848BVK"],
"apiToken": "your-token",
"waitForCompletion": true
}

❌ Error Handling

The actor gracefully handles common API errors:

Status CodeMeaningAction
400Incorrect ID or media restrictedCheck list ID format
401Insufficient credits or invalid tokenCheck credits and API token
403Invalid API tokenRegenerate API token
404 (List)Invalid Download List IDVerify list ID is correct
404 (Profile)Profile not found - Fetch profile firstRun profile scraper first
429Rate limit exceededActor handles with delays
500Third party service error or processing errorRetry automatically
503Service temporarily unavailableRetry later

Failed lists 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 lists
  • 30-minute timeout: API enforces 30-minute timeout for security
  • 📊 Processing time:
    • Typical list: 5-20 minutes
    • Large profiles: 3-15 minutes
    • Cached results: Instant (for recent successful jobs)

💡 Best Practices

For Standard Lists

{
"listIds": ["01K575ZB8HT9BY4QATJ7848BVK"],
"apiToken": "your-token",
"waitForCompletion": true,
"maxWaitTime": 15,
"pollingInterval": 30,
"maxConcurrency": 2
}

Use case: Normal profiles with up to ~1000 posts

For Large Profiles

{
"listIds": ["01K575ZB8HT9BY4QATJ7848BVK"],
"apiToken": "your-token",
"waitForCompletion": true,
"maxWaitTime": 30,
"pollingInterval": 45,
"maxConcurrency": 1
}

Use case: Large profiles with thousands of posts

General Tips

  • ✅ Always run profile scraper first to get list_id
  • ✅ Use waitForCompletion: true for complete data (recommended)
  • ✅ Keep maxConcurrency low (1-2) to avoid rate limits
  • ✅ Monitor costs using the summary.totalCost field
  • ✅ Cached results return instantly for recent successful requests
  • ✅ Set higher maxWaitTime for profiles with many posts
  • ✅ Lists are sorted by date_posted in descending order (newest first)

📊 Data Included

For Posts:

  • Basic metadata (likes, comments, date, caption, description)
  • Instagram ID and post ID
  • Content type (Image, Video, Carousel)
  • Image URLs (photos, images arrays)
  • Video URLs (videos array)
  • Audio URLs (audio array)
  • Location information
  • User information (user_posted, account)
  • Post URL and shortcode
  • Date/time information (date_posted, datetime)
  • Photo and video counts

For Reels:

  • Video URL and thumbnail
  • Views and play counts (views, video_view_count, video_play_count)
  • Content identifiers (post_id, content_id, shortcode)
  • Product type and content type
  • Duration/length information
  • Verification status (is_verified)
  • Video array
  • Engagement metrics (likes, comments)

🔗 List ID Format

List IDs are 26-character alphanumeric strings:

01K575ZB8HT9BY4QATJ7848BVK (valid format)
ABC123 (too short)
01k575zb8ht9by4qatj7848bvk (must be uppercase)

📈 Monitoring & Analytics

Track your usage with the built-in summary data:

{
"summary": {
"totalItems": 21,
"totalPosts": 20,
"totalReels": 1,
"totalCost": "0.149",
"processingTime": "125.3s"
}
}

Use this data to:

  • Monitor API costs per list
  • Track processing performance
  • Analyze content distribution (posts vs reels)
  • Plan batch processing strategies

💳 Pricing & Billing

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

  • Profile request: Initiates list scraping (separate charge)
  • List download: Charges apply based on profile size
  • Cached results: No additional charge for recent successful jobs
  • Cost displayed: Total cost shown in downloadInfo.cost field

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


🎯 Use Cases

  • Content Analysis: Analyze posting patterns, content types, engagement trends
  • Competitor Research: Track competitors' content strategy, hashtags, partnerships
  • Influencer Marketing: Evaluate influencer content, engagement rates, brand partnerships
  • Brand Monitoring: Monitor brand mentions, tagged content, user engagement
  • Market Research: Identify trending content, popular hashtags, audio tracks
  • Social Listening: Track conversations, comments, engagement on all posts
  • Archive Creation: Create complete backup of profile content
  • Performance Tracking: Monitor engagement scores, views, likes over time

🔄 Integration with Profile Scraper

This actor works seamlessly with the Instagram Profile Scraper:

  1. Profile Scraper → Get basic profile info + ~12 recent posts + list_id
  2. List Scraper (this actor) → Get ALL posts/reels with metadata using list_id
  3. Post Detail Scraper → Get complete metadata for individual posts (future actor)

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