Instagram Comments Scraper avatar

Instagram Comments Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Instagram Comments Scraper

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

Scrapium

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 typeDescriptionExample value
idUnique comment ID (string)"17894957058162897"
textComment text"Amazing shot! 🔥"
timestampUTC ISO timestamp with milliseconds"2026-03-28T15:49:30.000Z"
ownerUsernameCommenter’s Instagram handle"johndoe"
ownerProfilePicUrlURL to commenter’s profile image"https://scontent.cdninstagram.com/.../avatar.jpg"
postUrlSource Instagram post or reel URL"https://www.instagram.com/p/DN8-GjPkgjS/"
commentUrlDirect link to the comment"https://www.instagram.com/p/DN8-GjPkgjS/c/17894957058162897"
likesCountNumber of likes on the comment42
repliesCountNumber of direct replies to the comment3
repliesArray of reply objects (same shape as comments)[ { "id": "...", "text": "...", ... } ]
ownerObject 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

  1. Sign in to Apify
    Create a free Apify account or log in.

  2. Open the actor
    Find “Instagram Comments Scraper” and click Try for free.

  3. Add input URLs
    Paste one or more Instagram post or reel URLs into Post URLs (e.g., https://www.instagram.com/p/SHORTCODE/).

  4. (Recommended) Add Session ID
    In Session ID, paste your instagram.com sessionid cookie for reliable extraction of required identifiers.

  5. 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).
  6. Optional: Connection fallback
    Leave Proxy (fallback only) empty for direct requests. If a block occurs, the actor will automatically try alternate connections.

  7. Start the run
    Click Start. The actor will load each post, fetch comments, and push records to the Dataset in real time.

  8. 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 nameDescription
Social listening & sentimentAnalyze comment text to quantify audience reactions and themes across posts and reels.
Influencer campaign trackingMeasure engagement on creator posts by collecting likesCount, repliesCount, and timestamps.
Competitor benchmarkingCompare comment volume and sentiment on competitor posts to identify trends and opportunities.
UGC discovery & researchCollect user-generated comments for product insights, FAQs, and common objections.
Customer support triageExtract and route comments with questions or issues to support workflows.
Data science & NLPBuild training datasets from comment text for sentiment, topic, or intent modeling.
API pipeline integrationPull 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.

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
}
}
FieldTypeRequiredDefaultDescription
directUrlsarrayNoInstagram post or reel URLs (e.g. https://www.instagram.com/p/SHORTCODE/).
maxCommentsintegerNo10Maximum comments to scrape per URL (1–500). The actor caps this at 500 per run.
maxRepliesintegerNo5Maximum replies per comment (0–50). The actor caps this at 50 per comment.
sessionIdstringNoInstagram sessionid cookie. Required for reliable extraction: without it, doc_id and media_id often cannot be found (Instagram serves different content when unauthenticated).
includeNestedCommentsbooleanNotrueFetch replies for each comment.
isNewestCommentsbooleanNofalseNewest first (not supported). Kept for compatibility; this actor uses popular sorting.
proxyConfigurationobjectNoProxy (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.

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.