Instagram Profile Posts Scraper avatar

Instagram Profile Posts Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Instagram Profile Posts Scraper

Instagram Profile Posts Scraper

Get posts, reels, and carousels from any public Instagram profile. Includes download links, likes, comments, captions, and more. Works with up to 10 profiles at once. No login required.

Pricing

from $1.50 / 1,000 results

Rating

5.0

(1)

Developer

Rush

Rush

Maintained by Community

Actor stats

5

Bookmarked

338

Total users

58

Monthly active users

75 days

Issues response

2 days ago

Last modified

Share

Collect public Instagram posts, reels, and carousel media from profile pages or individual post URLs. The dataset includes captions, hashtags, mentions, engagement counts, publish time, media links, and useful post metadata.

Use it for social listening, content research, competitor monitoring, creator discovery, and building Instagram datasets for your analytics workflow.

What You Can Get

  • Public profile posts, reels, and carousel posts
  • Image, video, and carousel media links
  • Captions, hashtags, and mentioned usernames
  • Likes, comments, and video duration
  • Publish time, post URL, shortcode, location, tagged users, music name, and coauthors when the post has them
  • Reel view counts
  • Optional date filtering and pinned-post exclusion

Input

Add Instagram usernames, profile URLs, post URLs, or reel URLs.

{
"usernames": [
"natgeo",
"https://www.instagram.com/nasa/",
"https://www.instagram.com/reel/ABC123xyz/"
],
"maxPosts": 25,
"postsNewerThan": "1 month",
"excludePinnedPosts": false
}

Input Settings

SettingRequiredDefaultDescription
usernamesYes-Instagram usernames, profile URLs, post URLs, or reel URLs. Up to 10 entries per run.
maxPostsNo50Maximum posts to collect per profile. This does not apply to individual post or reel URLs.
postsNewerThanNo-Collect posts newer than a date such as 2026-01-15, or a relative period such as 7 days, 2 weeks, or 1 month.
excludePinnedPostsNofalseSkip posts pinned to the top of a profile.

Output

Each dataset item represents one Instagram post or reel. The example below highlights the most-used fields; the Full Details view lists every available field, including author, dimensions, tagged users, location, music, and co-authors.

{
"username": "natgeo",
"postUrl": "https://www.instagram.com/reel/ABC123xyz/",
"mediaDownloadUrl": "https://scontent.cdninstagram.com/.../video.mp4",
"mediaType": "video",
"caption": "Example caption with #travel and @natgeo",
"hashtags": ["travel"],
"mentions": ["natgeo"],
"likes": 5230,
"comments": 187,
"timestamp": "2026-02-18T14:30:00.000Z",
"shortcode": "ABC123xyz",
"videoViewCount": 84500,
"videoDuration": 143.1,
"isPinned": false
}

For carousel posts with slide data, mediaDownloadUrl is an array of media items so you can access each slide.

Every Field

FieldWhat it is
username / authorThe account the post belongs to
postUrlLink to the post or reel
mediaDownloadUrlDirect media link; an array of items for a carousel
displayUrlThumbnail / preview image link
videoUrlDirect video file link
mediaTypeimage, video or carousel
isVideo / hasAudioWhether the post is a video, and whether it has sound
captionThe full caption, including hashtags and mentions
hashtags / mentionsHashtags and mentioned accounts taken from the caption
titleThe opening of the caption, up to 200 characters
descriptionInstagram's written description of the image, or the opening of the caption
likes / commentsEngagement counts
commentsDisabledWhether comments are turned off
videoViewCount / videoDurationViews and length, for video posts
timestampWhen the post was published (ISO 8601)
scrapedAtWhen this row was collected (ISO 8601)
indexPosition of the post within this account's results (1, 2, 3…)
shortcodeInstagram's identifier for the post
ownerIdInstagram's numeric id for the account
isPinnedWhether the post is pinned to the top of the profile
dimensionsMedia width and height in pixels
locationNameTagged location, when the post has one
taggedUsersAccounts tagged in the media (different from caption mentions)
musicNameTrack and artist for reels
coauthorsCo-authors of a collaboration post

What Instagram Publishes

Instagram does not publish every detail for every post to a signed-out reader, so a few columns are filled in only where it does. They are left empty rather than filled with a stand-in value, so an empty cell always means "Instagram did not publish this", never "zero".

ColumnWhen it is filled in
videoViewCountReels. Empty for images, and for any video where Instagram does not publish a count.
isPinnedPosts collected from a profile. Empty for a post requested by its own link, where Instagram does not say.
commentsDisabledOnly when Instagram states it. Usually empty for public reads.
likes / commentsAlways, unless the account hides its counts — then empty rather than 0.
locationName, musicName, taggedUsers, coauthorsOnly when the post actually has them.

Dataset Views

  • Overview: username, post type, engagement, publish time, and post URL
  • Media Downloads: media links and thumbnails
  • Full Details: all available fields

Tips

  • Start with one or two profiles to confirm the output format before running a larger batch.
  • Use postsNewerThan when you only need recent content.
  • Media links can expire, so download or process media soon after the run finishes.
  • An entry that cannot be read — a misspelled name, or a link that is not an account or a post — is reported and skipped, and the rest of the run continues.
  • This Actor reads Instagram through Apify Proxy (residential). Your plan needs that access enabled, and the proxy traffic is billed to your Apify account as usual.

FAQ

Can it scrape private profiles?
No. It only collects data that is publicly available.

Can I mix profile URLs and post URLs in one run?
Yes. You can combine usernames, profile URLs, post URLs, and reel URLs in the same input list.

Why did I get fewer posts than requested?
The profile may have fewer public posts available, your date filter may exclude older posts, or Instagram may not return more public results during that run. When a run stops short of what was available, it says so in the run summary rather than presenting a short collection as a complete one.

Why is a column empty for some rows?
Instagram publishes different details for different posts. See What Instagram Publishes above for exactly which columns are filled in when. An empty cell always means Instagram did not publish that value — it never means zero.

What happens if one entry in my list is wrong?
That entry is reported in the run summary and skipped. Every other entry in the same run is still collected.

Does it scrape comments or followers?
No. This Actor focuses on profile posts, reels, and carousel media.

Responsible Use

Use this Actor only for lawful purposes and respect Instagram's terms, privacy rights, and applicable data protection laws. Results depend on publicly available data at the time of the run.

Disclaimer

This tool collects publicly available data for research and analysis. You are responsible for ensuring your use complies with Instagram's Terms of Service and all applicable laws.

  • Instagram controls what it publishes publicly and can change it at any time, so the number of posts available for a profile varies and can differ between runs
  • The developers are not responsible for consequences arising from use of this tool, including data loss or legal liability
  • Extracted data should be handled in line with applicable data protection regulations

More Actors

Looking for other Instagram data? Explore more scrapers by futurizerush — comments, followers, hashtags, and user posts.

Instagram scraper, Instagram posts scraper, Instagram reels scraper, Instagram carousel scraper, Instagram media downloader, Instagram analytics, social media monitoring, influencer research, competitor analysis, lead generation, Apify, Claude Code, OpenClaw, Gemini, Antigravity, Codex, ChatGPT