Instagram Reels Comments Scraper
Pricing
from $0.25 / 1,000 comments
Instagram Reels Comments Scraper
Collect available top-level comments from public Instagram Reel URLs, newest first. Set a limit for each Reel or collect all available comments. Save text, times, likes, commenter details, and Reel context without an Instagram login.
Pricing
from $0.25 / 1,000 comments
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
12
Total users
6
Monthly active users
1.7 hours
Issues response
18 hours ago
Last modified
Categories
Security
Limited permissionsShare
💬 Public Instagram Reel comments from known URLs
For developers, researchers, marketers, and teams that need feedback from known public Instagram Reels, this Actor saves one dataset row for each available top-level comment. Each row links the comment to its Reel and includes text, creation time, likes, commenter details, status, media, and Reel context when Instagram provides them. No Instagram login is required.
Use the rows to review audience feedback, compare comments across Reels, or find comments first seen after an earlier run.
Use cases
- Collect top-level comments from one known Reel with Instagram Reel Comment Scraper.
- Run a bulk Instagram Reels comments scraper job on a list of Reel URLs in one run.
- Save the full comment list of a Reel when you export all Instagram Reel comments.
- Monitor new Instagram Reel comments by saving only comments that an earlier run did not find.
- Gather comment text and likes as input for Instagram Reel comments sentiment analysis.
- Set a per-Reel limit and save comment details with Scrape Instagram Reel Comments.
- Review comments from several public Reels with Instagram Reels Comments Scraper.
- Check commenter names and verified status with Instagram Reel Comments Scraper.
📦 What each Instagram Reel comment row contains
Results are saved as flat dataset rows. One row is one available top-level comment. A row keeps the source Reel URL and the available comment, commenter, status, media, and Reel details. Replies are not collected as nested threads.
▶️ Run comments from public Reels
- Add one or more public Instagram Reel URLs under
reels. - Enter a
maxCommentsvalue for each Reel, or leave it empty to collect all available comments. - Turn
onlyNewCommentson when you want comments first seen since an earlier run with the same Reel URLs. - Start the run and open the dataset link in the output.
Comments come newest first. The Actor saves the first eligible occurrence of a source comment. If the same source comment appears again, later matches are ignored.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
reels | array of objects | Required list of public Instagram Reel URLs and a comment limit for each Reel. |
reels[].url | string | Required public Instagram Reel URL to read. Links in the /reel/ or /p/ form work. |
reels[].maxComments | integer | Most top-level comments to save for this Reel. Leave it empty or enter 0 to collect all available comments. The schema does not set an upper bound. |
onlyNewComments | boolean | When true, return only comments first seen since an earlier run with the same Reel URLs. When false (the default), return comments found in this run. |
Default input example
This is the public input used by a successful current beta run with the prefilled Reel.
{"reels": [{"url": "https://www.instagram.com/reel/DRU4smMj0cu/","maxComments": 5}],"onlyNewComments": false}
🧾 Output
Output fields
Every saved row has reelUrl. Other fields are included when Instagram provides them, so optional fields may be absent.
| Field | Type | What it does |
|---|---|---|
commentId | string | Stable ID of the comment when Instagram provides it. |
commentUrl | URL string | Direct link to the comment when Instagram provides it. |
text | string | Text in the top-level comment. |
createdAt | date-time string | Time when the comment was created, in ISO 8601 format. |
reelUrl | URL string | URL of the Instagram Reel that contains the comment. |
likeCount | integer | Number of likes reported for the comment when available. |
reportedCommentCount | integer | Total comments reported for the Reel when available. |
commenter | object | Available profile details for the person who wrote the comment. |
commenter.username | string | Instagram username of the commenter. |
commenter.accountId | string | Stable Instagram account ID of the commenter when available. |
commenter.isVerified | boolean | Whether Instagram marks the commenter as verified when available. |
commenter.profileImageUrl | URL string | Profile image URL when available. |
status | object | Status details reported for the comment when available. |
status.isCovered | boolean | Whether Instagram marks the comment as covered when available. |
media | array of objects | Media attached to the comment when available. |
media[].type | string | Type of attached comment media when available. |
media[].url | URL string | URL of attached comment media when available. |
reel | object | Available context about the Reel that contains the comment. |
reel.caption | string | Caption text of the Reel when available. |
reel.owner | object | Available profile details for the Reel owner. |
reel.owner.username | string | Instagram username of the Reel owner when available. |
reel.owner.accountId | string | Stable Instagram account ID of the Reel owner when available. |
reel.owner.displayName | string | Display name of the Reel owner when available. |
Example row
This genuine row came from a successful current beta run with the prefilled input. It is shown as returned, so optional fields that were not returned, such as media, are not added.
{"commentId": "18159920989420962","commentUrl": "https://www.instagram.com/reel/DRU4smMj0cu/c/18159920989420962/","text": "cuteeee❤️","createdAt": "2026-02-19T03:47:43.000Z","reelUrl": "https://www.instagram.com/reel/DRU4smMj0cu/","likeCount": 0,"reportedCommentCount": 478,"commenter": {"username": "aeni.zyyxx","accountId": "60449928822","isVerified": false,"profileImageUrl": "https://scontent-lga3-2.cdninstagram.com/v/t51.82787-19/761703574_17990853837008823_9217143508091488587_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=107&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy4xMDgwLkMzIn0%3D&_nc_ohc=OHkJiY18xmEQ7kNvwFUbkn7&_nc_oc=AdrPhzb0bjmSjiQbryGgvNEtMTTu5XfnwcCLxrCdl4lF4jKRFuA-fhua66nErnupTjM&_nc_zt=24&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_gid=sF-IQDtE9gWJ6c8vTC-4Gg&_nc_ss=70689&oh=00_AQRIKvo-9Oc8itb_Ld9NaFrmsLguR6KeIcosgpohJdKW_A&oe=6AE8115C"},"status": {"isCovered": false},"reel": {"caption": ".\n.\n.\n.\n.\n.\n#cat #catsoftheworld #catsoftheday #catsgram #pet #petlovers #petlover #petsofinstagram #funny #funnyvideos #cute #cutecats #kitten #kittenlove #kittycat #reels","owner": {"username": "yuumi_cat9","accountId": "17841463300525511","displayName": "Yuumi_cat9"}}}
💳 Pricing
This Actor uses pay-per-event pricing based on saved top-level comments. One charge event covers one available top-level comment saved from a public Reel. Apify shows the current price tiers before you run the Actor.
🔌 Integrations
Dataset access
Open the Reel comments link in the run output to view or export the saved rows in Apify.
Video guide
❓ FAQ
Does this collect replies?
No. The Actor collects available top-level comments. Nested reply bodies and reply threads are outside its scope.
Do I need an Instagram login?
No. The Actor reads public Instagram Reel comments without requiring an Instagram login.
Can I submit more than one Reel?
Yes. Add several public Reel URLs to reels, and set a separate maxComments value for each one.
In what order are comments saved?
Comments come newest first. There is no option to change the order.
What does onlyNewComments do?
It requests only comments first seen since an earlier run for the same Reel URLs. Keep it false to return comments found in the current run.
How are duplicate comments handled?
The first eligible occurrence is saved. Later matches for the same source comment are ignored, and the saved row describes the first match.
What if a Reel is private, deleted, or unavailable?
Private, deleted, and otherwise inaccessible Reels are outside the supported public source boundary.
Can I use a profile, hashtag, or keyword instead of a Reel URL?
No. This Actor works from submitted public Reel URLs. Profile, hashtag, keyword, feed, and other content discovery are outside its scope.
What happens when Instagram does not provide an optional field?
That field may be absent from the row. The Actor does not invent missing public values.
Is maxComments required?
No. Leave it empty or enter 0 to collect all available comments for that Reel. Enter a positive whole number to stop at that many comments.
How can I tell if a run saved fewer comments than the Reel shows?
Compare the number of saved rows with reportedCommentCount. The two numbers do not always match, because the count can include comments that are not available as public top-level comments. If the gap looks large, run the Reel again.
📝 Changelog
v1.1 (07-11-2026)
- You can now enter more Instagram link forms:
/reels/and/tv/links. You can also enter only the Reel shortcode, such asDRU4smMj0cu.
v1.0 (28-10-2026)
- Breaking change: the
commentOrderinput is removed. Instagram gives Reel comments newest first only, so "Popular first" (the old default) only sorted the newest comments by likes. Comments now always come newest first, in the order Instagram gives them. There is no replacement. You can removecommentOrderfrom your input. - Breaking change: the
reel.owner.isPrivateoutput field is removed. The Actor reads only public Reels, so this field did not give useful data. There is no replacement. - The
maxCommentslimit for each Reel is now optional. Leave it empty or enter 0 to collect all available comments. - Fixed runs that sometimes stopped early with only the newest comments of a Reel. The Actor now checks the end of the comment list again before it stops.
- Reliability improvements.
v0.1 (14-09-2026)
- Each saved comment can include a direct link to that comment when Instagram provides one.
- An unavailable public Reel now shows a clear warning without exposing internal error details.
v0.0
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Instagram Downloader API: Download media links and metadata from the same public Instagram URLs.
- Instagram User Search: Find public Instagram accounts by keyword before choosing Reel URLs.
- Instagram Profile Stats Scraper: Check public profile stats and recent post or Reel previews for known accounts.
- Instagram Related Users Scraper: Explore public accounts related to a seed profile after comment review.
- Instagram Post & Reel Content Scraper: Review public post and Reel captions, engagement, media links, and creator details from profile feeds.
Made with ❤️ by Maxime Dupré