Instagram Profile Content Scraper — Posts, Reels & Story Status avatar

Instagram Profile Content Scraper — Posts, Reels & Story Status

Pricing

from $0.75 / 1,000 results

Go to Apify Store
Instagram Profile Content Scraper — Posts, Reels & Story Status

Instagram Profile Content Scraper — Posts, Reels & Story Status

Scrape posts, reels, or check story/live status for one or more public Instagram accounts, with optional full media detail enrichment.

Pricing

from $0.75 / 1,000 results

Rating

0.0

(0)

Developer

The Netaji

The Netaji

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

The Actor collects the public content published by one or more Instagram accounts. One field selects what to collect — posts, reels, or highlights and story status — and pagination is handled internally.

Selecting content

scraperType is required and determines what a run returns.

ValueLabelReturns
userPostsPostsFeed posts, paginated
userReelsReelsReels, paginated
userHighlightsHighlights/Story StatusHighlight reels, plus whether a public story is live now

Accepted input

FieldTypeDefaultDescription
usernamearray of stringsRequired. Usernames, profile URLs, or numeric user IDs.
scraperTypeenumuserPostsRequired. userPosts, userReels, userHighlights.
maxIteminteger100Maximum items saved per account. 0 removes the limit.
enrichMediabooleanfalseFetches the full media object for every item.
{
"username": ["nasa"],
"scraperType": "userPosts",
"maxItem": 100,
"enrichMedia": false
}

A value made entirely of digits is treated as a numeric user ID rather than a username; anything else is treated as a username or profile URL. This matters for accounts whose username is all digits — pass the profile URL in that case so it is not misread as an ID.

maxItem applies to each account independently rather than as a shared total.

Response fields

One record per item.

FieldContents
pkInstagram media ID
codeShortcode, the identifier in a post URL
like_countLikes
comment_countComments
taken_atPublication timestamp
media_typeImage, video, or carousel
captionCaption text
has_public_storyWhether a public story is live, in Highlights mode
is_liveWhether the account is broadcasting live, in Highlights mode
enrichedWhether the full media object was fetched
source_usernameThe account this item came from
{
"pk": "3412987456123456789",
"code": "C9xY2zAqBcD",
"like_count": 184220,
"comment_count": 1204,
"taken_at": 1785312000,
"media_type": 1,
"source_username": "nasa",
"enriched": false
}

code is the useful identifier to carry forward — it is what appears in a post URL and what Instagram Post Scraper accepts.

Behaviour on partial results

Content is collected through a cursor and ends when Instagram reports no further pages, returns an empty page, or maxItem is reached.

Enrichment is applied per item and issues one additional request each. Items that fail to enrich are skipped rather than aborting the run.

Frequently asked questions

Are stories themselves returned? No. Highlights mode returns highlight reels — the collections an account has pinned to its profile — along with has_public_story and is_live, which report whether a story or broadcast is live at the moment of the run. The story content itself is not collected. Those two fields are point-in-time observations: a run an hour later can legitimately report differently.

Why do reels also appear among posts? Instagram surfaces reels in the main feed as well as the reels tab, so the two modes overlap for accounts that post both. userReels is the reliable way to isolate them; filtering userPosts on media_type is an approximation.

Why did an account return fewer items than it has posted? Either maxItem capped the run, or Instagram stopped serving pages. The feed paginates through a bounded window rather than a complete archive, so very old content on a long-running account can be unreachable. The run log distinguishes the two.

What does enrichMedia add, and what does it cost? The complete media object — full caption, all carousel children, tagged users, and location where present. Each item costs one additional request and one additional billed event, so a 500-item run performs 500 extra requests. Collecting first and enriching a subset afterwards is usually cheaper.

Can a numeric user ID be used instead of a username? Yes. A value made only of digits is sent as a user ID. Because that rule is purely syntactic, an account whose username happens to be all digits would be misread — pass the profile URL for those.

How is a private account handled? It returns nothing. Only public content is readable, and no logged-in session is used.

ActorPurpose
Instagram Post ScraperFull detail or comments for individual posts
Instagram User Info ScraperProfile details for the accounts themselves
Instagram Popular Search ScraperContent by hashtag or keyword rather than by account
Instagram Followers & Followings ScraperFollower and following lists