# Instagram Stories Scraper & Link Extractor · No Login (`data-slayer/instagram-stories-scraper`) Actor

Scrape Instagram Stories from any public profile — no login, no cookies. Get media URLs, swipe-up link URLs, sticker data (polls, quizzes, countdowns), music info, mentions, and timestamps. 83 fields per story. Archive ephemeral content before it disappears. JSON/CSV/Excel.

- **URL**: https://apify.com/data-slayer/instagram-stories-scraper.md
- **Developed by:** [Data Slayer](https://apify.com/data-slayer) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 3 total users, 2 monthly users, 80.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Instagram Stories Scraper & Link Extractor · No Login

Scrape Instagram Stories from any public profile — media URLs, swipe-up link URLs, interactive sticker data, music metadata, mentions, and timestamps. 83 data fields per story. No login, no session cookies, no Instagram account needed. Capture ephemeral content before it disappears in 24 hours.

### Why This Actor

The Instagram Stories scraper market splits into two tiers: simple downloaders that give you a media URL and nothing else, and one premium scraper that returns rich metadata but requires you to log into Instagram, copy session cookies from DevTools, and manage cookie rotation when they expire.

This actor is the only one that gives you rich structured metadata without any login.

| | **This Actor** | automation-lab | datavoyantlab | Other downloaders |
|---|---|---|---|---|
| **Login / cookies required** | **No** | Yes (session cookies) | No | No |
| **Fields per story** | **83** | ~60 | ~15 | ~10 |
| **Swipe-up / link sticker URL** | ✅ flat field | ✅ nested | ❌ | ❌ |
| **Poll / quiz / countdown stickers** | ✅ | ✅ | ❌ | ❌ |
| **Music metadata** | ✅ | ✅ | ❌ | ❌ |
| **@Mentions** | ✅ | ✅ | ❌ | ❌ |
| **Highlights support** | Use our [Highlights Scraper](https://apify.com/data-slayer/instagram-highlights) | ✅ (same actor) | ❌ | ❌ |
| **Reliability** | Direct API (stable) | Direct API (stable) | Reverse-engineers 3rd parties (breaks often) | Varies |
| **Price** | **$2.50/1K** | Per-story pricing | Per-story pricing | Varies |

**Bottom line:** If you need structured story data for competitive intelligence, campaign monitoring, or link extraction — and don't want to deal with Instagram login cookies — this is the actor.

### How It Works

**Step 1.** Enter one or more Instagram usernames.

**Step 2.** Click "Start." The actor captures all currently active stories from each profile.

**Step 3.** Download as JSON, CSV, or Excel from the Dataset tab.

---

### What You Get

83 fields per story. Here are the ones that matter:

#### Media & content
| Field | Description |
|---|---|
| `media_url` | Direct image or video URL (flat top-level field) |
| `story_type` | `image` or `video` |
| `video_url` | Video file URL (for video stories) |
| `video_duration` | Video length in seconds |
| `thumbnail_url` | Thumbnail image URL |
| `code` | Story shortcode |

#### Link extraction
| Field | Description |
|---|---|
| `story_link_url` | Swipe-up / link sticker destination URL (flat top-level field) |
| `story_link_stickers` | Full link sticker objects with position, size, and URL |

#### Interactive stickers
| Field | Description |
|---|---|
| `story_polls` | Poll question + options |
| `story_questions` | Question sticker data |
| `story_quizzes` | Quiz sticker with options and correct answer |
| `story_countdowns` | Countdown sticker with target date |
| `story_sliders` | Emoji slider sticker data |
| `story_hashtags` | Hashtags placed as stickers |
| `story_locations` | Location stickers |
| `reel_mentions` | @Mentioned accounts |

#### Music & audio
| Field | Description |
|---|---|
| `music_metadata` | Track name, artist, album |
| `story_music_stickers` | Music sticker position and details |
| `has_audio` | Whether story has audio |

#### Timing
| Field | Description |
|---|---|
| `taken_at_date` | When the story was posted (ISO format) |
| `expiring_at` | When it will disappear (Unix timestamp) |

#### Profile
| Field | Description |
|---|---|
| `user.username` | Who posted the story |
| `user.full_name` | Display name |
| `user.is_verified` | Blue check status |

---

### Sample Output

```json
{
  "media_url": "https://scontent.cdninstagram.com/v/t51.82787-15/...",
  "story_type": "image",
  "story_link_url": "https://www.forbes.com/sites/maryroeloffs/2026/05/14/...",
  "story_link_stickers": [
    {
      "story_link": {
        "url": "https://www.forbes.com/sites/maryroeloffs/2026/05/14/..."
      },
      "height": 0.069,
      "width": 0.585
    }
  ],
  "taken_at_date": "2026-05-14T15:52:53+00:00",
  "expiring_at": 1778860373,
  "thumbnail_url": "https://scontent.cdninstagram.com/...",
  "is_video": false,
  "code": "DYUyWKQgSyl",
  "user": {
    "username": "forbes",
    "full_name": "Forbes",
    "is_verified": true
  }
}
````

***

### Use Cases

**Swipe-up link extraction and monitoring.** Stories are the primary way brands drive traffic — link stickers point to product pages, blog posts, landing pages, and campaign URLs. This actor extracts every link from any account's stories. Monitor where your competitors are sending their audience in real time.

**Competitive intelligence.** Competitors announce flash sales, product launches, and partnerships through Stories that vanish in 24 hours. Schedule this actor to run daily and capture everything. Build a permanent archive of competitor messaging that they assume is temporary.

**Influencer campaign tracking.** Stories are a key deliverable in influencer deals — often more valuable than feed posts. Capture the exact story content, verify it includes the agreed link sticker and @mentions, and archive the data for campaign reporting after the story expires.

**Interactive sticker analysis.** Polls, quizzes, and question stickers reveal how brands engage their audience. Scrape competitor stories to study which interactive formats they use, how often, and what questions they ask. Build a data-driven Stories strategy instead of guessing.

**Music and audio trend research.** The `music_metadata` field shows which songs and sounds brands use in their Stories. Track audio trends across multiple accounts to identify what's popular in your industry's Story content.

**Anonymous viewing at scale.** View any public account's stories without your username appearing in their viewer list. Process dozens of accounts in a single run — no manual checking, no trace left.

***

### Key Features

**No login, no cookies.** This is the critical difference. Most rich-metadata story scrapers require Instagram session cookies — meaning you have to log in, copy cookies from browser DevTools, and rotate them when they expire. This actor needs nothing. Enter a username and go.

**83 fields per story.** The most comprehensive cookieless story dataset on Apify. Includes interactive stickers (polls, quizzes, countdowns, sliders), music metadata, link sticker URLs, @mentions, location stickers, and hashtag stickers.

**Flat `media_url` and `story_link_url` fields.** Most story scrapers bury media URLs in nested objects (`image_versions.items[0].url`) and link URLs inside sticker arrays. This actor surfaces both as top-level fields — clean for CSV export and automation workflows.

**Bulk processing.** Enter multiple usernames and process all their stories in a single run.

**Export-ready.** JSON, CSV, Excel. Works with Make, Zapier, n8n, Clay, Google Sheets.

***

### FAQ

**Can I scrape stories anonymously?**
Yes. Your username never appears in the account's story viewer list. The actor accesses public story data through Instagram's API without any authentication.

**Stories disappear after 24 hours — does this affect the actor?**
The actor captures what's currently live. It cannot retrieve expired stories. For persistent content, use our [Highlights Scraper](https://apify.com/data-slayer/instagram-highlights) which captures saved story highlights that don't expire.

**Can I get stories from private accounts?**
No. Only public profiles' stories are accessible without login.

**What's the difference between `media_url` and `thumbnail_url`?**
`media_url` is the full-resolution image or video URL. `thumbnail_url` is a lower-resolution preview image. For video stories, use `video_url` for the video file and `thumbnail_url` for the cover frame.

**What if a profile has no active stories?**
The actor completes successfully with an empty result set. Stories are ephemeral — if someone hasn't posted in the last 24 hours, there's nothing to capture.

**How is this different from "story viewer" tools like DolphinRadar or AnonyIG?**
Those are consumer web apps for manually viewing one account at a time. This actor returns structured data (83 fields per story) that you can export, automate, and feed into analytics pipelines. It's built for data extraction, not manual browsing.

***

### 🧩 Other Instagram Actors by Data Slayer

| Actor | What it does | Link |
|---|---|---|
| Instagram Highlights Scraper | Saved story highlights (permanent) | [Try it →](https://apify.com/data-slayer/instagram-highlights) |
| Instagram Contact & Email Finder | Emails, phones, websites from profiles | [Try it →](https://apify.com/data-slayer/instagram-user-info-scraper-cookieless) |
| Instagram Profile Posts Scraper | All posts from a profile | [Try it →](https://apify.com/data-slayer/instagram-posts) |
| Instagram Reels Search | Discover trending Reels by keyword | [Try it →](https://apify.com/data-slayer/instagram-search-reels) |
| Instagram Profile Reels | All Reels from any profile | [Try it →](https://apify.com/data-slayer/instagram-profile-reels) |
| Instagram Tagged Posts | Posts where an account is tagged | [Try it →](https://apify.com/data-slayer/instagram-tagged-posts) |

***

### 💬 Feedback & Support

We actively maintain this actor and ship improvements weekly. If you run into issues or want new features, open an issue on the **Issues tab** or leave a rating. We respond within 24 hours.

# Actor input Schema

## `usernames` (type: `array`):

One or more Instagram usernames to capture stories from

## Actor input object example

```json
{
  "usernames": [
    "nike"
  ]
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "usernames": [
        "nike"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("data-slayer/instagram-stories-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "usernames": ["nike"] }

# Run the Actor and wait for it to finish
run = client.actor("data-slayer/instagram-stories-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "usernames": [
    "nike"
  ]
}' |
apify call data-slayer/instagram-stories-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=data-slayer/instagram-stories-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Stories Scraper & Link Extractor · No Login",
        "description": "Scrape Instagram Stories from any public profile — no login, no cookies. Get media URLs, swipe-up link URLs, sticker data (polls, quizzes, countdowns), music info, mentions, and timestamps. 83 fields per story. Archive ephemeral content before it disappears. JSON/CSV/Excel.",
        "version": "1.0",
        "x-build-id": "vKN4JxHZEZCIKScRl"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/data-slayer~instagram-stories-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-data-slayer-instagram-stories-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/data-slayer~instagram-stories-scraper/runs": {
            "post": {
                "operationId": "runs-sync-data-slayer-instagram-stories-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/data-slayer~instagram-stories-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-data-slayer-instagram-stories-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "usernames"
                ],
                "properties": {
                    "usernames": {
                        "title": "Instagram Usernames",
                        "type": "array",
                        "description": "One or more Instagram usernames to capture stories from",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
