Instagram Reels Comment Scraper avatar

Instagram Reels Comment Scraper

Pricing

from $0.25 / 1,000 comments

Go to Apify Store
Instagram Reels Comment Scraper

Instagram Reels Comment Scraper

Collect available top-level comments from public Instagram Reel URLs. Set a per-Reel comment limit and choose popular-first or recent-first order. Save available 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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

💬 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

📦 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

  1. Add one or more public Instagram Reel URLs under reels.
  2. Enter a positive maxComments value for each Reel.
  3. Set commentOrder to popular or recent.
  4. Turn onlyNewComments on when you want comments first seen since an earlier run with the same Reel URLs.
  5. Start the run and open the dataset link in the output.

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

FieldTypeWhat it does
reelsarray of objectsRequired list of public Instagram Reel URLs and a comment limit for each Reel.
reels[].urlstringPublic Instagram Reel URL to read.
reels[].maxCommentsintegerRequired positive whole number of top-level comments to request for this Reel. This field cannot be left empty, and the schema does not set an upper bound.
commentOrderstringChoose popular for popular comments first or recent for recent comments first.
onlyNewCommentsbooleanWhen true, return only comments first seen since an earlier run with the same Reel URLs. When false, 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
}
],
"commentOrder": "popular",
"onlyNewComments": false
}

🧾 Output

The datasetItems link opens the default dataset view. Every saved row has reelUrl. Other fields are included when Instagram provides them, so optional fields may be absent.

Run output link

FieldTypeWhat it does
datasetItemslinkOpens the default dataset view with saved Reel comment rows.

Dataset rows

FieldTypeWhat it does
commentIdstringStable ID of the comment when Instagram provides it.
textstringText in the top-level comment.
createdAtdate-time stringTime when the comment was created, in ISO 8601 format.
reelUrlURL stringURL of the Instagram Reel that contains the comment.
likeCountintegerNumber of likes reported for the comment when available.
reportedCommentCountintegerTotal comments reported for the Reel when available.
commenterobjectAvailable profile details for the person who wrote the comment.
commenter.usernamestringInstagram username of the commenter.
commenter.accountIdstringStable Instagram account ID of the commenter when available.
commenter.isVerifiedbooleanWhether Instagram marks the commenter as verified when available.
commenter.profileImageUrlURL stringProfile image URL when available.
statusobjectStatus details reported for the comment when available.
status.isCoveredbooleanWhether Instagram marks the comment as covered when available.
mediaarray of objectsMedia attached to the comment when available.
media[].typestringType of attached comment media when available.
media[].urlURL stringURL of attached comment media when available.
reelobjectAvailable context about the Reel that contains the comment.
reel.captionstringCaption text of the Reel when available.
reel.ownerobjectAvailable profile details for the Reel owner.
reel.owner.usernamestringInstagram username of the Reel owner when available.
reel.owner.accountIdstringStable Instagram account ID of the Reel owner when available.
reel.owner.displayNamestringDisplay name of the Reel owner when available.
reel.owner.isPrivatebooleanWhether Instagram marks the Reel owner's account as private 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": "18150067549483569",
"text": "😂😂😂😂😂😂😂",
"createdAt": "2026-04-09T13:27:53.000Z",
"reelUrl": "https://www.instagram.com/reel/DRU4smMj0cu/",
"likeCount": 0,
"reportedCommentCount": 479,
"commenter": {
"username": "risfankhiyarulmizan",
"accountId": "9504336818",
"isVerified": false,
"profileImageUrl": "https://scontent-lga3-2.cdninstagram.com/v/t51.82787-19/765637505_18237171217312819_4486996020585504070_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=107&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy4xMDgwLkMzIn0%3D&_nc_ohc=xQk-uXgSYfcQ7kNvwHtqW8e&_nc_oc=Adpwm2IlWc0Ne3yAj2xl3MBCRmoUcWwYw3Z4NJL96xoT410oCFbx4gEcObgs8EeFkL4&_nc_zt=24&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_gid=kFl8hndOdueNnBqHh8K3GA&_nc_ss=73689&oh=00_AQLoJcXhzgvOH_0MI5JsZRwNNG00wHvk3h9ZLMfEATPxvA&oe=6A991B30"
},
"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",
"isPrivate": false
}
}
}

💳 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 datasetItems 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 positive maxComments value for each one.

popular requests popular comments first. recent requests recent comments first.

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?

Yes. Enter a positive whole number for each Reel. The schema does not set an upper bound.

📝 Changelog

0.0: Initial release

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré