# Snapchat Scraper (`automly/snapchat-scraper`) Actor

Snapchat Scraper: Scrape public Snapchat profiles and posts: name, bio, subscribers, verified badge, category, website, Snapcode and pictures, plus Spotlight videos, Stories and Highlights with views, likes, comments, shares, captions, hashtags, dates and media links. Spotlight by hashtag too.

- **URL**: https://apify.com/automly/snapchat-scraper.md
- **Developed by:** [Automly](https://apify.com/automly) (community)
- **Categories:** Social media, Videos
- **Stats:** 4 total users, 2 monthly users, 93.8% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.10 / 1,000 profiles

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

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Snapchat Scraper - Profiles, Spotlight, Stories & Hashtags

### What is Snapchat Scraper?

**Snapchat Scraper** is a tool that lets you **scrape public Snapchat profiles and their posts from snapchat.com**: display name, username, bio, subscriber count, verified badge, category, website, location, profile picture, cover image and Snapcode, plus **Spotlight videos, Stories and Highlights** with views, likes, comments, shares, captions, hashtags, dates and the link to every photo and video. Add usernames or profile links, or type a hashtag, click **Start**, and download the data as Excel, CSV or JSON.

- ⚡ **Fast:** 63 profiles in about 25 seconds, or 1,050 posts from the same 63 profiles in about 40 seconds (our tests)
- 🎬 **Every snap:** each Story and Highlight comes with all of its photos and videos, oldest first
- \#️⃣ **Spotlight by hashtag:** the Spotlight videos Snapchat shows for any hashtag, with their creators and counts
- 🔓 **No login:** no Snapchat account needed
- 💸 **Free to try:** the $5 of free usage every Apify account gets each month covers about 2,700 profiles

### What can Snapchat Scraper do?

- **Scrape Snapchat profiles**: name, bio, subscribers, verified badge, category and subcategory, website, location, profile picture, cover image, Snapcode and Bitmoji
- **Scrape Snapchat Spotlight videos** of any public profile with views, likes, comments, shares, caption, hashtags, sound, length and the MP4 link
- **Download Snapchat Stories**: the profile's current public Story with every snap's photo or video and the time it was posted
- **Scrape Snapchat Highlights**: every saved Highlight with its title and all of its snaps
- **Find Snapchat Spotlight videos by hashtag**, like `funny`, `dance` or `football`, with each video's creator
- **Scrape single Spotlight links** you already have
- **Track Snapchat creators over time**: subscriber counts, Spotlight views and posting dates on a schedule
- Export to Excel, CSV, JSON, HTML or XML, or send the data to Google Sheets, Make, Zapier and more

### What data can you extract from Snapchat?

| | | |
|---|---|---|
| 👤 Display name and username | 📝 Bio | 👥 Subscriber count |
| ✅ Verified badge | 🏷️ Category and subcategory | 🌐 Website and location |
| 🖼️ Profile picture and cover image | 🔳 Snapcode and Bitmoji | 🔗 Related profiles |
| 🎬 Spotlight videos (MP4) | 📸 Story and Highlight photos and videos | 🗓️ Posting dates |
| 👀 Views | ❤️ Likes (boosts) | 💬 Comments and shares |
| ✏️ Captions and hashtags | 🎵 Sound | ⏱️ Video length and size |

### How to scrape Snapchat

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open **Snapchat Scraper**.
3. Choose **Profiles** or **Posts** under **What to scrape**.
4. Paste Snapchat usernames or profile links, one per line. For posts you can also add hashtags or Spotlight links.
5. Click **Start**, then download the data as Excel, CSV, JSON or HTML.

### How much does it cost to scrape Snapchat profiles and posts?

You pay only for the rows you get: per profile, or per post (a Spotlight video, a Story or a Highlight, whatever the number of snaps in it).

| Apify plan | Profiles per 1,000 | Posts per 1,000 |
|---|---|---|
| Free | $1.80 | $1.20 |
| Starter (Bronze) | $1.50 | $1.00 |
| Scale (Silver) | $1.30 | $0.90 |
| Business (Gold) and higher | $1.10 | $0.80 |

Platform usage is included in these prices, so there is nothing else to pay. For example, 1,000 profiles cost $1.80 on the Free plan and $1.10 on Business, and 1,000 posts cost $1.20 on the Free plan.

Every Apify account gets **$5 of free usage each month**, so you can try it at no cost. **Max results** keeps the cost of a run under control, and you can also set a maximum cost per run. See the **Pricing** tab for details.

### ⬇️ Input

| Setting | What it does |
|---|---|
| **What to scrape** | **Profiles** gives one row per username. **Posts** gives one row per Spotlight video, Story and Highlight |
| **Usernames or profile links** | `kyliejenner`, `@kyliejenner`, `https://www.snapchat.com/add/kyliejenner` or `https://www.snapchat.com/@kyliejenner` |
| **Hashtags (posts)** | Hashtags to get Spotlight videos for, like `funny` or `#dance` |
| **Spotlight links (posts)** | Links to single Spotlight videos |
| **Post types** | Spotlight videos, the current Story, Highlights, or any mix (all three by default) |
| **Max results** | The most rows the run saves across all inputs (default 100). Set 0 for no limit |

Connection settings: the default works for most runs.

Three profiles:

```json
{
  "dataType": "profiles",
  "usernames": ["kyliejenner", "fcbarcelona", "https://www.snapchat.com/add/john"]
}
```

Every Spotlight video, Story and Highlight of two profiles:

```json
{
  "dataType": "posts",
  "usernames": ["kyliejenner", "fcbarcelona"],
  "maxResults": 0
}
```

Spotlight videos for two hashtags:

```json
{
  "dataType": "posts",
  "hashtags": ["funny", "football"]
}
```

### ⬆️ Output

Each run saves one kind of row: profiles or posts. A profile:

```json
{
  "type": "profile",
  "url": "https://www.snapchat.com/@fcbarcelona",
  "username": "fcbarcelona",
  "displayName": "FC Barcelona",
  "bio": "FC Barcelona’s official Snapchat account #ForçaBarça\n💙❤️ SHAPING THE FUTURE\n🩵 Third Kit",
  "subscriberCount": 4060400,
  "isVerified": true,
  "category": "Business Group",
  "subcategory": "Sports Team",
  "websiteUrl": "http://barca.link/grfO50ZyOt5",
  "location": "Barcelona, Catalunya, España",
  "profilePictureUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvU3B2QVVZMzlqSWFpa0NtR0hQZlozP2JvPUVna3lBUVJJQWxBWllBRSUzRCZ1Yz0yNQ._RS0,90_FMjpeg",
  "heroImageUrl": null,
  "snapcodeUrl": "https://app.snapchat.com/web/deeplink/snapcode?username=fcbarcelona&type=SVG&bitmoji=enable",
  "bitmojiUrl": null,
  "hasStory": true,
  "storySnapCount": 1,
  "highlightCount": 16,
  "spotlightCount": 16,
  "lensCount": 2,
  "lenses": ["FC Barcelona", "FC Barcelona Jersey"],
  "relatedAccounts": ["mancityofficial", "realmadrid", "fcbayern"],
  "createdAt": "2019-05-21T18:25:09Z",
  "lastUpdatedAt": "2026-10-02T00:11:35Z",
  "source": "@fcbarcelona",
  "scrapedAt": "2026-10-02T13:48:20Z"
}
```

A Spotlight video (Stories and Highlights have the same fields, with a `title` and many `snaps`):

```json
{
  "type": "spotlight",
  "id": "W7_EDlXWTBiXAEEniNoMPwAAYZWlsa25xZHJpAaDReu8GAaDReozIAAAAAQ",
  "url": "https://www.snapchat.com/@kyliejenner/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYZWlsa25xZHJpAaDReu8GAaDReozIAAAAAQ",
  "username": "kyliejenner",
  "creatorName": "King Kylie 👑",
  "title": null,
  "caption": null,
  "hashtags": [],
  "postedAt": "2026-09-24T03:34:24Z",
  "lastSnapAt": "2026-09-24T03:34:24Z",
  "viewCount": 61872,
  "shareCount": 23,
  "commentCount": 94,
  "boostCount": 2489,
  "durationSeconds": 48.4,
  "width": 540,
  "height": 960,
  "soundTitle": "Original Sound",
  "mediaType": "video",
  "mediaUrl": "https://cf-st.sc-cdn.net/d/kZfX0TMVEFNAuPlye1Fst.27.IRZXSOY?mo=GmEaCTIBBEgCUC5gAVCiAVoQU3BvdGxpZ2h0U2hhcmluZ6IBOQgbEigKJgj1xrQDIAEwnAQ4wAdAAUoPCgrNAVtbV2tCNDA0EPQDUJD6AmgCIgsSACoHSVJaWFNPWZADkPoC&uc=46",
  "thumbnailUrl": "https://cf-st.sc-cdn.net/d/kZfX0TMVEFNAuPlye1Fst.256.IRZXSOY?mo=GkYaCTIBBEgCUC5gAVCgAVoQRGZMYXJnZVRodW1ibmFpbKIBEAiAAiILEgAqB0lSWlhTT1miARAImgoiCxIAKgdJUlpYU09Z&uc=46",
  "snapCount": 1,
  "snaps": [
    {
      "id": "W7_EDlXWTBiXAEEniNoMPwAAYZWlsa25xZHJpAaDReu8GAaDReozIAAAAAQ",
      "mediaType": "video",
      "mediaUrl": "https://cf-st.sc-cdn.net/d/kZfX0TMVEFNAuPlye1Fst.27.IRZXSOY?mo=GmEaCTIBBEgCUC5gAVCiAVoQU3BvdGxpZ2h0U2hhcmluZ6IBOQgbEigKJgj1xrQDIAEwnAQ4wAdAAUoPCgrNAVtbV2tCNDA0EPQDUJD6AmgCIgsSACoHSVJaWFNPWZADkPoC&uc=46",
      "thumbnailUrl": "https://cf-st.sc-cdn.net/d/kZfX0TMVEFNAuPlye1Fst.256.IRZXSOY?mo=GkYaCTIBBEgCUC5gAVCgAVoQRGZMYXJnZVRodW1ibmFpbKIBEAiAAiILEgAqB0lSWlhTT1miARAImgoiCxIAKgdJUlpYU09Z&uc=46",
      "postedAt": "2026-09-24T03:34:24Z"
    }
  ],
  "source": "@kyliejenner",
  "scrapedAt": "2026-10-02T13:48:45Z"
}
```

`boostCount` is the number of boosts (Snapchat's likes) on a Spotlight video. The **Overview** tab lists every row, and the **Profiles** and **Posts** tabs show each kind with pictures and thumbnails. The run report lists any username, hashtag or link that does not exist or is not public.

### Which fields come with which post?

| Field | Spotlight video | Story | Highlight |
|---|---|---|---|
| Media, thumbnail, all snaps, dates | ✅ | ✅ | ✅ |
| Views, likes (boosts), comments, shares | ✅ | | |
| Caption, hashtags, sound, length | ✅ | | |
| Title | | when set | ✅ |

Snapchat does not show view or like counts for Stories and Highlights to visitors. A few Spotlight videos show no counts or caption; those fields are empty.

### How can I use Snapchat data?

- **Influencer marketing:** find creators in a niche with their subscriber counts, categories and websites, and compare their Spotlight views
- **Brand monitoring:** follow a brand's or competitor's profile, Stories and Spotlight videos on a schedule
- **Trend research:** see which Spotlight videos lead a hashtag and which captions, sounds and hashtags they use
- **Content archiving:** keep the photos and videos of public Stories and Highlights before they change
- **Lead lists:** collect public profiles with their website, location and category

### How many posts can I get?

Snapchat shows visitors a profile's current Story, its Highlights and its latest Spotlight videos (usually 10 to 30), and about 30 Spotlight videos for a hashtag. The scraper saves everything Snapchat shows there. A post found through two inputs (a profile and a hashtag) is saved once.

### Scrape more social media data

| Actor | What it gets |
|---|---|
| [TikTok Profile Scraper](https://apify.com/automly/tiktok-profile-scraper) | TikTok profiles and their latest videos with followers, likes, views and captions |
| [TikTok Hashtag Scraper](https://apify.com/automly/tiktok-hashtag-scraper) | TikTok videos from any hashtag with views, likes, creator and post date |
| [Instagram Profile Scraper](https://apify.com/automly/instagram-profile-data-scraper) | Public Instagram profiles: bio, followers, post count, website and verified badge |
| [Instagram Posts & Reels Scraper](https://apify.com/automly/instagram-profile-posts-scraper) | Posts and reels from any public Instagram profile with likes, captions and media links |
| [X (Twitter) Profile Scraper - Users & Followers](https://apify.com/automly/x-twitter-user-profile-scraper) | X (Twitter) profiles in bulk: followers, bio, location and join date |
| [Pinterest Scraper - Pins, Boards, Profiles & Search](https://apify.com/automly/pinterest-scraper) | Pinterest pins, boards and profiles by keyword, board or profile |

### ❓FAQ

#### How much does it cost to scrape Snapchat?

$1.80 per 1,000 profiles and $1.20 per 1,000 posts on the Free plan, less on higher plans. See "How much does it cost to scrape Snapchat profiles and posts?" above for every plan.

#### Can I download Snapchat videos and Stories?

Yes. `mediaUrl` is the first photo or video of each post, and `snaps` lists every photo and video of a Story or Highlight with the time it was posted.

#### Do I need a Snapchat account?

No. The scraper reads the same public profiles and posts anyone can see on snapchat.com without signing in.

#### Can it scrape private accounts, friends lists, phone numbers or emails?

No. Only public profiles (creators, brands and public figures) and what they publish. A personal Snapchat account has no public profile, so it is listed in the run report as not found. Friends, private Stories, phone numbers and emails are never collected.

#### How many Spotlight videos can I get per profile or hashtag?

Usually 10 to 30 of a profile's latest Spotlight videos, plus its current Story and all its Highlights, and about 30 Spotlight videos per hashtag. That is everything Snapchat shows visitors.

#### What happens with a wrong username?

The run goes on with the other inputs and still succeeds; the run report lists each username, hashtag or link that does not exist or is not public. Text that is not a username or Snapchat link is named in the error message before the run starts.

#### Can I get results in real time?

Yes. Besides normal runs, the actor has a real-time API that answers with the rows directly, without starting a run:

```
GET https://<your-actor-standby-url>/profile?username=kyliejenner
GET https://<your-actor-standby-url>/posts?username=kyliejenner
GET https://<your-actor-standby-url>/posts?hashtag=funny
Authorization: Bearer <YOUR_API_TOKEN>
```

#### Can I connect Snapchat Scraper to other tools or AI agents?

Yes. Start runs and download results with the Apify API or the Python and JavaScript clients, send results to Make, Zapier, n8n, Google Sheets or Slack with Apify integrations and webhooks, or let AI assistants and agents run it through the Apify MCP server at [mcp.apify.com](https://mcp.apify.com).

#### Is it legal to scrape Snapchat?

This scraper only collects public profiles and posts that people and brands chose to publish. It does not collect private data such as friends lists, phone numbers or email addresses. Public posts can still contain personal data, which may be protected by laws such as GDPR, so only scrape it for a legitimate reason, respect copyright when you reuse photos and videos, and ask a lawyer if you are unsure. You can read more in [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

Snapchat Scraper is an independent tool. It is not affiliated with, endorsed by or sponsored by Snapchat or Snap Inc.

#### Something isn't working, or I need another field?

Open the **Issues** tab with your input and what you expected. We read every one and usually reply within a day.

### ⭐ Your feedback

Have an idea or found a problem? Tell us on the **Issues** tab. If Snapchat Scraper saved you time, a short review on the **Reviews** tab helps other people find it and tells us what to improve.

# Actor input Schema

## `dataType` (type: `string`):

Profiles: name, bio, subscribers, verified badge, category, website, pictures and counts, one row per username. Posts: one row per Spotlight video, Story and Highlight of each profile, with every snap's photo or video, plus Spotlight videos for hashtags and Spotlight links.

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

Snapchat usernames (kyliejenner or @kyliejenner) or profile links (snapchat.com/add/kyliejenner, snapchat.com/@kyliejenner), one per line.

## `hashtags` (type: `array`):

Hashtags to get Spotlight videos for, like funny or #dance, or hashtag links (snapchat.com/tag/funny). Only with What to scrape set to Posts.

## `spotlightUrls` (type: `array`):

Links to single Spotlight videos (snapchat.com/spotlight/... or snapchat.com/@user/spotlight/...). Only with What to scrape set to Posts.

## `postTypes` (type: `array`):

Which posts to save from profiles (posts runs). Hashtags and Spotlight links always give Spotlight videos.

## `maxResults` (type: `integer`):

The most rows this run saves, across all inputs (profiles in a profile run, posts in a post run). Set 0 for no limit.

## `proxyConfiguration` (type: `object`):

The default works for most runs. If results come back empty, try a different proxy option.

## Actor input object example

```json
{
  "dataType": "profiles",
  "usernames": [
    "kyliejenner",
    "fcbarcelona"
  ],
  "postTypes": [
    "spotlight",
    "story",
    "highlight"
  ],
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `profiles` (type: `string`):

No description

## `posts` (type: `string`):

No description

## `results` (type: `string`):

No description

## `report` (type: `string`):

No description

# 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": [
        "kyliejenner",
        "fcbarcelona"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/snapchat-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": [
        "kyliejenner",
        "fcbarcelona",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("automly/snapchat-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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": [
    "kyliejenner",
    "fcbarcelona"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call automly/snapchat-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automly/snapchat-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/QYNQX330T9nvz1wqJ/builds/OdI2DZYvg8RiHCgnV/openapi.json
