Instagram Posts & Reels Scraper avatar

Instagram Posts & Reels Scraper

Pricing

from $3.00 / 1,000 single posts

Go to Apify Store
Instagram Posts & Reels Scraper

Instagram Posts & Reels Scraper

Scrape all posts and Reels from any public Instagram profile — captions, like, comment and view counts, hashtags, media URLs, and author details.

Pricing

from $3.00 / 1,000 single posts

Rating

0.0

(0)

Developer

Andrew

Andrew

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Extract every post and Reel from any public Instagram profile — captions, engagement metrics, and media URLs. No login or cookies required.

What you get

For every post on a profile, the scraper returns a structured record with:

Post metadata

  • Post ID, shortcode, and direct post URL
  • Media type (photo, video, carousel) and product type (feed, clips/Reels)
  • Post timestamp (ISO 8601 and Unix)
  • Caption text with auto-extracted hashtags and @mentions
  • Paid partnership flag

Engagement stats

  • Like count, comment count, view count, play count
  • Video duration (for Reels and video posts)

Media URLs

  • Thumbnail / cover image URL
  • Video URL (direct MP4, when available)

Author profile

  • Author ID, username, full name
  • Profile picture URL
  • Verified and private flags

Location (when set on the post)

  • Location name and city

Pagination

  • NEXT_PAGE_ID cursor so you can resume from where a previous run left off

Use cases

  • Competitor analysis — track a brand's full posting history, formats, and engagement over time
  • Influencer vetting — measure real engagement rates and posting cadence before a partnership
  • Content strategy — analyse a creator's top-performing posts to learn what hooks, formats, and audio drive engagement
  • Reels research — pull a profile's Reels feed to study viral short-form trends
  • Brand monitoring — archive a profile's posts and media for compliance or reporting
  • Dataset building — feed structured post data into dashboards, spreadsheets, or your own models

How to use

  1. Enter the Instagram username — with or without @ (e.g. natgeo or @nasa)
  2. Choose All Posts (the full profile grid) or Reels Only
  3. Set Max Posts — default 100 per run, or 0 for unlimited (will stop ~60s before the actor timeout)
  4. Run the actor — results appear in the Dataset tab
  5. To fetch the next page, copy NEXT_PAGE_ID from the Key-value store tab and paste it into Page ID on the next run

Output format

Each dataset record:

{
"postId": "3911553209440553542",
"shortcode": "DZIoOtwvkpG",
"postUrl": "https://www.instagram.com/reel/DZIoOtwvkpG/",
"mediaType": "video",
"productType": "clips",
"takenAt": "2026-06-03T19:05:54.000Z",
"takenAtTimestamp": 1780513554,
"caption": "Behind the scenes of our latest shoot. #photography",
"hashtags": ["photography"],
"mentions": [],
"likeCount": 18432,
"commentCount": 204,
"viewCount": 512033,
"playCount": 512033,
"videoDuration": 31.5,
"isPaidPartnership": false,
"thumbnailUrl": "https://scontent.cdninstagram.com/...",
"videoUrl": "https://scontent.cdninstagram.com/...",
"authorId": "25025320",
"authorUsername": "instagram",
"authorFullName": "Instagram",
"authorProfilePicUrl": "https://scontent.cdninstagram.com/...",
"authorIsVerified": true,
"authorIsPrivate": false,
"locationName": null,
"locationCity": null
}

Pagination

Each run returns up to Max Posts records. For profiles with large back catalogues, use the pagination cursor to collect more across multiple runs:

  1. Run the actor — when it finishes, NEXT_PAGE_ID is saved in the Key-value store tab
  2. Copy the NEXT_PAGE_ID value
  3. Start a new run with the same username and paste it into the Page ID field
  4. Repeat until NEXT_PAGE_ID is null (profile fully exhausted)

If a single run reaches the actor timeout, the cursor still gets written before the run ends so you can resume on the next run.

Part of a complete Instagram scraping toolkit — explore the rest of the suite: