Instagram Story & Highlight Saver avatar

Instagram Story & Highlight Saver

Pricing

from $2.80 / 1,000 results

Go to Apify Store
Instagram Story & Highlight Saver

Instagram Story & Highlight Saver

Save a public Instagram account's currently-active stories and highlight media as permanent files, not just direct links that expire in about a day. Give it one or more usernames; get back every active story frame plus every highlight item, downloaded and stored. No login or cookies.

Pricing

from $2.80 / 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

Save a public Instagram account's currently-active stories and its highlight media as permanent files. Give it one or more usernames and get back every story frame that's live right now, plus every photo and video pinned in that account's highlights — downloaded once, stored, and given a link that doesn't expire. No login, no cookie, no session.

Stories vanish in 24 hours. Highlights are the durable half — the reason this Actor is still worth running on any given day, story or no story.

Input

FieldTypeDefaultWhat it does
profilesarrayRequired. Instagram accounts to check.
saveMediabooleantrueDownloads each item and stores it permanently. Turn off to get only Instagram's direct CDN URL instead — free, but it stops working in about 34 hours.
limitinteger100Highlights processed per account (0 = the whole tray). Doesn't limit stories — an account's active story set is always small.
{
"profiles": ["nasa", "natgeo"],
"saveMedia": true,
"limit": 100
}

Every account is checked for both stories and highlights in the same run — there's no mode switch. Most accounts won't have an active story most of the time; that's normal, not a failure, and the run still succeeds with whatever highlight media it found.

Output

FieldWhat it holds
kind"story" or "highlight"
pkInstagram's internal media ID
media_type1 = photo, 2 = video
taken_atWhen the item was posted
titleHighlight name, on highlight items
highlightIdWhich highlight this item came from, on highlight items
expiresAtWhen this story stops being visible on Instagram, on story items
width / heightResolution of the file actually saved
savedFileStored file: url, bytes, sizeMb, contentType — present when saveMedia is on
directUrl / directUrlExpiresAtInstagram's own CDN link and its rough expiry — present only when saveMedia is off
source_usernameWhich account this row came from
{
"kind": "highlight",
"pk": "3412987456123456789",
"media_type": 2,
"taken_at": 1785312000,
"title": "Artemis III",
"highlightId": "highlight:18123023338592759",
"width": 720,
"height": 1280,
"savedFile": {
"url": "https://api.apify.com/v2/key-value-stores/.../records/3412987456123456789-1280p.mp4",
"bytes": 5680112,
"sizeMb": 5.418,
"contentType": "video/mp4"
},
"source_username": "nasa"
}

Questions

Why are stories and highlights in one Actor? A story-only Actor would come back empty on most runs — stories are live for 24 hours and most accounts don't have one at any given moment. Highlights are what an account has chosen to keep permanently, so pairing the two means a run against an active account almost always returns something, and a quiet day for stories doesn't mean a quiet run.

Does a run fail when an account has no active story? No. Checking an account and finding no active story is a normal, successful result — it's the single most common outcome, not an error. The run only fails when nothing could be checked at all, or when every lookup itself broke (timed out, or came back an error) with nothing to show for it. A quiet account and a broken run are different things, and this Actor never confuses one for the other.

Does it save photos, or only video? Both. Some stories and highlight items are plain photos with no video attached — skipping those would mean silently dropping content, which reads as broken. Every item is saved at its best available quality, video or photo, whichever it actually is.

What counts as one billed item? Every story frame and every highlight item that gets saved (or, with saveMedia off, returned as a direct link) is one row and one charge. A saved file adds a small per-megabyte charge on top, rounded up to the next whole MB — that part pays for the bandwidth the download uses, and saveMedia off skips it entirely. A run against ten accounts with no active stories and modest highlight trays might return 40 rows; a run against accounts with big highlight collections costs more because there's more to save, not because of a per-run fee.

Can highlight_id in my own systems be plugged straight in? You don't need to — this Actor walks the tray and fetches every highlight's media itself. highlightId on the output is Instagram's own id, in its native highlight:<digits> form, there for reference and deduplication, not something you need to supply.

Can I get a private account's stories or highlights? No. Public accounts only. There's no login or cookie input, and there won't be one — a signed-in session is a banned or rate-limited account waiting to happen, and this Actor doesn't take that risk with your data.

Does a run ever finish "successful" with nothing in it? Only when every account it checked genuinely has nothing right now — no active story and no highlights — and every one of those checks itself succeeded. If a lookup breaks instead of coming back empty, the run fails instead of quietly reporting zero results.

Other Instagram Actors

ActorUse when
Instagram Video DownloaderYou want a specific post or reel, not stories or highlights
Instagram Posts & Reels ScraperYou want the highlight tray as lightweight metadata (id/title/cover) instead of downloaded media
Instagram Post ScraperYou want a post's engagement details, not files