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 any Instagram post or reel. Get comment text, usernames, timestamps, reply content, and post context. Up to 50 posts per run. (Beta)

Pricing

from $1.00 / 1,000 results

Rating

5.0

(1)

Developer

Futurize Rush

Futurize Rush

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

4 days ago

Last modified

Share

Extract comments and replies from any public Instagram post or reel. Get comment text, usernames, timestamps, reply content, and post context — no login required for basic extraction, with optional session support for full comment and reply access.

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 — full 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 all comments and replies
  4. (Optional) Enable Include Reply Comments to extract 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.

Using a Session ID (optional)

By default, the scraper extracts up to ~14–16 comments per post (the number Instagram embeds in the page) without requiring any login. If you need access to all comments and replies, you can provide your Instagram Session ID.

What you get with a Session ID

FeatureWithout Session IDWith Session ID
Comments per postUp to ~14–16Up to 100,000 (configurable)
Reply commentsNot availableFull reply content
Comment like countsNot availableIncluded
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 marked as secret and masked in run logs and the Apify Console
  • If the session expires or is invalid, the scraper automatically falls back to anonymous mode (up to ~14–16 comments)
  • Session IDs typically expire after a few days to weeks — you may need to update it periodically
  • Use the Max Comments Per Post setting to control how many comments to extract (default: 200, range: 10–100,000)
  • Enable Include Reply Comments to extract the full content of 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
  • Using automated tools to access Instagram may violate Instagram's Terms of Service. Use this scraper responsibly and at your own risk
  • Using a Session ID means your account is being used for automated data access, which may be detected by Instagram. This could result in temporary rate limiting, session expiration, or in rare cases, account restrictions
  • We strongly recommend using a secondary or dedicated account rather than your primary personal account
  • The scraper includes built-in rate limiting and delays to minimize the risk of detection, but no guarantees can be made
  • 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 (requires 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
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 (null without Session ID)
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

Post URL example (/p/)

{
"postUrl": "https://www.instagram.com/p/DTvuBtXEoiB/",
"postShortcode": "DTvuBtXEoiB",
"postOwnerUsername": "instagram",
"postCommentCount": 10414,
"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

  • Batch processing — Add up to 50 posts per run for efficient extraction
  • 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
  • Session ID — Add your session to unlock full comment access, like counts, and replies
  • Include Replies — Enable this option with a Session ID to get full reply content

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, up to ~14–16 comments are extracted per post (the number Instagram embeds in the page — posts with fewer comments will yield fewer results). With a Session ID, you can extract up to 100,000 comments per post using the Max Comments setting. Note that the actual number of comments extracted may be lower than the Max Comments setting or the total count shown on the post — Instagram's API controls how many comments are available for retrieval, and this can vary between runs.

Does this scraper need an Instagram account? Not for basic use. It extracts up to ~14–16 comments per post without any login. A Session ID (from a logged-in Instagram account) is needed to access all comments, reply content, and like counts.

What happens if my Session ID expires? The scraper automatically falls back to anonymous mode and extracts up to ~14–16 comments. You'll see a note in the run log.

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

What happens if the scraper is rate limited? If Instagram rate-limits the request mid-extraction, the scraper returns all comments collected so far as partial results rather than failing entirely. You'll see a note in the run log.

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 its replies in the replies array with full text, username, timestamp, and like count.

How long does it take for large posts? Extraction speed depends on the number of comments and whether replies are included. Enabling replies will take longer depending on how many comments have replies. Results appear progressively during the run — you don't need to wait until it finishes to start seeing data.

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

#instagram #comments #scraper #social-media #replies #apify #claude-code #codex #gemini #openclaw #antigravity