Instagram Posts Scraper - 47 Fields, Engagement Scores
parseforge/instagram-posts-scraper
Social mediaAutomationDeveloper tools
Reads posts from public Instagram profiles, reels and post URLs. 47 fields per post: caption, likes, comments, views and plays, hashtags, mentions, tagged users and collaborators, media type and URLs, alt text and timestamp, plus engagement rate, virality score and paid-partnership flags.
- Total users
- 466
- Monthly active
- 13
- Total runs
- 7K
- Bookmarked
- 7
- Rating
- 4.8 (5)
- Last modified
- 2 days ago
This scraper was last updated on .
What does the Instagram Posts Scraper - 47 Fields, Engagement Scores return?

๐ธ Instagram Posts Scraper
๐ Extract Instagram posts, Reels, and profile data in minutes. Pull from any public account by username, profile URL, or post URL. Filter by media type and date range. No login, no API keys, no Instagram developer approval.
No minimum charge: you only pay for the results you get.
๐ Last updated: 2026-04-21 ยท ๐ 25 fields per post ยท ๐ฌ Reels/images/video/carousel ยท ๐ Date filtering ยท ๐ซ No auth required
๐ Paid plan adds
| ๐ Virality metrics Likes/hour and velocity | ๐ Caption intelligence CTAs, emojis, emails, URLs | ๐ธ Sponsorship detection Branded and paid posts | ๐ Location coords Lat, lng, address |
The Instagram Posts Scraper collects post data from any public Instagram profile, returning 25 fields per post: caption, hashtags, mentions, like count, comment count, view count, play count, media type, video URL, image URLs, location, tagged users, collaborators, alt text, video duration, and timestamps. Runs support up to 1,000,000 posts on a paid plan.
The Actor accepts three input formats in the same run: usernames (nike), profile URLs (https://instagram.com/nike), and individual post URLs (https://instagram.com/p/ABC123). Filter by media type (image, video, Reel, carousel) and date range (absolute dates, ISO timestamps, or relative like "30 days"). No Instagram account, Graph API credentials, or developer approval needed.
| ๐ฏ Target Audience | ๐ก Primary Use Cases |
|---|---|
| Social media analysts, influencer marketing teams, brand managers, growth hackers, academic researchers, content strategists | Competitor analysis, engagement benchmarking, influencer vetting, hashtag research, content audits, trend tracking |
๐ What the Instagram Posts Scraper does
Three input formats with media and date filters:
- ๐ค Username mode. Enter usernames like nike or cristiano to pull their recent posts.
- ๐ URL mode. Paste profile URLs (
instagram.com/nike) or individual post URLs (instagram.com/p/ABC123). - ๐ฌ Media type filter. Restrict to image, video, reel, or carousel posts only.
- ๐
Date filter. Limit results by absolute dates (
2025-01-01), ISO timestamps, or relative periods (30 days,3 months,1 year).
Each post record includes caption, parsed hashtag and mention arrays, engagement metrics (likes, comments, views, plays), media type and product type, video URL, all image URLs, carousel count, location, tagged users, collaborators, alt text, video duration, post URL, shortcode, and timestamps.
๐ก Why it matters: the official Instagram Graph API only returns data for accounts you own or manage. This Actor reads the same public data any visitor sees and returns it as structured JSON, CSV, or Excel, making competitor analysis, influencer vetting, and hashtag research practical at scale.
๐ฌ Full Demo
๐ง Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded dataset.
โ๏ธ Input
| Input | Type | Default | Behavior |
|---|---|---|---|
| startUrls | array | [] | Usernames, profile URLs, or individual post URLs. All three formats accepted in the same run. |
| maxItems | integer | 10 | Max posts per profile. Free: up to 10. Paid: up to 1,000,000. |
| maxItemsTotal | integer | - | Optional total cap across all profiles combined. |
| mediaTypeFilter | string | "all" | Filter: all, image, video, reel, or carousel. |
| dateFilter | string | "" | Date range: 2025-01-01, 30 days, 3 months, 1 year. |
| proxyConfiguration | object | Apify residential | Residential proxies recommended for large runs. |
Example: last 30 days of Reels from two profiles.
{
"startUrls": ["cristiano", "https://www.instagram.com/nike/"],
"maxItems": 50,
"mediaTypeFilter": "reel",
"dateFilter": "30 days"
}
Example: all posts from a single profile URL.
{
"startUrls": ["https://www.instagram.com/natgeo/"],
"maxItems": 100
}
โ ๏ธ Good to Know: residential proxies are recommended for runs over 50 posts. Instagram rate-limits aggressively on datacenter IPs. The proxy configuration is pre-filled with recommended settings.
๐ Output
Each post record contains 25 fields. Download the dataset as CSV, Excel, JSON, or XML.
๐งพ Schema
| Field | Type | Example |
|---|---|---|
| ๐ผ๏ธ thumbnailUrl | string | "https://scontent-..." |
| ๐ caption | string | "Golden hour over the canyon." |
| ๐ค username | string | "natgeo" |
| ๐ likeCount | number | 42891 |
| ๐ฌ commentCount | number | 1204 |
| ๐ viewCount | number | 980000 |
| โถ๏ธ playCount | number | 850000 |
| ๐ฌ mediaType | string | "video" |
| ๐ฌ productType | string | "feed" |
| ๐ฅ videoUrl | string | "https://scontent-..." |
| ๐ผ๏ธ imageUrls | array | ["https://scontent-..."] |
| ๐ผ๏ธ carouselCount | number | 0 |
| #๏ธโฃ hashtags | array | ["goldenhour", "canyon"] |
| @ mentions | array | [] |
| ๐ location | string | "Grand Canyon National Park" |
| ๐ฅ taggedUsers | array | [] |
| ๐ค collaborators | array | [] |
| ๐ commentsDisabled | boolean | false |
| ๐ likesHidden | boolean | false |
| ๐ฟ altText | string | null | null |
| โฑ๏ธ videoDuration | number | null | 45.2 |
| ๐ postUrl | string | "https://www.instagram.com/p/DPwJzEVDbwC/" |
| ๐ shortcode | string | "DPwJzEVDbwC" |
| ๐ timestamp | ISO 8601 | "2025-10-13T14:40:07.000Z" |
| ๐ scrapedAt | ISO 8601 | "2026-04-16T00:00:00.000Z" |
๐ฆ Sample records
๐ฅ Video post with high engagement
{
"thumbnailUrl": "https://scontent-example.cdninstagram.com/v/thumb.jpg",
"caption": "Golden hour over the canyon. Nature never disappoints.",
"username": "natgeo",
"likeCount": 42891,
"commentCount": 1204,
"viewCount": 980000,
"playCount": 850000,
"mediaType": "video",
"productType": "feed",
"videoUrl": "https://scontent-example.cdninstagram.com/v/video.mp4",
"imageUrls": [],
"carouselCount": 0,
"hashtags": ["goldenhour", "canyon", "natgeo"],
"mentions": [],
"location": "Grand Canyon National Park",
"taggedUsers": [],
"collaborators": [],
"commentsDisabled": false,
"likesHidden": false,
"altText": null,
"videoDuration": 45.2,
"postUrl": "https://www.instagram.com/p/DPwJzEVDbwC/",
"shortcode": "DPwJzEVDbwC",
"timestamp": "2025-10-13T14:40:07.000Z",
"scrapedAt": "2026-04-16T00:00:00.000Z"
}
๐ผ๏ธ Image post with hashtags and location
{
"thumbnailUrl": "https://scontent-example.cdninstagram.com/v/image.jpg",
"caption": "Morning run through the city. #fitness #running #nyc",
"username": "fitness_daily",
"likeCount": 312,
"commentCount": 18,
"viewCount": null,
"playCount": null,
"mediaType": "image",
"productType": "feed",
"videoUrl": null,
"imageUrls": ["https://scontent-example.cdninstagram.com/v/image.jpg"],
"carouselCount": 0,
"hashtags": ["fitness", "running", "nyc"],
"mentions": [],
"location": "Central Park",
"taggedUsers": [],
"collaborators": [],
"commentsDisabled": false,
"likesHidden": false,
"altText": "Person running through a park at sunrise",
"videoDuration": null,
"postUrl": "https://www.instagram.com/p/ABC123/",
"shortcode": "ABC123",
"timestamp": "2026-03-15T07:22:00.000Z",
"scrapedAt": "2026-04-16T00:00:00.000Z"
}
๐ฌ Reel with sparse engagement
{
"thumbnailUrl": "https://scontent-example.cdninstagram.com/v/reel-thumb.jpg",
"caption": "Quick recipe for the week",
"username": "home_cook_99",
"likeCount": 8,
"commentCount": 0,
"viewCount": 142,
"playCount": 130,
"mediaType": "video",
"productType": "clips",
"videoUrl": "https://scontent-example.cdninstagram.com/v/reel.mp4",
"imageUrls": [],
"carouselCount": 0,
"hashtags": [],
"mentions": [],
"location": null,
"taggedUsers": [],
"collaborators": [],
"commentsDisabled": false,
"likesHidden": true,
"altText": null,
"videoDuration": 22.8,
"postUrl": "https://www.instagram.com/reel/XYZ789/",
"shortcode": "XYZ789",
"timestamp": "2026-04-10T18:05:00.000Z",
"scrapedAt": "2026-04-16T00:00:00.000Z"
}
โจ Why choose this Actor
| Capability | |
|---|---|
| ๐ธ | 25 fields per post. Caption, hashtags, mentions, engagement, media URLs, location, tagged users, and timestamps. |
| ๐ฌ | Media type filter. Restrict to images, videos, Reels, or carousels in a single parameter. |
| ๐ | Date filtering. Absolute dates, ISO timestamps, or relative periods like "30 days" or "3 months". |
| ๐ | Three input formats. Usernames, profile URLs, and individual post URLs in the same run. |
| โก | Fast. Pulls hundreds of posts per minute with residential proxy. |
| ๐ | Per-profile and total caps. Control exactly how many posts to collect from each account. |
| ๐ซ | No authentication. No Instagram login, Graph API credentials, or developer approval needed. |
๐ Instagram has over 2 billion monthly active users. Having structured access to public post data is the foundation for any social media analysis, influencer marketing, or competitive intelligence workflow.
๐ How it compares to alternatives
| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| โญ Instagram Posts Scraper (this Actor) | $5 free credit, then pay-per-use | Any public profile | Live per run | media type, date range, per-profile cap | โก 2 min |
| Instagram Graph API | Free with restrictions | Only your own accounts | Real-time | Many | ๐ข Days (app review) |
| Third-party social analytics tools | $99-499/month | Multi-platform | Varies | Many | โณ Hours |
| Manual browsing | Free | Manual | Manual | Instagram UI only | ๐ Hours per account |
Pick this Actor when you want public Instagram data on demand, without Graph API credentials, without managing tokens, and without paying for a full social analytics subscription.
๐ How to use
- ๐ Sign up. Create a free account with $5 credit (takes 2 minutes).
- ๐ Open the Actor. Go to the Instagram Posts Scraper page on the Apify Store.
- ๐ฏ Set input. Add usernames, profile URLs, or post URLs. Set media type filter, date range, and maxItems.
- ๐ Run it. Click Start and let the Actor collect your data.
- ๐ฅ Download. Grab your results in the Dataset tab as CSV, Excel, JSON, or XML.
โฑ๏ธ Total time from signup to downloaded dataset: 3-5 minutes. No coding required.
๐ผ Business use cases
๐ Social Media Analytics
|
๐ค Influencer Marketing
|
๐จ Content Strategy
|
๐ Academic & Market Research
|
๐ Beyond business use cases
Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.
๐ Research and academia
|
๐จ Personal and creative
|
๐ค Non-profit and civic
|
๐งช Experimentation
|
๐ค Ask an AI assistant about this scraper
Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:
- ๐ฌ ChatGPT
- ๐ง Claude
- ๐ Perplexity
- ๐ Copilot
โ Frequently Asked Questions
๐ณ Do I need a paid Apify plan to run this actor?
No. You can start right now on the free Apify plan, which includes $5 in free monthly credit. That is enough to run this actor several times and explore the output before committing to anything. Paid plans unlock higher limits, more concurrent runs, and larger datasets. Create a free Apify account here to get started.
๐จ What happens if my run fails or returns no results?
Failed runs are not charged. If the source site changes, proxies get rate-limited, or a specific input matches nothing, re-run the actor or open our contact form and we will investigate. You can also check the run log in the Apify console to see why the run stopped.
๐ How many items can I scrape per run?
Free users are limited to 10 items per run so you can preview the output and confirm the actor works for your use case. Paid users can raise maxItems up to 1,000,000 per run. Upgrade here if you need full scale.
๐ How fresh is the data?
Every run fetches live data at the moment of execution. There is no cache or delay: the records you get reflect what the source returned at that moment. Schedule the actor to maintain a rolling snapshot of the data you need.
๐งโ๐ป Can I call this actor from my own code?
Yes. Apify exposes every actor as a REST endpoint and ships first-class SDKs for Node.js and Python. You can start a run, read the dataset, and handle webhooks from your own app in a few lines. All you need is your Apify API token.
๐ค How do I export the data?
Every Apify dataset can be downloaded in one click from the console as CSV, JSON, JSONL, Excel, HTML, XML, or RSS. You can also pull results programmatically via the Apify API or stream them into BigQuery, S3, and other destinations through built-in integrations.
๐ Can I schedule the actor to run automatically?
Yes. Use the Apify scheduler to run the actor on any cadence, from hourly to monthly. Results are saved to your dataset and can be delivered to webhooks, email, Slack, cloud storage, or automation tools such as Zapier and Make.
๐ Automating Instagram Posts Scraper
Control the scraper programmatically for scheduled runs and pipeline integrations:
- ๐ข Node.js. Install the apify-client NPM package.
- ๐ Python. Use the apify-client PyPI package.
- ๐ See the Apify API documentation for full details.
The Apify Schedules feature lets you trigger this Actor on any cron interval. Weekly pulls keep your social-listening dashboards in sync automatically.
๐ Integrate with any app
Instagram Posts Scraper connects to any cloud service via Apify integrations:
- Make - Automate multi-step workflows
- Zapier - Connect with 5,000+ apps
- Slack - Get run notifications in your channels
- Airbyte - Pipe Instagram data into your warehouse
- GitHub - Trigger runs from commits and releases
- Google Drive - Export datasets straight to Sheets
You can also use webhooks to trigger downstream actions when a run finishes. Push fresh Instagram data into your social-listening dashboard, or alert your team in Slack.
๐ Recommended Actors
- ๐ค Instagram Profile Scraper - Bio, follower counts, verification, and profile metadata
- ๐ฌ Instagram Reel Scraper - Reels data with views, likes, comments, and audio tracks
- #๏ธโฃ Instagram Hashtag Analytics Scraper - Top and recent posts by hashtag with volume stats
- ๐ฆ X.com Tweets Scraper - Tweet data, engagement metrics, and author details
- ๐ฑ Reddit Posts Scraper - Reddit posts with score, comments, and flair filters
๐ก Pro Tip: browse the complete ParseForge collection for more social media scrapers.
๐ Need Help? Open our contact form to request a new scraper, propose a custom data project, or report an issue.
โ ๏ธ Disclaimer: this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Instagram, Meta Platforms, Inc., or any of their subsidiaries. All trademarks mentioned are the property of their respective owners. Only publicly available post data is collected.
What input does the Instagram Posts Scraper - 47 Fields, Engagement Scores accept?
| Field | Type | What it does | Default |
|---|---|---|---|
| startUrls | array | List of Instagram usernames, profile URLs, or post URLs to scrape. Accepts multiple formats: - Usernames: nike, @cristiano, therock - Profile URLs: https://instagram.com/nike - Post URLs: https://instagram.com/p/ABC123, https://instagram.com/reel/XYZ789 | ["https://www.instagram.com/instagram/"] |
| maxItems | integer | Maximum posts to extract per profile/user. Free users: Limited to 10 per profile. Paid users: Optional, max 1,000,000 per profile. Leave empty for unlimited (paid users only). | 10 |
| maxItemsTotal | integer | Maximum total posts to extract across all profiles (optional). Free users: Limited to 10 total. Paid users: Optional, max 1,000,000 total. If set, the scraper will stop once this limit is reached. If both maxItems and maxItemsTotal are set, both limits are respected. | not set |
| dateFilter | string | Limit how far back to the history the scraper should go. The date should be in YYYY-MM-DD or full ISO absolute format (e.g., 2024-01-15 or 2024-01-15T00:00:00Z) or in relative format (e.g., 1 days, 2 months, 3 years). All time values are taken in UTC timezone. | not set |
| mediaTypeFilter | string (5 options) | Filter posts by content type. Use 'reel' to get only Reels, 'image' for photos only, 'carousel' for multi-image posts, or 'video' for all video content. | all |
| proxyConfiguration | object | Proxy settings. Residential proxies are recommended to avoid rate limiting. | {"useApifyProxy":true,"apifyProxyGroups" |
How much does the Instagram Posts Scraper - 47 Fields, Engagement Scores cost?
from $0.89 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.00089 to $0.001 |
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.00089 to $0.001 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
How do I call the Instagram Posts Scraper - 47 Fields, Engagement Scores API?
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~instagram-posts-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [
"https://www.instagram.com/instagram/"
],
"maxItems": 10,
"mediaTypeFilter": "all",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}' What example inputs can I use?
Use these inputs to see how a run is configured.
{
"startUrls": [
"https://www.instagram.com/instagram/"
],
"maxItems": 10,
"mediaTypeFilter": "all",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
} What do users say about the Instagram Posts Scraper - 47 Fields, Engagement Scores?
Rated 4.8 out of 5 across 5 reviews. Read them on Apify.
How do I report an issue with the Instagram Posts Scraper - 47 Fields, Engagement Scores?
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
What related scrapers can I use?
- Reddit Scraper - Posts, Comments & 20 Filters 4.6K runs
- Instagram Posts & Comments Scraper - 25 Fields 690 runs
- Spotify Artists Scraper - Track Play Counts, Listeners, Rank 86 runs
- Spotify Playlist Scraper 60 runs
- Snapchat Profile & Spotlight Scraper 46.5K runs
- Reddit Scraper & Search API: Posts, Users, Subreddits 43.7K runs
Run Instagram Posts Scraper - 47 Fields, Engagement Scores on Apify All scrapers