Instagram Scraper
Pricing
from $0.65 / 1,000 profile posts
Pricing
from $0.65 / 1,000 profile posts
Rating
0.0
(0)
Developer
Hpix
Maintained by CommunityActor stats
1
Bookmarked
76
Total users
12
Monthly active users
3.4 days
Issues response
4 hours ago
Last modified
Categories
Share
📸 Instagram Scraper
The Ultimate All-in-One Instagram Scraper
Extract high-quality data from Instagram profiles, posts, and Reels in seconds. Designed for marketers, researchers, and creators who need reliable data without the technical headache.
🚀 Why choose this Scraper?
- Reliability by Default: No more worrying about getting blocked. This Actor uses premium residential proxies and anti-detection mechanisms to ensure your tasks finish successfully.
- Reels, Posts & Profiles: Whether you need engagement stats on a viral Reel or the follower count of a specific influencer, we've got you covered.
- Clear, Predictable Costs: Stop guessing how much memory or CPU you need. You only pay for the data you actually receive.
- Beautiful Data Views: Don't get lost in code. Use the built-in output tabs to see your results in a clean, organized table with images.
✨ What can you do with it?
- Analyze Engagement: Get play counts, likes, and comment totals for Reels and Posts.
- Monitor Influencers: Track bio changes, follower growth, and verified status.
- Content Research: Use the Date Filter to only see content from the last week or month.
- Bulk Exports: Download your results instantly as Excel, CSV, or JSON.
🛠️ Getting Started is Easy
- Enter URLs or Usernames: Paste the Instagram profiles or specific post links you want to scrape.
- Pick Your Content: Toggle profile data, posts, and reels independently — or scrape them all at once.
- Set Your Limits: Use the "Posts per account" or "Date Range" filters to get exactly what you need.
- Run & Relax: Click Start and watch your data populate in the "Output" tab.
📊 Sample Output
Profile Data
| Username | Full name | Profile picture | Followers | Following | Data |
|---|---|---|---|---|---|
| zuck | Mark Zuckerberg | <Zuck's profile picture> | 16,879,414 | 623 |
Post Data
| Thumbnail | Caption | Code | Type | Like count | Comment count | Data |
|---|---|---|---|---|---|---|
| Two decades, many awesome projects... | DTTbdGlkaWl | post | 158,039 | 5,228 |
Reel Data
| Thumbnail | Caption | Play count | Comment count | Like count | Data |
|---|---|---|---|---|---|
| When @merab.dvalishvili is in town... | 27,979,151 | 4,670 | 394,756 |
💡 Pro Tips
- Massive Lists: This Actor is optimized for bulk. You can input hundreds of profiles at once; it will handle the queue automatically.
- Date Filtering: To save time and budget, use the beginDate parameter to only grab content created recently (e.g., "7 days ago").
- Custom Logic: Advanced users can use the "Custom functions" field to automatically skip posts that don't meet specific criteria (like posts without music).
- Cleaner Output: Disable the "Include raw data" option to strip the raw Instagram API response from the output and reduce dataset size.
- Pin Skipping: "Skip pinned posts" and "Skip pinned reels" let you skip content pinned to specific tabs independently — useful for accounts that pin promotional content to the top of their feed.
🔧 Advanced Usage
Custom functions
This is an advanced parameter that you can use to modify the crawler's behavior. With custom functions, you can skip a post or profile based on its data or stop crawling a profile's posts when a certain condition is met.
Two hooks are available:
shouldSkip(item)— Returntrueto skip the current item (post, reel, or profile). Processing continues with the next item.shouldContinue(item)— Returnfalseto stop crawling after the current item. Useful for stopping at a specific post.
For example, skip posts that don't have music metadata:
{shouldSkip: (item) => item.kind == "post" && !item.data.music_metadata;}
Or stop crawling when it reaches a specific post code:
{shouldContinue: (item) => item.data.code != "codeToStopCrawling";}
You can see the item schema by selecting "All fields" on the output tab, and viewing as JSON.
Restricted Posts
Some Instagram posts are age-restricted or otherwise limited and can't be accessed through the standard API. Enable the "Scrape restricted posts" toggle to attempt fetching these individual posts. This is a paid feature — each restricted post scraped incurs an additional charge on top of the standard per-post fee.
Please refer to the Actor pricing for details.
📃 Changelog
Do you have a feature suggestion? Create an issue and let me know!
v1.1.0
- ✨ Added restricted posts scraping
- ✨ Added skip_pinned_timeline and skip_pinned_reels options (deprecated skip_pinned)
- 🔧 Improved output schema and dataset views
- 🔧 Fixed date range filtering for pinned posts
- Initial release
❓ FAQ
Can I export the scraped data to Excel?
Sure! Apify allows you to download the results as an Excel spreadsheet. You can also download in CSV, JSON, XML, HTML, JSONL, and RSS.
What other data is available apart from the examples shown?
Each post, reel, and profile contains a
data field with extensive metadata beyond what's shown in the table view. To explore all available fields, select "All fields" in the output tab and view the results as JSON.
Here are some notable fields available in the output:
| Field | Type | Description |
|---|---|---|
is_pinned | boolean | Whether the post/reel is pinned by the profile |
pinned_tabs | string[] | Tabs where the item is pinned: ["timeline"], ["reels"], or both |
music_info | object | Music metadata for reels (artist, song title, album art) |
video_versions | array | All available video resolution URLs for reels |
hashtags | string[] | Hashtags extracted from the caption |
video_duration | number | Video duration in seconds (for video posts and reels) |
view_count | number | View count for individual reels (when scraping by post URL) |
bio_links | string | External URL from the profile's bio |
I just found a bug! Can you fix it?
Oh, what a shame! Please create an Issue, so I can evaluate what happened.
Can you implement X feature?
Of course! You can use the Issues tab to suggest new features.
⚠️ Disclaimer
This Actor scrapes public data from Instagram pages. Features are susceptible to changes made by Meta.
⛓️💥 Known issues
- Private or age-restricted accounts cannot be scraped as they are not publicly accessible.
- View counts for Reels are only available when scraping individual post URLs, not when scraping entire profiles. Play counts, however, are available in both scenarios.
- Instagram does not provide view counts for some posts, as these metrics are not publicly visible for those specific posts.
👀 See also
- Instagram Profile Monitor: Track Instagram profiles over time and monitor growth trends with historical data analysis and beautiful visualizations. Perfect for tracking competitors, influencers, or your own profile's performance.