Instagram Posts Scraper avatar

Instagram Posts Scraper

Pricing

$1.00 / 1,000 posts

Go to Apify Store
Instagram Posts Scraper

Instagram Posts Scraper

Scrape Instagram posts and reels: likes, caption, post date, media, and the exact total comment count. Accepts post URLs or profile URLs to harvest recent posts. No login required.

Pricing

$1.00 / 1,000 posts

Rating

0.0

(0)

Developer

Cravl

Cravl

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

1

Monthly active users

a month ago

Last modified

Categories

Share

Instagram Posts Scraper

Scrape public Instagram posts and reels in guest mode: no login, no cookies. Get post metadata including the exact total comment count, not just the guest-visible subset.

What you get per post

  • Metadata: type (post/reel), owner, like count, post date, caption
  • Media: CDN URL of the cover image, video flag
  • Exact comment count: the true total reported by Instagram, including comments hidden from guests

Two ways to run

  1. Direct: pass post/reel URLs (https://www.instagram.com/reel/CODE/, /p/CODE/): each is fetched and emitted.
  2. Profile harvest: pass profile URLs (https://www.instagram.com/username/): the Actor first reads the profile's recent post grid, then fetches each post (up to maxPosts, default 12; the guest grid exposes up to 12).

How it works

The Actor runs a lightweight native extraction engine (not a full browser) in guest mode. Instagram renders posts fully only through exit IPs with guest reputation, so residential proxies are recommended. Datacenter exits typically receive a login redirect; the Actor reports that honestly as an error instead of returning empty data.

Input

FieldTypeDescription
directUrlsarrayPost/reel URLs and/or profile URLs
maxPostsintegerMax posts to fetch per profile URL (1–100, default 12)
proxyConfigurationobjectApify proxy settings; residential group recommended

Output

One dataset record per post: url, kind, owner, likes, commentCountExact, postDate, caption, mediaUrl, isVideo, and error when a post could not be retrieved.

Use cases

  • Content performance tracking (likes + exact comment volume per post)
  • Feeding post URLs into the Instagram Comments Scraper for full comment threads
  • Profile-to-post pipelines for competitor or influencer monitoring
  • Detecting video vs. image content mix on a profile

Notes

  • This Actor returns post metadata only. For individual comment records (author, text, timestamps, replies), use the Instagram Comments Scraper.
  • commentCountExact is the exact total from Instagram's own data; the guest-visible subset is intentionally not reported here.

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 a url key) is accepted as an alias for directUrls.
  • resultsLimit and maxItems are accepted as aliases for maxPosts.

Output compatibility

Cravl fieldCompatible aliasNotes
ownerownerUsername
likes (text)likesCountnumeric when parseable
commentCountExactcommentsCount
(new)shortCodederived from the post URL
(new)inputUrloriginal input URL

Structure: one item per post. Profile inputs are expanded to their recent posts first.

Limitations

  • Extraction runs in guest mode: results reflect what the source displays to logged-out visitors. Where the source reports a total (for example, a comment count), results state both the returned count and the source total, so partial visibility is always explicit.
  • Extraction depends on the reputation of the exit IP with the source. A run may occasionally return an explicit error item for a URL; re-running typically succeeds.
  • Instagram rate-limits per IP. For very large runs (hundreds of URLs), split the input into batches for best throughput.

Changelog

  • 0.1.7 — Post records now carry ownerId (numeric Instagram user id, for post-to-profile joins), postDateExact (ISO 8601 UTC instant from the source's taken_at; postDate remains the display string), likesExact (exact like count from the source's media object; likesCount uses it when present instead of parsing the rounded display string), and viewCount. Guest surfaces do not expose play/view counts, so viewCount is null in guest mode; photos have no views.