Instagram Post Scraper ✨
Pricing
from $1.50 / 1,000 posts
Instagram Post Scraper ✨
Returns post data including post URLs, shortcodes, media IDs, comments, replies, reply status, captions, timestamps, likes and comment counts, carousel media, author info, tags, locations and request feedback with requested versus returned data ✨Instagram Post Scraper👤
Pricing
from $1.50 / 1,000 posts
Rating
0.0
(0)
Developer
Premium Scraper
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
19 days ago
Last modified
Categories
Share
✨ Instagram Post Scraper
Instagram Post Scraper collects public Instagram profile posts, direct post rows, comments, and replies in one clean dataset. Instagram Post Scraper is built for operators who want richer public output with structured data that is easy to export, review, and automate.
🚀 What Instagram Post Scraper Gives You
- Post data: post URLs, shortcodes, media IDs, captions, timestamps, media type, likes, comment counts, view or play counts when public, media URLs, and preserved public raw metadata.
- Author data: normalized user objects plus public location, sponsor, coauthor, and usertag data when Instagram exposes it.
- Comment data: comment IDs, text, timestamps, counts, user objects, and public comment metadata.
- Reply data: direct replies, nested replies, reply counts, reply status, and per-comment reply feedback. Most comments have no replies, so no-reply comments are labeled clearly instead of being padded with fake data.
- Request feedback: post, comment, and reply request objects that clearly show requested totals, returned totals, and public availability limits.
🌟 Feature Highlights
- Profile timelines and direct post URLs can be processed in the same workflow.
- Reply-enabled output clearly marks comments that have no public replies. Most Instagram comments do not receive replies, so this is normal.
- Reply checks run only on the collected comments. Instagram Post Scraper does not keep scanning extra comments just to hunt for reply-bearing comments.
- Clean output rows preserve useful public raw fields instead of collapsing everything into a thin schema.
- Billing stays tied to exported output, not to internal searching alone.
- Live logs stay readable, professional, and privacy-safe during long runs.
📥 Quick Input Overview
Instagram Post Scraper keeps the input surface simple. Most runs only need a source, a post limit, and optional comment or reply settings.
🔘 Main Settings
usernameandinstagram_urls: Choose the profiles, posts, or reels to scrape.posts_count,skip_pinned_posts, andposts_newer_than: Control which profile timeline posts are returned.include_commentsandcomments_limit: Turn on comment collection and set the comment target per post.include_comment_repliesandcomment_replies_limit: Turn on reply collection and set how many direct replies to return per comment.proxyCountry: Choose the residential proxy country for public requests.
📦 Instagram Post Scraper Output Guide
Instagram Post Scraper returns one dataset row per exported post. Each Instagram Post Scraper row can include post data, comment data, reply data, and request feedback objects that explain how much data you asked for and how much public data was actually available.
🧭 Instagram Post Scraper Output Shape By Mode
- Profile timeline rows use
profile_urlas the source profile URL. These rows can includeis_pinned,pinned_position, andprofile_post_requestbecause they were collected from a profile timeline request. - Direct post or reel rows use
profile_urlas the direct post input URL. These rows do not use profile timeline pagination, soprofile_post_request,is_pinned, andpinned_positionare not expected. - Post-only runs return only post-level data.
comment_detailsis not included wheninclude_commentsis off. - Comment-enabled runs add
comment_details.requestandcomment_details.all_commentsto each returned post row. - Reply-enabled runs add
comment_details.reply_request, per-commentreply_request,direct_reply_count,reply_count,has_replies, andreply_status.all_repliesappears only on comments or replies where at least 1 public reply item was actually collected. If a checked comment has no public replies,all_repliesis omitted,reply_statusbecomesno_public_replies, andreply_request.noteclearly says that this comment has no replies. - Reply checks run only on the comments already returned under
comment_details.all_comments. Instagram Post Scraper does not keep scanning deeper comment pages just to find reply-bearing comments.
🔎 Instagram Post Scraper No-Reply Behavior
- Most Instagram comments do not receive replies. Low reply yield is normal on public posts.
- When
include_comment_repliesis on, Instagram Post Scraper checks only the returned comments undercomment_details.all_comments. - If a checked comment has no public replies, the output shows
has_replies = false,direct_reply_count = 0,reply_count = 0,reply_status = no_public_replies, and areply_request.notethat clearly says the comment has no public replies. - In that no-reply case,
all_repliesis omitted because there are no public reply items to return.
🧩 Instagram Post Scraper Output Conditions
- Core normalized fields such as
number,profile_url,post_url,shortcode,media_id,post_type,created_at,caption,like_count,comment_count, anduserare the most stable fields and appear whenever Instagram exposes them publicly. - Instagram Post Scraper also preserves many additional public raw fields when Instagram includes them. Examples from the shared output sample include
comments_disabled,commenting_disabled_for_viewer,engagement_counts_hidden,has_liked,has_viewer_saved,can_reshare,can_viewer_reshare,is_paid_partnership,media_repost_count,image_versions2,sharing_friction_info,code,pk,id,media_type,owner_id, and other public metadata fields. - Sponsored-post fields such as
is_paid_partnershipandsponsor_tagsappear only when Instagram exposes sponsorship data publicly. - Collaboration and tagging fields such as
usertags,coauthor_producers,invited_coauthor_producers, andlocationappear only when that public metadata exists for the post. - Public counts and media URLs are conditional. For example,
view_countis included only when Instagram exposes a real public view or play count, andvideo_urlappears only for video posts or video carousel items where a public video URL is exposed. - Empty values are removed before export. If Instagram does not expose a field publicly, that field is omitted instead of being filled with fake placeholder values.
🧾 Instagram Post Scraper Post Fields
Common top-level row fields include:
number: Sequential row number in the current export order.profile_url: The source profile URL for timeline rows or the direct post URL for direct-post runs.post_url: Canonical public post URL when available.shortcode: Instagram shortcode for the post.media_id: Public media identifier for the post.post_type: Normalized type such asimage,video,carousel, orunknown.created_at: UTC timestamp string when available.taken_at: Raw post timestamp when available.caption: Main caption text.caption_data: Raw public caption object when available.caption_is_edited: Whether Instagram marks the caption as edited.like_count: Public like count when available.comment_count: Public comment count when available.view_count: Public play or view count when Instagram exposes it. If Instagram does not expose a public count for that post, this field is omitted instead of showing a fake zero.display_url: Primary image URL when available.display_uri: Public display URI from Instagram.video_url: Wrapped object withvaluecontaining the first public video URL when Instagram exposes one.video_versions: Public video variants when Instagram exposes them.is_video: Whether the post is a video.original_widthandoriginal_height: Original public dimensions when available.carousel_items: Normalized carousel media list for multi-item posts. Each carousel item can have its ownpost_type,is_video,display_url,display_uri,video_url,video_versions,image_versions2, and other public fields.carousel_media_count: Public carousel item count when available.user: Normalized public user object withuser_idplus the remaining public user fields exposed by Instagram.location,sponsor_tags,usertags,coauthor_producers,invited_coauthor_producers,clips_metadata, andthumbnails: Additional public fields preserved when Instagram exposes them.comments_disabled,commenting_disabled_for_viewer,engagement_counts_hidden,has_audio,has_liked,has_viewer_saved,can_reshare,can_viewer_reshare, and similar public state flags: Included only when Instagram exposes them for that row.is_pinned: Present on profile timeline rows.pinned_position: Present when pinned posts are kept and their order can be identified.profile_post_request: Post-level request feedback withrequested,returned,target_met,status, andnote. It appears on profile timeline rows and explains whether the requested number of profile posts was actually collected.code,pk,id,media_type,product_type,image_versions2,sharing_friction_info,profile_grid_thumbnail_fitting_style, and related raw public fields: Preserved when Instagram exposes them.
💬 Instagram Post Scraper Comment Fields
When comment collection is enabled, each post can include:
comment_details.request: Comment request feedback withrequested,returned,target_met,status,note, andmode. It explains whether the requested comment target was met or limited by public availability.comment_details.all_comments: Array of returned comments from the public thread.comment_details.reply_request: Aggregate reply summary across the returned comments. It appears when reply checks run and includeschecked_comments,comments_with_replies,comments_without_replies,comments_below_requested_reply_limit,comments_with_more_public_replies_available,returned,requested_per_comment,status, andnote. Its note also makes it clear that most comments do not have replies when zero-reply results are normal.
Each returned comment can include:
comment_id: Public comment identifier.text: Comment text.created_at: Raw public comment timestamp.like_count: Public comment like count.child_comment_count: Public child-comment count when exposed by Instagram.user: Public comment author object with normalizeduser_id.has_replies: Boolean reply flag after reply checks run. It appears when reply checks are enabled.direct_reply_count: Number of direct replies collected under that comment. It appears when reply checks are enabled.reply_count: Total collected reply items under that comment, including deeper nested reply items when they are publicly exposed. It appears when reply checks are enabled.reply_status: Clear per-comment status such asno_public_replies,limited_by_public_replies,reply_limit_reached,target_met, orbudget_limited.no_public_repliesmeans this comment has no public replies.budget_limitedmeans public replies were detected for that comment, but the maximum cost per run was reached before reply items could be exported.reply_request: Per-comment reply feedback withrequested,returned,target_met,status,note,public_replies_exhausted,more_public_replies_available, andreturned_reply_items. It appears when reply checks are enabled. When a comment has no public replies,reply_request.noteclearly says that this comment has no public replies. In budget-stop edge cases it can also includereplies_detected_before_exportandbudget_limited_before_reply_exportto show that public replies were detected before export stopped.all_replies: Nested reply tree when reply collection is enabled and public replies are available. If no public replies are collected,all_repliesis omitted andreply_status = no_public_repliesmeans this comment has no replies. If the maximum cost per run stops reply export before reply items can be pushed, that condition is explained byreply_statusandreply_requestinstead.- Remaining public comment fields from Instagram are preserved when they are not empty.
↪️ Instagram Post Scraper Reply Fields
When reply collection is enabled, each reply can include:
reply_id: Public reply identifier.parent_comment_id: Parent comment or parent reply identifier.text: Reply text.created_at: Raw public reply timestamp.like_count: Public reply like count.has_liked_comment: Public viewer-like flag when exposed.is_edited: Whether Instagram marks the reply as edited.user: Public reply author object with normalizeduser_id.all_replies: Nested child replies when deeper public reply threads are exposed publicly.- Replies preserve additional public raw fields such as
pk,comment_like_count,is_covered, and__typenamewhen Instagram exposes them. - Remaining public reply fields from Instagram are preserved when they are not empty.
💸 Instagram Post Scraper Billing
Instagram Post Scraper charges only for posts, comments, and replies that are actually returned in output.
Pay Per Event events:
post: Charged once for each post row that is successfully exported.comment: Charged once for each returned comment when comment collection is enabled.comment-reply: Charged once for each returned reply item when reply collection is enabled.
Billing behavior summary:
- Normal mode with replies off: charges for posts and returned comments only.
- Normal mode with replies on: charges for posts, returned comments, and returned replies.
- Comments that are checked for replies but have no public replies do not create reply charges.
- Reply collection checks only the comments already returned in output. Instagram Post Scraper does not keep scanning extra comments just to search for reply-bearing comments.
- If the maximum cost per run is reached, export stops early. A returned comment can keep
reply_status = budget_limitedto show that public replies were detected even though reply items could not be exported before the run budget stopped.
⏱️ Instagram Post Scraper Performance
Instagram Post Scraper runs fastest when you collect only posts.
Expected speed guidance:
- Post-only runs are the fastest.
- Turning on
include_commentsadds more public requests and increases runtime. - Turning on
include_comment_repliesincreases runtime further because each returned comment may need extra reply checks. - Most comments have no replies, so many reply checks return zero replies even when reply collection is working correctly.
- Reply checks only run on the collected comments. Instagram Post Scraper no longer scans extra comments to hunt for reply-bearing comments beyond your normal comment limit.
✅ Instagram Post Scraper Best Use Cases
- Collect recent profile timeline posts with post-level feedback about requested versus returned totals.
- Export direct post rows with rich post fields, public comments, and public replies.
- Review which returned comments have public replies and which clearly have no public replies.
- Compare comment volume and reply volume across public posts while keeping billing easy to follow.
- Run clean exports for dashboards, moderation review, research, or automation pipelines.