Instagram Reels Scraper
Pricing
$1.00 / 1,000 results
Instagram Reels Scraper
Plays, likes, comment count, caption, date, duration, video URL, audio and top comments from public Instagram profiles and reel URLs. No login needed. Skip pinned reels and set a limit per profile.
Pricing
$1.00 / 1,000 results
Rating
5.0
(1)
Developer
Muhammad Noman Riaz
Maintained by CommunityActor stats
1
Bookmarked
119
Total users
5
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape reels from public Instagram profiles, or single reels by URL. No Instagram login is needed: the actor reads the same data Instagram shows to logged-out visitors, through residential proxies.
What does Instagram Reels Scraper do?
Instagram Reels Scraper collects reels from public Instagram profiles, and single reels from their URLs, without an Instagram login. For each reel it returns the play count, like and comment counts, caption, hashtags, mentions, publish date, duration, video and cover URLs, audio artist and title, tagged users, collaborators, the owner's username and name, and the first comments Instagram shows. It reads a profile's reels tab, which is where Instagram shows play counts to logged-out visitors, pages through it 12 reels at a time up to your limit, and can skip pinned reels. Requests go through rotating residential proxies with retries on a new IP, and only complete reels are pushed, so you never pay for empty rows. Results export to JSON, CSV or Excel, or come back through the Apify API and MCP server. It is built for short-form video research, creator analytics, trend tracking and competitor monitoring.
What you get without cookies
For each reel scraped from a profile:
id,shortCode,url,type,productTypecaption,hashtags,mentionsvideoPlayCountandvideoViewCount(plays),likesCount,commentsCounttimestamp,videoDuration,videoUrl,displayUrl,imagesmusicInfo(artist and audio title),taggedUsers,coauthorProducersownerUsername,ownerFullName,ownerIdlatestCommentsandfirstComment: the first comments Instagram shows on the reel
Profiles are paginated 12 reels at a time, so resultsLimit works beyond the first page. In local tests a profile returned reels from the second page without cookies. skipPinnedPosts works without cookies.
Limits without cookies:
- Reels requested by direct URL have
videoPlayCountandvideoViewCountset tonull. Play counts are only shown in a profile's reels tab, so scrape the profile if you need them. - Comments come from the first batch Instagram shows, about 15 per reel.
sharesCount(whenincludeSharesCountis on) isnull, because Instagram does not show share counts to logged-out visitors.- Private profiles and reels hidden from logged-out visitors are skipped and listed in
FAILED_ITEMS. - Every reel costs one request to load its details, so large limits take longer.
With your cookies (optional)
If you paste cookies from your own Instagram account, the actor uses Instagram's logged-in reels feed instead of the public pages. This path was not tested in the current version, so prefer running without cookies unless the logged-out mode is blocked for you.
Input
| Field | Required | Description |
|---|---|---|
username | Yes | Usernames, profile URLs, or reel URLs |
resultsLimit | No | Max reels per profile, default 30 |
skipPinnedPosts | No | Leave out pinned reels |
maxComments | No | Max comments per reel, default 10 |
includeSharesCount | No | Adds the sharesCount field |
cookies | No | Your own Instagram cookies, see below |
proxy | No | Defaults to Apify residential proxy |
maxConcurrency | No | Inputs scraped in parallel, default 5 |
maxRequestRetries | No | Retries per request on a new IP, default 6 |
{"username": ["natgeo", "https://www.instagram.com/reel/DehZj9wggt0/"],"resultsLimit": 30}
Output example
{"id": "4008597565992995700","type": "Video","shortCode": "DehZj9wggt0","caption": "Keeping up with a pack of hunting wolves...","url": "https://www.instagram.com/reel/DehZj9wggt0/","commentsCount": 267,"likesCount": 37811,"videoPlayCount": 851150,"videoViewCount": 851150,"videoDuration": 30.04,"timestamp": "2026-10-15T19:00:02.000Z","ownerUsername": "natgeo","musicInfo": { "artist_name": "natgeo", "song_name": "Original audio", "uses_original_audio": true },"inputUrl": "https://www.instagram.com/natgeo/"}
Reliability
Every request goes through a fresh residential IP if the previous one is blocked or rate-limited, up to maxRequestRetries times. Only complete reels are pushed to the dataset. Inputs that fail or stop early are listed with the reason in the FAILED_ITEMS record of the key-value store, and the run's status message shows the totals.
How to get your Instagram cookies
Cookies are optional. Only add them if you need what the "With your cookies" section above lists.
Use a secondary Instagram account, not your main one. Instagram can rate-limit or temporarily lock accounts that make many requests.
Option 1: Chrome or Edge developer tools
- Log in to instagram.com with your secondary account.
- Press F12 to open developer tools.
- Open the Application tab, then Cookies, then
https://www.instagram.com. - Copy the values of
sessionid,ds_user_idandcsrftoken. - Paste them into the cookies field in this format:
sessionid=YOUR_SESSIONID; ds_user_id=YOUR_DS_USER_ID; csrftoken=YOUR_CSRFTOKEN
Option 2: Cookie-Editor extension
- Install the Cookie-Editor extension for your browser.
- Log in to instagram.com, open Cookie-Editor and click Export, then Export as JSON.
- Paste the whole JSON into the cookies field.
The actor checks the format before it starts and stops with a clear message if sessionid, ds_user_id or csrftoken is missing. Cookie values are never written to the log.
Keep them safe and fresh
- Cookies work like a password. Anyone who has them can act as that account. Do not share them or put them in public tasks or shared inputs. The field is stored as a secret on Apify.
- Cookies expire, and logging out of Instagram ends them immediately. If runs start failing with "your cookies may have expired", log in again in your browser and copy fresh cookies.
- Heavy use can get the account rate-limited. If that happens, wait a few hours or use a different secondary account.
FAQ
Do I need an Instagram account or cookies?
No. Play counts, likes, comments and video URLs all come back without a login. Cookies from your own secondary account are optional.
Why do some reels have no play count?
Play counts are shown only in a profile's reels tab. Reels added by direct URL have videoPlayCount set to null, so scrape the profile if you need plays.
Can I skip pinned reels?
Yes. Turn on skipPinnedPosts; it works without cookies because the reels tab marks pinned reels.
Can I download the videos?
Each reel includes videoUrl, a direct link to the video file. Instagram signs these links, so they expire after a while; download them soon after the run.
What am I charged for?
Each reel pushed to the dataset is one result. Failed inputs and skipped reels are not charged. See the Pricing tab for the current price.
Legal
Only public data is collected. You are responsible for using it in line with Instagram's terms and data protection laws such as GDPR.