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

Scrape public Snapchat profiles by username or URL: subscriber count, bio, and website, plus their stories and Spotlight videos with views and media links. One row per profile.

- **URL**: https://apify.com/tri_angle/snapchat-scraper.md
- **Developed by:** [Tri⟁angle](https://apify.com/tri_angle) (Apify)
- **Categories:** Social media
- **Features:** Limited permissions
- **Stats:** 2,139 total users, 114 monthly users, 100.0% runs succeeded, 28 bookmarks
- **User rating**: 5.00 out of 5 stars

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

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

### Scrape public Snapchat profiles, stories, and Spotlight videos

Snapchat Scraper takes Snapchat usernames or profile URLs, like `fcbarcelona` or `https://www.snapchat.com/add/fcbarcelona`, and returns each public profile: subscriber count, bio, category, location, and website, plus its public stories and Spotlight videos with view counts, hashtags, and links to the media. One row per profile.

### What you get

One dataset row per profile. The main fields:

| Field | What it holds |
|---|---|
| `username1`, `username2`, `profileUrl` | The profile's handles and its public Snapchat page |
| `subscribers` | Subscriber count |
| `profileDescription`, `category`, `profileLocation` | The bio, the profile category, and the location it shows |
| `websiteUrl` | The website linked from the profile |
| `profileImageUrl`, `snapcodeImageUrl` | The profile picture and its Snapcode |
| `stories` | Public stories: each with its title, thumbnail, and the snaps in it, with media and preview links and timestamps |
| `spotlights` | Spotlight videos: each with its name, description, hashtags, view count, thumbnail, and snaps |

The shape of one row, with types in place of values, taken from the fields recent runs returned:

```json
{
  "username1": "string",
  "subscribers": 0,
  "profileDescription": "string or null",
  "websiteUrl": "string or null",
  "stories": [
    { "storyTitle": "string or null", "snaps": [{ "mediaUrl": "string", "timestamp": "string" }] }
  ],
  "spotlights": [
    { "videoName": "string", "views": 0, "hashtags": ["string"], "snaps": [{ "mediaUrl": "string" }] }
  ]
}
```

Which fields are filled depends on the profile. Many profiles have no location or website, and a profile with no public stories has an empty `stories` list.

### How to scrape Snapchat in Apify Console

1. Open Snapchat Scraper and add one or more profiles to `profilesInput`, as usernames or URLs.
2. Start the run.
3. Export the dataset as JSON, CSV, or Excel when it finishes. Stories and Spotlight videos are nested lists, so JSON keeps them intact.

### Input

One field.

| Field | Type | What it does |
|---|---|---|
| `profilesInput` | array | Snapchat usernames, such as `fcbarcelona`, or profile URLs, such as `https://www.snapchat.com/add/fcbarcelona` |

The smallest input that works:

```json
{
  "profilesInput": ["fcbarcelona"]
}
```

Several profiles at once:

```json
{
  "profilesInput": ["fcbarcelona", "nba", "https://www.snapchat.com/add/nasa"]
}
```

### Ways to use it

- **Compare brand accounts.** Subscriber counts and Spotlight views side by side show which accounts actually reach people.
- **Track a campaign.** Run the same profiles weekly during a launch and watch subscribers and views move.
- **Collect creative examples.** Stories and Spotlight videos come with media links and hashtags you can review in one place.

### Call it from code, or from an AI agent

Start a run with the Apify API and get the profiles back in the same request:

```bash
curl -X POST "https://api.apify.com/v2/acts/tri_angle~snapchat-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"profilesInput": ["fcbarcelona", "nba"]}'
```

The Apify client for JavaScript or Python does the same, and Apify's integrations send the rows to Google Sheets, Make, Zapier, or n8n.

To let an agent use it, connect Apify's MCP server at `https://mcp.apify.com` in Claude, Cursor, or any MCP client and add Snapchat Scraper as a tool. An agent can then look up a brand's Snapchat presence while researching it.

### What it costs

You pay per event:

| Event | Price |
|---|---|
| Actor start | $0.001 |
| Profile | $0.002 |

So 1,000 profiles cost about $2, and a run that finds nothing costs only the start fee.

### Related Actor

[Snapchat Spotlight Scraper](https://apify.com/tri_angle/snapchat-spotlight-scraper) collects Spotlight videos on their own, when the videos matter more than the profiles.

### Limitations

- Public profiles only. Private accounts and friends-only content are not reachable.
- Stories are what is public at run time. Snapchat stories expire, so a story seen yesterday may be gone today.
- Counts such as subscribers and views are what Snapchat displays at run time.

### Troubleshooting

These cover what usually goes wrong.

- **A profile returns nothing.** Open `https://www.snapchat.com/add/<username>` in a browser. If there is no public profile page, there is nothing to scrape.
- **`stories` is empty.** The profile has no public story right now. Try again later or on a schedule.

For anything else, open an issue on the Actor's Issues tab with your run ID.

### Frequently asked questions

These are the questions people ask before their first run.

#### Is the Snapchat data live?

Yes. Every run reads the profiles at the time it runs.

#### What is the smallest input that works?

One username in `profilesInput`, for example `{"profilesInput": ["fcbarcelona"]}`.

#### What happens when a username does not exist?

That username adds no row, and you pay only for the profiles that were found plus the start fee.

#### Can I use Snapchat Scraper as an API?

Yes. Call it through the Apify API with a JSON input and read the profiles back as JSON. It needs no Snapchat account or login.

#### Does it work with MCP and AI agents?

Yes. Add it to Apify's MCP server and any MCP client can run it as a tool.

#### How much does it cost to scrape 1,000 Snapchat profiles?

About $2, plus $0.001 for the run.

#### Can I download the Snapchat videos?

The output includes `mediaUrl` links for each snap. The Actor collects the links, not the video files.

#### Can I track a profile every week?

Yes. Save your list as a task in Apify Console and add a weekly schedule. Each run is a new snapshot of subscribers, stories, and views.

#### Is it legal to scrape Snapchat?

Scraping publicly available data is generally legal, but profiles of private people are personal data, which laws such as GDPR protect. Collect only what you need, and ask a lawyer if you are unsure about your use case.

# Actor input Schema

## `profilesInput` (type: `array`):

Add one or multiple Snapchat profile usernames or URLs you want to scrape. (e.g. `fcbarcelona` or `https://www.snapchat.com/add/fcbarcelona`)

## Actor input object example

```json
{
  "profilesInput": [
    "https://www.snapchat.com/add/fcbarcelona"
  ]
}
```

# 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 = {
    "profilesInput": [
        "https://www.snapchat.com/add/fcbarcelona"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("tri_angle/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 = { "profilesInput": ["https://www.snapchat.com/add/fcbarcelona"] }

# Run the Actor and wait for it to finish
run = client.actor("tri_angle/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 '{
  "profilesInput": [
    "https://www.snapchat.com/add/fcbarcelona"
  ]
}' |
apify call tri_angle/snapchat-scraper --silent --output-dataset

```

## MCP server setup

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