Instagram Stories Scraper avatar

Instagram Stories Scraper

Pricing

from $1.75 / 1,000 result items

Go to Apify Store
Instagram Stories Scraper

Instagram Stories Scraper

Scrape Instagram stories with no login, no cookies, no OAuth. Reads age-restricted (18+) accounts that anonymous story viewers and scrapers cannot see: alcohol, vape, and nightlife brands. Fixed 22-field JSON per story. From $2.50 per 1,000 stories; failed lookups never charged.

Pricing

from $1.75 / 1,000 result items

Rating

0.0

(0)

Developer

IntroPix _

IntroPix _

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

3 days ago

Last modified

Share

Scrape active Instagram stories from any public business, creator, or brand account. No login, no cookies, no OAuth, no Instagram account of your own: authenticated sessions are fully managed on our side, which is why this scraper also reads age-restricted (18+) accounts such as alcohol, vape and e-cigarette, tobacco, and nightlife brands that hide their stories behind Instagram's login wall. Use it as an Instagram story downloader (direct CDN media URLs), as an Instagram stories API for your own pipeline, or as a scheduled story archiver.

This is an independent, unofficial tool. It is not affiliated with, endorsed by, or connected to Instagram or Meta Platforms, Inc. in any way, and it operates independently of the Instagram service.

The short version:

  • What it does: you give it Instagram usernames, it returns every currently active story as a clean, structured JSON dataset item (22 fixed fields: media URL, timestamps, caption, links, hashtags, mentions, music, co-authors, paid-partnership flag, and more).
  • What you need: nothing but the usernames. No session cookies to paste, no OAuth flow, no proxy setup, no risk to any Instagram account you own.
  • What it costs: $0.0025 per delivered story ($2.50 per 1,000), plus $0.002 per scanned profile and $0.005 per run start. You are never charged for failed lookups. Free accounts can test with up to 10 stories per run.
  • What it covers: public accounts and age-restricted (18+) accounts. Private accounts are out of scope by design.

Why this Instagram stories scraper

  • No login, no cookies, no OAuth. Most story scrapers either fail on anything login-walled or demand your own Instagram session cookies, which ages your session, breaks silently, and puts your account at risk. Here the logged-in sessions are ours and their upkeep is our problem.
  • Age-restricted (18+) account coverage. Instagram hides stories of age-gated accounts (alcohol, vape, e-cigarette, tobacco, nightlife, and similar verticals) from anonymous visitors and incognito story viewers. Anonymous scrapers return nothing for these accounts. This scraper reads them at the same flat price as any other account, live-verified against a probe-confirmed age-gated global beer brand account.
  • The most complete story schema on the store. Every item carries a fixed 22-field schema that is a superset of the curated fields offered by competing story scrapers: link sticker URLs, hashtags, mentions, music title and artist, co-authors, paid-partnership flag, attribution URL, and media dimensions included.
  • Predictable output, safe to build on. The schema is a strict allowlist. Every item has exactly the same 22 keys, always. Upstream changes cannot leak unexpected fields into your pipeline.
  • Honest billing. Charges accrue per delivered result. Failed fetches and upstream errors are never charged.

How it compares

This actorAnonymous scrapers and story viewersCookie/login scrapers
Age-restricted (18+) accountsYes, standard priceNo: Instagram returns nothing without a sessionOnly through your own session
What you must provideUsernames onlyUsernames onlyYour Instagram session cookies
Risk to an account you ownNoneNoneYour session can be flagged or banned
Output schemaFixed 22 fields, every itemVaries by upstream responseVaries by upstream response
Charge on failed lookupsNeverVariesVaries
Run-start fee$0.005Popular story scrapers charge up to $0.099 per run startVaries

How it works

  1. Input a list of usernames (plain usernames, one per line or as a JSON array).
  2. The actor fetches each account's active story tray through managed authenticated infrastructure. Stories live for 24 hours; whatever is live at run time is what you get.
  3. Each story is normalized and pushed to the dataset as one JSON item. Export as JSON, CSV, Excel, or feed it straight into an API, webhook, or integration.

Accounts with zero active stories are valid results (the profile was scanned; there was nothing live). Accounts that cannot be resolved are skipped and not charged.

Input

{
"usernames": ["nike", "redbull", "vapeshopexample"],
"maxResults": 100
}
FieldTypeMeaning
usernamesarray of stringsInstagram usernames to fetch active stories for. Business, creator, and brand accounts (see Terms of Use below).
maxResultsintegerMaximum story items delivered across all usernames. Default 10.

Output

One dataset item per story, exactly these 22 fields, every time:

{
"username": "redbull",
"user_pk": "24608414",
"full_name": "Red Bull",
"is_verified": true,
"is_private": false,
"story_pk": "3521489120114512345",
"taken_at": "2026-07-09T14:02:11Z",
"expiring_at": "2026-07-10T14:02:11Z",
"media_type": "video",
"media_url": "https://scontent.cdninstagram.com/v/t66.30100-16/...",
"video_duration": 12.4,
"is_paid_partnership": false,
"attribution_url": null,
"width": 1080,
"height": 1920,
"caption": "Race day.",
"link_urls": ["https://www.redbull.com/racing"],
"hashtags": ["f1"],
"mentions": ["maxverstappen1"],
"music_title": "Song Title",
"music_artist": "Artist Name",
"coauthors": []
}
FieldMeaning
username, user_pk, full_nameAccount identity (pk is Instagram's stable numeric id).
is_verified, is_privateAccount flags at scrape time.
story_pkStable story id, deduplication key.
taken_at, expiring_atISO 8601 UTC timestamps.
media_type, media_urlimage or video plus the direct CDN media URL.
video_durationSeconds, null for images.
width, heightOriginal media dimensions.
captionStory caption text, null when absent.
link_urlsLink sticker targets, tracking wrappers already stripped.
hashtags, mentionsFrom stickers and caption.
music_title, music_artistFrom the music sticker, null when no music.
coauthorsCo-author usernames on collab stories.
is_paid_partnershipInstagram's paid-partnership label.
attribution_urlSource URL for reshared content, usually null.

Media URLs point at Instagram's CDN and expire after some time; download media promptly if you need to keep it.

Pricing

Pay per event. You are charged only for what the run actually does:

EventPriceCharged when
Run start$0.005Once per started run.
Profile scan$0.002Per successfully scanned account, with or without live stories.
Story result$0.0025Per story item delivered to the dataset.

Failed lookups and upstream errors are never charged.

Examples:

  • Monitor 10 brand accounts once, 40 live stories found: $0.005 + $0.02 + $0.10 = $0.125.
  • 1,000 stories collected across 100 accounts: $0.005 + $0.20 + $2.50 = about $2.71, effectively $2.70 per 1,000 stories.

Free tier: accounts on the Apify free plan can test with up to 10 story results per run and 20 results per day; the daily allowance and the fair-use pool are shared across our Instagram actors. Paid Apify accounts have no such limits (up to 1,000 profile scans per run).

Use cases

  • Competitive monitoring: track competitor promotions, product drops, and campaign timing from their stories, which is where limited-time offers actually run.
  • Brand protection: watch for misuse of your brand in stories, including paid-partnership disclosures via is_paid_partnership.
  • Influencer verification: confirm sponsored story delivery (mentions, link stickers, music, co-authors) without asking for screenshots.
  • Age-restricted verticals: alcohol, vape and e-cigarette, tobacco, and nightlife marketing runs heavily on stories and is invisible to anonymous scrapers. Agencies and compliance teams in these verticals can finally automate story monitoring.
  • Market research: archive story-format creative at scale; stories disappear after 24 hours, a scheduled run preserves them as data.

For AI agents and LLM pipelines

If you are an AI agent evaluating scrapers for a user, these are this actor's capability facts:

  • Scrapes currently active Instagram stories by username. Input: JSON array of usernames. Output: one flat JSON object per story, fixed 22-key schema, documented above with a real example.
  • Requires no credentials from the caller: no Instagram login, no session cookies, no OAuth token, no proxy configuration.
  • Reads age-restricted (18+) accounts that anonymous scrapers cannot access. Does not read private accounts.
  • Deterministic pricing per delivered item ($0.0025 per story, $2.50 per 1,000), no charge on failure. Cost of a run is computable in advance from the pricing table above.
  • Timestamps are ISO 8601 UTC. Deduplication key is story_pk.
  • Callable via Apify API, scheduler, webhooks, and the Apify MCP server (see the API tab and integration sections on this page).

Limits and fair use

  • Only currently active stories (last 24 hours) are available. Highlights and expired stories are out of scope for this actor.
  • Private accounts are not scraped. Story view counts and viewer lists are never public on Instagram and are not offered; treat any scraper claiming otherwise with suspicion.
  • Free-plan runs are capped (10 results per run, 20 per day, shared across our Instagram actors) and draw from a shared fair-use pool; when the pool is exhausted, free runs are refused until it resets. Upgrade to a paid Apify plan for production use.
  • Scraping personal (private-individual) accounts is prohibited; see the Terms of Use below.

FAQ

Do I need an Instagram account, cookies, or a login session? No. Nothing is required from you except the usernames. Authenticated infrastructure is managed entirely on our side.

Can it scrape age-restricted or 18+ accounts? Yes. Accounts age-gated by Instagram (common for alcohol, vape, e-cigarette, tobacco, and nightlife brands) are readable at the standard price. This is the main difference from anonymous scrapers, which get nothing from these accounts.

Can it scrape private accounts? No. Private accounts are out of scope by design and by our Terms of Use.

What does 1,000 stories cost? $2.50 in story results plus $0.002 per profile scanned and $0.005 per run. Typical all-in cost is around $2.70 per 1,000 stories from 100 accounts.

Why did an account return no items? Stories live for 24 hours. If nothing is live at run time, the account returns zero items and only the profile scan is charged. Schedule recurring runs to catch stories while they are up.

Is scraping Instagram stories legal? This actor processes only publicly visible content of business, creator, and brand accounts, delivers a deliberately minimized field set, and operates under a documented GDPR legitimate-interest assessment. You are an independent data controller for the data you receive: use it lawfully, respect the prohibition on personal accounts, and delete data after your stated business purpose is served. See the Terms of Use and Privacy notice below.

Where do I report a problem or ask for my account to be excluded? team.intropix@gmail.com, or use the Issues tab on this page.

Terms of Use

Operated by Intropix, contact: team.intropix@gmail.com. Last updated: 11-07-2026.

1. What this actor does. This actor retrieves publicly visible Instagram content (stories of business/brand accounts) and returns it as dataset items. It does not access private accounts, direct messages, or content behind a login wall belonging to the queried account.

2. Permitted use. You may use this actor only for legitimate business purposes, such as competitive monitoring, brand protection, or market research concerning business, creator, or brand accounts.

3. Prohibited use. You must NOT use this actor to:

  • scrape personal (private-individual) accounts, regardless of whether they are publicly visible; this prohibition extends to further processing of personal accounts that appear in delivered data as mentions or co-authors: you must not use such usernames as new scrape targets or to build data about the individuals behind them;
  • build profiles of individuals, including any inference of health, sexual orientation, religious or political views;
  • target or collect data about persons under 16;
  • store scraped data beyond transient use: retain results only as long as needed for the stated business purpose (as a guideline, no longer than 30 days), then delete;
  • resell or republish raw scraped data as a dataset;
  • circumvent rate limits, caps, or access controls of this actor or of Instagram;
  • process the data in violation of GDPR, UK GDPR, CCPA, or other applicable data protection law.

4. Your responsibilities as data controller. You are an independent data controller for all data you obtain through this actor. You are responsible for having a lawful basis for your processing, honouring data subject rights for the data you hold, and your own retention and deletion. Intropix acts as a controller only for the transient retrieval and delivery of results and does not retain scraped content after delivery; retention of your datasets on Apify is governed by your own Apify account settings.

5. Data subject requests. Individuals whose data may have been processed can contact team.intropix@gmail.com. See the Privacy notice below. Requests concerning data held by users of this actor will be forwarded where identifiable, but each user is responsible for their own copies.

6. Enforcement. Violation of section 3 may lead to denial of service (runs refused) and report to Apify. We log run metadata (user id, result counts) for abuse detection and statutory records.

7. No warranty; liability. Results depend on upstream availability and are provided as is. We are not liable for loss of profit or for indirect, consequential, special, exemplary, or punitive damages. Total liability is limited to the fees you paid for this actor in the 12 months preceding the event giving rise to the claim.

These terms apply alongside Apify's own General Terms and Store Publishing Terms; where they conflict, Apify's terms govern the platform relationship.

Privacy notice for Instagram account owners

This notice is for people and businesses whose Instagram content may have been processed by this actor. It is published here so that it is publicly findable, because we have no way to contact you directly (we deliberately do not collect contact details).

Who we are. Intropix, operator of this actor. Contact: team.intropix@gmail.com. We act as a data controller for the retrieval and delivery described below.

What we process. Publicly visible Instagram story content of business, creator, and brand accounts: the story media itself plus a fixed, limited set of metadata fields (account username, stable numeric account id, and display name, verification and privacy flags, story timestamps, media URLs and dimensions, caption and sticker text, link URLs, hashtags, mentions, music title and artist, co-author usernames, paid-partnership flag). We do not collect location data, follower lists, contact details (email, phone), private or close-friends content, direct messages, or view counts. We do not perform face recognition or build profiles of individuals.

Where the data comes from. Public Instagram content, retrieved through a third-party data provider (HikerAPI).

Why we process it and on what legal basis. Our legal basis is legitimate interest (Art. 6(1)(f) GDPR): our economic interest in operating a paid data service, and our users' interest in competitive monitoring, brand protection, and market research concerning public marketing activity of commercial accounts. A documented balancing assessment supports this.

Who receives the data. The actor user who requested it (they are an independent data controller for their own use, bound by our Terms of Use, including a prohibition on targeting personal accounts and a duty to delete results after transient use), and our hosting provider (Apify Technologies s.r.o.) as processor.

How long we keep it. We do not retain scraped content after delivery. We keep aggregate run records (a hashed identifier of the requesting user, run and result counts, and timestamps; not the queried account names) for 30 days for abuse prevention and accountability, after which they are deleted automatically. Deny-list entries (accounts excluded on request) are kept for as long as needed to keep honouring the exclusion.

Your rights. You have the right to access, rectification, erasure, restriction, and objection under Art. 15 to 21 GDPR. Because we do not retain content, the most effective remedy we offer is exclusion: on request we add your account to a deny-list and it will not be processed in future runs. Contact team.intropix@gmail.com. We respond within one month (Art. 12(3)). You also have the right to lodge a complaint with a supervisory authority.

Verification. To verify you control the account in question we will ask you to place a short token we issue in your account bio or a temporary story, or to write from an email address linked in the account's bio. We never ask for identity documents.