Instagram Comment Scraper
Pricing
from $1.00 / 1,000 results
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
Maintained by CommunityActor 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.
| Field | Description | Example |
|---|---|---|
id | Comment ID | 17900000000000001 |
text | Full comment text | Entering the giveaway! @example_brand ... |
ownerUsername | Commenter username, the base of an Instagram commenters list | example_user |
ownerId | Commenter ID | 1000000001 |
ownerProfilePicUrl | Commenter profile picture link | https://example.com/profile.jpg |
ownerIsVerified | Whether the commenter has a verified badge | false |
isPostOwner | True when the post's own author wrote the comment | false |
timestamp | When the comment was posted (UTC) | 2026-10-20T09:30:00.000Z |
likesCount | Likes on the comment, a base for Instagram engagement analysis | 3 |
position | Reading position, newest first, counted before your filters | 1 |
commentUrl | Direct link to the comment | https://www.instagram.com/p/Cx1AbCdEfGh/c/17900000000000001/ |
textLength | Length of the text in characters | 62 |
script | Main writing script (latin, arabic, cyrillic, devanagari and more), useful for Instagram audience research | latin |
mentions, mentionsCount | Accounts tagged in the comment and how many; use them to find mentions and hashtags in Instagram comments | ["example_brand", "example_friend"], 2 |
hashtags | Hashtags in the comment | ["weekend"] |
emails | Email addresses that people wrote in the comment; use them to extract emails from Instagram comments | [] |
urls | Links written in the comment | [] |
emojis, emojiCount | Emojis in the comment and how many, a start for Instagram emoji analysis | [], 0 |
gifUrl | GIF link when the comment is a GIF, otherwise null | null |
postUrl, postId, postShortcode | Which post the comment belongs to | Cx1AbCdEfGh |
postType | reel, carousel, image or video when known | image |
postOwnerUsername, postOwnerId | Who published the post | example_brand |
postCaption, postTimestamp | Post caption and date | Weekend vibes |
postLikesCount, postCommentsCount | The post's own counters | 250, 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,textLengthandscriptprepare your data for Instagram comment analysis in a tool of your choice. - Sentiment work: feed the
textfield 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
ownerIsVerifiedorisPostOwneris set for Instagram influencer vetting. - Lead research: the
emailsandurlsfields 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
- Create an Apify account and open Instagram Comment Scraper in the Apify Store.
- Paste your post or reel links into Instagram post & reel URLs.
- Set Max comments per post, or 0 to scrape all Instagram comments the post shows publicly.
- Add optional filters: date, words, or one comment per user.
- Click Start and watch the log; each page of comments is saved as it arrives.
- 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 tier | Price 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 markedduplicate; an invalid link gets the statusinvalid link.resultsLimit: maximum comments kept per post, newest first. The form pre-fills 100 and0means 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. positioncounts 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 summary | Meaning | What to do |
|---|---|---|
done | All requested comments were saved | Nothing |
no comments | The post has no comments you can see | Check the post in a browser |
partial | The post stopped early; the reason is in message | Try again later or lower the limit |
failed | No comments could be saved for this link | Read message, check the link, try again later |
invalid link | The input is not a post or reel link | Use links like instagram.com/p/... |
duplicate | The link was listed more than once | Nothing, it was scraped once |
stopped (spending limit) | Your maximum cost per run was reached | Raise 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
commentsSinceto 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.comlets an agent find the Actor withsearch-actors, check it withfetch-actor-detailsand start it withcall-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.
| Actor | What it extracts | When to use it |
|---|---|---|
| Instagram Hashtag Scraper | Reels found by hashtag or keyword | Find reels first, then paste their links here |
| Facebook Comment Scraper | Comments and replies from public Facebook posts | Your comments are on Facebook |
| Facebook Group Scraper | Posts and comments from public groups | Community feedback sits in groups |
| Douyin Search Scraper | Douyin videos found by keyword | You research short video trends on Douyin |
| Export Tripadvisor reviews | Reviews of hotels, restaurants, attractions and tours with ratings and owner replies | When you also want the reviews guests left on Tripadvisor |
For the source of the data see Instagram.
โ๏ธ Is it legal to scrape Instagram comments?
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.