Instagram Stories Scraper avatar

Instagram Stories Scraper

Pricing

$1.80 / 1,000 instagram stories

Go to Apify Store
Instagram Stories Scraper

Instagram Stories Scraper

Collect active Instagram Stories from public Instagram usernames, @handles, or full profile URLs without an Instagram login. Get one dataset row per Story with its ID, owner details, source media URL, posted time, and audio status when available.

Pricing

$1.80 / 1,000 instagram stories

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

📸 See active Instagram Stories from public profiles

Instagram teams, creators, researchers, and developers can use this Instagram story viewer to collect active Stories from public accounts. The Actor saves one dataset row per Story with its ID, owner details, a source-hosted image or video URL, and the posting time. This gives you structured public Story data to review, archive, or use in your own workflow without an Instagram login. Source-hosted media URLs can expire or change.

🧾 Active Story rows

Each saved dataset row represents one active Instagram Story found for a submitted public account. A row includes the Story ID, owner details, the media type and source URL, and the time the Story was posted. It can also include extra media variants and the source audio status. Source-hosted media URLs can expire or change.

▶️ Check accounts and collect Stories

Run steps

  1. Add one or more public Instagram usernames, @handles, or full Instagram profile URLs.
  2. Put one account value on each line. The prefilled nasa value is a valid starting point.
  3. Start the run and open the datasetItems link to view the overview dataset.

The Actor saves each eligible Story as it finds it. If the same source Story appears again from another submitted account value, the first saved match is kept and later repeats are ignored. If one account has no active Stories or cannot be retrieved, the Actor continues with the other submitted accounts.

⚙️ Input

Input fields

FieldTypeWhat it does
instagramAccountsarray of stringsRequired. Adds one or more public Instagram usernames, @handles, or full Instagram profile URLs, with one value per line. Private accounts and login-only Stories are not supported.

The list must contain at least one non-empty value. Use a username such as nasa, an @handle such as @leomessi, or a full profile URL such as https://www.instagram.com/nasa/.

Example input

This is the public input from a successful hosted run for nasa:

{
"instagramAccounts": [
"nasa"
]
}

🧾 Output

Output link

FieldTypeWhat it does
datasetItemsstringOpens the overview view of the run dataset with active Instagram Story rows.

Every dataset row has the same active Story shape. Optional owner fields, media variants, and audio status appear when Instagram provides them.

Dataset row fields

FieldTypeWhat it does
storyIdstringStable ID for the active Story.
ownerobjectAccount that published the Story.
owner.usernamestringUsername of the Story owner.
owner.accountIdstringStable account ID of the Story owner.
owner.profileImageUrlstring, optionalSource profile image URL when available.
owner.displayNamestring, optionalDisplay name of the Story owner when available.
owner.isVerifiedboolean, optionalWhether the source marks the owner as verified.
mediaobjectStory media and its source links.
media.typestringMedia type, either image or video.
media.urlstringMain source URL for viewing or downloading the media.
media.variantsarray of objects, optionalAdditional source media links when available.
media.variants[].urlstringSource URL for an additional media variant.
postedAtstringSource time when the Story was posted, in date-time format.
hasAudioboolean, optionalWhether the source says the Story has audio.

Example row

This genuine video row is from a successful hosted run that used nasa and instagram. It shows optional media variants and hasAudio.

{
"storyId": "3992001623786203220",
"owner": {
"username": "instagram",
"accountId": "25025320",
"displayName": "Instagram",
"isVerified": true,
"profileImageUrl": "https://scontent.cdninstagram.com/v/t51.82787-19/550891366_18667771684001321_1383210656577177067_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=1&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy4xMDgwLkMzIn0%3D&_nc_ohc=Ey-85Ni3L1oQ7kNvwFtfDhy&_nc_oc=AdpyD933nS7bfeP4BxsZVgnB-wnCVlSky3M2IHZeFWVnpugmMzThecFpkPlQ9NhcWU8&_nc_zt=24&_nc_ht=scontent.cdninstagram.com&_nc_gid=rC7j8K7DuDqqYEaydj9bgA&_nc_ss=70689&oh=00_AQKtHRXf3CzmD-mfUWyOuD3k0J598LopnNfXrLypNb2Vdg&oe=6AB8D7A7"
},
"media": {
"type": "video",
"url": "https://scontent-ord5-2.cdninstagram.com/o1/v/t2/f2/m78/AQMxyrymDDRj4yFrV_HoheSbaOEVysnmwm_U-vfdXBgY3zCscIQSmY5Ex4BYguVamuxhH5APf2mYDuN3wl8Kbn-J537wvghBeA2iJxw.mp4?_nc_cat=102&_nc_sid=5e9851&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_ohc=d53MIIkyuwwQ7kNvwF2oo1i&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uU1RPUlkuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MTg3OTU5MDQwNDUwMDEzMjEsImFzc2V0X2FnZV9kYXlzIjowLCJ2aV91c2VjYXNlX2lkIjoxMDEwMCwiZHVyYXRpb25fcyI6OCwidXJsZ2VuX3NvdXJjZSI6Ind3dyJ9&ccb=17-1&vs=6a3268af114eb87d&_nc_vs=HBksFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyLzI4NDJFNjIxRkNDNzJDM0FEOTE0QjhBMUJENDNCQTk2X3ZpZGVvX2Rhc2hpbml0Lm1wNBUAAsgBEgAVAhhRaWdfeHB2X3BsYWNlbWVudF9wZXJtYW5lbnRfdjIvRDU0RjlGRjJEODEzQUMwNTVGNEE5RTJEMjBENTI5QThfYXVkaW9fZGFzaGluaXQubXA0FQICyAESACgAGAAbAogHdXNlX29pbAExEnByb2dyZXNzaXZlX3JlY2lwZQExFQAAJtKprf3NseNCFQIoAkMzLBdAISHKwIMSbxgSZGFzaF9iYXNlbGluZV8xX3YxEQB16Adl6J0BAA&_nc_gid=gEOrXLsKg0ch0hRckVh8EA&_nc_ss=7b62e&_nc_zt=28&oh=00_AQLc9nlaIDoDs9TH4wCmjsTIyhdCB--kRxxGkurqzorwwg&oe=6AB4D007",
"variants": [
{
"url": "https://scontent-ord5-1.cdninstagram.com/v/t51.71878-15/818988074_2596032594202917_8438114136002539121_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=1&ig_cache_key=Mzk5MjAwMTYyMzc4NjIwMzIyMA%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IlNUT1JZLnhwaWRzLjY0MC5zZHIudmlkZW9fZmlyc3RfZnJhbWVfdGh1bWJuYWlsLkMzIn0%3D&_nc_ohc=qvaWfU4Fo6QQ7kNvwEQtHsA&_nc_oc=Adp_FwXZSnejcKMMvKOlo8goAeZk_2xQldzgOWlXkP0B-ITjxB5rTZUN-LapA7rh488&_nc_zt=23&_nc_ht=scontent-ord5-1.cdninstagram.com&_nc_gid=gEOrXLsKg0ch0hRckVh8EA&_nc_ss=7b62e&oh=00_AQKqGfmDyoTGmYYA5okzVQuLi5I3uwFeQUkevXHOMWKLTQ&oe=6AB8D911"
}
]
},
"postedAt": "2026-09-22T19:01:35.000Z",
"hasAudio": true
}

💳 Pricing

This Actor uses pay-per-event pricing. The charged event applies to each successfully retrieved active Instagram Story saved to the dataset. The current price is shown on the Pricing tab before you run.

🔌 Integrations

Open the datasetItems link in Apify or read the overview dataset through the Apify API. Use the source-hosted media URLs from each row in your own workflow. These URLs may expire, so use or store them soon after the run.

❓ FAQ

What happens if one account has no active Stories?

No row is saved for that account, and the Actor continues with the other submitted accounts.

Can I enter a username, @handle, or full profile URL?

Yes. Add a bare username, an @handle, or a full Instagram profile URL. Put one value on each line.

Does the Actor need my Instagram login?

No. It reads Stories from public accounts without an Instagram login.

Can it access private accounts or login-only Stories?

No. Private accounts and login-only Stories are outside the supported public-access boundary.

What does hasAudio tell me?

hasAudio is included when Instagram provides whether the Story has audio. It can be absent when the source does not provide it.

Can I use this like an Instagram story viewer website?

This is an Apify Actor, not an interactive Instagram page. It returns structured dataset rows and direct source-hosted media URLs that you can open or download.

Can I use it for Reels, posts, or Story Highlights?

No. This Actor is for active Stories from public accounts. Posts, Reels, Story Highlights, and standalone profile scraping are outside this product.

Is the same Story saved more than once?

When the same source Story appears again from another submitted account value, the first eligible match saved is kept and later repeats are ignored.

📝 Changelog

v0.0

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré