Instagram Comments Scraper: Authors, Likes & Monitoring avatar

Instagram Comments Scraper: Authors, Likes & Monitoring

Pricing

from $1.00 / 1,000 delivered comments

Go to Apify Store
Instagram Comments Scraper: Authors, Likes & Monitoring

Instagram Comments Scraper: Authors, Likes & Monitoring

Collect public top-level Instagram comments from posts and reels: text, author, likes, timestamps and direct links. Filter by date and get only new comments across scheduled runs. Empty input runs a sample of up to 20 comments. $1 per 1,000 comments plus $0.30 per 1,000 pages read.

Pricing

from $1.00 / 1,000 delivered comments

Rating

0.0

(0)

Developer

Philip Kirkbride

Philip Kirkbride

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Categories

Features

Limited permissions

Share

Instagram Comments Scraper

Collect public top-level comments from Instagram posts and reels. Each comment becomes one row with its text, author, time, likes and direct link. GIF-only comments are preserved, including their GIF link. No Instagram account is needed.

Filter comments by date, or remember delivered comments across scheduled runs. Replies are not collected in this version. Instagram may show fewer comments to signed-out visitors than the total displayed on a post.

Use cases

  • Comment mining and UGC research. Collect what people write under a campaign, a creator's post or a competitor's reel; likesCount ranks the comments that resonated and commentUrl opens each one.
  • Brand and trend monitoring. Schedule a run with monitoringKey; later runs deliver only comments you have not received before, so a daily schedule becomes a clean feed of what is new.
  • Campaign reporting. Run over the posts of a campaign and read OUTPUT.postResults for comments per post, pages checked and why collection stopped.
  • Moderation triage. ownerIsVerified and likesCount help sort a large thread; GIF-only comments are kept with their gifUrl and an empty text.
  • Sentiment or topic analysis input. The Actor does not infer sentiment; it preserves text, author, time and counts for your own model or spreadsheet.

To get the post links for a creator or a brand, use the Instagram Profile Scraper and pass its latestPosts[].url values here.

Pricing

ChargePrice
Delivered comments$1 per 1,000 ($0.001 each)
Run start$0.003 per run
Comment page checked$0.0003 per page

These prices are the same on every Apify plan. A page fee applies once a comment page has been successfully read, including the initial page, empty pages and pages containing only old or already-delivered comments. Failed requests and automatic retries do not add page fees. The page fee can apply even when date filtering or monitoring delivers zero comments.

For example, 1,000 delivered comments across 47 pages cost $1.0171 in total. A monitoring run that checks five pages and finds nothing new costs $0.0045. The run-start fee also applies to runs with errors or no results. Memory is limited to 512 MB–1 GB so the automatic start fee remains $0.003 per run. Your maximum run cost stops further collection and delivery when a required page or result charge no longer fits. The run summary reports pages checked and why collection stopped.

For comparison, the platform's own Instagram Comments Scraper lists at $2.60 per 1,000 comments ($2.30 on Starter; its Store price starts at $1.90 with plan discounts). This one is $1 per 1,000 comments plus $0.30 per 1,000 comment pages checked — about $1.02 per 1,000 at 47 pages.

Worked costs

RunWhat you pay
First-run sample (20 comments, two pages)about $0.024
100 comments (two pages)about $0.104
1,000 comments across 47 pages$1.0171
5,000 comments across about 100 pagesabout $5.03
Daily monitor, five pages checked, nothing new$0.0045
That monitor every day for a monthabout $0.135

A full comment page carries up to 50 comments; Instagram sometimes returns fewer, which is why the page fee is small but not zero. Comments skipped by a date filter or a monitor do not cost a comment fee, but the page they were on does.

Quick start

{
"postUrls": ["https://www.instagram.com/p/DeTUk4sDSp-/"],
"maxCommentsPerPost": 100,
"maxItems": 1000
}

Use public /p/ or /reel/ links, or post shortcodes. Repeated links to the same post are collected once. Profile links are not supported; supply the individual post links you want to collect.

An empty run returns a small sample of 20 comments from the prefilled post, and reports usedExample: true in the run summary.

Your first run

Press Start without touching the form: the Actor collects a sample of up to 20 comments from the prefilled post, reports usedExample: true and says in the run status that it was the example run. That costs about $0.024 — one run start, two comment pages and 20 delivered comments.

Then paste your own links. In the Console, click Bulk edit in the postUrls field and add one public /p/ or /reel/ link (or shortcode) per line, up to 1,000 per run; repeated links to the same post are collected once. Use maxCommentsPerPost for how deep to go in each thread and maxItems for the run total, and maxPagesPerPost when a thread is old and you only want the newest pages.

Inputs

InputDefaultMeaning
postUrlsthe sample postUp to 1,000 public post/reel links or shortcodes; paste one per line with Bulk edit. If you leave it out of the input, the Actor collects the same post the Console prefills (/p/DeTUk4sDSp-/), so a bare start still returns a sample. An empty list is an input error.
maxCommentsPerPost100Maximum delivered comments per post, after filtering and deduplication. An empty run returns a small sample of 20 comments from the sample post.
maxItems1000Maximum delivered comments in the whole run.
maxPagesPerPost100Work limit per post, including the initial page. Useful when many comments are old or already delivered.
onlyCommentsNewerThanUnsetISO timestamp with timezone, such as 2026-11-01T00:00:00Z. Deliver comments strictly after this date; unknown dates are skipped.
monitoringKeyUnsetA stable name for a monitor that remembers delivered comments across runs.

Both comment limits allow 1–100,000. The page limit allows 1–1,000. A short page does not mean collection is finished: collection follows Instagram's next-page indicator until a configured limit, source error, stalled cursor or exhaustion.

Scheduled monitoring

{
"postUrls": ["https://www.instagram.com/p/DeTUk4sDSp-/"],
"monitoringKey": "campaign-november",
"onlyCommentsNewerThan": "2026-11-01T00:00:00Z",
"maxCommentsPerPost": 500,
"maxPagesPerPost": 50
}

The first run delivers matching comments. Later runs with the same key skip previously delivered comment IDs and continue looking through the allowed pages. Only the latest 50,000 delivered IDs are remembered across all posts for that key; older comments can appear again after eviction. Changing the key starts an independent monitor. Run one task at a time per key: overlapping runs can deliver duplicates. Dataset delivery and monitor checkpoints are separate operations, so a crash or platform retry can also repeat a delivered comment. Deduplicate by id in downstream systems.

Output

FieldsMeaning
id, commentUrlComment identity and direct link.
postId, postShortCode, postUrlSource post identity.
text, gifUrlOriginal text and optional GIF; text may be empty for a GIF-only comment.
timestamp, scrapedAtPublished time when available, and collection time, in UTC.
likesCount, repliesCountSource-provided counts, or null when unavailable. Reply counts are commonly unavailable.
ownerUsername, ownerId, ownerIsVerifiedPublic commenter identity and verification status when shown.
ownerProfileUrl, ownerProfilePicUrlPublic profile and picture links when shown.
parentCommentId, isReplyParent identity if the source provides it. Reply threads are not fetched.

The OUTPUT record reports delivered rows, per-post pages and stop reasons, date-filter skips, already-delivered comments, errors and hasMore. Its sourceReportedComments is the post's displayed count where available, which may include replies and unavailable comments; it is not a promise of collectable rows. exhausted means the public comment connection ended, not that every comment on Instagram was available. A complete run means collection finished under your configured limits; inspect each post's stop reason for coverage.

Failed posts do not become dataset rows. A run where every post fails exits with an error. A genuinely empty post, a date filter with no matches, or a monitor with no new comments can finish successfully with zero rows.

Limits

  • Public top-level comments only. No private accounts, account cookies or reply-thread collection.
  • Instagram can hide, remove, reorder or refuse comments. Collection is not guaranteed to include every comment or maintain a fixed order.
  • Filtering examines all fetched comments; it does not assume old comments mean later pages are also old.
  • Profile pictures and GIF links can expire. Counts reflect the time of collection.
  • No sentiment or buying-intent inference is included; the output preserves source data.