Instagram Highlights Scraper — Albums & Media Links
Pricing
from $7.00 / 1,000 account checkeds
Instagram Highlights Scraper — Albums & Media Links
Scrape Instagram highlight albums: album title, cover and media count, then every photo and video inside with its file link, posted date, caption and the link, mention and hashtag stickers. Handles or profile links in, one row per media out. No login, no cookies.
Pricing
from $7.00 / 1,000 account checkeds
Rating
0.0
(0)
Developer
Matvey
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
5
Monthly active users
a day ago
Last modified
Categories
Share
Instagram Stories Scraper turns a list of public Instagram handles into a table of active stories and highlight albums. One row per media: the file link, when it was posted, when it expires, and the stickers on it — links, mentions, hashtags, locations, polls and questions. No login, no cookies, no Instagram account of yours at risk.
What you get
| Mode | What comes back | One row is |
|---|---|---|
| 📸 Active stories | Everything the account posted in the last 24 hours | One story |
| ⭐ Highlight albums | The permanent albums under the bio, opened media by media | One media inside an album |
| 📸+⭐ Both | Both of the above in one run | Either |
Every row carries the account, the media file link in its largest size, photo-or-video, the posted and expiry time, the caption, and every sticker Instagram attached — including the link sticker, which is the one marketers actually want.
Why this needs us at all
Instagram does not show stories or highlights to a logged-out visitor from any address: the profile page answers with a redirect to the login screen, and its internal API answers 401 require_login. Checked on 28 October 2026. This Actor reads them through a paid data source that holds the sessions, so you never hand over your own cookies and never get an account banned.
What it costs
Two charges, and both are stated before you press Start:
| What is charged | When |
|---|---|
| One account checked | Once per handle in your list — whether or not it has active stories right now |
| One media | For every story or highlight media actually delivered, with its file link |
There is also a run fee, and it is the smallest in this niche — below what every competitor charges to start a run.
On the Apify Free plan
A run collects the first account in your list in full — every story and every highlight media it has — and nothing is charged at all. The remaining accounts come back as a free note saying they were left alone. So you see the real shape and volume of the data before paying anything. Every account costs us a request to a paid data source, and the free plan does not cover it.
Why the account is charged even when it is empty: looking up an account costs us the same whether it has twenty stories or none. Measured on 25 real accounts on 28 October 2026, nine of them had no active stories at that moment — stories live 24 hours, so an empty answer is a normal answer, not a failure. Charging only for delivered media would mean the accounts that do post subsidise the ones that do not.
Input
| Field | What it does |
|---|---|
usernames | Handles, @handles or profile links, one per line |
mode | stories, highlights or both; leave empty for this Actor's own default (Stories Scraper: both, Highlights Scraper: highlights) |
includeHighlightItems | Off = one row per album (title, cover, media count), cheaper. On = one row per media inside it |
maxHighlightsPerUser | Newest albums first |
maxItemsPerUser | 0 = no limit |
Output
{"type": "story","username": "natgeo","mediaType": "photo","takenAt": "2026-10-27T14:07:48.000Z","expiringAt": "2026-10-28T14:07:48.000Z","imageUrl": "https://…","videoUrl": null,"caption": null,"links": [], "mentions": ["natgeotravel"], "hashtags": [], "polls": []}
Highlight rows add highlightId and highlightTitle, so you can group an album back together in a spreadsheet.
What it does not do
- Private accounts. No media is returned; the account check itself is charged, like any other lookup.
- Who viewed a story. Only the account owner can see that, and we are not the account owner.
- Posting or replying. This Actor only reads.
For AI agents
- Minimal input:
{"usernames": ["natgeo"]}— handles,@handlesor profile links;modeisstories,highlightsorboth. - Returns: one row per story or highlight media (or one row per highlight album when
includeHighlightItemsis off). An account with nothing to give — no active stories, no albums, wrong handle — gets one freetype: "notice"row with the reason; filter it out withtype != "notice". - Time: about 25 seconds for one account with stories and 10 highlight albums. A few accounts — call synchronously (
run-sync-get-dataset-items); long lists — start the run and poll it.
Errors and empty runs
An empty run always says why in its own words — no active stories, no albums, wrong handle — in a free notice row. Filter it out with type != "notice". If our data source stops answering, the run says exactly what it answered, word for word, instead of guessing.
Your feedback
Found a bug or a missing field? Open an issue on the Actor page. Problems reported by buyers are fixed the same day.