Instagram Comments Scraper
Pricing
$19.99/month + usage
Instagram Comments Scraper
📸 Instagram Comments Scraper pulls comments, usernames, timestamps, likes & replies from IG posts. 🔍 Analyze sentiment, hashtags & mentions; track engagement; find UGC & insights. 📊 Export CSV/JSON. 🚀 Ideal for social listening, influencer research & competitor analysis.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
Scrapium
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Instagram Comments Scraper
Instagram Comments Scraper is a production-ready Instagram comments extractor that pulls comment text, usernames, timestamps, likes, and replies from Instagram post and reel URLs. It helps marketers, developers, data analysts, and researchers scrape Instagram comments at scale and export results to JSON/CSV for analysis, social listening, and engagement tracking. Use it as an automated Instagram comments scraping tool to turn conversations into structured insights.
What is Instagram Comments Scraper?
Instagram Comments Scraper is an Apify actor that collects comments (and optional replies) from Instagram posts and reels via Instagram’s GraphQL endpoints. It solves the manual effort of scrolling, copying, and aggregating comments by providing a structured, per-comment dataset in real time. Designed for marketers, developers, analysts, and researchers, this Instagram comments API scraper processes multiple post URLs, handles pagination, and outputs clean JSON you can export to CSV for downstream analysis.
What data / output can you get?
Below are the exact fields the actor outputs for each comment record. Replies are nested under the top-level comment in the same shape.
| Data type | Description | Example value |
|---|---|---|
| id | Unique comment ID (string) | "17894957058162897" |
| text | Comment text | "Amazing shot! 🔥" |
| timestamp | UTC ISO timestamp with milliseconds | "2026-03-28T15:49:30.000Z" |
| ownerUsername | Commenter’s Instagram handle | "johndoe" |
| ownerProfilePicUrl | URL to commenter’s profile image | "https://scontent.cdninstagram.com/.../avatar.jpg" |
| postUrl | Source Instagram post or reel URL | "https://www.instagram.com/p/DN8-GjPkgjS/" |
| commentUrl | Direct link to the comment | "https://www.instagram.com/p/DN8-GjPkgjS/c/17894957058162897" |
| likesCount | Number of likes on the comment | 42 |
| repliesCount | Number of direct replies to the comment | 3 |
| replies | Array of reply objects (same shape as comments) | [ { "id": "...", "text": "...", ... } ] |
| owner | Object with commenter metadata (fbid_v2, id, username, etc.) | { "id": "123", "username": "johndoe", ... } |
Notes:
- Each top-level comment is pushed to the Apify Dataset in real time and collected into a single JSON array under Key-Value Store key “OUTPUT” for one-file download (output.json).
- You can export results from the Apify Dataset to JSON or CSV.
Key features
-
🚀 GraphQL-powered extraction
Uses Instagram’s GraphQL endpoints to fetch comments efficiently with pagination for reliable, high-throughput collection. -
💬 Replies on demand
Control nested extraction with Include replies and Max replies per comment. Replies are returned in the same structured format as top-level comments. -
📦 Real-time dataset streaming + single file output
Each comment is saved to the Dataset as it’s discovered. A consolidated JSON array is also written to Key-Value Store key “OUTPUT” for direct download. -
🧰 Batch scraping from multiple URLs
Provide multiple post or reel URLs via Post URLs to run a bulk Instagram comments scraper workflow. -
🛡️ Smart connection fallback (proxy as needed)
When direct requests are blocked, the actor automatically retries with datacenter proxy, then residential proxy (3 retries) to maximize success. -
🔐 Session ID support for reliability
For best results, pass your Instagram sessionid cookie. Without it, Instagram may serve different content and required identifiers may be unavailable. -
📑 Popular-only sorting (clear behavior)
Sorting is set to “popular.” The Newest first (not supported) option is kept only for compatibility and is not used by this GraphQL approach. -
🧪 Developer-friendly output
Clean JSON schema for easy use with scripts, ETL, or analytics pipelines. Export Instagram comments to CSV from the Apify Dataset.
How to use Instagram Comments Scraper - step by step
-
Sign in to Apify
Create a free Apify account or log in. -
Open the actor
Find “Instagram Comments Scraper” and click Try for free. -
Add input URLs
Paste one or more Instagram post or reel URLs into Post URLs (e.g., https://www.instagram.com/p/SHORTCODE/). -
(Recommended) Add Session ID
In Session ID, paste your instagram.com sessionid cookie for reliable extraction of required identifiers. -
Configure limits
- Max comments per post: how many top-level comments to collect (capped at 500 by the actor).
- Include replies: toggle on/off.
- Max replies per comment: how many replies to fetch for each comment (capped at 50).
-
Optional: Connection fallback
Leave Proxy (fallback only) empty for direct requests. If a block occurs, the actor will automatically try alternate connections. -
Start the run
Click Start. The actor will load each post, fetch comments, and push records to the Dataset in real time. -
Download results
- Dataset: Export to JSON or CSV.
- Key-Value Store: Download the single-file JSON array from key “OUTPUT”.
Pro tip: Use the Key-Value Store key “OUTPUT” to programmatically fetch a single JSON array via the Apify API for pipeline automation.
Use cases
| Use case name | Description |
|---|---|
| Social listening & sentiment | Analyze comment text to quantify audience reactions and themes across posts and reels. |
| Influencer campaign tracking | Measure engagement on creator posts by collecting likesCount, repliesCount, and timestamps. |
| Competitor benchmarking | Compare comment volume and sentiment on competitor posts to identify trends and opportunities. |
| UGC discovery & research | Collect user-generated comments for product insights, FAQs, and common objections. |
| Customer support triage | Extract and route comments with questions or issues to support workflows. |
| Data science & NLP | Build training datasets from comment text for sentiment, topic, or intent modeling. |
| API pipeline integration | Pull the “OUTPUT” JSON array for automated processing in ETL or BI systems. |
Why choose Instagram Comments Scraper?
This actor focuses on precision, automation, and reliability for Instagram comment extraction.
- 🎯 Accurate, structured data: Clean per-comment JSON with consistent fields (ids, text, counts, timestamps, owner).
- 📈 Built for scale: Batch multiple URLs and paginate seamlessly to collect hundreds of comments per post.
- 💬 Full thread context: Optionally include replies in the same structured format with Max replies per comment control.
- 🧑💻 Developer-ready: Export JSON or CSV and fetch a single JSON array via Key-Value Store key “OUTPUT”.
- 🛡️ Resilient connectivity: Automatic fallback to alternate connections when blocks occur (datacenter → residential with retries).
- 🔐 Reliable with Session ID: Using sessionid ensures required identifiers are available even when Instagram varies content for unauthenticated users.
- 🧩 Better than browser extensions: No flaky UI automation — this is a production-grade Instagram comments crawler using HTTP and GraphQL.
In short, it’s a streamlined Instagram post comments scraper that delivers consistent output and integrates cleanly into analytics and automation workflows.
Is it legal / ethical to use Instagram Comments Scraper?
Yes — when used responsibly. This tool is designed to extract publicly available comment data from Instagram posts and reels.
Guidelines to follow:
- Only collect public content and respect Instagram’s Terms of Service.
- Do not scrape private data or non-public profiles.
- Ensure compliance with applicable data protection laws (e.g., GDPR/CCPA).
- Use the data for legitimate research, analytics, or operational use cases.
- Consult your legal team for edge cases or jurisdiction-specific requirements.
Input parameters & output format
Example JSON input
{"directUrls": ["https://www.instagram.com/p/DN8-GjPkgjS/"],"maxComments": 10,"maxReplies": 5,"includeNestedComments": true,"isNewestComments": false,"sessionId": "YOUR_INSTAGRAM_SESSIONID_COOKIE","proxyConfiguration": {"useApifyProxy": true}}
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| directUrls | array | No | — | Instagram post or reel URLs (e.g. https://www.instagram.com/p/SHORTCODE/). |
| maxComments | integer | No | 10 | Maximum comments to scrape per URL (1–500). The actor caps this at 500 per run. |
| maxReplies | integer | No | 5 | Maximum replies per comment (0–50). The actor caps this at 50 per comment. |
| sessionId | string | No | — | Instagram sessionid cookie. Required for reliable extraction: without it, doc_id and media_id often cannot be found (Instagram serves different content when unauthenticated). |
| includeNestedComments | boolean | No | true | Fetch replies for each comment. |
| isNewestComments | boolean | No | false | Newest first (not supported). Kept for compatibility; this actor uses popular sorting. |
| proxyConfiguration | object | No | — | Proxy (fallback only). Optional. Used only when platform blocks direct requests: fallback to datacenter proxy, then residential proxy (3 retries). By default no proxy is used. |
Notes:
- None of the fields are strictly required by the schema, but Post URLs are necessary for a meaningful run.
- For best results, provide Session ID.
Example JSON output
[{"postUrl": "https://www.instagram.com/p/DN8-GjPkgjS/","commentUrl": "https://www.instagram.com/p/DN8-GjPkgjS/c/17894957058162897","id": "17894957058162897","text": "Amazing shot! 🔥","ownerUsername": "johndoe","ownerProfilePicUrl": "https://scontent.cdninstagram.com/path/avatar.jpg","timestamp": "2026-03-28T15:49:30.000Z","repliesCount": 2,"replies": [{"id": "18123456789012345","text": "Totally agree!","ownerUsername": "janedoe","ownerProfilePicUrl": "https://scontent.cdninstagram.com/path/avatar2.jpg","timestamp": "2026-03-28T15:55:10.000Z","repliesCount": 0,"replies": [],"likesCount": 3,"owner": {"fbid_v2": "","full_name": "","id": "987654321","is_mentionable": true,"is_private": false,"is_verified": false,"latest_reel_media": 0,"profile_pic_id": "","profile_pic_url": "https://scontent.cdninstagram.com/path/avatar2.jpg","username": "janedoe"},"commentUrl": "https://www.instagram.com/p/DN8-GjPkgjS/c/17894957058162897/r/18123456789012345"},{"id": "18123456789012346","text": "Love this!","ownerUsername": "anotheruser","ownerProfilePicUrl": "https://scontent.cdninstagram.com/path/avatar3.jpg","timestamp": "2026-03-28T15:56:12.000Z","repliesCount": 0,"replies": [],"likesCount": 1,"owner": {"fbid_v2": "","full_name": "","id": "1234509876","is_mentionable": true,"is_private": false,"is_verified": false,"latest_reel_media": 0,"profile_pic_id": "","profile_pic_url": "https://scontent.cdninstagram.com/path/avatar3.jpg","username": "anotheruser"},"commentUrl": "https://www.instagram.com/p/DN8-GjPkgjS/c/17894957058162897/r/18123456789012346"}],"likesCount": 42,"owner": {"fbid_v2": "","full_name": "","id": "123456789","is_mentionable": true,"is_private": false,"is_verified": false,"latest_reel_media": 0,"profile_pic_id": "","profile_pic_url": "https://scontent.cdninstagram.com/path/avatar.jpg","username": "johndoe"}}]
Field notes:
- replies is an array of reply objects with the same fields (including an empty replies array).
- Some owner subfields (e.g., full_name, profile_pic_id) may be empty if not present in the response.
FAQ
Do I need to log in or provide cookies?
For best results, yes. Provide your Instagram sessionid cookie in Session ID. Without it, Instagram may return different content and required identifiers (doc_id, media_id) may be missing, which can prevent extraction.
Can the scraper collect replies to comments?
Yes. Toggle Include replies and control depth with Max replies per comment. Replies are returned in the same format as top-level comments and nested under the replies array.
How many comments per post can I scrape?
The actor caps Max comments per post at 500 per post and Max replies per comment at 50. Set your desired limits in the input to balance depth and speed.
What sorting does it use — newest or popular?
This implementation uses popular sorting. The Newest first (not supported) option is included only for compatibility with prior scripts and is not applied.
How do I export results to CSV or JSON?
Open the run’s Dataset on Apify and export to CSV or JSON. You can also download a single-file JSON array from the Key-Value Store at key “OUTPUT”.
Does it work without proxies?
Yes, it starts with direct requests. If Instagram blocks a request, the actor automatically falls back to alternate connections, trying datacenter and then residential with retries. You can leave Proxy (fallback only) empty to use the built-in strategy.
Can I use this in automated pipelines?
Yes. Fetch the Dataset or the Key-Value Store key “OUTPUT” via the Apify API to plug results into ETL/BI workflows or a bulk Instagram comments scraper pipeline.
Is there a free trial?
You can start with Apify trial minutes to evaluate the scraper before subscribing. The actor is available on a flat monthly plan with trial time to test.
Closing CTA / Final thoughts
Instagram Comments Scraper is built for fast, reliable extraction of comment-level data from Instagram posts and reels. It delivers structured JSON (and CSV exports) with comment text, owners, likes, timestamps, and optional replies — ready for analytics and automation. Whether you’re a marketer, developer, analyst, or researcher, you can scrape Instagram comments, export Instagram comments to CSV, and integrate the single-file “OUTPUT” JSON via API for repeatable workflows. Start extracting smarter insights from Instagram conversations today.