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.8
(8)
Developer
Hpix
Maintained by CommunityActor stats
96
Bookmarked
1.8K
Total users
51
Monthly active users
1.3 days
Issues response
22 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.