Instagram Comment Scraper avatar

Instagram Comment Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Instagram Comment Scraper

Instagram Comment Scraper

Turn Instagram comments into insight. Paste any public post or reel link and instantly see who commented, what they said, how many likes it got and when. Spot loyal fans, pick giveaway winners and gauge audience mood in minutes. No Instagram login, no coding, no hassle.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Data WiKi

Data WiKi

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

0

Monthly active users

5 days ago

Last modified

Categories

Share

๐Ÿš€ What is Instagram Comment Scraper?

Instagram Comment Scraper is an Apify Actor that collects the public comments of Instagram posts and reels: comment text, commenter, likes, exact date and a direct link to each comment. Paste post or reel links, press Start and download the comments as JSON, CSV or Excel. No Instagram account is needed.

  • Every public comment, newest first: set a limit per post, or 0 to collect everything Instagram shows a logged-out visitor.
  • Text insights included: mentions, hashtags, emails, links, emojis and writing script are pulled out of each comment for you.
  • Many links per run: as an Instagram comments scraper it takes as many posts and reels as you like and returns one dataset.
  • Filters that save time: keep comments by date, by word or @mention, or keep one comment per user.
  • Live results: every page of comments is saved as it arrives, so the Output tab fills during the run.

Click Try for free, paste a link and press Start.

๐Ÿ“Š What data can you extract from Instagram?

This Instagram comment extractor returns one row per comment and repeats the details of the post on every row. Every row combines Instagram comments and likes with the post's own counters, and you can export them as JSON, CSV, Excel, XML or HTML.

FieldDescriptionExample
idComment ID17900000000000001
textFull comment textEntering the giveaway! @example_brand ...
ownerUsernameCommenter username, the base of an Instagram commenters listexample_user
ownerIdCommenter ID1000000001
ownerProfilePicUrlCommenter profile picture linkhttps://example.com/profile.jpg
ownerIsVerifiedWhether the commenter has a verified badgefalse
isPostOwnerTrue when the post's own author wrote the commentfalse
timestampWhen the comment was posted (UTC)2026-10-20T09:30:00.000Z
likesCountLikes on the comment, a base for Instagram engagement analysis3
positionReading position, newest first, counted before your filters1
commentUrlDirect link to the commenthttps://www.instagram.com/p/Cx1AbCdEfGh/c/17900000000000001/
textLengthLength of the text in characters62
scriptMain writing script (latin, arabic, cyrillic, devanagari and more), useful for Instagram audience researchlatin
mentions, mentionsCountAccounts tagged in the comment and how many; use them to find mentions and hashtags in Instagram comments["example_brand", "example_friend"], 2
hashtagsHashtags in the comment["weekend"]
emailsEmail addresses that people wrote in the comment; use them to extract emails from Instagram comments[]
urlsLinks written in the comment[]
emojis, emojiCountEmojis in the comment and how many, a start for Instagram emoji analysis[], 0
gifUrlGIF link when the comment is a GIF, otherwise nullnull
postUrl, postId, postShortcodeWhich post the comment belongs toCx1AbCdEfGh
postTypereel, carousel, image or video when knownimage
postOwnerUsername, postOwnerIdWho published the postexample_brand
postCaption, postTimestampPost caption and dateWeekend vibes
postLikesCount, postCommentsCountThe post's own counters250, 40

The Posts summary table has one extra row per input link; see the Output section. The example values above are made up and only show the shape of the data.

๐Ÿ’ก Use cases for Instagram comment data

  • Giveaway entries: collect Instagram giveaway comments under a post and keep one comment per user. The Actor exports the entries; it does not choose a winner.
  • Comment analysis: clean fields such as text, textLength and script prepare your data for Instagram comment analysis in a tool of your choice.
  • Sentiment work: feed the text field into your own model for Instagram comment sentiment analysis.
  • Competitor research: compare the comments under rival posts for Instagram competitor analysis.
  • Brand monitoring: read what people write under your own posts for Instagram brand monitoring.
  • Influencer vetting: check who comments and whether ownerIsVerified or isPostOwner is set for Instagram influencer vetting.
  • Lead research: the emails and urls fields can support Instagram lead generation from comments, within the rules that apply to you.
  • AI and analytics: each row is structured data, so it works as an Instagram comments dataset for AI projects and dashboards.

๐Ÿ› ๏ธ How to scrape Instagram comments

  1. Create an Apify account and open Instagram Comment Scraper in the Apify Store.
  2. Paste your post or reel links into Instagram post & reel URLs.
  3. Set Max comments per post, or 0 to scrape all Instagram comments the post shows publicly.
  4. Add optional filters: date, words, or one comment per user.
  5. Click Start and watch the log; each page of comments is saved as it arrives.
  6. Open the Output tab, pick a table and download Instagram comments to Excel, CSV or JSON.

The Actor runs in Apify Console, so you can use this Instagram comment scraper online with nothing to install. Not sure which reel to read? You can find reels by hashtag first, then paste their links here.

How to scrape Instagram post comments and reel comments

Paste links like https://www.instagram.com/p/... to scrape Instagram post comments. Use links like https://www.instagram.com/reel/... to scrape Instagram reel comments. Photo posts, carousels and reels can be mixed in one run, so the Actor also works as an Instagram reel comments scraper.

How to filter Instagram comments by keyword

Put your words in Comment must contain (containsText), separated by commas. A word that starts with @ keeps comments that mention that account.

How to get Instagram comments by date

Fill Only comments newer than (commentsSince) with a date such as 2025-06-01 or a period such as 7d. Then you get Instagram comments by date without sorting afterwards.

๐Ÿ’ฐ How much does it cost to scrape Instagram comments?

Instagram Comment Scraper uses pay per event pricing. You pay per comment saved to the results, plus a small fee when the Actor starts. Rows of the Posts summary table are not charged.

  • Result (main_result): charged once for every comment saved to the dataset.
  • Actor start (apify-actor-start): $0.00005 per run. The Actor is set to 1024 MB of memory, which is one start event.

Apify platform usage (compute) is billed on top of the events above.

Plan tierPrice per 1,000 comments (main_result)
Free$1.50 (1,000 x $0.0015)
Bronze$1.35 (1,000 x $0.00135)
Silver$1.20 (1,000 x $0.0012)
Gold and above$1.00 (1,000 x $0.001)

Example: 5 posts with 100 comments each is 500 comments. On the Free tier that is 500 x $0.0015 = $0.75, and on Gold 500 x $0.001 = $0.50, plus the start fee of $0.00005 and platform usage.

You can set a maximum cost per run in Apify. When it is reached, the run stops cleanly and keeps every comment already saved. See the Pricing tab for current rates.

โฌ‡๏ธ Input

The only required field is Instagram post & reel URLs (urls). Everything else is optional. Open the Input tab for every option.

๐Ÿ’ก Keep Max comments per post low for a first test run.

This example takes up to 100 comments per post that are newer than 2026-10-01 and contain "giveaway" or mention @example_brand, one comment per user:

{
"urls": ["https://www.instagram.com/p/Cx1AbCdEfGh/"],
"resultsLimit": 100,
"commentsSince": "2026-10-01",
"containsText": "giveaway, @example_brand",
"uniqueCommenters": true
}
  • urls: post links, reel links, links with a username in front, or bare shortcodes. Profile pages, hashtag pages and private posts are not supported. A link listed twice is scraped once and marked duplicate; an invalid link gets the status invalid link.
  • resultsLimit: maximum comments kept per post, newest first. The form pre-fills 100 and 0 means all. With 2 posts and a limit of 50 you get up to 100 comments. When you start the Actor from code, send the number you want.
  • commentsSince: a date, a date and time (2025-06-01T10:00:00Z) or a period (12h, 7d, 2w, 3m, 1y). A month counts as 30 days and a year as 365. Leave it empty for all dates.
  • containsText: words separated by commas; a comment is kept when it contains any of them, ignoring upper and lower case.
  • uniqueCommenters: keeps only the newest comment of each user on each post.
  • proxyConfiguration: off by default. If Instagram blocks the requests, the Actor retries and switches to a proxy automatically. You can also choose a proxy yourself.

โš ๏ธ If many comments are read and none match containsText, the post stops early and the Posts summary says why.

โฌ†๏ธ Output

The scraped results are shown as a dataset in the Storage tab, and the Output tab groups them into six tables: Comments, Commenters, Text insights, Post details, All fields and Posts summary. The table view doesn't show all the fields. The Instagram comments export is available as JSON, CSV, Excel, XML and HTML, and you can pick the fields to include before you download. Through the API, the dataset also serves Instagram comments JSON.

One comment row for the input above (example values, not real data):

{
"id": "17900000000000001",
"text": "Entering the giveaway! @example_brand @example_friend #weekend",
"ownerUsername": "example_user",
"ownerProfilePicUrl": "https://example.com/profile.jpg",
"timestamp": "2026-10-20T09:30:00.000Z",
"likesCount": 3,
"ownerId": "1000000001",
"ownerIsVerified": false,
"isPostOwner": false,
"position": 1,
"commentUrl": "https://www.instagram.com/p/Cx1AbCdEfGh/c/17900000000000001/",
"textLength": 62,
"script": "latin",
"mentions": ["example_brand", "example_friend"],
"mentionsCount": 2,
"hashtags": ["weekend"],
"emails": [],
"urls": [],
"emojis": [],
"emojiCount": 0,
"gifUrl": null,
"postUrl": "https://www.instagram.com/p/Cx1AbCdEfGh/",
"postId": "1000000000000000001",
"postShortcode": "Cx1AbCdEfGh",
"postType": "image",
"postOwnerUsername": "example_brand",
"postOwnerId": "2000000002",
"postCaption": "Weekend vibes",
"postTimestamp": "2026-10-19T18:00:00.000Z",
"postLikesCount": 250,
"postCommentsCount": 40
}

Posts summary output

Each input link also gets one row in the Posts summary table, with commentsCollected, commentsRead, status and a plain-words message:

{
"inputUrl": "https://www.instagram.com/p/Cx1AbCdEfGh/",
"postUrl": "https://www.instagram.com/p/Cx1AbCdEfGh/",
"postShortcode": "Cx1AbCdEfGh",
"postType": "image",
"postOwnerUsername": "example_brand",
"postCaption": "Weekend vibes",
"postTimestamp": "2026-10-19T18:00:00.000Z",
"postLikesCount": 250,
"postCommentsCount": 40,
"commentsCollected": 1,
"commentsRead": 40,
"status": "done",
"message": null,
"scrapedAt": "2026-10-26T10:00:00.000Z"
}

โš ๏ธ Limitations and error handling

  • Replies to comments are not collected. Instagram shows them only to logged-in users, so you get top-level comments.
  • Private accounts, removed posts and anything a logged-out visitor cannot open are not returned.
  • The number of comments returned can be lower than the counter on the post (postCommentsCount), and your filters remove comments too.
  • position counts the comments read before your filters, so with filters on it can skip numbers.
  • Up to 6 posts are read at the same time; a very large post takes longer.
  • Links inside comment text are found with a fixed list of web address endings, so some unusual links may be missed.
status in the Posts summaryMeaningWhat to do
doneAll requested comments were savedNothing
no commentsThe post has no comments you can seeCheck the post in a browser
partialThe post stopped early; the reason is in messageTry again later or lower the limit
failedNo comments could be saved for this linkRead message, check the link, try again later
invalid linkThe input is not a post or reel linkUse links like instagram.com/p/...
duplicateThe link was listed more than onceNothing, it was scraped once
stopped (spending limit)Your maximum cost per run was reachedRaise the limit and run again

If every link fails, the run ends as failed with a message; if only some fail, the run still finishes and keeps the comments already saved.

๐Ÿ”Œ Integrating Instagram Comment Scraper with other apps

As an Apify Instagram comment scraper it runs on the Apify platform, so you can start runs from code, schedule them and trigger webhooks when a run finishes. This makes the Actor an Instagram comments API for your own tools. The API tab shows ready-made JavaScript, Python and CLI snippets for the Instagram comment scraper API, and the run URL is https://api.apify.com/v2/actors/data_wiki~instagram-comment-scraper/runs. Read the results from the run's dataset.

  • Schedules: run the Actor daily or weekly with Apify schedules and use commentsSince to follow new comments for Instagram social listening.
  • Apps: connect results to Google Sheets, Make, Zapier, Slack or Airbyte through the Apify integrations.
  • API reference: the Apify API documentation covers starting runs and reading datasets from code.
  • AI agents: the hosted Apify MCP server at https://mcp.apify.com lets an agent find the Actor with search-actors, check it with fetch-actor-details and start it with call-actor.

๐Ÿ”— Other social media scrapers by data_wiki

These Actors come from the same account. Only the first is about Instagram; the others cover Facebook and Douyin.

ActorWhat it extractsWhen to use it
Instagram Hashtag ScraperReels found by hashtag or keywordFind reels first, then paste their links here
Facebook Comment ScraperComments and replies from public Facebook postsYour comments are on Facebook
Facebook Group ScraperPosts and comments from public groupsCommunity feedback sits in groups
Douyin Search ScraperDouyin videos found by keywordYou research short video trends on Douyin
Export Tripadvisor reviewsReviews of hotels, restaurants, attractions and tours with ratings and owner repliesWhen you also want the reviews guests left on Tripadvisor

For the source of the data see Instagram.

The Actor only collects data that people have made publicly available on Instagram and does not extract private data. Comments can still contain personal details such as usernames or emails, so collect them only with a legitimate reason and consider GDPR and CCPA. Check Instagram's terms and consult a lawyer if you are unsure. Read more about the legality of web scraping and ethical web scraping.

โ“ FAQ

How much does a run cost?

You pay $0.00005 per run start plus a price per comment saved: $1.50 per 1,000 on the Free tier down to $1.00 per 1,000 on Gold and above. Platform usage is billed on top.

Can you scrape Instagram comments without a login?

Yes. The Actor reads public posts the way a logged-out visitor sees them, so no Instagram account is needed. That makes it an Instagram comment scraper without login for any public post or reel.

How many comments can I get from one post?

As many as Instagram shows publicly. Set resultsLimit to 0 to collect all of them; the form default is 100. The Posts summary tells you when Instagram stopped returning comments early.

Can Instagram Comment Scraper collect replies?

No. Replies are visible only to logged-in users, so only top-level comments are returned.

Can I scrape private accounts?

No. Only public posts and reels work.

How do I export Instagram comments to Excel?

Open the Output tab after the run, choose a table, click Export and select Excel. Select CSV in the same menu to export Instagram comments to CSV, or pick JSON, XML or HTML.

How do I export Instagram comments for giveaway entries?

Switch on One comment per user (uniqueCommenters), add your required word or @account to Comment must contain, and export the Comments table. You then have the entries to review yourself.

Can I download comments from a reel?

Yes. Paste the reel link and the Actor works as an Instagram reel comment downloader for that reel.

How do I get Instagram comments from a post in code?

Start a run with the Apify API and pass the post link in urls. You can then get Instagram comments from post links by reading the run's dataset, with the apify-client packages for Node.js or Python.

What happens if Instagram blocks the requests?

The Actor retries and switches to a proxy automatically, and the log says when it does. If a post still cannot be loaded, its Posts summary row shows failed or partial with a reason, and the comments already saved are kept.

Can I use Instagram Comment Scraper through MCP?

Yes. Add the Actor to an AI agent through the hosted Apify MCP server (https://mcp.apify.com) and let the agent call it with your post links.

๐Ÿ’ฌ Your feedback

Found a bug or need another field? Open an issue on the Actor's Issues tab. Need a custom solution? Contact hello.datawiki@gmail.com.