Instagram Profile Reels Scraper & Comment Replies avatar

Instagram Profile Reels Scraper & Comment Replies

Under maintenance

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Instagram Profile Reels Scraper & Comment Replies

Instagram Profile Reels Scraper & Comment Replies

Under maintenance

Instagram Profile Reels Scraper extracts public Reels, captions, media URLs, timestamps, views, likes, comments, hashtags, and creator details. Collect comment replies to analyze audience engagement, content performance, influencer activity, and competitor strategies.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

API Empire

API Empire

Maintained by Community

Actor stats

1

Bookmarked

24

Total users

2

Monthly active users

2 days ago

Last modified

Share

Instagram Reels Scraper — Extract Reels, Comments and Replies as JSON

Instagram Profile Reels Scraper & Comment Replies pulls every reel from a public Instagram profile, opens the comment thread underneath each one, and returns reels, comments and replies as one typed JSON row per reel — no browser, no scrolling, no HTML to parse. Point it at a username and get back engagement data plus the full top-level comment thread with no login at all; add an optional session cookie and reply text, reply authors and Instagram's own reply counts come back too. Every field lands in a stable schema built for spreadsheets, databases, or an LLM's context window, so you can start reading what an audience actually says under a profile's reels the moment the run finishes.


What is Instagram Profile Reels Scraper & Comment Replies?

Instagram Profile Reels Scraper & Comment Replies is an Apify Actor that reads a public Instagram profile's Reels tab and returns three connected entities in one run: the reel itself, its comment thread, and — with an optional session cookie — the reply thread under each comment. No Instagram account is required to scrape reels and top-level comments; a throwaway account's session cookie is only needed to unlock reply text and Instagram's own per-comment reply count. The Actor runs entirely on Apify's infrastructure, so it is also reachable by any HTTP client or agent framework that can call the Apify API.

  • Scrape every reel on a profile, with engagement metrics (likes, plays, comment count, video duration)
  • Scrape the full top-level comment thread under every reel, no login required
  • Scrape reply threads — real text, author, likes and timestamp — once a session cookie is supplied
  • Filter comments by keyword, minimum likes or verified-badge status before they ever reach your dataset
  • Export as JSON, CSV or Excel directly from the Apify Console, or pull results over the API

What data does Instagram Profile Reels Scraper & Comment Replies collect?

Every run returns three layers of data on the same profile: the reel, the comments underneath it, and the replies underneath those comments.

Data TypeKey FieldsJSON Field Names
Reelsshort code, caption, engagement, video fileshortCode, caption, likesCount, playCount, videoDuration, videoUrl, hashtags, mentions
Commentstext, author, likes, reply countcomments[].text, comments[].ownerUsername, comments[].likesCount, comments[].repliesCount
Repliestext, author, parent comment, reply-to-reply linkcomments[].replies[].text, comments[].replies[].ownerUsername, comments[].replies[].parentCommentId, comments[].replies[].repliedToCommentId

Need more Instagram data?

If you need a different Instagram surface, API-Empire publishes dedicated scrapers for it rather than bolting more entities onto this one. Instagram Post Scraper & Comment Replies runs the same reel-comment-reply model against feed posts instead of reels. Instagram Tagged & Mentions Posts Scraper covers the tagged feed, a profile's own timeline, and a best-effort mentions approximation, with its own comment and reply support. Instagram Contact & Lead Scraper goes the other direction entirely — it enriches usernames or post URLs into business phone numbers, emails and bio links rather than engagement data.


How does Instagram Profile Reels Scraper & Comment Replies differ from the official Instagram API?

Meta's official surface for Instagram data — the Instagram Graph API, reachable through a Facebook Developer app — only returns data for Instagram professional (Business or Creator) accounts that have granted your app a token; it cannot read an arbitrary public profile's reels or comments the way this Actor does. Meta also retired the old Instagram Basic Display API on December 4, 2024, pushing any integration built on it onto Instagram API with Instagram Login or the Graph API, both of which still require app review and an account owner's own authorization.

FeatureInstagram Graph APIInstagram Profile Reels Scraper & Comment Replies
Access to arbitrary public profilesNo — only accounts that installed your app and granted a tokenYes — any public profile's username or URL
SetupFacebook Developer app, business verification, app reviewProvide a username and click Run
Comment thread accessLimited to comments on media your own linked account ownsFull top-level comment thread on any public profile's reels
Reply threadsOwner-only moderation endpointsOptional — unlocked with a session cookie, on any public reel
Login requirementThe account owner's own long-lived access tokenNone for reels and comments; an optional cookie for replies only

Reach for the Graph API when you manage the Instagram account yourself and need first-party, contractually-supported access to your own content. Reach for this Actor when you need reel and comment data from profiles you do not manage — competitors, creators, or a market segment — without an app-review process standing between you and the data.


Why do developers and teams scrape Instagram reels and comments?

Reel comment threads carry different signal for different readers, and this Actor exposes the fields each of them actually reaches for.

For AI engineers and agent builders

Every reel row and every nested comment is typed JSON with stable field names — no HTML, no selectors, no cleanup pass before it reaches a model. A RAG pipeline can index comments[].text alongside caption and repliesCount per reel, or feed the whole thread into an agent tool that answers "what are people asking under this creator's reels?" The optional aiCommentAnalysis flag adds aiIntent and aiSentiment per comment inline, so an agent doesn't need a separate classification step.

For marketers and brand teams

Point urls at a competitor's profile, set commentKeywords to ["price", "where can i buy"], and every reel comes back with only the buying-intent comments kept — the reel itself is still returned so you can see which content prompted them. distinctCommenters and verifiedCommenterCount per reel turn a scroll-and-guess job into a sortable spreadsheet for campaign or influencer review.

For researchers and analysts

resultsLimit, maxCommentsPerReel and maxRepliesPerComment all accept 0 to pull a complete, unfiltered comment thread per reel for academic or market research, and commentsHasMore tells you plainly whether a thread was exhausted or cut off — no false claim of completeness. Only publicly accessible reels and comments are returned; nothing here reaches into a private account.

For community managers and moderation teams

onlyVerifiedCommenters, minCommentLikes and excludeCommentKeywords let a moderation workflow surface the comments that matter and drop obvious spam (["follow me", "dm me"]) before a human ever reads the thread. isCovered (Instagram's own hidden/limited flag) rides along on every comment, so a review queue can be built directly from the dataset.


How to scrape Instagram reels and comments (step by step)

  1. Open Instagram Profile Reels Scraper & Comment Replies on its Apify Store page and click Try for free (or Run if you already have it saved).
  2. Provide the required urls input — one or more Instagram profiles as a username, an @handle, or a full profile URL.
  3. Set how much to collect: resultsLimit for reels per profile, maxCommentsPerReel and maxRepliesPerComment for thread depth, and any comment filters (commentKeywords, minCommentLikes, onlyVerifiedCommenters). Add sessionId only if you need reply text and Instagram's reply counts.
  4. Click Start and let the run finish in Apify's cloud — no local proxy, browser or scheduler to manage.
  5. Open the Dataset tab to inspect results, or export directly to JSON, CSV or Excel.

What to do when Instagram changes its structure

Instagram's reel and comment endpoints are maintained by API-Empire, and the output schema — field names and types — stays stable on your end even when Instagram changes its internal responses. No numeric turnaround time is published for a fix; the Actor is actively maintained.


⬇️ Input

Instagram Profile Reels Scraper & Comment Replies takes one required field (urls) and sixteen optional fields that control thread depth, filtering, replies and optional AI labelling, all defined in .actor/input_schema.json.

ParameterRequiredTypeDescriptionExample Value
urlsYesarrayInstagram profiles to read — a username, an @handle, or a full profile URL.["natgeo", "https://www.instagram.com/cristiano/", "@zachking"]
resultsLimitNointegerReels to open per profile. 0 means unlimited, capped at a 2000-reel-per-profile safety ceiling. Default 10.10
extractCommentsNobooleanOpens the comment thread on every reel. Off ⇒ comment fields are emitted as null. Default true.true
maxCommentsPerReelNointegerCap on top-level comments per reel. 0 collects the whole thread. Default 20.20
includeRepliesNobooleanAlso fetches reply threads. Needs sessionId to actually retrieve replies. Default true.true
maxRepliesPerCommentNointegerCap on replies fetched per comment when a session cookie is supplied. 0 disables reply fetching. Default 10.10
sessionIdNostring (secret)Instagram sessionid cookie value, or a full sessionid=...; csrftoken=... cookie string. Optional; unlocks reply text and a real repliesCount.
commentKeywordsNoarrayCase-insensitive substrings — a comment is kept only if it contains at least one. Default [].["price", "where can i buy"]
excludeCommentKeywordsNoarrayCase-insensitive substrings — any matching comment is dropped. Default [].["follow me", "dm me"]
minCommentLikesNointegerKeep only comments with at least this many likes. Default 0.0
onlyVerifiedCommentersNobooleanKeep only comments from Instagram-verified accounts. Default false.false
extractEngagementNobooleanAdds likesCount, commentsCount, playCount and igPlayCount to each reel. Off ⇒ null. Default true.true
includeCommentsDatasetNobooleanAlso mirrors every comment and reply into a separate, uncharged comments-<runId> dataset. Default true.true
aiCommentAnalysisNobooleanClassifies each comment's intent and sentiment with an AI model. Off by default. Default false.false
aiModelNostring (enum)AI model for comment classification. Provider is auto-detected from the name (claude-*, gpt-*, gemini-*, grok-*, deepseek-*, sonar*, mistral-*). Default claude-haiku-4-5.claude-haiku-4-5
aiApiKeyNostring (secret)API key for the provider implied by aiModel. Falls back to the matching environment variable when left empty.
proxyConfigurationNoobjectProxy configuration. Your selected groups, country and custom URLs are honoured as given. Default {"useApifyProxy": true}.{"useApifyProxy": true}
{
"urls": ["natgeo", "https://www.instagram.com/cristiano/", "@zachking"],
"resultsLimit": 10,
"extractComments": true,
"maxCommentsPerReel": 20,
"includeReplies": true,
"maxRepliesPerComment": 10,
"sessionId": "",
"commentKeywords": ["price", "where can i buy"],
"excludeCommentKeywords": ["follow me", "dm me"],
"minCommentLikes": 0,
"onlyVerifiedCommenters": false,
"extractEngagement": true,
"includeCommentsDataset": true,
"aiCommentAnalysis": false,
"aiModel": "claude-haiku-4-5",
"aiApiKey": "",
"proxyConfiguration": { "useApifyProxy": true }
}

The most common input mistake is expecting reply text and reply counts without setting sessionId — every top-level comment still comes back with no cookie at all, but repliesCount and every entry in replies[] are only populated once a live session cookie is supplied; without one, repliesCount is emitted as null, never as a made-up 0.


⬆️ Output

Results land in the default dataset as typed, normalized JSON — one row per reel, with the comment thread nested inside it — exportable as JSON, CSV or Excel from the Apify Console, or readable through the Apify API. Two dataset views ship with the Actor: Reels with comment threads, a compact table for reading results, and Comment thread audit, which surfaces the honesty flags (commentsSource, commentsHasMore, repliesDeclared) that state exactly what was and was not collected.

Reel row (main dataset)

{
"displayUrl": "https://scontent.cdninstagram.com/v/t51.2885-15/thumb_natgeo.jpg",
"caption": "A jaguar moves through the Pantanal wetlands at dusk. #wildlife #conservation",
"ownerFullName": "National Geographic",
"ownerUsername": "natgeo",
"url": "https://www.instagram.com/reel/CxAmPl3ExAm/",
"commentsCount": 412,
"firstComment": "This is breathtaking!",
"likesCount": 98213,
"timestamp": "2026-07-20T14:05:00.000Z",
"id": "3401928475610928374",
"shortCode": "CxAmPl3ExAm",
"productType": "clips",
"isReel": true,
"ownerId": "528817151",
"inputUsername": "natgeo",
"inputProfileUrl": "https://www.instagram.com/natgeo/",
"videoUrl": "https://scontent.cdninstagram.com/v/t50.2886-16/video_natgeo.mp4",
"playCount": 1204833,
"igPlayCount": 1204833,
"videoDuration": 24.6,
"dimensionsWidth": 1080,
"dimensionsHeight": 1920,
"isPaidPartnership": false,
"hashtags": ["wildlife", "conservation"],
"mentions": [],
"commentsRetrieved": 20,
"commentsScanned": 20,
"commentsHasMore": true,
"commentsSource": "appRest",
"commentsFetchedWithLogin": true,
"repliesRetrieved": 7,
"repliesDeclared": 9,
"comments": [
{
"id": "17912345678901234",
"text": "This is breathtaking!",
"ownerUsername": "wildphoto_jane",
"ownerId": "9182736450",
"ownerIsVerified": false,
"ownerProfilePicUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/pic_jane.jpg",
"timestamp": "2026-07-20T15:12:44.000Z",
"likesCount": 214,
"isCovered": false,
"hasGif": false,
"commentUrl": "https://www.instagram.com/reel/CxAmPl3ExAm/c/17912345678901234/",
"repliesCount": 3,
"replies": [
{
"id": "17998877665544332",
"text": "Agreed, incredible shot.",
"ownerUsername": "natgeo",
"ownerId": "528817151",
"ownerIsVerified": true,
"ownerProfilePicUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/pic_natgeo.jpg",
"timestamp": "2026-07-20T16:03:12.000Z",
"likesCount": 41,
"parentCommentId": "17912345678901234",
"repliedToCommentId": "17912345678901234",
"commentUrl": "https://www.instagram.com/reel/CxAmPl3ExAm/c/17912345678901234/r/17998877665544332/"
}
],
"aiIntent": null,
"aiSentiment": null
}
],
"distinctCommenters": 18,
"verifiedCommenterCount": 2,
"topCommentLikes": 214,
"gifOnlyCommentCount": 1,
"aiCommentAnalysisApplied": false,
"aiSentimentSplit": null,
"aiIntentSplit": null,
"scrapedAt": "2026-07-30T09:41:07.000Z"
}

Comment and reply row (comments-<runId> dataset)

With includeCommentsDataset on, every comment and reply is also mirrored, one flat row each, into a second dataset that is never charged:

{
"type": "comment",
"isReply": false,
"parentId": null,
"reelId": "3401928475610928374",
"reelShortCode": "CxAmPl3ExAm",
"reelUrl": "https://www.instagram.com/reel/CxAmPl3ExAm/",
"reelOwnerUsername": "natgeo",
"id": "17912345678901234",
"text": "This is breathtaking!",
"ownerUsername": "wildphoto_jane",
"ownerId": "9182736450",
"ownerIsVerified": false,
"ownerProfilePicUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/pic_jane.jpg",
"timestamp": "2026-07-20T15:12:44.000Z",
"likesCount": 214,
"isCovered": false,
"hasGif": false,
"commentUrl": "https://www.instagram.com/reel/CxAmPl3ExAm/c/17912345678901234/",
"repliesCount": 3
}

How does Instagram Profile Reels Scraper & Comment Replies compare to other Instagram scrapers?

FeatureInstagram Profile Reels Scraper & Comment RepliesGeneric alternative
InputProfile username or URL — reels are discovered automaticallyIndividual post/reel URLs must be supplied one by one (observed on datadoping/instagram-comments-and-replies-scraper's Apify Store listing, checked 2026-07-30)
Comment thread in the same runFull top-level comment thread returned inline on every reel rowComment count only, with a separate actor needed for full threads (observed on apidojo/instagram-scraper-api's listing, checked 2026-07-30)
Reply threadsReal reply text, authors and Instagram's own reply count once a session cookie is suppliedNot offered — a competing reels scraper documents only a preview comments list with no reply-thread crawling (observed on instagram-scraper/instagram-profile-reels-scraper's listing, checked 2026-07-30)
Output shapeReel row plus a second flattened comments-<runId> dataset, ready for CSV/ExcelNested objects only, with no dedicated flat export mentioned
Login requirementOptional — top-level comments and reels work with no login; only replies need a cookieA cookie-free comments scraper exists but does not offer reply threads (observed on datadoping/instagram-comments-and-replies-scraper's listing, checked 2026-07-30)

If you're building an AI agent or RAG pipeline, the output format row is the decision-maker — parsing HTML inside an agent loop is a reliability failure mode, not a feature. Every row above is typed JSON on arrival, whichever tool you pick, so compare on entity coverage and thread depth rather than on raw speed claims.


🔢 How many results can you scrape with Instagram Profile Reels Scraper & Comment Replies?

resultsLimit controls reels per profile directly: any value from 1 to 10000 is honoured as given, and 0 means unlimited with a 2000-reel-per-profile safety ceiling built into the Actor so an unbounded run cannot bill without limit. Within each reel, maxCommentsPerReel (up to 5000, or 0 for the whole thread) and maxRepliesPerComment (up to 1000, or 0 to disable replies) cap thread depth independently — a reel is still returned, and still counts once toward resultsLimit, even if its comment thread is capped or empty. Pagination for both reels and comments is handled internally with cursor tokens, so you never manage an offset yourself. There is no separate rate limit exposed in the input; proxy configuration controls how requests are routed instead.


Integrate Instagram Profile Reels Scraper & Comment Replies and automate your workflow

Instagram Profile Reels Scraper & Comment Replies works with any language or tool that can send an HTTP request, since every run and every dataset sits behind the standard Apify API.

REST API integration

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run = client.actor("api-empire/instagram-profile-reels-scraper-comment-replies").call(
run_input={
"urls": ["natgeo", "cristiano"],
"resultsLimit": 10,
"maxCommentsPerReel": 20,
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["shortCode"], item["commentsRetrieved"], "comments")

Works in Python, Node.js, Go, Ruby, cURL — any client capable of an authenticated HTTPS call to api.apify.com.

MCP for AI agents

The Actor is reachable through Apify's hosted MCP server: point an MCP-compatible client (Claude, Cursor, or any MCP host) at https://mcp.apify.com/sse?actors=api-empire/instagram-profile-reels-scraper-comment-replies to expose it as a callable tool inside an agent session, with no separate hosting to run yourself.

Automation platforms (n8n, Make, LangChain)

In n8n, the community Apify node's "Run Actor" operation can call this Actor by ID and read the resulting dataset directly into your workflow. In Make, the Apify app's "Run an Actor" module does the same, feeding reel and comment rows into any downstream scenario. In LangChain, the ApifyWrapper/ApifyActorsTool integration calls an Apify Actor and loads its dataset straight into a document loader or an agent tool, so reel comment threads can be indexed into a vector store without a manual export step.


Yes — scraping publicly accessible Instagram content is legal in most jurisdictions, and Instagram Profile Reels Scraper & Comment Replies only ever returns reels and comments that are already visible to a logged-out visitor, or to a session that Instagram itself verified. Comments and replies carry personal data — usernames, profile pictures and free text written by real people — so GDPR and CCPA apply to how you store, process and retain that output, not to the act of accessing it. Consult legal counsel before any commercial use case involving bulk collection of personal data, especially before combining this data with other personal identifiers.


Frequently asked questions

Does Instagram Profile Reels Scraper & Comment Replies work without an Instagram account?

Yes. Reels and their top-level comment threads are fetched with no login and no cookie at all. An Instagram account is only needed if you want reply text and Instagram's own per-comment reply count — supply its session cookie in the optional sessionId field.

How often is the scraped data updated?

Every run fetches live from Instagram at request time — there is no cache. Two runs minutes apart on an active profile can return different comment counts as new comments arrive.

What happens if a reel's comments are gone or the profile has none?

If a profile has no reels, or Instagram serves an empty first page, the run records why (private account, no reels, or a rate-limited exit) instead of silently returning nothing. If a profile cannot be opened at all across every retry, the run fails loudly with the reason in its status message rather than completing with zero rows.

Can I scrape private Instagram profiles?

No. Only public profiles are supported. A private account returns no reels, and the run reports that the account appears private rather than guessing at a different cause.

Do I need to buy Instagram API access to use this Actor?

No. There is no Instagram developer account, app review or business verification to complete. You need only an Apify account to run the Actor; a session cookie is optional and only unlocks reply threads.

Does Instagram Profile Reels Scraper & Comment Replies work for AI agent workflows and LLM pipelines?

Yes. It is callable as an HTTP endpoint by any agent framework through the Apify API, and it is also reachable through Apify's hosted MCP server for MCP-compatible clients. Every response is typed JSON with stable field names — no parsing step is needed before passing a reel or comment into an LLM's context window.

How does Instagram Profile Reels Scraper & Comment Replies handle Instagram's anti-bot defenses?

Reel, comment and reply requests are routed through Apify Proxy, defaulting to residential exits, with one sticky proxy session held for the whole run so Instagram's csrf token stays valid across requests. Failed profile loads are retried on a fresh proxy exit before being recorded as a failure rather than silently skipped.

How does Instagram Profile Reels Scraper & Comment Replies compare to other Instagram scrapers?

It returns reel, comment and reply data in one run from a profile input, while the closest reels-focused competitor's own listing documents only a preview comment list with no reply-thread crawling, and the closest comments-focused competitor requires individual post URLs rather than profile discovery (both observed on their respective Apify Store listings, checked 2026-07-30).

Does Instagram Profile Reels Scraper & Comment Replies return data in a format LLMs can use directly?

Yes. Typed, normalized JSON with stable field names on every reel, comment and reply. Pass it directly into an LLM's context window, index it into a vector store, or route it through an agent tool with no HTML or selector logic in between.

Can I use Instagram Profile Reels Scraper & Comment Replies without managing proxies?

Yes. Proxy configuration defaults to Apify Proxy, and if you enable it without naming a group the Actor selects a residential group for you, since Instagram serves datacenter exits a login wall.

What happens when Instagram changes its structure or blocks the scraper?

The Actor is maintained, and the output schema stays stable on your end — field names and types do not change because Instagram changed something internally. No numeric turnaround time is promised for a fix.


Your feedback

Found a bug, or missing a field you need in the reel, comment or reply output? We want to know. Open an issue from the Actor's Issues tab in the Apify Console, or message API-Empire directly through the Actor's Apify Store listing — active maintenance is how this Actor stays working when Instagram changes its structure.