Instagram Comment Scraper avatar

Instagram Comment Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Instagram Comment Scraper

Instagram Comment Scraper

Extract comments and replies from public Instagram posts and reels. Get comment text, usernames, user IDs, verified badges, timestamps, reply threads, and post context. Works without login where Instagram offers a public preview; add a session for deeper access. (Beta)

Pricing

from $1.00 / 1,000 results

Rating

5.0

(2)

Developer

Rush

Rush

Maintained by Community

Actor stats

4

Bookmarked

270

Total users

32

Monthly active users

13 hours

Issues response

2 days ago

Last modified

Share

Extract comments and replies from public Instagram posts and reels. Get comment text, usernames, timestamps, reply content, and post context. Public previews are supported when Instagram makes them available, and optional session support helps access deeper comment and reply data.

Features

  • Public preview or deeper access — works without login when Instagram offers a public preview, or with your Session ID for more comments, replies, and like counts
  • Comments and nested replies — top-level comments plus reply threads (with a Session ID)
  • Rich comment data — text, author, verified badge, profile picture, timestamp, and like counts
  • Real-time results — comments are saved progressively as they are collected, so you see data during the run
  • Batch processing — up to 50 posts or reels per run
  • Resume-safe — automatically continues where it left off after a platform restart

What data do you get?

For each comment extracted, you receive:

  • Comment text — full comment content
  • Commenter info — username, user ID, verified badge status, profile picture URL
  • Timestamp — when the comment was posted (ISO 8601)
  • Comment likes — number of likes on each comment (with Session ID)
  • Reply comments — available reply content nested inside each parent comment (with Session ID)
  • Reply count — how many replies each comment has
  • Post context — post URL, shortcode, author username, total comment count

How to use

  1. Go to the Input tab
  2. Add Instagram post or reel URLs (up to 50 per run)
  3. (Optional) Add your Session ID to access more comments and replies
  4. (Optional) Enable Include Reply Comments to extract available reply content
  5. Click Start and wait for the results

Accepted input formats

FormatExample
Post URLhttps://www.instagram.com/p/ABC123/
Reel URLhttps://www.instagram.com/reel/ABC123/
ShortcodeABC123

Duplicate URLs pointing to the same post are automatically removed.

Input example

{
"postUrls": ["https://www.instagram.com/reel/DTEqIW2jDQ7/"],
"sessionId": "YOUR_INSTAGRAM_SESSIONID_COOKIE",
"maxComments": 200,
"includeReplies": false
}

Using a Session ID (optional)

By default, the scraper extracts the public comment preview Instagram makes available without requiring any login. If you need deeper comment access, reply extraction, or comment like counts, you can provide your Instagram Session ID.

What you get with a Session ID

FeatureWithout Session IDWith Session ID
Comments per postPublic preview when availableConfigurable with Max Comments
Reply commentsNot availableAvailable reply content
Comment like countsUsually returned as 0Real counts
Posts restricted to signed-in viewersReported, not collectedCollected when your account may view them
Login requiredNoYes (cookie only)

How to find your Session ID

Method 1 — Browser Developer Tools

  1. Log in to Instagram in your browser
  2. Open Developer Tools (F12)
  3. Go to ApplicationCookieshttps://www.instagram.com
  4. Find the cookie named sessionid
  5. Copy its value and paste it into the Session ID field

Method 2 — Cookie Editor extension

  1. Install a cookie editor extension for your browser (e.g., Cookie-Editor for Chrome/Firefox/Edge)
  2. Go to instagram.com and make sure you are logged in
  3. Click the extension icon
  4. Find the cookie named sessionid
  5. Copy its Value and paste it into the Session ID field

Note: Cookie editor extensions are third-party tools not affiliated with this scraper or Apify. Use them at your own discretion and only install extensions from trusted sources.

Important notes

  • Your Session ID is stored as a secret input, so it is encrypted and hidden in the Apify Console. The scraper never writes it to the run log or to your results
  • If the session expires or is invalid, the scraper continues with the public preview
  • Session IDs may expire over time — you may need to update it periodically
  • Use the Max Comments Per Post setting to control how many comments to save (default: 200, range: 10–100,000)
  • Enable Include Reply Comments to extract available reply comments

Usage considerations

  • Start small — We recommend testing with 1 post and a low Max Comments setting (50–100) before running larger extractions to verify your session works correctly
  • Automated activity may be flagged by Instagram and can lead to temporary limits or, in more serious cases, restrictions on an account — please use this scraper thoughtfully and avoid excessive back-to-back runs
  • Using a Session ID means your account is being used for automated data access. This can result in temporary rate limiting, session expiration, or in more serious cases account restrictions
  • We strongly recommend using a secondary or dedicated account rather than your primary personal account
  • The scraper is designed to process data gradually and saves results as it goes
  • For large extractions (1,000+ comments), the scraper pushes results progressively — you will see data appearing in real time during the run

Output

Overview fields

FieldDescription
postShortcodeInstagram shortcode identifier
usernameCommenter username
profileUrlLink to the commenter's Instagram profile
textFull comment text
repliesCountNumber of replies to this comment
commentLikeCountNumber of likes on this comment (reliable with a Session ID)
timestampWhen the comment was posted
postUrlLink to the original post

Full detail fields

FieldTypeDescription
postUrlstringDirect URL to the Instagram post or reel
postShortcodestringInstagram shortcode identifier
postOwnerUsernamestring/nullUsername of the post author
postCommentCountinteger/nullTotal number of comments on the post, when Instagram publishes that figure for it
commentIdstring/nullUnique Instagram comment identifier
textstringFull text of the comment (GIF comments show as [GIF] <url>)
usernamestring/nullCommenter username
profileUrlstring/nullDirect link to the commenter's Instagram profile
userIdstring/nullCommenter user ID
isVerifiedbooleanWhether the commenter has a verified badge
profilePicUrlstring/nullURL of commenter's profile picture
timestampstring/nullWhen the comment was posted (ISO 8601)
commentLikeCountinteger/nullNumber of likes on this comment. Without a Session ID Instagram usually returns 0; with one you get the real counts
repliesCountintegerNumber of replies to this comment
repliesarrayReply comments (empty without Session ID or Include Replies disabled)
indexintegerComment position (1-based)
scrapedAtstringExtraction timestamp (ISO 8601)

Reply comment fields

Each reply in the replies array contains:

FieldTypeDescription
idstring/nullUnique reply comment identifier
textstringFull text of the reply (GIF replies show as [GIF] <url>)
ownerUsernamestring/nullReply author username
ownerProfileUrlstring/nullDirect link to the reply author's Instagram profile
ownerProfilePicUrlstring/nullURL of reply author's profile picture
timestampstring/nullWhen the reply was posted (ISO 8601)
likesCountinteger/nullNumber of likes on this reply
repliesCountintegerAlways 0 (nested replies not supported)
repliesarrayAlways empty

Sample output

Note: The samples below show the exact field structure you receive. Every value in them is illustrative — names, IDs, text, counts and timestamps alike. Comment totals in particular move constantly, so treat the numbers as shape, not as figures for those posts.

Post URL example (/p/)

{
"postUrl": "https://www.instagram.com/p/DbGvdS8IDTu/",
"postShortcode": "DbGvdS8IDTu",
"postOwnerUsername": "nasa",
"postCommentCount": 1366,
"commentId": "18021456789012345",
"text": "This is amazing content!",
"username": "travel_adventures",
"profileUrl": "https://www.instagram.com/travel_adventures",
"userId": "12345678",
"isVerified": false,
"profilePicUrl": "https://instagram.example.com/...",
"timestamp": "2026-02-15T08:30:22.000Z",
"commentLikeCount": 5,
"repliesCount": 0,
"replies": [],
"index": 1,
"scrapedAt": "2026-02-23T04:01:31.984Z"
}

Reel URL example (/reel/)

{
"postUrl": "https://www.instagram.com/reel/DTEqIW2jDQ7/",
"postShortcode": "DTEqIW2jDQ7",
"postOwnerUsername": "andystephaniee",
"postCommentCount": 561,
"commentId": "18076869389263485",
"text": "This to me looks like an insane amount of sugar.",
"username": "girlcooties",
"profileUrl": "https://www.instagram.com/girlcooties",
"userId": "1455671",
"isVerified": false,
"profilePicUrl": "https://instagram.example.com/...",
"timestamp": "2026-01-09T14:56:18.000Z",
"commentLikeCount": 12,
"repliesCount": 2,
"replies": [
{
"id": "17891234567890123",
"text": "@girlcooties right? It never ends",
"ownerUsername": "maria_adventures",
"ownerProfileUrl": "https://www.instagram.com/maria_adventures",
"ownerProfilePicUrl": "https://instagram.example.com/...",
"timestamp": "2026-01-09T15:02:45.000Z",
"likesCount": 3,
"repliesCount": 0,
"replies": []
}
],
"index": 1,
"scrapedAt": "2026-02-23T04:01:31.984Z"
}

Tips and best practices

  • Export formats — Download results as JSON, CSV, or Excel from the dataset
  • Scheduling — Set up automatic runs to track comments on posts over time
  • API access — Integrate with your tools using the Apify API

Integrations

Connect your data to Google Sheets, Slack, Zapier, Make, or any tool via the Apify integrations.

Use cases

  • Social listening — Monitor what people say about brands, products, or topics
  • Sentiment analysis — Analyze comment tone and keywords at scale
  • Competitor research — Track audience reactions to competitor content
  • Content strategy — Understand which posts generate the most engaging discussions
  • Influencer marketing — Evaluate comment quality and engagement authenticity

FAQ

How many comments are extracted per post? Without a Session ID, the scraper extracts the public preview available for that post when Instagram provides one, up to your Max Comments setting. With a Session ID, the scraper can extract more comments according to the Max Comments setting. The actual number of comments extracted may be lower than the Max Comments setting or the total count shown on the post because Instagram controls what is available for retrieval.

Does this scraper need an Instagram account? Not when a public preview is available. A Session ID from a logged-in Instagram account is needed for deeper comment access, reply content, and like counts.

What happens if my Session ID expires? The scraper continues with the public preview. You'll see a note in the run log.

The run says Instagram wants my account to complete a security check — what is that? Instagram sometimes asks an account to verify itself before it will answer any more requests, most often after a stretch of heavy automated use. Your Session ID is not expired and nothing is wrong with the posts you asked for — Instagram is simply waiting on you. Open instagram.com in a browser, sign in to that account, finish the verification it shows, then copy a fresh Session ID and run again. The run tells you this explicitly rather than blaming your Session ID, and it keeps whatever was collected before the check appeared. Spacing out your runs and using a secondary account both make it less likely.

What happens if a post is private or deleted? Private and deleted posts are automatically skipped with a note in the logs. The scraper continues processing remaining posts.

Why does a post say it can only be viewed while signed in? Instagram restricts some public posts — age-restricted content, for example — so they open only for a signed-in account. The scraper tells you which posts these were instead of reporting them as deleted. Add a Session ID from an account that is allowed to view the post and run again.

What happens if the scraper is rate limited? If Instagram temporarily limits access during extraction, the scraper saves the comments already collected and shows a note in the run log.

The run said a post "has more comments than could be collected" — what does that mean? Instagram indicated that more comments existed but did not hand over a way to request them. Everything collected up to that point is saved, and the run tells you which posts were affected rather than presenting a partial result as a complete one. Running the post again usually returns the rest.

A post "opened but its comments could not be read" — is it broken? The post itself was reachable; its comments simply were not where they were expected on the page. This is usually temporary. The run says so explicitly instead of guessing that the post was deleted, so you know the post is fine and worth retrying.

Can I scrape reply comments (nested comments)? Yes. Enable the Include Reply Comments option and provide a Session ID. Each top-level comment will include available replies in the replies array with text, username, timestamp, and like count when Instagram makes those fields available.

Do I have to wait for the whole run to finish? No — comments are saved progressively as they are collected, so you can start using the results while the run is still in progress. Enabling replies collects additional reply content for each comment.

More Actors

Looking for other Instagram data? Explore more scrapers by futurizerush — profile posts, followers, hashtags, and user posts.

Disclaimer

This tool is provided for educational and research purposes only. Users are solely responsible for ensuring their use complies with Instagram's Terms of Service and all applicable laws and regulations.

By using this scraper, you acknowledge that:

  • Automated data collection from Instagram carries inherent risks, including potential account restrictions or suspension
  • Providing a Session ID means authorizing this tool to make requests on behalf of your Instagram account. Instagram may classify this activity as automated access
  • The developers of this tool are not responsible for any consequences resulting from its use, including but not limited to account restrictions, data loss, or legal liability
  • You should use this tool ethically and responsibly, respecting the privacy and rights of content creators and commenters
  • Extracted data should be handled in compliance with applicable data protection regulations

Keywords: Instagram comment scraper, Instagram comments export, extract Instagram comments, Instagram reel comments, comment scraper, social media data, audience insights, Claude Code, OpenClaw, Gemini, Antigravity, Codex, ChatGPT