Instagram Stories Scraper Downloader avatar

Instagram Stories Scraper Downloader

Pricing

Pay per usage

Go to Apify Store
Instagram Stories Scraper Downloader

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

Louis Deconinck

Maintained by Community

Actor stats

27

Bookmarked

638

Total users

26

Monthly active users

9 days ago

Last modified

Features

Limited permissions

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: mediaUrl points 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_ACCOUNTS record 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 planPer profile with storiesPer 1,000 profilesPer 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 ID
  • mediaUrl: Direct link to the video (video stories) or full-size image (photo stories)
  • mediaType: video or image
  • thumbnailUrl: Image/thumbnail URL
  • timestamp: When the story was posted (ISO 8601)
  • userId, username: The story owner
  • isPrivate: Whether the account is private
  • storyCount: 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

  1. Get started: Create an Apify account and open this Actor.
  2. Add input: Enter the Instagram profile URLs or usernames.
  3. Run the Actor: Click "Start". Optionally set a "Max cost per run".
  4. 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