# Snapchat Scraper API - Spotlight, Creators, Transcripts (`vonsensey/snapchat-scraper-api`) Actor

Snapchat Spotlight clips and public creator profiles in one typed dataset. View counts, creator and follower count, sound, hashtags, Snapchat's own content keywords, and the spoken transcript as clean text. No login, no proxy to buy. Failures are free.

- **URL**: https://apify.com/vonsensey/snapchat-scraper-api.md
- **Developed by:** [Blackcube](https://apify.com/vonsensey) (community)
- **Categories:** Social media, Videos, Marketing
- **Features:** Limited permissions
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 spotlight videos

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/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 API - Spotlight, Creators, Transcripts

<table style="border-collapse:collapse;width:100%;margin:0 0 4px">
<tr><td colspan="3" style="padding:9px 12px;background:#0B6E75;border:1px solid #0B6E75"><span style="color:#FFFFFF;font-weight:700;font-size:13px;letter-spacing:.3px">Snapchat Suite</span><span style="color:#CFF0F2;font-size:12px"> &nbsp;&bull;&nbsp; 3 Actors, one codebase, one row billed once</span></td></tr>
<tr><td style="padding:9px 12px;border:1px solid #E5E7EB;background:#ECFDF5;vertical-align:top;width:33%"><span style="color:#0B6E75;font-weight:700;font-size:13px">Snapchat Scraper API</span><br><span style="color:#0B6E75;font-size:11px;font-weight:600">&#10148; You are here</span></td><td style="padding:9px 12px;border:1px solid #E5E7EB;background:#FFFFFF;vertical-align:top;width:33%"><a href="https://apify.com/vonsensey/snapchat-spotlight-scraper-api" style="color:#111827;font-weight:700;font-size:13px;text-decoration:none">Snapchat Spotlight Scraper API</a><br><span style="color:#6B7280;font-size:11px">Views, Creator, Sound</span></td><td style="padding:9px 12px;border:1px solid #E5E7EB;background:#FFFFFF;vertical-align:top;width:33%"><a href="https://apify.com/vonsensey/snapchat-profile-scraper-api" style="color:#111827;font-weight:700;font-size:13px;text-decoration:none">Snapchat Profile Scraper API</a><br><span style="color:#6B7280;font-size:11px">Subscribers, Website</span></td></tr>
</table>

**More from this account:** [YouTube Transcript Suite](https://apify.com/vonsensey/youtube-transcript-scraper) · [Website Contact & Email Suite](https://apify.com/vonsensey/website-contact-email-extractor) · [Career Site & ATS Jobs Suite](https://apify.com/vonsensey/career-page-job-postings-scraper-api) · [Google News Suite](https://apify.com/vonsensey/google-news-scraper-api) · [Keyword Research Suite](https://apify.com/vonsensey/google-keyword-ideas-scraper) · [Shopify Store Intelligence Suite](https://apify.com/vonsensey/shopify-store-leads-scraper) · [eBay Data Suite](https://apify.com/vonsensey/ebay-scraper-api) · [Amazon Reviews Suite](https://apify.com/vonsensey/amazon-reviews-scraper-api) · [Reddit](https://apify.com/vonsensey/reddit-scraper-posts-comments-api) · [Meta Ad Library](https://apify.com/vonsensey/facebook-ads-library-scraper-meta-ad-api) · [Vinted](https://apify.com/vonsensey/vinted-scraper-api) · [Trustpilot Review Intelligence Suite](https://apify.com/vonsensey/trustpilot-reviews-scraper) · [App Store & Google Play Reviews Suite](https://apify.com/vonsensey/app-store-google-play-reviews-scraper) · [Etsy Research Suite](https://apify.com/vonsensey/etsy-scraper) · [YouTube Comments Intelligence Suite](https://apify.com/vonsensey/youtube-comments-scraper) · [Telegram Channel Intelligence Suite](https://apify.com/vonsensey/telegram-channel-scraper-api) · [Business Reviews Suite](https://apify.com/vonsensey/business-reviews-aggregator-scraper-api) · [Google Trends Suite](https://apify.com/vonsensey/google-trends-scraper) · [Amazon Product Data Suite](https://apify.com/vonsensey/amazon-product-scraper-api) · [Polymarket Order Book](https://apify.com/vonsensey/polymarket-orderbook-clob-prices-scraper-api) · [Nordic Marketplaces Suite](https://apify.com/vonsensey/blocket-finn-nordic-marketplace-scraper-api) · [Google Sheets Suite](https://apify.com/vonsensey/google-sheets-scraper-api) · [TikTok Suite](https://apify.com/vonsensey/tiktok-scraper-api) · [LinkedIn Public Data Suite](https://apify.com/vonsensey/linkedin-scraper-api) · [Instagram Suite](https://apify.com/vonsensey/instagram-posts-scraper-api) · [Contact Validation Suite](https://apify.com/vonsensey/email-verifier-validator-api) · [Google Maps Suite](https://apify.com/vonsensey/google-maps-reviews-scraper-api) · [X / Twitter](https://apify.com/vonsensey/tweet-scraper) · [Software Reviews](https://apify.com/vonsensey/software-reviews-scraper)

#### The Snapchat suite

- [Snapchat Spotlight Scraper API](https://apify.com/vonsensey/snapchat-spotlight-scraper-api) — Spotlight clips with view counts and transcripts
- [Snapchat Profile Scraper API](https://apify.com/vonsensey/snapchat-profile-scraper-api) — usernames in, subscriber counts and websites out

Snapchat Spotlight clips and public creator profiles in one typed dataset. No login, no cookies, no proxy to configure. **Failures are free** — a clip Snapchat no
longer serves (removed, or a wrong link) or a username with no public profile costs nothing and
returns a row saying so.

### Quick start

1. Press **Start** — the defaults are a working run.
2. Replace them with your own Spotlight URLs, or switch on the trending feed.
3. Take the dataset as JSON, CSV or Excel, or via the API.

### What people use it for

- **Finding creators before they are expensive.** Spotlight surfaces clips from small accounts;
  every clip row carries the creator's handle, name and profile link beside the clip's views,
  shares and comments, so a shortlist falls out of a trending pull. Run that shortlist as
  profiles for subscriber counts, websites and verification.
- **Trend and sound tracking.** Which sound or lens a clip was made with, its hashtags, and
  Snapchat's own keywords for it.
- **Campaign reporting.** Paste the Spotlight URLs from a campaign and get view, share and
  comment counts and durations, re-run on a schedule to watch them move.
- **Making Spotlight searchable by what is said.** With transcripts on, the spoken words become
  a text column you can search, cluster or feed to a model — captions alone will not do that.
- **Creator vetting.** Subscriber count, website, category and verification for a list of
  usernames, plus when each public profile was created and last updated.

### What a Spotlight row looks like

```json
{
  "type": "spotlight",
  "id": "W7_EDlXWTBiXAEEniNoMPwAAYbmFoZ2JkdXV2…",
  "url": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYbmFoZ2JkdXV2…",
  "title": "Läskig äckelkott",
  "caption": "Läskig äckelkott",
  "postedAt": "2026-08-04T20:33:47.327Z",
  "durationMs": 38240,
  "viewCount": 43196,
  "shareCount": 1114,
  "commentCount": 355,
  "recommendCount": 274,
  "sound": "Original Sound",
  "snapKeywords": ["…"],
  "creator": {
    "username": "eldin_elmerhabi",
    "name": "DeD1NO🇱🇧",
    "url": "https://www.snapchat.com/@eldin_elmerhabi",
    "followerCount": null,
    "websiteUrl": null
  },
  "transcript": "I guess I'll save the best for last…"
}
```

`snapKeywords`, `snapTitle` and `snapSummary` are **Snapchat's own** generated description of
the clip — the platform's classification of its own content, which is worth more than anything
we could infer from the caption.

The view, share, comment and recommend counts are the counters Snapchat publishes for the
clip, under Snapchat's own names. A clip does not carry its creator's follower count (Snapchat
sends 0 for every creator), so `followerCount` is `null` rather than a false 0; a profile
row's `subscriberCount` is the creator's real audience.

### What a profile row looks like

```json
{
  "type": "profile",
  "username": "kyliejenner",
  "displayName": "King Kylie 👑",
  "subscriberCount": 29725600,
  "verified": true,
  "websiteUrl": "kyliecosmetics.com",
  "profileCreatedAt": "2019-05-22T18:01:50.393Z",
  "lastUpdatedAt": "2026-08-28T01:10:47.000Z",
  "hasStory": false,
  "relatedAccounts": [
    { "username": "kimkardashian", "displayName": "Kim Kardashian", "verified": true },
    { "username": "kendalljenner", "displayName": "Kendall Jenner", "verified": true },
    { "username": "kourtneykardash", "displayName": "Kourtney Kardashian", "verified": true }
  ],
  "heroImageUrl": "https://cf-st.sc-cdn.net/aps/bolt/…",
  "businessProfileId": "e9bcdb52-a5cc-4dea-88ac-8baa91a78345",
  "profileKind": "public"
}
```

`profileCreatedAt` is when Snapchat created the public profile; the account itself can be older.
`lastUpdatedAt` is when Snapchat last updated that profile, which a new public story post can move
too. `hasStory` is the story flag Snapchat's profile page carries (it can lag: a creator with a fresh public story has read false), and `relatedAccounts` are the creators
Snapchat lists beside it. A personal account carries none of these, so they come back `null`.

### What it costs

| You pay for | Price |
|---|---|
| Each Spotlight clip delivered | **$2.00 per 1,000 clips** |
| Each creator profile delivered | **$2.50 per 1,000 profiles** |
| Add-on: spoken transcript of a clip | **$8.00 per 1,000 transcripts** |
| Monitoring: a clip or profile whose numbers did not move | **$1.00 per 1,000 checks** |

**Free, always:** a clip Snapchat no longer serves (removed, or a wrong link), a username with no
public profile, a malformed URL, every error row, the coverage row and the run summary. On a
monitoring schedule, a row whose numbers did not move is not billed as a clip or profile: it costs one
check (above). A run that reads nothing costs nothing.

The transcript add-on is charged **only for clips that actually have one**. Snapchat does not
caption everything, and a clip without a transcript is free rather than billed for an empty
string. It never consumes your row budget either, so asking for transcripts cannot cost you clips.

### Limits, stated plainly

This reads what Snapchat publishes on its public web pages: Spotlight clips and public profiles.
It does not read private stories, friends, chats or anything behind a login, and it does not
pretend to. That is also why it needs no credentials and no proxy.

### Use it from n8n, MCP, the API or a schedule

Built to be called by a workflow, not only from the Store form. The Actor is `vonsensey/snapchat-scraper-api`; every snippet below sends `{}`, which runs the defaults shown on the form — replace it with your own input.

#### n8n

Install the **Apify** community node (`@apify/n8n-nodes-apify` under *Settings → Community Nodes*, or search "Apify" on n8n Cloud). Add **Apify → Run Actor** with Actor `vonsensey/snapchat-scraper-api` and your input JSON, then **Apify → Get Dataset Items** on the run's `defaultDatasetId` and pipe the rows anywhere. For scheduled runs, the **On new Apify Event** trigger fires when a run of this Actor finishes.

#### MCP (Claude, Cursor, VS Code, any MCP client)

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=vonsensey/snapchat-scraper-api",
      "headers": {
        "Authorization": "Bearer <YOUR_APIFY_TOKEN>"
      }
    }
  }
}
```

Your agent then calls `vonsensey/snapchat-scraper-api` as a tool with the same input the form takes and reads the dataset back.

#### REST API (one call, rows in the response)

```bash
curl -X POST "https://api.apify.com/v2/acts/vonsensey~snapchat-scraper-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" -d '{}'
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("vonsensey/snapchat-scraper-api").call(run_input={})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row)
```

#### JavaScript

```js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('vonsensey/snapchat-scraper-api').call({});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

#### Make, Zapier, LangChain, CrewAI

The Apify app in **Make** and **Zapier** has a *Run an Actor* module: pick `vonsensey/snapchat-scraper-api`. In **LangChain** and **CrewAI** the Apify tool wrappers take the same Actor id. A daily **schedule** needs nothing but the Console: *Schedules → Create → this Actor → cron*, and the dataset fills on its own.

> **Run it without configuring anything** — [Get Snapchat Spotlight clips and creator profiles together](https://apify.com/vonsensey/snapchat-scraper-api/examples/snapchat-spotlight-and-creators-together), a ready-made example you can start as-is or copy.

### Use cases

- **Track Spotlight performance.** Title, caption, description, exact view, share and comment counts, duration and dimensions, the sound or lens it was made with, hashtags and the posting time — plus the creator's handle, name and profile link on the same row.
- **Make Spotlight searchable by what is said in it.** The optional transcript add-on returns the spoken words from Snapchat's own caption track as clean text with the timing markers stripped, charged only for clips that actually have one.
- **Vet Snapchat creators.** Usernames in, subscriber count, verification badge, category and subcategory, publisher type, website and Snapcode out — plus when the public profile was created and last updated, its story flag and the creators Snapchat relates to it.
- **Use Snapchat's own classification of a clip.** Every Spotlight row carries the generated title, summary and keywords Snapchat publishes for it — the platform's labelling of its own content, not ours.

### Run it on a schedule

A one-off pull answers a question; a schedule answers it every day without you. Open **Schedules** in the Apify Console, point a cron at this Actor, and the dataset keeps filling on its own — no server, no cron box, no babysitting. Everything here is built to be re-run: you are billed per row delivered, and the FAQ below says exactly what a scheduled run that finds nothing new costs.

### FAQ

#### Do I need a Snapchat login or a proxy?

No. This reads the public Spotlight and profile pages Snapchat serves to anyone. Everything is handled for you and there is nothing to buy on top.

#### I asked for one Spotlight clip — will I be billed for the whole page?

No. Snapchat serves a page carrying about two dozen clips when you ask for one, and a named Spotlight target delivers exactly its own id and nothing else.

#### Why does a personal account return so many nulls?

Snapchat exposes two different profile shapes: a personal account carries four fields, a creator or business account sixteen. Both are read correctly, and the fields a personal account genuinely does not have come back as `null` rather than guessed.

#### Do all clips have a transcript?

No — Snapchat does not caption every clip. One that has none is free rather than billed for an empty string, and transcripts never consume your row budget, so asking for them cannot cost you clips.

#### What happens to a clip that was removed?

It costs nothing and returns a free `not-found` row saying Snapchat has no clip at that link — it was removed, or the link is wrong.

#### Will a schedule bill me for counts that did not move?

Not at the full rate. With change-only monitoring on, a clip or profile that moved is billed as a row; one that did not is billed as a **target checked** — half the price of a changed clip, because you get the answer without the data. A page that was blocked, unparseable or missing is free either way.

#### Are the counts exact?

Yes — view, share, comment and recommend counts are the exact values Snapchat carries for the clip, not a rounded display number. The one count a clip does not carry is its creator's follower count: Snapchat sends 0 for every creator there, so it comes back `null`, and a profile row's `subscriberCount` is the real audience.

#### Does this read stories, friends or chats?

No. It reads what Snapchat publishes on its public web pages — Spotlight clips and public profiles — and nothing behind a login. That is also why it needs no credentials.

***

Something wrong, or a field you need that is missing? Open an issue on the **Issues** tab — it is read and it gets fixed. If this saved you time, a rating on the Store page helps the next person find it.

# Actor input Schema

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

Spotlight clip links as Snapchat shares them (snapchat.com/@creator/spotlight/… and snapchat.com/spotlight/… both work) or bare story IDs. A clip Snapchat no longer serves (removed, or a wrong link) returns a free error row saying so, and is never charged. Leave empty to use the trending feed or creator profiles instead.

## `profiles` (type: `array`):

Public Snapchat usernames or profile URLs — 'kyliejenner', '@kyliejenner' and the full snapchat.com/add/ link all work. Creator and business accounts return subscriber count, bio, website, category and verification; personal accounts expose only a name and Snapcode, and the fields they do not have come back null rather than guessed.

## `fetchTrending` (type: `boolean`):

Also pull the clips currently trending on Snapchat Spotlight — about 25 per run, each with view count, creator and sound. Useful on a schedule to watch what is surfacing.

## `maxItems` (type: `integer`):

Hard cap on billable rows. Spotlight clips and profiles share this budget, so 100 means 100 rows in total.

## `maxCostUsd` (type: `number`):

Stop the run before it spends more than this. Leave empty for no ceiling. The free summary row reports what the run actually spent.

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

Return the spoken words of each Spotlight clip as clean text, taken from Snapchat's own caption track. Charged only for clips that actually have one — Snapchat does not caption everything, and a clip without a transcript is free.

## `includeMediaUrls` (type: `boolean`):

Adds the direct video URL to each clip. Snapchat signs these and they expire quickly, so they are left out by default rather than filling a stored dataset with links that stop working.

## `monitorChangesOnly` (type: `boolean`):

For scheduled runs. Clips and profiles whose numbers moved are billed as usual; an unchanged one is still delivered, marked 'unchanged', and costs one check (see Pricing) instead of a full row.

## Actor input object example

```json
{
  "spotlightUrls": [
    "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYbmFoZ2JkdXV2AZ_Oe9XXAZ_Oe30_AAAAAQ"
  ],
  "profiles": [
    "kyliejenner"
  ],
  "fetchTrending": false,
  "maxItems": 100,
  "includeTranscripts": false,
  "includeMediaUrls": false,
  "monitorChangesOnly": false
}
```

# Actor output Schema

## `dataset` (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 = {
    "spotlightUrls": [
        "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYbmFoZ2JkdXV2AZ_Oe9XXAZ_Oe30_AAAAAQ"
    ],
    "profiles": [
        "kyliejenner"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("vonsensey/snapchat-scraper-api").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 = {
    "spotlightUrls": ["https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYbmFoZ2JkdXV2AZ_Oe9XXAZ_Oe30_AAAAAQ"],
    "profiles": ["kyliejenner"],
}

# Run the Actor and wait for it to finish
run = client.actor("vonsensey/snapchat-scraper-api").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 '{
  "spotlightUrls": [
    "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYbmFoZ2JkdXV2AZ_Oe9XXAZ_Oe30_AAAAAQ"
  ],
  "profiles": [
    "kyliejenner"
  ]
}' |
apify call vonsensey/snapchat-scraper-api --silent --output-dataset

```

## MCP server setup

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

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/HhCyrH0Rq0HnelFUW/builds/fvSQaSts3ZwSYyi9E/openapi.json
