# Snapchat Profile Scraper — Profiles, Stories & Spotlight (`peekpublic/snapchat-profile-scraper`) Actor

Scrape public Snapchat profiles by username: display name, bio, subscriber count, profile picture, active stories, highlight albums, Spotlight videos with engagement stats, and related accounts. No login required — public data only.

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

## Pricing

from $2.00 / 1,000 profile scrapeds

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 Profile Scraper

Scrape **public Snapchat profiles** by username and get structured JSON back: display name, bio, subscriber count, profile picture, active public stories, highlight albums, and Spotlight videos with view/share/comment counts. No login, no cookies, no Snapchat account needed — the actor reads only what Snapchat publishes on its public web profiles.

Built and maintained by [PeekPublic](https://peekpublic.com), which runs the same parser in production for its free Snapchat lookup tools. When Snapchat changes its page structure, we have to notice within hours — and this actor gets the fix at the same time as our site.

### What you get per profile

- **Profile info** — username, display name, bio, profile picture URL, subscriber count, canonical profile URL
- **Stories** — currently active public story posts with media URLs and timestamps
- **Highlights** — permanent highlight albums with per-item media URLs
- **Spotlight** — public Spotlight videos with title, upload date, duration, resolution, and engagement stats (views, shares, comments)
- **Related profiles** — accounts Snapchat associates with the profile, with their subscriber counts and content flags

Failed lookups are reported per username with a clear status (`notFound`, `privateOrUnavailable`, `timeout`, `invalid`), so bulk runs are easy to reconcile.

### Input

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

Plain usernames, `/add/` URLs, `@` profile URLs, and `snapchat.com/t/...` share links all work. Optional settings: `maxConcurrency` (1–10, default 5) and a standard `proxyConfiguration` (usually unnecessary).

### Output example

```json
{
	"username": "fcbarcelona",
	"status": "found",
	"found": true,
	"displayName": "FC Barcelona",
	"subscriberCount": 4060400,
	"profilePictureUrl": "https://cf-st.sc-cdn.net/...",
	"storyCount": 3,
	"highlightAlbumCount": 5,
	"spotlightCount": 10,
	"spotlights": [
		{
			"id": "...",
			"type": "video",
			"mediaUrl": "https://cf-st.sc-cdn.net/...",
			"title": "Training day at Camp Nou",
			"publishedAt": "2026-08-30T14:02:11.000Z",
			"viewCount": 182034,
			"shareCount": 421
		}
	],
	"relatedProfiles": [{ "username": "...", "subscriberCount": 120000, "hasStory": true }]
}
```

### Common uses

- Creator discovery and influencer research (subscriber counts, content activity, engagement)
- Monitoring public story/Spotlight activity for brands and rights holders
- Enriching a list of handles with profile metadata
- Feeding public social data into research and analytics pipelines

### Limitations — read before buying

- **Public data only.** Private accounts, private stories, and friends-only content are not accessible and never will be through this actor. A profile with nothing published publicly returns profile metadata only.
- Story media URLs are served by Snapchat's CDN and **expire** — download media promptly if you need to keep it.
- Spotlight results are limited to what Snapchat embeds on the public profile page (typically the most recent posts).
- Subscriber counts are shown for creator accounts that display them publicly; regular accounts may not expose one.

### PeekPublic index contribution

By default, usernames (only usernames — none of the scraped data) of successfully found public profiles are shared with peekpublic.com, which independently re-verifies them and may list qualifying public creator profiles in its free public directory. Turn off `contributeToPublicIndex` to opt out.

### Legal

This actor accesses only publicly available pages, the same way a logged-out browser or search engine crawler does. You are responsible for using the data in compliance with applicable laws and platform terms in your jurisdiction. Not affiliated with, endorsed by, or connected to Snap Inc. or Snapchat. Profile removal requests: [peekpublic.com/remove-content](https://peekpublic.com/remove-content/).

# Actor input Schema

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

Public Snapchat usernames (e.g. <code>fcbarcelona</code>) or profile URLs (e.g. <code>https://www.snapchat.com/add/fcbarcelona</code>). Share links (<code>snapchat.com/t/...</code>) are resolved automatically.

## `maxConcurrency` (type: `integer`):

How many profiles to fetch in parallel (1-10).

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

Optional. Route Snapchat requests through Apify Proxy or your own proxies. Usually not needed — enable it if runs start returning many 'privateOrUnavailable' results.

## `contributeToPublicIndex` (type: `boolean`):

When enabled, usernames of successfully scraped public profiles (never the scraped data itself) are shared with peekpublic.com, which independently re-checks them and may list qualifying public profiles in its free directory. Disable to opt out.

## Actor input object example

```json
{
  "usernames": [
    "fcbarcelona",
    "cristiano"
  ],
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "contributeToPublicIndex": true
}
```

# Actor output Schema

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

One JSON item per input username with profile info, stories, highlights, Spotlight posts, and a per-item status.

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

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

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

```

## MCP server setup

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