Instagram Comments Scraper
Pricing
$1.00 / 1,000 comments
Instagram Comments Scraper
Scrape Instagram comments from public posts and reels. Exact total comment count on every result, nested replies included, honest guest-visibility reporting.
Pricing
$1.00 / 1,000 comments
Rating
0.0
(0)
Developer
Cravl
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 hours ago
Last modified
Categories
Share
Scrape comments from public Instagram posts and reels: with the exact total comment count stated on every result, not just the subset that could be fetched.
What you get
Per post/reel: one header item:
| Field | Meaning |
|---|---|
commentCountExact | The post's true total comment count (from Instagram's own counter) |
guestVisibleCount | How many comments are visible without login (what this run fetched) |
guestHasMore | true when the exact total exceeds the guest-visible count: stated honestly, never silently truncated |
owner, likes, postDate, caption, kind | Post context |
Per comment: one item each:
pk, user, verified, text, createdAt (unix timestamp), likes, childCount (nested reply count), plus url and postOwner for joining.
Features
- Nested replies included by default: every comment carries its
childCount. - Exact totals on every post: know what you're getting, including on viral threads with tens of thousands of comments.
- Guest-mode extraction: no login, no cookies, no account. Comments are those visible to logged-out users (we tell you when the remainder is login-only instead of pretending).
- Cheap runs: the engine is a ~30 MB native binary, not a full browser.
Input
| Field | Type | Default | Description |
|---|---|---|---|
directUrls | array | : | Post or reel URLs (/p/CODE/, /reel/CODE/, or username-prefixed forms; /reels/ is normalized automatically) |
apiPages | integer | 5 | Guest pagination pages per post (12 comments/page). Higher = deeper threads. |
resultsLimit | integer | 0 | Max comments per post. 0 = all guest-visible comments. |
proxyConfiguration | object | : | Residential proxies strongly recommended. Instagram guest access requires an exit IP with guest reputation. |
Output
One header item per URL (post metadata + exact/guest-visible counts), followed by one item per comment. Error items carry an honest error field (e.g. login wall on that exit IP) instead of silent truncation.
Notes
- Only public posts/reels are supported. Login-walled or deleted posts produce an explicit error item.
- Comment counts drift live (Instagram counts in real time);
commentCountExactis the count at fetch time. - Requires a proxy exit IP with Instagram guest reputation: residential proxies recommended.
Pricing
Pay-per-event: you are charged per comment item delivered. The post header (with the exact total) is not charged.
Migrating from other Apify Actors
Cravl Actors accept Apify-style inputs and emit familiar field names alongside Cravl-specific fields, so most pipelines migrate with minimal changes.
Input compatibility
startUrls(array of URLs, or objects with aurlkey) is accepted as an alias fordirectUrls.maxItemsis accepted as an alias forresultsLimit.includeHeader(boolean, default true) controls the header item. Set false to emit only comment items.
Output compatibility
| Cravl field | Compatible alias | Notes |
|---|---|---|
header owner | ownerUsername | |
header commentCountExact | commentsCount | |
header likes | likesCount | numeric when parseable |
| (new) | shortCode | derived from the post URL |
comment pk | commentId | |
comment user | ownerUsername | |
comment createdAt (unix) | timestamp | ISO 8601 |
comment likes | likesCount | |
comment childCount | repliesCount | |
comment url | postUrl |
Structure: one header item per URL (record post) followed by one item per comment (record comment). Every item carries inputUrl.