# Snapchat Hashtag Scraper (`maximedupre/snapchat-hashtag-scraper`) Actor

Scrape public Snapchat Spotlight videos by hashtag. Export video URLs, thumbnails, creator details, engagement metrics, captions, keywords, upload dates, and source links.

- **URL**: https://apify.com/maximedupre/snapchat-hashtag-scraper.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Social media, Marketing
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 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/platform/actors/running/actors-in-store#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 hashtag scraper for Spotlight videos

Snapchat Hashtag Scraper extracts public Snapchat Spotlight videos from hashtag pages. Add a hashtag such as `food`, `#travel`, or a public Spotlight hashtag URL, and get flat video rows with source links, direct media URLs, thumbnails, creator details, engagement metrics, captions, keywords, upload dates, and scrape timestamps.

- Use a [Snapchat hashtag scraper](https://apify.com/maximedupre/snapchat-hashtag-scraper/examples/snapchat-hashtag-social-listening) to export public Spotlight video rows from hashtags for social listening and reporting.
- Collect [Snapchat Spotlight videos](https://apify.com/maximedupre/snapchat-hashtag-scraper/examples/snapchat-spotlight-video-export) from a hashtag when you need source URLs, media URLs, thumbnails, captions, creators, and upload dates.
- Build [Snapchat hashtag analytics](https://apify.com/maximedupre/snapchat-hashtag-scraper/examples/snapchat-hashtag-analytics) datasets with normalized views, boosts, shares, comments, recommends, and source hashtag provenance.
- Find [Snapchat creators](https://apify.com/maximedupre/snapchat-hashtag-scraper/examples/snapchat-creator-discovery) from hashtag feeds by exporting creator usernames, display names, profile URLs, and public video context.
- Track [Snapchat campaign research](https://apify.com/maximedupre/snapchat-hashtag-scraper/examples/snapchat-campaign-research) across hashtag lists with per-hashtag limits, a total result cap, and deduped video rows.

#### 📊 Data You Can Export

Each dataset row represents one public Snapchat Spotlight video discovered from a hashtag. Fields can include:

- `originalInput`, `inputIndex`, `inputType`, and `normalizedHashtag`
- `sourceHashtagUrl` and `matchedHashtags`
- `snapId`, `storyId`, `storyTapId`, and `spotlightUrl`
- `videoUrl`, `thumbnailUrl`, and `mediaPreviewUrl`
- `width`, `height`, and `durationSeconds`
- `creatorUsername`, `creatorDisplayName`, `creatorProfileUrl`, and `creatorId`
- `viewCount`, `boostCount`, `shareCount`, `commentCount`, and `recommendCount`
- `description`, `caption`, `hashtags`, `keywords`, and `languageCode`
- `isAttributed`, `uploadedAt`, and `scrapedAt`

Snapchat may return `null` or an empty list for fields it does not expose on a specific Spotlight video. Empty hashtags and temporarily unavailable targets are handled in logs instead of creating placeholder dataset rows.

#### 🚀 How To Run

1. Add one or more Snapchat hashtags or public Spotlight hashtag URLs.
2. Set **Videos per hashtag** to cap how many videos each hashtag can save.
3. Set **Total video results** to cap the full run.
4. Start the Actor and open the dataset.
5. Export the dataset or connect it to your API, schedule, webhook, or integration workflow.

Good first input:

```json
{
	"hashtagsOrUrls": [
		"food",
		"#travel",
		"https://www.snapchat.com/spotlight/hashtag/fitness"
	],
	"resultsPerHashtag": 10,
	"maxResults": 10
}
```

#### 🔧 Input Options

**Hashtags or Snapchat hashtag URLs**: add values such as `food`, `#travel`, or `https://www.snapchat.com/spotlight/hashtag/fitness`. Each input is checked separately.

**Videos per hashtag**: maximum video rows to save for each hashtag before moving to the next input. The public input allows `1` to `50`.

**Total video results**: maximum video rows to save across the whole run. The public input allows `1` to `5000`, and this is the main cost and dataset-size cap.

#### 🧾 Output Example

```json
{
	"originalInput": "food",
	"inputIndex": 1,
	"inputType": "hashtag",
	"normalizedHashtag": "food",
	"sourceHashtagUrl": "https://www.snapchat.com/spotlight/hashtag/food",
	"rank": 1,
	"matchedHashtags": ["food"],
	"snapId": "W7_EDlXWTBiXAEExampleSnapId",
	"storyId": "W7_EDlXWTBiXAEExampleStoryId",
	"storyTapId": "-3633770725470699293",
	"spotlightUrl": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEExampleStoryId",
	"videoUrl": "https://cf-st.sc-cdn.net/...",
	"thumbnailUrl": "https://cf-st.sc-cdn.net/...",
	"mediaPreviewUrl": "https://cf-st.sc-cdn.net/...",
	"width": 540,
	"height": 960,
	"durationSeconds": 5,
	"creatorUsername": "creator",
	"creatorDisplayName": "Creator Name",
	"creatorProfileUrl": "https://www.snapchat.com/@creator",
	"creatorId": "3a59d2a3-979a-4dc9-b6d6-70a74ae37e1d",
	"viewCount": 1750321,
	"boostCount": 57784,
	"shareCount": 480,
	"commentCount": 0,
	"recommendCount": 2090,
	"description": "Another Spotlight Snap brought to you by Snapchat",
	"caption": null,
	"hashtags": [],
	"keywords": ["running", "race", "track event"],
	"languageCode": "en",
	"isAttributed": true,
	"uploadedAt": "2026-02-21T14:05:48.552Z",
	"scrapedAt": "2026-06-10T12:11:53.732Z"
}
```

#### 💸 Pricing

This Actor uses pay-per-event pricing. You are charged for each public Spotlight video that is saved to the dataset. Empty hashtags, skipped inputs, and targets that do not return usable public Spotlight videos do not create paid video events.

| Apify plan | Price per saved video |
| ---------- | --------------------: |
| Free       |               $0.0009 |
| Bronze     |               $0.0009 |
| Silver     |               $0.0008 |
| Gold       |               $0.0007 |
| Platinum   |               $0.0006 |
| Diamond    |               $0.0005 |

#### 🔌 Integrations

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

- Use the Apify API to run hashtag exports from your own app or workflow.
- Schedule repeated runs to refresh public Snapchat Spotlight hashtag datasets.
- Export results as JSON, CSV, Excel, XML, RSS, or HTML.
- Send finished datasets to downstream tools with Apify webhooks.

#### ❓ FAQ

##### Can this scrape private Snapchat content?

No. It works with public Snapchat Spotlight hashtag pages only. It does not access private accounts, login-only content, stories, profiles, comments, followers, lenses, or contacts.

##### Can I paste a Snapchat hashtag URL?

Yes. Use a public Spotlight hashtag URL such as `https://www.snapchat.com/spotlight/hashtag/fitness`. You can also paste `fitness` or `#fitness`.

##### Can I use it for trending Snapchat Spotlight hashtags?

Yes, if you provide the hashtag list you want to check. The Actor does not discover trending hashtags by itself; it exports public Spotlight videos from the submitted hashtags.

##### Does it download video files?

No. It returns direct Snapchat media URLs and metadata in the dataset. It does not save binary video files to Apify storage.

##### Why do some fields return null?

Snapchat does not expose every metric or text field for every video. When a field is missing from the public response, the Actor leaves it empty and still saves the usable Spotlight video row.

##### Why not use the Snapchat API?

This Actor is for public Spotlight hashtag pages and does not require Snapchat API access, cookies, or login details. Use Snapchat's official tools when you need account-owned workflows or private data access.

##### What are Snapchat alternatives?

For similar public social video workflows, try TikTok, Instagram, Pinterest, Facebook, YouTube, or other Apify Actors that match the source you need. This Actor stays focused on public Snapchat Spotlight hashtag videos.

### 📝 Changelog

- 0.0: Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~snapchat-hashtag-scraper/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Other actors

- [TikTok Hashtag Search Scraper ↗](https://apify.com/maximedupre/tiktok-hashtag-search-scraper) - Find TikTok hashtag ideas and public hashtag metrics from keywords, hashtags, or tag URLs.
- [TikTok Video Downloader ↗](https://apify.com/maximedupre/tiktok-video-downloader) - Download media files from known public TikTok video URLs.
- [Instagram Downloader API ↗](https://apify.com/maximedupre/instagram-downloader-api) - Export media URLs, thumbnails, captions, and engagement counts from public Instagram posts and reels.
- [Pinterest Video Downloader ↗](https://apify.com/maximedupre/pinterest-video-downloader) - Extract video and image media from public Pinterest pins, pin.it links, or pin IDs.
- [Facebook Media Downloader ↗](https://apify.com/maximedupre/facebook-media-downloader) - Download direct media links and metadata from public Facebook videos and reels.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `hashtagsOrUrls` (type: `array`):

Add values like `food`, `#travel`, or `https://www.snapchat.com/spotlight/hashtag/fitness`. Each input is checked separately.

## `resultsPerHashtag` (type: `integer`):

Maximum video rows to save for each hashtag before moving to the next input.

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

Maximum video rows to save across the whole run. This is the main cost cap.

## Actor input object example

```json
{
  "hashtagsOrUrls": [
    "food",
    "#travel",
    "https://www.snapchat.com/spotlight/hashtag/fitness"
  ],
  "resultsPerHashtag": 25,
  "maxResults": 25
}
```

# Actor output Schema

## `datasetItems` (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 = {
    "hashtagsOrUrls": [
        "food",
        "#travel",
        "https://www.snapchat.com/spotlight/hashtag/fitness"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/snapchat-hashtag-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 = { "hashtagsOrUrls": [
        "food",
        "#travel",
        "https://www.snapchat.com/spotlight/hashtag/fitness",
    ] }

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "hashtagsOrUrls": [
    "food",
    "#travel",
    "https://www.snapchat.com/spotlight/hashtag/fitness"
  ]
}' |
apify call maximedupre/snapchat-hashtag-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=maximedupre/snapchat-hashtag-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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