# Snapchat Profile Scraper (`piotrv1001/snapchat-profile-scraper`) Actor

The Snapchat Profile Scraper extracts public profiles and their Spotlight videos and stories — subscriber counts, bios, video URLs, views, shares, captions, hashtags, comments, transcripts and lenses — and finds profiles by keyword. No login. Ideal for influencer research and brand monitoring.

- **URL**: https://apify.com/piotrv1001/snapchat-profile-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** Social media, Videos, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 profiles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

### 🚀 Snapchat Scraper — Public Profiles, Spotlight Videos, Views, Comments & Transcripts

Extract Snapchat data without an account. The **Snapchat Scraper** turns any public profile — or any keyword — into clean JSON, CSV or Excel: subscriber counts, bios, categories, the latest Spotlight videos with direct video URLs, views, shares, captions, hashtags, comments and spoken-word transcripts, current story snaps, curated highlights and lenses.

### ✨ Features

- 👤 **Public profiles**: display name, bio, subscriber count, category, website, profile and hero images, Snapcode, related accounts, creation date.
- 🎬 **Spotlight videos**: a profile's ~30 most recent videos with direct MP4 and thumbnail URLs, view and share counts, caption, hashtags, sound, duration and upload date.
- 💬 **Comments**: the top comments on every video with author, time and likes.
- 🗣️ **Transcripts**: the spoken words of each video as plain text, whenever Snapchat provides a transcript — ready for search, sentiment or AI analysis.
- 📖 **Stories & highlights**: the profile's live story snaps (image/video URLs) and its curated highlight albums.
- 🔍 **Keyword search**: type a topic (`skincare`, `basketball`) and every public profile Snapchat lists for it is scraped automatically.
- 🎭 **Lenses**: the profile's published lenses with preview images and unlock links.
- 📅 **Incremental runs**: a `postedAfter` date so scheduled runs only fetch what is new.
- ⚡ **No login, no browser**: hundreds of profiles per minute.

### 🛠️ How It Works

1. **Add usernames** – handles (`nba`, `@kyliejenner`) or profile URLs, one per line.
2. **Or add search queries** – keywords whose public profiles you want to collect.
3. **Set limits** – `maxVideos` per profile and, for scheduled runs, `postedAfter`. Untick **Include transcripts** if you don't need them.
4. **Run the scraper** – results land in the dataset, ready to download or fetch via API, webhook or scheduled run.

### 💵 Pricing

Pay only for what you extract — no fee per run:

| Event   | Price              |
| ------- | ------------------ |
| Profile | $0.002 per profile |
| Video   | $0.001 per video   |

A profile with its 30 latest Spotlight videos costs about $0.03; monitoring 100 creators weekly costs about $3 per run. Comments, transcripts, stories and lenses are included in those prices.

### 📊 Sample Output Data

Profile:

```json
{
    "type": "profile",
    "username": "nba",
    "url": "https://www.snapchat.com/@nba",
    "displayName": "NBA",
    "isPublicProfile": true,
    "bio": "30 teams, 1 goal.",
    "subscribers": 3618500,
    "category": "business-group",
    "subcategory": "sports-league",
    "website": "NBA.com",
    "address": null,
    "profilePic": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvcGxQanhqRDFZRk9IUWdGMUZLRHNqP2JvPUVna3lBUVJJQWxBWllBRSUzRCZ1Yz0yNQ._RS0,90_FMjpeg",
    "heroImage": "https://cf-st.sc-cdn.net/aps/bolt/…_RS0,1080_FMjpeg",
    "snapcode": "https://app.snapchat.com/web/deeplink/snapcode?username=nba&type=SVG&bitmoji=enable",
    "badge": 1,
    "hasStory": true,
    "storyCount": 2,
    "spotlightCount": 29,
    "relatedAccounts": [{ "username": "nbaontnt", "displayName": "NBA on TNT" }, "…"],
    "curatedHighlights": [{ "title": "NBA Finals", "snapCount": 12, "thumbnail": "https://cf-st.sc-cdn.net/d/…" }, "…"],
    "lenses": [
        {
            "name": "NBA Draft 2024",
            "creator": "NBA",
            "previewImage": "https://lens-preview-storage.storage.googleapis.com/previewmedia/preview_thumbnail/….webp",
            "previewVideo": "https://lens-storage.storage.googleapis.com/previewvideo/…",
            "icon": "https://bolt-gcdn.sc-cdn.net/3/…",
            "url": "https://www.snapchat.com/unlock/?type=SNAPCODE&uuid=…"
        }
    ],
    "createdAt": "2018-05-17T22:48:15.058Z",
    "updatedAt": "2026-08-26T14:02:11.000Z",
    "scrapedAt": "2026-08-29T12:01:10.512Z"
}
```

Video (Spotlight):

```json
{
    "type": "video",
    "source": "spotlight",
    "id": "W7_EDlXWTBiXAEEniNoMPwAAYd3Z5Z2xiY3VxAaBJ-7M9AaBJ-2k0AAAAAQ",
    "url": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYd3Z5Z2xiY3VxAaBJ-7M9AaBJ-2k0AAAAAQ",
    "username": "nba",
    "title": "STEPH STUCK IT ON THE GREEN AT THE ICONIC 7TH HOLE AT PEBBLE BEACH 🔥(via: stephencurry30/ IG)",
    "description": "STEPH STUCK IT ON THE GREEN AT THE ICONIC 7TH HOLE AT PEBBLE BEACH 🔥(via: stephencurry30/ IG)",
    "views": 14251,
    "shares": 0,
    "durationMs": 15800,
    "width": 540,
    "height": 960,
    "postedAt": "2026-08-28T20:06:48.372Z",
    "thumbnail": "https://cf-st.sc-cdn.net/d/vTB3OOGZrqfWcPWcq7bvk.256.IRZXSOY?mo=…",
    "videoUrl": "https://cf-st.sc-cdn.net/d/vTB3OOGZrqfWcPWcq7bvk.27.IRZXSOY?mo=…",
    "hashtags": [],
    "keywords": [],
    "sound": "Original Sound",
    "transcriptUrl": "https://bolt-gcdn.sc-cdn.net/3/Nkjg5ohra5FhpKLv1gJ82.vtt?bo=…",
    "transcript": "Oh, I gotta teach him something. Okay. No!",
    "commentCount": 4,
    "comments": [
        { "text": "I've golfed there before", "author": "Zayan", "postedAt": "2026-08-28T23:41:00.935Z", "likes": 5 },
        "…"
    ],
    "scrapedAt": "2026-08-29T12:01:11.204Z"
}
```

Story snaps come through as `"source": "story"` videos with `videoUrl` or `imageUrl` and `postedAt`. Personal (non-public) accounts return a profile with `isPublicProfile: false` and display name, Bitmoji and Snapcode only.

### ℹ️ Good to know

- Snapchat shows a profile's **~30 most recent Spotlight videos** on the web; older videos are not available. Run on a schedule with `postedAfter` to build up a full history over time.
- Stories expire after 24 hours — they are included only while live.
- Video, image and transcript URLs are signed and expire after a while — download what you need.
- Keyword search returns the public profiles Snapchat associates with the topic (typically 10–25 per query).

Turn Snapchat into structured data with the **Snapchat Scraper** today! 🚀

# Actor input Schema

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

Snapchat public profiles to scrape, one per line — a handle (nba, @kyliejenner) or a profile URL (https://www.snapchat.com/@nba). Returns the profile plus its latest Spotlight videos and story snaps.

## `searchQueries` (type: `array`):

Keywords to search on Snapchat, one per line (e.g. skincare, basketball). Every public profile found for the keyword is scraped like a username.

## `maxVideos` (type: `integer`):

Maximum number of Spotlight videos and story snaps to collect per profile. Snapchat shows a profile's ~30 most recent Spotlight videos.

## `postedAfter` (type: `string`):

Skip videos and snaps older than this date (YYYY-MM-DD). Handy for scheduled runs that only need what is new.

## `includeTranscripts` (type: `boolean`):

Add the spoken-word transcript of each video (when Snapchat provides one) to the video record.

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

The default works; residential proxies are not needed.

## Actor input object example

```json
{
  "usernames": [
    "nba"
  ],
  "searchQueries": [],
  "maxVideos": 50,
  "includeTranscripts": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (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": [
        "nba"
    ],
    "searchQueries": [],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

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

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/snapchat-profile-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": [
    "nba"
  ],
  "searchQueries": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call piotrv1001/snapchat-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,piotrv1001/snapchat-profile-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/ABFZEhtYpUfGHuvyp/builds/7c4wOIupoylfaEszo/openapi.json
