Instagram Comments Scraper
Pricing
from $1.00 / 1,000 comment scrapeds
Instagram Comments Scraper
Extract comments from any public Instagram post or reel. Get usernames, text, timestamps, like counts, and verified status. No login required. Export as JSON, CSV, or Excel.
Pricing
from $1.00 / 1,000 comment scrapeds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
559
Total users
49
Monthly active users
13 hours ago
Last modified
Categories
Features
Share
What does Instagram Comments Scraper do?
Instagram Comments Scraper extracts the top comments from any public Instagram post or reel. Paste one or more post URLs and get structured data including the comment text, username, timestamp, like count, and verified status. No login or API key required.
The scraper starts with the comments embedded in the public post page, then follows Instagram's logged-out pagination cursor to collect more comments when one is available. Set a specific limit or use 0 to collect every comment Instagram exposes to logged-out visitors. Export results as JSON, CSV, or Excel with one click.
Unlike general-purpose Instagram scrapers, this tool is purpose-built for comment extraction with dedicated output fields, optimized pricing, and fast execution.
Who is Instagram Comments Scraper for?
This section answers who is it for and where Instagram comment extraction fits into common social listening, research, and reporting workflows.
📊 Brand managers and marketing teams
- Monitor brand mentions and sentiment in post comments
- Track competitor engagement and audience reactions
- Collect user feedback on product launches and campaigns
🔬 Researchers and data analysts
- Analyze public discourse and opinion trends on Instagram
- Study engagement patterns across influencer content
- Build sentiment analysis datasets from comment text
📈 Social media agencies
- Generate engagement reports for clients
- Identify top commenters and brand advocates
- Monitor comment-based customer support conversations
🤖 Developers and data engineers
- Feed comment data into NLP pipelines and AI models
- Build custom monitoring dashboards via the API
- Integrate Instagram comment data with CRM or analytics tools
Why use Instagram Comments Scraper?
✅ No login required — extracts comments from public posts without any Instagram account or session cookie
✅ Dedicated comment tool — purpose-built for comments with optimized output fields and pricing, not a general scraper with comments as an afterthought
✅ Pay only for what you scrape — pay-per-event pricing starting at $0.0023/comment (Free tier), with volume discounts on higher plans
✅ Full comment data — get usernames, text, timestamps, likes, verified badges, and profile pictures
✅ Clear per-post outcome — removed or private posts are reported separately from temporary loading failures, and you are never charged for comments from a post that could not be read
✅ API access — call programmatically from Node.js, Python, or any language via REST API
✅ Scheduled runs — set up recurring scrapes to monitor comments over time
✅ Export anywhere — download as JSON, CSV, or Excel, or push to Google Sheets, webhooks, and 5,000+ apps via Zapier/Make
What data can you extract?
Each comment includes the following fields:
| Field | Type | Description |
|---|---|---|
id | string | Unique comment ID |
text | string | Full comment text |
username | string | Commenter's Instagram handle |
userId | string | Commenter's user ID |
fullName | string | Commenter's display name |
profilePicUrl | string | URL to commenter's profile picture |
isVerified | boolean | Whether the commenter has a verified badge |
likesCount | number | Number of likes on the comment |
repliesCount | number | null | Number of replies, when Instagram reports it. Instagram currently hides reply counts from logged-out visitors, so this is usually null (unknown, not zero) |
isReply | boolean | Whether this is a reply to another comment |
parentCommentId | string | ID of the parent comment (for replies) |
postShortCode | string | Instagram post shortcode |
postUrl | string | Full URL of the source post |
timestamp | string | When the comment was posted (ISO 8601) |
scrapedAt | string | When the data was collected |
How much does it cost to scrape Instagram comments?
This Actor uses pay-per-event pricing — you pay only for what you scrape. No monthly subscription. All platform costs are included.
| Free | Bronze ($49/mo) | Silver ($149/mo) | Gold ($499/mo) | Platinum | Diamond | |
|---|---|---|---|---|---|---|
| Per comment | $0.0023 | $0.002 | $0.0015 | $0.001 | $0.0008 | $0.00056 |
| 1,000 comments | $2.30 | $2.00 | $1.50 | $1.00 | $0.80 | $0.56 |
| 10,000 comments | $23.00 | $20.00 | $15.00 | $10.00 | $8.00 | $5.60 |
Higher-tier plans get additional volume discounts. A one-time start fee of $0.005 applies per run.
Real-world cost examples:
| Scenario | Posts | Comments | Duration | Cost (Free tier) |
|---|---|---|---|---|
| Single post | 1 | ~15 | ~10s | ~$0.04 |
| Batch of 10 posts | 10 | ~150 | ~2min | ~$0.40 |
| Batch of 50 posts | 50 | ~750 | ~10min | ~$1.98 |
With the free plan ($5 in credits), you can scrape comments from approximately 150+ posts at no cost.
How to scrape Instagram comments
- Go to Instagram Comments Scraper on the Apify Store
- Click Start for free to open the Actor in Apify Console
- Paste one or more Instagram post or reel URLs into the Post URLs field
- Adjust the Max comments per post limit (default: 20)
- Optionally choose Sort comments by (most popular or newest)
- Click Start and wait for the run to finish
- Download your data as JSON, CSV, or Excel from the Dataset tab
Example input for a single post:
{"postUrls": ["https://www.instagram.com/p/DVOyCluEVBg/"],"maxCommentsPerPost": 100}
Example input for multiple posts, newest first:
{"postUrls": ["https://www.instagram.com/p/DVOyCluEVBg/","https://www.instagram.com/reel/DfKSNMql2Lc/"],"maxCommentsPerPost": 200,"sortBy": "newest"}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
postUrls | array | required | Instagram post or reel URLs to scrape comments from |
maxCommentsPerPost | integer | 20 | Maximum comments to extract per post (0 = every comment available without login) |
includeReplies | boolean | false | Include replies (child comments) when Instagram exposes them. Instagram currently hides replies from logged-out visitors, so this option usually adds no rows — see Limitations |
sortBy | string | "popular" | Deterministic order for each post's collected comments: "popular" (most liked, then newest) or "newest" (most recent first) |
proxyCountry | string | "US" | Proxy country code for geo-targeted results |
Output example
{"id": "18116832733656232","text": "This is amazing! 🔥","username": "johndoe","userId": "53822734240","fullName": "John Doe","profilePicUrl": "https://scontent.cdninstagram.com/...","isVerified": false,"likesCount": 42,"repliesCount": null,"isReply": false,"parentCommentId": null,"postShortCode": "DVOyCluEVBg","postUrl": "https://www.instagram.com/p/DVOyCluEVBg/","timestamp": "2026-04-04T09:49:44.000Z","scrapedAt": "2026-04-04T10:51:37.580Z"}
Tips for best results
💡 Start small — test with one post and a low comment limit before running large batches
💡 Use popular sort for sentiment analysis — the most-liked comments often represent the majority opinion
Sorting is applied to the comments Instagram exposes publicly within your requested limit. When Instagram truncates its logged-out comment surface,
popularcannot guarantee the globally most-liked comments from the full post.
💡 Use newest sort for monitoring — catch new comments as they come in with scheduled runs
💡 Schedule recurring runs for ongoing monitoring — set up daily or weekly scrapes to track comment trends on specific posts
💡 Combine with other scrapers — use Instagram Scraper to find post URLs, then feed them into this actor for detailed comment extraction
Integrations
📊 Instagram Comments → Google Sheets Export comment data directly to a Google Sheet for collaborative analysis. Set up a scheduled run to append new comments daily.
🔔 Instagram Comments → Slack/Discord Get notified when new comments appear on monitored posts. Use webhooks to push alerts to your team channel.
⚡ Instagram Comments → Make/Zapier Build automated workflows: extract comments → run sentiment analysis → update CRM → alert team on negative feedback.
📅 Scheduled monitoring Set up recurring runs to track comment activity over time. Compare comment volume and sentiment across posts, campaigns, or time periods.
🔗 Webhooks Send results to any URL endpoint for real-time processing. Useful for feeding comment data into custom dashboards or ML pipelines.
API usage with the Apify API
You can call Instagram Comments Scraper programmatically from any language.
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('automation-lab/instagram-comments-scraper').call({postUrls: ['https://www.instagram.com/p/DVOyCluEVBg/'],maxCommentsPerPost: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/instagram-comments-scraper').call(run_input={'postUrls': ['https://www.instagram.com/p/DVOyCluEVBg/'],'maxCommentsPerPost': 100,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~instagram-comments-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"postUrls": ["https://www.instagram.com/p/DVOyCluEVBg/"],"maxCommentsPerPost": 100}'
Use with AI agents via MCP
Instagram Comments Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).
Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:
Setup for Claude Code
$claude mcp add --transport http instagram-comments-scraper "https://mcp.apify.com/?tools=automation-lab/instagram-comments-scraper"
The actor-scoped URL limits the MCP server to this scraper, so the tool list stays focused.
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=automation-lab/instagram-comments-scraper"}}}
Your AI assistant will use OAuth to authenticate with your Apify account on first use.
Example prompts
Once connected, try asking your AI assistant:
- "Use automation-lab/instagram-comments-scraper to get all comments from https://www.instagram.com/p/DVOyCluEVBg/"
- "Scrape comments from these 5 Instagram posts and summarize the overall sentiment"
- "Extract the top 50 most-liked comments from this viral Instagram reel and identify common themes"
Learn more in the Apify MCP documentation.
Legality: is it legal to scrape Instagram comments?
Web scraping of publicly available data is generally legal according to the US Ninth Circuit Court ruling (hiQ Labs v. LinkedIn, 2022). This scraper only accesses public posts — it does not bypass login walls, access private accounts, or use authentication tokens.
Always use scraped data responsibly:
- Respect Instagram's Terms of Service
- Do not use data for harassment, spam, or unauthorized profiling
- Comply with GDPR and other applicable data protection regulations
- Consider the privacy implications of processing personal data at scale
This Actor is not affiliated with, endorsed by, or sponsored by Instagram or Meta. Instagram is named only to identify the supported source.
Error diagnostics: failed operations send sanitized diagnostic input, exceptions, and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL query strings are removed, and reports are retained for 30 days. Diagnostic credentials are not public input parameters.
Limitations
- Replies are not available without login. Instagram does not send reply threads or reply counts to logged-out visitors: its public page and comment pagination return no replies and an empty reply count, the reply endpoints redirect to the login page, and the "View replies" button asks visitors to log in. This Actor never uses an Instagram account, so it returns top-level comments only, and
repliesCountisnull(unknown, not zero). If you enableincludeReplies, the run log says when Instagram withheld replies. If Instagram exposes replies again, the Actor returns them automatically. - Removed and private posts. When Instagram shows its error page for a post (deleted, private, or never existed), the run log marks that post as unavailable and skips it. Nothing is charged for it.
- Loading failures. If a post page cannot be loaded after 6 attempts (for example network timeouts or blocking), the log marks that post as failed. If no requested post could be read and at least one failed for technical reasons, the run ends as Failed instead of succeeding with an empty dataset. The run status message summarizes comments, unavailable posts, and failed posts.
FAQ
How fast is Instagram Comments Scraper? The scraper typically processes each post in about 5-10 seconds. A batch of 10 posts completes in about 2 minutes including rate-limiting delays.
How many comments does it return per post?
The scraper returns up to maxCommentsPerPost comments. It reads the initial public comments and paginates through the logged-out comment connection when Instagram exposes a cursor. With maxCommentsPerPost: 0, it continues until that public connection is exhausted. Instagram can still hide moderated, deleted, gated, or reply-only comments from logged-out visitors, so the result may be lower than the count displayed on the post.
How many comments can I scrape for free? With the free plan ($5 in credits), you can scrape comments from approximately 150+ posts at no cost.
Does this work without an Instagram account? Yes! Instagram Comments Scraper works entirely without login. It extracts comments from public posts using Instagram's web interface -- no session cookie or API key needed.
Why do I get fewer comments than the post shows? The displayed post count can include replies and comments that are deleted, moderated, covered, or unavailable to logged-out visitors. The Actor follows the public pagination cursor when Instagram provides one, but it does not use an authenticated Instagram account. If Instagram withholds the cursor or comments are disabled, only the comments available on the public page can be returned.
Why do some fields show null values?
Some fields like fullName or profilePicUrl may be null if the commenter has a minimal profile. repliesCount is null when Instagram does not report a reply count, which is currently the case for logged-out visitors. parentCommentId is null for top-level comments.
How is this different from the official Instagram API? The official Instagram Graph API requires a Facebook Business account, app review, and only allows access to your own posts' comments. This scraper works on any public post without any API credentials or account setup.
Related social media scrapers
Explore more social media data extraction tools from automation-lab:
- 📸 Instagram Scraper — Extract profiles, posts, reels, hashtags, and mentions
- 🎵 TikTok Scraper — Scrape TikTok videos, profiles, and hashtags
- 🎵 TikTok Sound Scraper — Extract videos using specific TikTok sounds
- 🐦 Twitter/X Scraper — Collect tweets, profiles, and search results
- ▶️ YouTube Scraper — Extract video data, channels, and search results