Instagram Posts Scraper
Pricing
from $1.50 / 1,000 posts
Instagram Posts Scraper
Scrape Instagram posts like a pro! Extract likes, text, hashtags, and media URLs in seconds. Perfect for market research, competitor analysis, and trend spotting. Fast, reliable, and scalable. Download data in CSV or JSON. Automate your IG research now!
Pricing
from $1.50 / 1,000 posts
Rating
5.0
(1)
Developer
Always Prime
Actor stats
0
Bookmarked
3
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Instagram Posts Scraper 📸
Scrape recent posts from one or multiple Instagram profiles and get clean structured data in your Apify dataset.
This actor is built for users who want a simple way to collect Instagram post data for monitoring, research, lead generation, trend analysis, or content pipelines, without dealing with browser automation or messy exports.
Why use this actor? 🚀
- Scrape posts from one profile or many profiles in a single run
- Collect recent Instagram posts with pagination support
- Get structured output for images, videos, and carousel posts
- Receive results progressively while the run is still in progress
- Keep the input simple with just profiles and post limits
The progressive dataset delivery is especially useful for longer runs: users can start working with data before the actor finishes.
What data will you get? 📦
Each dataset item represents one Instagram post and can include:
- Profile username
- Post ID
- Shortcode
- Post URL
- Post type
- Image or thumbnail URL
- Video URL when available
- Caption
- Likes count
- Comments count
- Video view count
- Post timestamp
- Accessibility caption
- Image resource URLs
Typical use cases 💼
- Track content posted by competitors
- Monitor brand, influencer, or creator accounts
- Build datasets for content research and publishing analysis
- Export Instagram post URLs and media links for internal workflows
- Collect profile post history for dashboards and reporting
How it works ⚙️
The actor requests Instagram profile and feed endpoints, fetches recent posts, paginates until the requested limit is reached, and pushes each batch to the Apify dataset as soon as it is processed.
That means:
- you do not need to wait for the entire run to complete before seeing results
- long runs become easier to monitor
- downstream automations can start consuming data earlier
Input example 🧩
{"usernames": ["instagram", "natgeo"],"maxPosts": 30}
You can also use a single profile:
{"username": "instagram","maxPosts": 24}
Input fields explained 📝
username: Optional single Instagram username, kept for backward compatibilityusernames: List of Instagram usernames without@maxPosts: Maximum number of recent posts to fetch per profile
Output example 📄
{"profileUsername": "instagram","scrapedAt": "2026-03-20T20:10:15Z","source": "instagram-web-and-feed","id": "1234567890","shortcode": "ABCDEF123","url": "https://www.instagram.com/p/ABCDEF123/","typeName": "GraphImage","isVideo": false,"caption": "Example caption","displayUrl": "https://example.com/image.jpg","thumbnailUrl": "https://example.com/thumb.jpg","videoUrl": "","commentsCount": 128,"likesCount": 4521,"videoViewCount": 0,"takenAtTimestamp": 1710000000,"ownerUsername": "instagram","accessibilityCaption": "","displayResources": ["https://example.com/image-small.jpg","https://example.com/image-large.jpg"]}
Why it stands out ✨
- Fast HTTP-based scraping flow
- Clean flat output that works well in tables, exports, and automations
- Progressive dataset updates during the run
- Minimal input that is easy for non-technical users
- Supports multi-profile scraping in one job
- Ready for Apify Store usage and integrations
Simple to run 🙌
The actor is designed to stay easy to use in the Apify Store. Users only need to provide profile names and the number of posts to fetch. No extra cookie, proxy group, country, or timeout fields are required in the public input.
Limitations ⚠️
- Instagram may change or restrict the underlying endpoints at any time
- Some profiles may be harder to access depending on Instagram restrictions
- This actor is focused on profile posts, not comments, followers, or DMs
- Availability of some fields depends on what Instagram returns for a given post
Good fit for ✅
- Analysts
- Growth teams
- Agencies
- Media monitoring workflows
- Research and content intelligence pipelines
Not the best fit for ❌
- Full Instagram account management
- Messaging automation
- Deep engagement scraping beyond post-level data
Ready to export and automate 🤖
The output can be used directly in:
- Apify datasets
- webhooks
- Make
- Zapier
- Google Sheets workflows
- internal ETL pipelines
If you need Instagram post data in a structured format with batch-by-batch delivery to the dataset, this actor is built exactly for that.
Proxy setup
If you want to run the actor through a proxy on Apify, set the proxy URL in the actor environment variables.
INSTAGRAM_PROXY_URLPROXY_URL
INSTAGRAM_PROXY_URL has priority. If neither variable is set, the actor sends requests directly without a proxy.
Session setup
If Instagram requires login for the endpoint, set the session cookie in the actor environment variables.
INSTAGRAM_SESSION_IDSESSION_ID
INSTAGRAM_SESSION_ID has priority. The actor no longer accepts sessionId in the public input.