Instagram posts scraper. Get every public post, reel, and carousel from any profile in one run. Optional comments, story highlights, AI transcripts, engagement metrics. No login. Split IG/FB plays. Carousel slides per row. Outcome summary. 99.7% success.
Paid Apify plans only. Free-plan runs on the Apify platform are now rejected at start via a gate at the top of main() — before any upstream API call and before any charge event. The dataset receives a single PAID_PLAN_REQUIRED row explaining the requirement, the run status is SUCCEEDED (does not count against the Store success rate), and no scrapecreators call fires. Local runs, CI, and any run with APIFY_IS_AT_HOME unset are unaffected.
(Superseded by the paid-only gate.) Free plan cap lowered from 50 to 5 results per run.
Six opt-in Instagram data types: tagged posts (source tagged), comments (source comment), comment replies (source reply), story highlight albums (source highlight), highlight items (source highlight_item). Every flag defaults off; existing tasks and schedules produce byte-for-byte identical output until an operator turns a flag on.
skip_pinned input filter for the posts feed. Dropped pinned posts are counted in the per-profile summary as dropped_by_skip_pinned.
Machine-readable OUTPUT KVS record: outcome, delivered, delivered_by_source, failed_targets, failed_target_reasons fields added on top of every pre-existing key.
Denied-outcome OUTPUT is also written on early-exit paths (invalid input, upstream preflight failure), so an operator can always distinguish "no rows because nothing was requested" from "no rows because the account had no posts."
New always-present row fields: author.account_type (personal/business/creator/null), hashtags (array parsed from caption), mentions (array parsed from caption), is_pinned (boolean), location (object or null). All backward-compatible additions - existing rows keep every field they carried; consumers reading specific keys see no change.
New opt-in include_deltas flag: when on, each row carries stats.deltas (views/likes/comments/hours_since_prior) comparing current stats to the last time the Actor saw the same shortcode. Persistence via a per-account named KVS; first observation of any shortcode returns no delta.
Five additional FAQ entries covering the new fields (stats.saves limitation, include_deltas, author.account_type, hashtags/mentions, location, is_pinned).
README additions: Integrations, Limitations and scope, and 10 new FAQ entries covering common buyer questions.
Store metadata refreshed: title, short description, and keyword tags updated for the current "Instagram Content Scraper" positioning.
1.0.0 (2026-06)
Initial public release.
Unified posts + reels schema with shortcode-based dedup.
Bulk profiles input accepting URLs, handles, and numeric IDs.
Three pre-built dataset views, key-value store summaries, live-view HTTP API.
Free plan cap of 50 results per run with SUCCEEDED exit status.