Instagram Stories Scraper Downloader
Pricing
Pay per usage
Instagram Stories Scraper Downloader
Efficiently extract and download all stories from your chosen Instagram profiles, enabling you to stay updated and engaged with the latest content effortlessly. Does not require authentication or login. Fast & easy to use. Supports photo & video stories.
Pricing
Pay per usage
Rating
1.3
(8)
Developer
Louis Deconinck
Maintained by CommunityActor stats
27
Bookmarked
638
Total users
26
Monthly active users
9 days ago
Last modified
Categories
Features
Share
Download all active Instagram stories (photos and videos) from any public profile. Get direct media URLs, thumbnails, timestamps and the full story metadata. No Instagram login or cookies needed.
What's new
This Actor now runs on a new, much more reliable data source. The old third-party story downloaders it used kept getting blocked, so it was rebuilt from scratch. The output keeps the same simplified fields as before (id, mediaUrl, mediaType, thumbnailUrl, timestamp, userId, username, isPrivate, storyCount) and adds the full story metadata next to them.
The Actor has moved from free to pay-per-event pricing (see below).
🎯 Use Cases
- Download and archive stories from brands, creators and competitors.
- Monitor Instagram stories for specific profiles.
- Collect story data for analytics and reporting.
✨ Features
- Direct media links:
mediaUrlpoints to the video file for video stories and to the full-size image for photo stories. - Full story metadata: every field Instagram returns for a story (video versions, image versions, music, mentions, links, stickers, creative tools, expiration time and more).
- Accepts URLs, handles or @handles: duplicates are removed automatically.
- Clear handling of edge cases: private accounts, accounts that don't exist and profiles without active stories are reported in the run's status message and in the
SKIPPED_ACCOUNTSrecord of the key-value store. You are never charged for them.
💵 Pricing
You pay per profile that has active stories, no matter how many stories that profile has, plus a fee per run. Private accounts, accounts that don't exist and profiles without active stories are not charged.
| Apify plan | Per profile with stories | Per 1,000 profiles | Per run |
|---|---|---|---|
| Free | $0.020 | $20.00 | $0.10 |
| Starter | $0.019 | $19.00 | $0.09 |
| Scale | $0.018 | $18.00 | $0.08 |
| Business & higher | $0.017 | $17.00 | $0.07 |
Example (Starter plan): 50 profiles with active stories in one run = 50 × $0.019 + $0.09 = $1.04.
Put as many profiles as possible in one run to spread the per-run fee. Set a "Max cost per run" to stay in control: the Actor stops cleanly when it is reached.
Need the complete, untouched Instagram story JSON for analysis? See the Instagram Story Details Scraper.
📤 Output
Each dataset item is one story. Simplified fields:
id: Instagram story IDmediaUrl: Direct link to the video (video stories) or full-size image (photo stories)mediaType:videoorimagethumbnailUrl: Image/thumbnail URLtimestamp: When the story was posted (ISO 8601)userId,username: The story ownerisPrivate: Whether the account is privatestoryCount: Number of active stories of this profile
Full metadata fields include code, fbid, media_type (1 = photo, 2 = video), product_type, taken_at (Unix time), taken_at_date, expiring_at, video_url, video_duration, video_codec, video_versions, image_versions2, thumbnail_url, has_audio, original_width, original_height, user, owner, can_reply, can_reshare, creative_config, music_metadata, story_music_stickers, reel_mentions, story_feed_media, caption, crosspost_metadata and more. Exact fields depend on the story.
Example Output (shortened):
{"id": "4023832460243601877","mediaUrl": "https://instagram.fsjc1-4.fna.fbcdn.net/v/t51.82787-15/...jpg","mediaType": "image","thumbnailUrl": "https://instagram.fsjc1-4.fna.fbcdn.net/v/t51.82787-15/...jpg","timestamp": "2026-11-05T17:03:52.000Z","userId": "787132","username": "natgeo","isPrivate": false,"storyCount": 6,"code": "DfXhk2sgYnV","media_type": 1,"product_type": "story","taken_at": 1793898232,"taken_at_date": "2026-11-05T17:03:52.000Z","expiring_at": 1793984632,"original_width": 750,"original_height": 1334,"user": { "pk": 787132, "username": "natgeo", "full_name": "National Geographic", "is_verified": true, "is_private": false }}
Differences from the previous version: timestamp is an ISO 8601 date and mediaType is video or image. Story media URLs are signed by Instagram and expire after some time, so download the files soon after the run.
📥 Input
profiles: Instagram profile URLs, handles or @handles (required)
Example Input:
{"profiles": ["https://www.instagram.com/instagram","natgeo","@nasa"]}
🚀 Usage
- Get started: Create an Apify account and open this Actor.
- Add input: Enter the Instagram profile URLs or usernames.
- Run the Actor: Click "Start". Optionally set a "Max cost per run".
- Retrieve the output: Download the results as JSON, CSV or Excel, or use the API.
🔌 Integrations
Make.com Integration: Easily integrate this scraper with Make to:
- Automatically monitor Instagram profiles
- Update databases with fresh story data
- Trigger actions based on post updates
- Export data to other platforms
Gmail Integration: Connect with Google Workspace to:
- Receive email notifications about new stories
- Get daily/weekly profile analytics
- Share reports automatically