Instagram Reels Scraper
Pricing
$20.00/month + usage
Instagram Reels Scraper
Scrape Instagram Reels, Profiles and Posts efficiently and reliably.
Pricing
$20.00/month + usage
Rating
4.7
(6)
Developer
Hpix
Actor stats
91
Bookmarked
1.7K
Total users
69
Monthly active users
1.1 days
Issues response
2 days ago
Last modified
Categories
Share
ℹ️ About
An efficient and straightforward Actor for scraping Instagram posts, profiles, and Reels, designed with performance in mind.
✨ Features
- Retrieve profile stats such as followers, bio, username, and links.
- Scrape reels, including likes, play counts, comments, captions, and music metadata.
- Choose the number of reels to scrape per profile.
- Scrape thousands of profiles and posts seamlessly.
⚙️ Inputs
- profiles: A list of Instagram usernames or URLs to scrape.
- reels_count: Define the target number of reels/posts to fetch per profile (default:
12). - target: Choose what to scrape:
all— Profiles and reelsall_with_posts— Profiles, reels, and postsprofiles_only— Profiles onlyreels_only— Reels onlyposts_only— Posts onlyreels_and_posts_only— Reels and posts (skips profile data)
- post_urls: Scrape individual Instagram posts or reels using their URL or shortcode.
- skip_pinned: When
true, pinned posts/reels are excluded from results (default:false). - beginDate: Only scrape posts/reels created after this date. Supports absolute (
YYYY-MM-DD) and relative (7 days,2 weeks,1 month,1 year) formats. - endDate: Only scrape posts/reels created before this date. Supports the same formats as
beginDate. - include_raw_data: Include raw data collected from Instagram in the final results. Disable to reduce dataset size (default:
true). - maxConcurrency: Maximum number of concurrent requests. Use this to control load and avoid blocks (default:
200, min:1, max:1000). - proxyConfiguration: Proxy settings for requests. Defaults to Apify Residential proxy for better reliability.
Example:
This input will scrape zuck's profile, 8 of the latest reels from his feed, and one post with the code DFNkPgRROOS:
{"profiles": ["zuck"],"target": "all","reels_count": 8,"post_urls": ["https://www.instagram.com/p/DFNkPgRROOS"],"include_raw_data": true,"custom_functions": "{ shouldSkip: (data) => false, shouldContinue: (data) => true }"}
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 reels when a certain condition is met.
For example, you can skip posts if they don't have music metadata:
{shouldSkip: (data) => data.kind == 'post' && !data.music_metadata}
Or stop crawling when it reaches the shortcode of a post:
{shouldContinue: (data) => data.code != 'codeToStopCrawling'}
The data argument is the same of an item on the final dataset (see Outputs).
Tips
- The actor is optimized for bulk scraping. Running it with multiple profiles simultaneously is significantly faster than processing one profile at a time.
- To optimize costs, this actor is memory-efficient and can run smoothly with just 256MB to 512MB of memory allocated.
📄 Outputs
Profile
{"kind": "profile","input": "zuck","id": "314216","is_private": false,"username": "zuck","full_name": "Mark Zuckerberg","biography": "","bio_links": [],"followers": 15534658,"following": 610,"profile_pic": "https://scontent-lga3-1.cdninstagram.com/...","profile_url": "https://www.instagram.com/zuck/","raw_data": {...}}
Reel
{"kind": "post","id": "3548364142010150900_314216","code": "DE-UmMaP6_0","post_type": "reel","post_url": "https://www.instagram.com/p/DE-UmMaP6_0","owner_id": "314216","is_pinned": false,"taken_at": 1737218208,"taken_at_formatted": "2025-01-18T12:36:48.000Z","caption": "Send it","hashtags": [],"play_count": 4456434,"comment_count": 7776,"like_count": 134906,"has_privately_liked": false,"thumbnail_url": "https://instagram.fagc3-2.fna.fbcdn.net/...","video_url": "https://scontent-iad3-1.cdninstagram.com/...","duration": 19.945,"music_metadata": {...},"video_versions": [{"height": 852,"type": 101,"url": "https://scontent-iad3-1.cdninstagram.com/...","width": 480},{"height": 852,"type": 103,"url": "https://scontent-iad3-1.cdninstagram.com/...","width": 480},{"height": 852,"type": 102,"url": "https://scontent-iad3-1.cdninstagram.com/...","width": 480}],"raw_data": {...}}
Post
{"kind": "post","input": "DFNkPgRROOS","id": "3552655076181205906","code": "DFNkPgRROOS","post_type": "post","post_url": "https://www.instagram.com/p/DFNkPgRROOS","owner_id": "314216","is_pinned": false,"taken_at": 1737730421,"taken_at_formatted": "2025-01-24T14:53:41.000Z","caption": "Grateful to train with you @marcelogarciajiujitsu. Good luck and have fun vs Imanari today!","hashtags": [],"like_count": 249896,"comment_count": 4627,"thumbnail_url": "https://scontent-lga3-2.cdninstagram.com/...","image_url": "https://scontent-lga3-2.cdninstagram.com/...","raw_data": {..}}
Note: If scraping fails for an item (e.g., private/restricted account or deleted post), the output will include an
errorfield describing the issue instead of the regular data.
📃 Changelog
Do you have a feature suggestion? Create an issue and let me know!
v1.2.0
- ✨ Added support to scrape all the posts (including Reels) of a profile
- ✨ Added more fields to the output dataset
- 🔧 Fixed date range filtering for pinned posts
v1.1.0
- ✨ Added proxy settings
- ✨ Added date range filtering for scraping reels
- ✨ Added configurable maximum concurrency limit for scraping requests
- ✨ Added an option to skip pinned reels
- 🔧 Fixed timeout issues during scraping
- 🔧 Improved handling of restricted Instagram accounts
- ⚡ Optimized concurrency and memory usage
v1.0.0
- ✨ Added support for scraping individual Reels and posts via URL or code
- ✨ Introduced new
include_raw_dataoption to control raw data inclusion in results - ✨ Added custom JavaScript functions for post/profile filtering and crawl control
- ✨ Added support for Instagram profile URLs as input
- ⚡ Optimized crawler performance for faster scraping
- 🔧 Enhanced logging functionality
v0.1
- 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.
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
- Currently, it is not possible to scrape private or age-restricted accounts, since those are not public.
👀 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.