Instagram Highlights Scraper avatar

Instagram Highlights Scraper

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Instagram Highlights Scraper

Instagram Highlights Scraper

List the story highlights on any public Instagram profile — title, cover image and highlight link — with no login, cookies or API key. Reads the logged-out profile page.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

21 days ago

Last modified

Categories

Share

List the story highlights on any public Instagram profile — title, cover image and a direct link — with no login, no cookies and no API key.

Give it usernames or profile URLs; you get one row per highlight, with the account's follower count and verification status attached to each.

What you get

FieldMeaning
titleThe highlight's name, as the account set it
highlightIdInstagram's stable id for the highlight
highlightUrlLink to open the highlight in a browser
coverImageUrlCover thumbnail; empty when the account never set one
rankPosition in the tray, left to right
trayTruncatedWhether this account has more highlights than are public
ownerUsername, ownerId, ownerFullNameAccount identity
ownerFollowerCount, ownerIsVerified, ownerIsPrivateAccount context

Input

{ "usernames": ["nasa", "https://www.instagram.com/zara/", "@victoriassecret"] }

Handles, @handles and full profile URLs are all accepted.

Things worth knowing

Ten highlights is the public ceiling. The logged-out profile page renders at most ten, regardless of how many the account actually has. Accounts under the limit return everything they have; accounts over it return exactly ten. Every row carries trayTruncated so you can tell which case you got — true means the rest exist but sit behind a login. Reaching them would need an authenticated session, which this actor does not use.

This actor reads the tray, not the stories inside it. Instagram serves highlight contents only to signed-in viewers; a logged-out request for the media returns an empty success rather than a refusal. What you get here is each highlight's identity and cover — enough to track how an account organises and renames its highlights over time, and to see when new ones appear. highlightUrl is a link for a person to open, not a second endpoint to scrape.

A missing account still returns HTTP 200. Instagram serves a full-size page for a username that does not exist, so the status code cannot tell you the account is gone. This actor treats the absence of the profile payload as the signal and reports profile_not_found, including the page size it saw.

Private accounts have no public tray. They are reported as no_highlights with ownerIsPrivate set, so a private account is distinguishable from a public one that simply has no highlights.

Use a residential proxy. Instagram is selective about client IPs. The input defaults to Apify's residential group; datacenter addresses are refused far more often.

Failure reporting

Every input produces at least one row. Failures carry _error and _errorDetail:

_errorMeaning
no_highlightsThe account is public but has no highlights, or is private
profile_not_foundNo profile payload in the page — account missing or removed
login_walledThe page came back as a login prompt; try a residential proxy
invalid_usernameThe input is not a usable Instagram handle
network_errorThe request never reached Instagram
blockedA response arrived but was unusable

If every profile fails, the run aborts rather than finishing with an empty dataset.