Instagram Post & Reel Scraper (photos) avatar

Instagram Post & Reel Scraper (photos)

Pricing

$1.00 / 1,000 results

Go to Apify Store
Instagram Post & Reel Scraper (photos)

Instagram Post & Reel Scraper (photos)

Scrape all of an Instagram account's posts, Reels, and carousels in one run. Get captions, likes, comments, media URLs, location tags, and Reel audio/track info. Optional photo & video download. No login required. Fast, reliable, and built to keep working as Instagram changes.

Pricing

$1.00 / 1,000 results

Rating

0.0

(0)

Developer

Jordan Byte

Jordan Byte

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Instagram Post Scraper

The Instagram Post Scraper for extracting all of an account's posts - photos, multi-image/video carousels, and Reels alike - in one run. Get captions, stats, media URLs, location tags, and audio info for Reels, with optional download of the actual media files. No login required to run it.

What does the Instagram Post Scraper do?

This Instagram photo and video scraper handles every post type an account can have:

  • Scrapes an account's entire post history - not just the first page. Give it a username and it paginates through as many posts as you ask for.
  • Handles every post type: single images, multi-item carousels (mixed photo/video), and Reels - each mapped to the right fields for its type.
  • Rich per-post data: URL, post date, like/comment counts, caption, dimensions, and location tag (when the poster added one).
  • Reel-specific audio metadata: track title, artist name, and whether it's original audio vs. a licensed track.
  • Carousel scraping: every image/video inside a multi-item post, each with its own media URL and dimensions.
  • Download Instagram photos and videos - optionally save every image/video (all of a carousel's items, or a Reel's full video), with direct links added to that post's dataset row.

Who uses an Instagram Post Scraper like this?

  • Content and social media audits - pull an account's entire post history with engagement stats in one run.
  • Competitor and influencer research - see what formats, captions, and posting patterns a competitor or influencer uses.
  • Archiving and backup - download an account's photos and videos before a campaign wraps up or content gets deleted.
  • Media/content aggregation - build datasets of Instagram photos, carousels, and Reels for further analysis.

Input

FieldDescription
usernamesInstagram accounts to scrape - a bare username (capcaprice), an @handle, or a full profile URL all work.
maxResultsStop collecting once this many posts have been found, per username. Default 20.
downloadMediaIf true, downloads every post's actual media into the key-value store and adds mediaStorageUrls link(s) to its row. Default false.
sessionid / csrftokenOptional. Instagram cookies from a logged-in browser session. Not required to scrape, but can improve reliability if Instagram is rate-limiting anonymous requests hard.
proxyConfigurationA residential proxy is strongly recommended - Instagram aggressively rate-limits datacenter IPs. Defaults to Apify Proxy's RESIDENTIAL group.

Example:

{
"usernames": ["https://www.instagram.com/capcaprice"],
"maxResults": 30,
"downloadMedia": false
}

Output

Each post becomes one row in the dataset. The shape varies slightly by type:

Image:

{
"URL": "https://www.instagram.com/p/DVWIky_knq_/",
"Id": "DVWIky_knq_",
"type": "image",
"postedAt": "2026-08-10T10:00:00.000Z",
"likeCount": 4200,
"commentCount": 38,
"caption": "just a photo",
"originalWidth": 1080,
"originalHeight": 1350,
"displayUrl": "https://scontent.cdninstagram.com/...",
"videoUrl": null,
"videoViewCount": null,
"musicId": null,
"musicUrl": null,
"audioDetails": null,
"location": null,
"carouselChildren": null,
"mediaStorageUrls": null,
"author": { "username": "capcaprice", "fullname": "Caprice Cayetano", "isVerified": true, "isPrivate": false }
}

Carousel (adds carouselChildren, one entry per item):

"carouselChildren": [
{ "type": "image", "displayUrl": "https://...", "videoUrl": null, "width": 1080, "height": 1350 },
{ "type": "video", "displayUrl": "https://...", "videoUrl": "https://....mp4", "width": 1080, "height": 1920 }
]

Reel (adds video + audio fields, uses a /reel/ URL):

{
"URL": "https://www.instagram.com/reel/Dam7uBIyJBd/",
"type": "reel",
"videoUrl": "https://scontent.cdninstagram.com/....mp4",
"videoViewCount": 12388,
"musicId": "27443835655278093",
"musicUrl": "https://www.instagram.com/reels/audio/27443835655278093/",
"audioDetails": { "type": "original_audio", "audioId": "27443835655278093", "trackTitle": "Original audio", "artistName": "capcaprice" }
}

Turn on downloadMedia and mediaStorageUrls becomes an array of direct links to the downloaded files in the key-value store - one for an image, one per carousel item, or one for a Reel's video.

Tips

  • Only public accounts return data. Private or nonexistent accounts return no posts.
  • maxResults applies per username, not to the whole run - 3 usernames with maxResults: 20 can return up to 60 rows.
  • A residential proxy matters more than session cookies for avoiding rate limits - use both for the most reliable runs.
  • Carousels can mix images and videos - check each child's own type field rather than assuming the whole post is one media type.

Frequently asked questions

Do I need to log in to scrape Instagram posts? No. This Instagram post scraper works without an Instagram login. Providing a sessionid/csrftoken is optional and only improves reliability under heavy rate limiting.

Can I download Instagram photos and videos, not just the links? Yes - set downloadMedia: true and every post's actual media (all carousel images/videos, or a Reel's full video) is downloaded and linked in its dataset row.

Does this scrape Instagram carousels (multi-photo posts)? Yes - carousel posts return a carouselChildren array with every item's own media URL, type, and dimensions.

Can I get an Instagram account's entire post history? Yes - the actor paginates through as many posts as you set in maxResults, not just the first page.

Does it work for Reels too, or only photos? Both. Reels are returned with their video URL, view count, and audio/track info alongside regular photo and carousel posts.