Instagram Post & Reel Details Scraper
Pricing
from $1.50 / 1,000 posts
Instagram Post & Reel Details Scraper
Scrape complete details from Instagram posts and Reels by URL or shortcode — metrics, captions, hashtags, mentions, audio metadata, video/media URLs, and creator profiles. No login required.
Pricing
from $1.50 / 1,000 posts
Rating
0.0
(0)
Developer
karamelo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Overview
The Instagram Post & Reel Details Scraper is a high-performance, login-free automation tool built for developers, marketers, data analysts, and researchers who need complete, structured data from Instagram posts and Reels. By accepting direct post URLs, Reels links, shortcodes, or numeric media IDs in bulk, this Actor extracts extensive engagement metrics, post metadata, creator profiles, high-resolution media URLs, and audio attribution without requiring any login credentials, browser automation, or cookies.
Whether you are auditing competitor campaigns, monitoring influencer partnerships, analyzing trending Reels audio, tracking user-generated content, or feeding downstream AI applications and analytics dashboards, this Actor provides reliable, real-time extraction across all primary Instagram media types.
What Does Instagram Post & Reel Details Scraper Do?
Instagram houses billions of public media assets, but extracting reliable data at scale is traditionally difficult due to aggressive rate limiting and session gating. This Actor streamlines data extraction by connecting directly to public Instagram endpoints via high-grade rotating residential proxies, returning comprehensive structured datasets in standard formats like JSON, CSV, and Excel.
For every supplied post or Reel, the Actor extracts:
- Engagement metrics: Like counts, comment counts, video play and view counts, reshares, saves, and repost counts.
- Content metadata: Full post captions, extracted hashtags, user mentions, media dimensions, timestamps, and tagged geographic locations.
- Reels & audio specifications: Audio track title, original artist or creator, audio asset ID, original audio indicator, and video duration.
- Creator profile details: Author username, full name, numeric user ID, verified account badge, avatar profile picture link, and follower stats.
- Direct media assets: High-resolution image URLs, direct video MP4 streaming links, and thumbnail preview images.
- Commercial indicators: Paid partnership declarations and sponsored content flags.
Why Use This Actor?
- No login or cookies required — You never need to supply your personal or corporate Instagram credentials, session cookies, or account tokens. Your accounts remain completely safe from bans, checkpoints, and security verification challenges.
- Full Reels and video support — Seamlessly extract metadata from standard photo posts, multi-slide carousels, video posts, and vertical Reels with zero configuration differences.
- Complete audio & music metadata — Identify trending sounds, background music titles, artists, and original audio flags from viral Reels.
- Bulk URL processing — Submit hundreds or thousands of URLs or shortcodes in a single run. The Actor automatically cleanses, deduplicates, and concurrent-processes your inputs.
- Clean structured output — Every record is delivered in a uniform flat structure ready for immediate import into Google Sheets, Airtable, Snowflake, PostgreSQL, or business intelligence pipelines.
- Cost-effective batching — Processing multiple URLs in a single run significantly lowers runtime overhead and optimizes compute unit usage compared to single-item requests.
- Automated retry & rate-limit resilience — Integrated backoff algorithms and rotating proxy management ensure smooth extraction even during upstream platform turbulence.
Who Is This Actor For?
Digital Marketing Agencies & Brand Managers
Verify sponsored influencer posts and track performance metrics on paid collaborations. Check the is_paid_partnership flag, extract verified like and comment counts, and determine actual engagement rates across sponsored campaigns.
Content Creators & Social Media Strategists
Benchmark your content against top-performing competitors. Analyze which Reel hooks, caption styles, hashtag clusters, and audio tracks generate the highest volume of comments and saves.
E-Commerce & Market Research Teams
Monitor user-generated content (UGC) around product drops, seasonal promotions, and brand tags. Track consumer sentiment in captions and measure earned media value (EMV).
AI Engineers & Data Scientists
Collect multimodal datasets (captions, hashtags, mentions, high-resolution imagery, and video URLs) to train computer vision models, fine-tune social recommendation algorithms, or perform natural language processing (NLP) on public discourse.
Talent Agencies & Influencer Scouts
Evaluate candidate creators by reviewing their recent post performance, verification badges, engagement consistency, and audience interactions.
What Data Can You Extract?
The Actor extracts over 30 structured attributes per post, organized into distinct logical categories:
1. Core Post Identifiers
| Field Name | Type | Description |
|---|---|---|
post_id | String | Unique numeric identifier for the post or Reel |
shortcode | String | Alphanumeric shortcode used in the Instagram URL slug |
post_url | String | Canonical permalink URL of the post |
post_type | String | Format classification: Photo, Video, Carousel, or Reel |
posted_at | String | ISO 8601 publication timestamp (e.g. 2026-09-03T07:01:06.000Z) |
2. Engagement & Performance Metrics
| Field Name | Type | Description |
|---|---|---|
like_count | Integer | Total count of public likes received |
comment_count | Integer | Total count of comments posted |
view_count | Integer | Public view count for video and Reel media |
play_count | Integer | Number of video playback starts |
share_count | Integer | Public reshare count when reported |
save_count | Integer | Bookmark save count when available |
repost_count | Integer | Total times the content was reposted |
3. Caption, Text & Semantic Data
| Field Name | Type | Description |
|---|---|---|
caption | String | Full raw caption text accompanying the post |
hashtags | Array | Normalized list of hashtags extracted from the caption |
mentions | Array | Usernames mentioned with the @ symbol in the caption |
location_name | String | Human-readable name of tagged location |
location_id | String | Unique numeric location identifier |
4. Audio & Reels Metadata
| Field Name | Type | Description |
|---|---|---|
audio_title | String | Track or sound title utilized in the Reel |
audio_artist | String | Name of the artist or creator behind the audio |
is_original_audio | Boolean | true if original creator sound; false if commercial track |
video_duration | Number | Duration of video or Reel in seconds |
5. Creator Profile Information
| Field Name | Type | Description |
|---|---|---|
owner_username | String | Instagram handle of the author |
owner_full_name | String | Display name shown on author profile |
owner_id | String | Unique author user ID |
owner_is_verified | Boolean | true if author holds a verified blue badge |
owner_follower_count | Integer | Number of followers when available |
owner_profile_pic_url | String | Direct URL to author profile avatar image |
6. Media Dimensions & Asset URLs
| Field Name | Type | Description |
|---|---|---|
media_url | String | Direct high-resolution image URL or video MP4 file URL |
thumbnail_url | String | Thumbnail preview image URL |
dimensions_width | Integer | Width of media asset in pixels |
dimensions_height | Integer | Height of media asset in pixels |
is_paid_partnership | Boolean | true if declared as sponsored partnership |
How to Get Started
Running the Actor is straightforward and requires only a few clicks or a single API call.
Step-by-Step Console Walkthrough
- Open the Actor in Apify Console: Navigate to the Actor page in the Apify Store and click Try for free or Start.
- Enter Post URLs: Paste one or more Instagram post or Reel links into the Post or Reel URLs / Shortcodes field. You can paste standard posts (
/p/), Reels (/reel/or/reels/), IGTV videos (/tv/), or raw alphanumeric shortcodes. - Configure Proxies: Keep the default Automatic residential proxy selected. Residential proxies ensure uninterrupted access to Instagram public endpoints.
- Set Max Concurrency: Adjust the concurrency level (default is 3) based on how quickly you want large batches processed.
- Click Save & Run: Click the green Start button at the bottom of the screen.
- Download Results: Once completed, view the tabular dataset under the Storage / Dataset tab or export in JSON, CSV, or Excel formats.
Input Reference
The Actor accepts input in JSON format. The table below outlines all available parameters:
| Input Field | Type | Default | Description |
|---|---|---|---|
postUrls | Array of Strings | (Required) | List of Instagram post URLs, Reels URLs, shortcodes, or numeric media IDs to scrape. One entry per line in the Console form. |
proxyConfiguration | Object | { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] } | Apify Proxy configuration. High-reputation residential proxies are recommended for stable Instagram scraping. |
maxConcurrency | Integer | 3 | Maximum number of concurrent worker requests. Allowed range is 1 to 10. |
Minimal Input Example
{"postUrls": ["https://www.instagram.com/p/DdFFajKABI4/"]}
Batch Input Example with Multiple Formats
{"postUrls": ["https://www.instagram.com/p/DdFFajKABI4/","DdFFajKABI4","3982613260166763064"],"maxConcurrency": 3,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
Below is an authentic sample output record generated by the Actor from a public Instagram post (https://www.instagram.com/p/DdFFajKABI4/):
{"post_id": "3982613260166763064","shortcode": "DdFFajKABI4","post_url": "https://www.instagram.com/p/DdFFajKABI4/","post_type": "Carousel","caption": "Hard work pays off 🟡🔵","hashtags": [],"mentions": [],"like_count": 4777247,"comment_count": 44479,"view_count": null,"play_count": null,"share_count": null,"save_count": null,"repost_count": null,"posted_at": "2026-09-09T20:08:39.000Z","location_name": null,"location_id": null,"audio_title": null,"audio_artist": null,"is_original_audio": null,"is_paid_partnership": false,"video_duration": null,"media_url": "https://scontent.cdninstagram.com/v/t51.82787-15/801882196_18771362578056421_3427892846902468863_n.jpg?stp=dst-jpg_e35_s640x640_tt6&_nc_cat=1&ccb=7-5&_nc_sid=18de74","thumbnail_url": "https://instagram.falg6-1.fna.fbcdn.net/v/t51.82787-15/801882196_18771362578056421_3427892846902468863_n.jpg?stp=c0.400.3200.3200a_dst-jpg_e35_s150x150_tt6","dimensions_width": 3200,"dimensions_height": 4000,"owner_username": "cristiano","owner_full_name": "Cristiano Ronaldo","owner_id": "173560420","owner_is_verified": true,"owner_follower_count": null,"owner_profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/472007201_1142000150877579_994350541752907763_n.jpg?stp=dst-jpg_s150x150_tt6"}
Programmatic Integration & API Usage
You can trigger this Actor programmatically from any application using the Apify API or official client libraries.
JavaScript & TypeScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const input = {postUrls: ['https://www.instagram.com/p/DdFFajKABI4/'],maxConcurrency: 3,};// Start the Actor run and wait for it to finishconst run = await client.actor('karamelo/instagram-post-reel-details').call(input);// Fetch resulting records from default datasetconst { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Retrieved ${items.length} post records:`);for (const item of items) {console.log(`[${item.post_type}] ${item.shortcode} by @${item.owner_username}: ${item.like_count} likes`);}
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.getenv('APIFY_TOKEN'))run_input = {"postUrls": ["https://www.instagram.com/p/DdFFajKABI4/"],"maxConcurrency": 3}run = client.actor("karamelo/instagram-post-reel-details").call(run_input=run_input)dataset_items = client.dataset(run["defaultDatasetId"]).iterate_items()for post in dataset_items:print(f"Post {post['shortcode']} by {post['owner_username']}: {post['comment_count']} comments")
Apify CLI
echo '{ "postUrls": ["https://www.instagram.com/p/DdFFajKABI4/"] }' | \apify call karamelo/instagram-post-reel-details --output-dataset
REST API
Trigger the Actor via standard HTTP request:
curl -X POST "https://api.apify.com/v2/acts/karamelo~instagram-post-reel-details/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"postUrls": ["https://www.instagram.com/p/DdFFajKABI4/"]}'
Downstream Integrations & Export Workflows
The dataset produced by this Actor connects directly to various business tools:
- Google Sheets & Airtable: Set up automatic synchronization so new scraped posts append as new rows in your tracking spreadsheets.
- Zapier & Make (Integromat): Create automated triggers that notify your Slack or Discord channels when a competitor publishes a new post or Reel.
- Webhooks: Configure Apify Webhooks to notify your server endpoint the moment a batch job finishes, passing the dataset ID for automatic ingestion.
- AI Pipelines & MCP Server: Feed post captions, hashtags, and media assets into Large Language Models (LLMs) for content summarization, brand sentiment analysis, or automated response generation.
Pricing, Performance & Best Practices
Bulk Processing for Maximum Cost Efficiency
Apify charges a minor platform startup fee per Actor run. Consequently, running one batch job with 50 URLs is significantly more cost-effective than executing 50 separate single-URL runs. Whenever possible, aggregate URLs into batches of 20 to 100 items per run to maximize throughput and minimize compute costs.
Recommended Concurrency Settings
- Small batches (1–10 URLs): Concurrency of
2or3finishes in just a few seconds. - Medium batches (10–50 URLs): Concurrency of
3to5provides optimal balance between speed and steady upstream throughput. - Large batches (50+ URLs): Keep concurrency around
3to4to prevent upstream request throttling and maintain consistent residential proxy distribution.
Proxy Selection
Always utilize Apify residential proxies (RESIDENTIAL). Instagram aggressively throttles datacenter IP ranges. Residential proxies ensure that requests originate from legitimate consumer broadband addresses, providing reliable data retrieval.
Supported Scope & Limitations
Supported Media Types
- Standard single-photo feed posts (
/p/) - Multi-photo and mixed carousels (
/p/) - Vertical video Reels (
/reel/or/reels/) - IGTV / long-form video posts (
/tv/) - Direct alphanumeric shortcodes
- Numeric media identifiers
Explicit Limitations
- Private Profiles: The Actor cannot extract posts from private profiles that require an approved follower relationship.
- Expired Stories: This Actor is designed for permanent feed posts and Reels; temporary 24-hour Stories are not supported.
- Deleted or Age-Gated Content: Content that has been removed by the author or restricted behind regional/age gates cannot be accessed anonymously.
- Viewer-Specific Metrics: Certain metrics like non-public insights (impressions, reach, detailed audience demographics) are visible only to the account owner via Instagram Professional Dashboard and cannot be scraped publicly.
Troubleshooting & Common Solutions
1. Zero Items Returned / All Attempts Failed
- Cause: The supplied URL might be a private account post, or the shortcode is invalid.
- Solution: Open the post URL in an incognito browser window without logging in. If the post requires logging in to view, it cannot be scraped. Verify that the URL contains a valid public shortcode.
2. Upstream Throttling / HTTP 429
- Cause: Too many rapid requests originating from the same proxy session.
- Solution: Ensure residential proxies are enabled in your input configuration (
useApifyProxy: true,apifyProxyGroups: ["RESIDENTIAL"]). DecreasemaxConcurrencyto2to space requests steadily.
3. Missing Audio Title on Reels
- Cause: Not all Reels use licensed commercial music; many use raw unedited camera audio or sounds that do not have catalog metadata attached.
- Solution: This is expected platform behavior when the original creator does not select a registered audio asset from Instagram's music library.
4. Input URL Parsing Issues
- Cause: Unusual tracking parameters or mobile redirect URLs.
- Solution: The Actor automatically strips query parameters, but ensuring you provide canonical URLs (e.g.
https://www.instagram.com/p/SHORTCODE/) guarantees instantaneous matching.
Frequently Asked Questions (FAQ)
Does this Actor require an Instagram account or login?
No. This Actor operates entirely without login credentials, cookies, or account access tokens. You do not need to risk your personal or brand Instagram accounts.
Can I scrape Instagram Reels as well as regular posts?
Yes. Both standard feed posts (/p/) and Instagram Reels (/reel/) are fully supported. The Actor automatically identifies the content type and returns appropriate media formats and metrics.
What happens if I paste an invalid or deleted URL?
The Actor logs a warning indicating that the item was not found or is private, skips the item, and continues processing the remaining valid URLs in your batch without crashing.
Can I download the actual MP4 video files?
The Actor provides the direct media_url pointing to the MP4 video stream on Instagram content delivery networks (CDNs). You can download or stream the video file directly using this URL.
How fresh is the data?
All data is extracted in real-time at the moment the Actor executes. Engagement numbers, like counts, and comments reflect live public figures at run time.
Can I schedule automatic daily or weekly runs?
Yes. In Apify Console, navigate to the Schedules tab. You can configure cron-based schedules (e.g., daily at midnight) to monitor a static list of URLs or trigger dynamic batch runs via webhooks.
Are there limits on how many URLs I can scrape in a single run?
There is no hard platform limit. You can process hundreds or thousands of URLs in a single run. For very large runs (500+ URLs), ensure your Actor memory is set to at least 1,024 MB or 2,048 MB to handle dataset buffering smoothly.
Compliance & Responsible Use
- Public Data Only: This Actor exclusively accesses publicly available content accessible without authentication.
- Respect Rate Limits: Avoid running excessive concurrency against upstream platforms. Maintain steady, polite request rates.
- Personal Data Considerations: Always comply with local data protection regulations (such as GDPR, CCPA, and relevant privacy laws) when storing, analyzing, or publishing personal identifiers like creator usernames or display names.
- Copyright & Intellectual Property: Media assets extracted through this Actor belong to their respective creators and copyright holders. Ensure you possess appropriate rights or fair use justifications before republishing or redistributing copyrighted video or photographic material.