Instagram Story Scraper ๐Ÿ“ธ avatar

Instagram Story Scraper ๐Ÿ“ธ

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Instagram Story Scraper ๐Ÿ“ธ

Instagram Story Scraper ๐Ÿ“ธ

๐Ÿ“ธ Instagram Story Scraper helps you extract story insights fastโ€”views, captions, timestamps & more. ๐Ÿš€ Perfect for social media research, competitor tracking, and content strategy. ๐Ÿ”Ž Save time, stay informed, and grow smarter.

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

SimpleAPI

SimpleAPI

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

14 days ago

Last modified

Share

๐Ÿ“ธ Instagram Story Scraper

Pull live (24-hour) Instagram stories for any public profile and get back the full, structured story payload โ€” video & image versions, music, stickers, links, mentions, engagement flags, and optional on-image caption text (OCR). Feed it bare usernames, @handles, or full profile URLs in bulk and watch results stream into your dataset in real time.


โœจ Why Choose This Actor?

  • ๐Ÿงฑ Complete data โ€” nothing stripped. Every field Instagram returns for a story is preserved, in a clean canonical order.
  • ๐Ÿ‘ค Any input format โ€” natgeo, @kyliejenner, instagram.com/taylorswift, or https://www.instagram.com/therock/. Mix and match, in bulk.
  • ๐Ÿ›ก๏ธ Self-healing proxy ladder โ€” starts direct, auto-escalates to datacenter, then a sticky residential proxy only when needed. Clear logs at every step.
  • ๐Ÿ“ OCR captions โ€” optionally reads text burned into the story frame (titles, stickers, mentions) into extractedCaption.
  • ๐Ÿ’พ Live saving โ€” each story is pushed the moment it's ready, so a partial run never loses data.
  • ๐Ÿ—‚๏ธ Six ready-made table views โ€” slice results by Media, Images, Music, Stickers, Engagement, or a quick Overview.

๐Ÿ”‘ Key Features

FeatureDescription
๐Ÿ“‹ Bulk inputScrape many profiles in one run
๐ŸŽฌ Full mediavideo_versions, video_dash_manifest, codecs, qualities, dimensions
๐Ÿ–ผ๏ธ Image versionsEvery cover-frame candidate resolution
๐ŸŽต Musicmusic_metadata enriched from story music stickers
๐Ÿ”— Stickers & linksLink stickers, feed-media stickers, mentions, reshares
โฑ๏ธ CDN expiry enrichmentFills url_expiration_timestamp_us from CDN oe= when missing
๐Ÿ“ OCR captionOptional extractedCaption per story

๐Ÿ“ฅ Input

FieldTypeRequiredDescription
usernamesarrayโœ…Usernames or profile URLs (bulk).
sessionIdstringโœ…Your Instagram sessionid cookie (stories are login-gated).
extractCaptionTextbooleanโž–Enable OCR caption extraction. Default false.
proxyConfigurationobjectโž–Proxy settings. Default: direct with auto-fallback.

Example

{
"usernames": ["therock", "@kyliejenner", "https://www.instagram.com/natgeo/"],
"sessionId": "REDACTED_SESSIONID_COOKIE",
"extractCaptionText": false,
"proxyConfiguration": { "useApifyProxy": false }
}

๐Ÿช Where to get sessionId: Log into Instagram in your browser โ†’ DevTools โ†’ Application โ†’ Cookies โ†’ instagram.com โ†’ sessionid. Treat it like a password.


๐Ÿ“ค Output

Each dataset item is one story with the full Instagram payload. Abridged example:

{
"scraped_username": "therock",
"id": "3920998746292350747_232192182",
"pk": "3920998746292350747",
"code": "DZqL5Xdge8b",
"taken_at": 1781637893,
"expiring_at": 1781724293,
"media_type": 2,
"product_type": "story",
"video_duration": 60.04,
"has_audio": true,
"video_versions": [{ "width": 720, "height": 1280, "url": "https://โ€ฆ" }],
"image_versions2": { "candidates": [{ "width": 1080, "height": 1920, "url": "https://โ€ฆ" }] },
"music_metadata": { "music_asset_info": { "audio_asset_id": "18121840837670133" } },
"story_link_stickers": [{ "story_link": { "url": "https://โ€ฆ" } }],
"extractedCaption": ""
}

๐Ÿ—‚๏ธ Dataset views

ViewShows
๐Ÿ—‚๏ธ OverviewIDs, type, timestamps, duration, OCR caption
๐ŸŽฌ Media & VideoCodecs, qualities, dimensions, video versions
๐Ÿ–ผ๏ธ Image VersionsAll cover-frame candidates
๐ŸŽต MusicMusic metadata & music stickers
๐Ÿ”— Stickers, Links & MentionsLink stickers, feed media, mentions, reshares
๐Ÿ’ฌ Engagement & FlagsLike/reply/reshare/save flags, paid partnership

๐Ÿš€ How to Use (Apify Console)

  1. Log in at https://console.apify.com โ†’ Actors.
  2. Open Instagram Story Scraper.
  3. Paste usernames / URLs, add your sessionId, choose proxy & OCR options.
  4. Click Start.
  5. Watch the logs stream live story collection.
  6. Open the Output tab and switch between the six section views.
  7. Export to JSON / CSV / XLSX.

๐Ÿค– Use via API

curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"usernames": ["therock", "@kyliejenner"],
"sessionId": "YOUR_SESSIONID",
"extractCaptionText": false
}'

๐ŸŽฏ Best Use Cases

  • ๐Ÿ“ˆ Monitor competitor / influencer story activity
  • ๐Ÿ—ž๏ธ Archive brand & creator stories before they expire
  • ๐Ÿ”— Track link stickers, promos, and product drops
  • ๐ŸŽต Analyze trending audio usage in stories

๐Ÿ’ธ Pricing

This actor uses pay-per-event: you're charged per story successfully delivered to your dataset (story-result). Profiles with no live stories cost nothing beyond the run start. The optional OCR step runs on Apify compute and is included in the run usage.


โ“ FAQ

Do I need a session cookie? Yes โ€” stories are only visible to logged-in viewers, so a valid sessionid is required.

What if a profile has no active stories? You'll see a friendly "no live stories" log line and no items for that profile โ€” no charge.

Will I get blocked? The actor starts direct and only escalates to datacenter then sticky residential proxies when Instagram pushes back, with backoff retries. For heavy use, enable Apify Proxy.

Why is pk sometimes huge? It's Instagram's numeric primary key, returned as-is.


  • Data is collected only from publicly available profiles you have the right to view.
  • Do not scrape private accounts or content you aren't authorized to access.
  • You are responsible for compliance with GDPR, CCPA, Instagram's ToS, and local laws.

๐Ÿ›Ÿ Support & Feedback

Found a bug or want a new field exposed? Open an issue on the actor's Issues tab โ€” real answers, fast.