# Snapchat Accounts Scraper (`maximedupre/snapchat-accounts-scraper`) Actor

Find public Snapchat accounts by keyword, handle, or profile URL. Get profile details, audience counts, categories, and any public contact emails or content Snapchat exposes in one structured dataset.

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

## Pricing

from $1.80 / 1,000 public 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

### 👻 Find Public Snapchat Accounts

Social media researchers, creator teams, marketers, and developers can use Snapchat Accounts Scraper to find public Snapchat accounts by keyword, handle, or profile URL. It returns structured profile rows with usernames, names, biographies, profile links, audience counts, categories, related accounts, public contact emails when exposed, and available public Snapchat content. Keep account discovery and profile review in one dataset that you can read in Apify or through the API.

- Look up public profiles and save matching accounts with **[Snapchat Usernames](https://apify.com/maximedupre/snapchat-accounts-scraper/examples/snapchat-usernames)**.
- Review profiles found through keyword discovery with **[Snapchat Creators](https://apify.com/maximedupre/snapchat-accounts-scraper/examples/snapchat-creators)**.
- Compare audience and category signals for public profiles with **[Snapchat Influencers](https://apify.com/maximedupre/snapchat-accounts-scraper/examples/snapchat-influencers)**.
- Collect details for accounts you already know with **[Snapchat Profiles](https://apify.com/maximedupre/snapchat-accounts-scraper/examples/snapchat-profiles)**.
- Build a list from one keyword with **[Snapchat Accounts](https://apify.com/maximedupre/snapchat-accounts-scraper/examples/snapchat-accounts)**.

#### 📊 Public Snapchat account rows

Each saved row represents one public Snapchat account found from a submitted keyword, handle, or profile URL. Rows can include identity details, biographies, public profile links and images, subscriber and follower counts, public categories, websites, locations, business details, related accounts, public contact emails, lenses, transcripts, stories, highlights, and Spotlight content when Snapchat exposes them.

#### ▶️ Find accounts by keyword or target

Choose `Keywords`, `Handles`, or `Profile URLs` in the input form. Submit one keyword list per run, or provide direct public handles or profile URLs. The first eligible occurrence of an account is saved as soon as it is found. If the same account appears again from another submitted keyword, handle, or URL, later matches are ignored, and `matchedInput` keeps the first value that caused the row to be saved.

Set `Maximum results` when you want to stop after a chosen number of rows. Leave it empty to return all available results until the source is exhausted. Turn on curated highlights when you also want available highlight snaps in the account rows. Each returned curated highlight snap is a separate billable event.

#### ⚙️ Input

Choose one discovery method per run. The selected method uses its matching field, and the other option sections are ignored for that run. Public profile data and available public enrichment is returned when Snapchat exposes it.

**Input fields**

| Field | Type | What it does |
| --- | --- | --- |
| `findProfilesBy` | string | Required. Selects `keywords`, `handles`, or `profileUrls`. |
| `keywords` | array of strings | Adds one or more keywords for public account discovery. Use one keyword list per run. |
| `handles` | array of strings | Adds one or more public Snapchat handles, with or without `@`, as direct account targets. |
| `profileUrls` | array of objects | Adds one or more public Snapchat profile targets. |
| `profileUrls[].url` | string | The public Snapchat profile URL for one direct target. |
| `includeCuratedHighlights` | boolean | Adds available curated highlight snaps to account rows. Each returned highlight snap is a separate billable event. |
| `postedAfter` | string | Keeps story and video content posted after this UTC date in `YYYY-MM-DD` format. It does not change account profile results. |
| `location` | string | Filters keyword discovery or public contact results by a matching location signal when Snapchat exposes one. Leave it empty to keep all locations. |
| `contactEmailDomains` | array of strings | Limits public contact email results to the requested domains when public contact emails are available. |
| `maxItems` | integer | Stops after this many results. Leave it empty to return all available results until the source is exhausted. |

**Example input**

This is the smallest successful common input from a current beta run.

```json
{
  "findProfilesBy": "keywords",
  "keywords": [
    "photography"
  ],
  "includeCuratedHighlights": false,
  "maxItems": 100
}
```

#### 🧾 Output

The output panel opens the collected account rows in the default dataset. One dataset row is one matched public account. Optional fields and arrays can be empty or absent when Snapchat does not expose that data.

**Dataset link**

| Field | Type | What it does |
| --- | --- | --- |
| `dataset` | string | Opens the collected Snapchat account rows. |

**Account row fields**

| Field | Type | What it does |
| --- | --- | --- |
| `matchedInput` | string | Required. The first submitted keyword, handle, or profile URL that caused this account row to be saved. |
| `username` | string | Required. The public Snapchat username. |
| `displayName` | string | The public name shown for the account. |
| `biography` | string | The public biography text for the account. |
| `profileUrl` | string | Required. The public Snapchat profile URL. |
| `profileImageUrls` | array of strings | Direct URLs for public profile images exposed by Snapchat. |
| `subscriberCount` | integer | The public subscriber count when Snapchat exposes it. |
| `followerCount` | integer | The public follower count when Snapchat exposes it. |
| `isPublicProfile` | boolean | Whether Snapchat marks the account as a public profile when exposed. |
| `accessStatus` | string | The source-reported public access status for the account when exposed. |
| `category` | string | The public account category when exposed. |
| `subcategory` | string | The public account subcategory when exposed. |
| `websiteUrl` | string | The public website URL linked from the account when exposed. |
| `location` | string | The public geographic or location text for the account when exposed. |
| `businessProfile` | object | Public business profile details linked to the account when exposed. |
| `businessProfile.name` | string | The public business name. |
| `businessProfile.description` | string | The public description of the business. |
| `relatedAccounts` | array of objects | Public Snapchat accounts related to this account when exposed. |
| `relatedAccounts[].username` | string | The public username of a related account. |
| `relatedAccounts[].displayName` | string | The public display name of a related account. |
| `relatedAccounts[].profileUrl` | string | The public profile URL of a related account. |
| `relatedAccounts[].profileImageUrl` | string | A direct public profile image URL for a related account. |
| `curatedHighlights` | array of objects | Available curated highlight snaps with media, story details, dates, and creator context. |
| `curatedHighlights[].storyId` | string | The source identifier for the highlight story when exposed. |
| `curatedHighlights[].storyTitle` | string | The public title of the highlight story when exposed. |
| `curatedHighlights[].mediaType` | string | The source-reported media type of the highlight snap. |
| `curatedHighlights[].mediaUrl` | string | The direct source URL for the highlight snap media. |
| `curatedHighlights[].previewUrl` | string | The source preview URL for the highlight snap when exposed. |
| `curatedHighlights[].postedAt` | string | The source-owned date and time when the highlight snap was posted. |
| `curatedHighlights[].creator` | object | Public account details for the highlight snap creator when exposed. |
| `curatedHighlights[].creator.username` | string | The public username of the highlight creator. |
| `curatedHighlights[].creator.displayName` | string | The public display name of the highlight creator. |
| `curatedHighlights[].creator.profileUrl` | string | The public profile URL of the highlight creator. |
| `curatedHighlights[].creator.profileImageUrl` | string | A direct public profile image URL for the highlight creator. |
| `activeStories` | array of objects | Available current public story snaps with media, story details, dates, and creator context. |
| `activeStories[].id` | string | The source identifier for the story snap when exposed. |
| `activeStories[].storyId` | string | The source identifier for the active story when exposed. |
| `activeStories[].mediaType` | string | The source-reported media type of the story snap. |
| `activeStories[].mediaUrl` | string | The direct source URL for the story snap media. |
| `activeStories[].previewUrl` | string | The source preview URL for the story snap when exposed. |
| `activeStories[].postedAt` | string | The source-owned date and time when the story snap was posted. |
| `activeStories[].creator` | object | Public account details for the story snap creator when exposed. |
| `activeStories[].creator.username` | string | The public username of the story creator. |
| `activeStories[].creator.displayName` | string | The public display name of the story creator. |
| `activeStories[].creator.profileUrl` | string | The public profile URL of the story creator. |
| `activeStories[].creator.profileImageUrl` | string | A direct public profile image URL for the story creator. |
| `spotlightContent` | array of objects | Available public Spotlight content with media links, captions or hashtags, engagement data, and comments. |
| `spotlightContent[].id` | string | The source identifier for the Spotlight content when exposed. |
| `spotlightContent[].mediaType` | string | The source-reported media type of the Spotlight content. |
| `spotlightContent[].mediaUrl` | string | The direct source URL for the Spotlight media. |
| `spotlightContent[].previewUrl` | string | The source preview URL for the Spotlight content when exposed. |
| `spotlightContent[].caption` | string | The public caption for the Spotlight content when exposed. |
| `spotlightContent[].hashtags` | array of strings | Hashtags attached to the Spotlight content when exposed. |
| `spotlightContent[].postedAt` | string | The source-owned date and time when the Spotlight content was posted. |
| `spotlightContent[].viewCount` | integer | The public view count for the Spotlight content when exposed. |
| `spotlightContent[].likeCount` | integer | The public like count for the Spotlight content when exposed. |
| `spotlightContent[].commentCount` | integer | The public comment count for the Spotlight content when exposed. |
| `spotlightContent[].creator` | object | Public account details for the Spotlight creator when exposed. |
| `spotlightContent[].creator.username` | string | The public username of the Spotlight creator. |
| `spotlightContent[].creator.displayName` | string | The public display name of the Spotlight creator. |
| `spotlightContent[].creator.profileUrl` | string | The public profile URL of the Spotlight creator. |
| `spotlightContent[].creator.profileImageUrl` | string | A direct public profile image URL for the Spotlight creator. |
| `spotlightContent[].comments` | array of objects | Public comments associated with the Spotlight content when exposed. |
| `spotlightContent[].comments[].id` | string | The source identifier for a public comment when exposed. |
| `spotlightContent[].comments[].text` | string | The public text of the comment. |
| `spotlightContent[].comments[].postedAt` | string | The source-owned date and time when the comment was posted. |
| `spotlightContent[].comments[].likeCount` | integer | The public like count for the comment when exposed. |
| `spotlightContent[].comments[].author` | object | Public account details for the comment author when exposed. |
| `spotlightContent[].comments[].author.displayName` | string | The public display name of the comment author. |
| `videoTranscripts` | array of objects | Spoken-word transcript data for public video content when Snapchat provides it. |
| `videoTranscripts[].contentId` | string | The source identifier of the video with this transcript. |
| `videoTranscripts[].text` | string | The spoken-word transcript text. |
| `lenses` | array of objects | Published public Lens metadata with preview or unlock links when exposed. |
| `lenses[].id` | string | The source identifier for the public Lens when exposed. |
| `lenses[].name` | string | The public name of the Lens when exposed. |
| `lenses[].previewUrl` | string | The public preview URL for the Lens when exposed. |
| `lenses[].unlockUrl` | string | The public URL used to unlock the Lens when exposed. |
| `contactEmails` | array of strings | Public contact email addresses associated with the account when exposed. |
| `accountCreatedAt` | string | The source-owned date and time when the account was created when exposed. |

**Example account row**

This complete genuine row is from the successful current beta keyword run with `photography`.

```json
{
  "matchedInput": "photography",
  "username": "br00o",
  "displayName": "Abrar Photography",
  "biography": "المدينه المنوره / المنطقه الشرقيه                \nمصوره فوتوغرافيه 📸 اعلانات وتغطيات 📱لطلب التصوير والاعلانات التواصل خاص 🌹",
  "profileUrl": "https://www.snapchat.com/@br00o",
  "profileImageUrls": [
    "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvTHExZWN4ZzF0TnV0eXE2dXVBVkN0P2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,90_FMjpeg"
  ],
  "subscriberCount": 10300,
  "followerCount": 0,
  "isPublicProfile": true,
  "accessStatus": "public",
  "category": "public-profile-category-v3-people",
  "subcategory": "public-profile-subcategory-v3-photographer",
  "location": "Dammam, Saudi Arabia",
  "businessProfile": {
    "name": "Abrar Photography",
    "description": "المدينه المنوره / المنطقه الشرقيه                \nمصوره فوتوغرافيه 📸 اعلانات وتغطيات 📱لطلب التصوير والاعلانات التواصل خاص 🌹"
  },
  "relatedAccounts": [
    {
      "username": "nocha.77",
      "displayName": "ندى | Masoud 🫧",
      "profileUrl": "https://www.snapchat.com/@nocha.77",
      "profileImageUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvWW1tSUZkY2JlZTNrZVl5bVlQbEpxP2JvPUVnMGFBQm9BTWdFRVNBSlFDR0FCJnVjPTg._RS0,640_FMpng"
    },
    {
      "username": "hoare3y9",
      "displayName": "المصوره لومي سفيرة المدينة📸",
      "profileUrl": "https://www.snapchat.com/@hoare3y9",
      "profileImageUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvWnpZVzI1eWlUeDFiNWowbkJSNk9xP2JvPUVna3lBUVJJQWxBWllBRSUzRCZ1Yz0yNQ._RS0,640_FMjpeg"
    },
    {
      "username": "lolodream22",
      "displayName": "ℒℴℒℴ☕️",
      "profileUrl": "https://www.snapchat.com/@lolodream22",
      "profileImageUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvcDRwZENTNlAyRzZSZERVRjk4dlNqP2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,640_FMjpeg"
    }
  ],
  "curatedHighlights": [],
  "activeStories": [],
  "spotlightContent": [
    {
      "id": "W7_EDlXWTBiXAEEniNoMPwAAYZ3dhcXZldXd2AZqqC-r1AZqqC-bBAAAAAw",
      "mediaType": "video",
      "mediaUrl": "https://cf-st.sc-cdn.net/n/7KVXKYNqtZ1dQ5Oi5b8iN.27.IRZXSOY?mo=GloaCTIBDkgCUC5gAVCiAVoQU3BvdGxpZ2h0U2hhcmluZ6IBMwgbEiIKIAjSlBIgATCcBDjAB0ABSgsKBk4lKSssHBD0A1DwGmgCIgsSACoHSVJaWFNPWZAD8Bo%3D&uc=46",
      "previewUrl": "https://cf-st.sc-cdn.net/n/7KVXKYNqtZ1dQ5Oi5b8iN.256.IRZXSOY?mo=GkYaCTIBDkgDUC5gAVCgAVoQRGZMYXJnZVRodW1ibmFpbKIBEAiAAiILEgAqB0lSWlhTT1miARAImgoiCxIAKgdJUlpYU09Z&uc=46",
      "caption": "Another Spotlight Snap brought to you by Snapchat",
      "postedAt": "2025-11-22T05:31:38.049Z",
      "commentCount": 0,
      "creator": {
        "username": "br00o",
        "displayName": "Abrar Photography",
        "profileUrl": "https://www.snapchat.com/@br00o",
        "profileImageUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvTHExZWN4ZzF0TnV0eXE2dXVBVkN0P2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,90_FMjpeg"
      }
    },
    {
      "id": "W7_EDlXWTBiXAEEniNoMPwAAYaWd2Z2h1c2lzAZqqBIQ0AZqqBH6FAAAAAw",
      "mediaType": "video",
      "mediaUrl": "https://bolt-gcdn.sc-cdn.net/v/4DBUQNUsyV69U4sckkJUx.27.IRZXSOY?mo=GmUaCTIBdUgCUC5gAVCiAVoQU3BvdGxpZ2h0U2hhcmluZ6IBPggbEi0KKwi55IsBIAEwnAQ4wAdAAUoVChDkAV57iwG1AZkBkwG_AacBEPQDUMo-aAIiCxIAKgdJUlpYU09ZkAPKPg%3D%3D&uc=46",
      "previewUrl": "https://bolt-gcdn.sc-cdn.net/v/4DBUQNUsyV69U4sckkJUx.256.IRZXSOY?mo=GkwaBzIBdVAuYAFQoAFaEERmTGFyZ2VUaHVtYm5haWyiARQIgAIiDwoCSAISACoHSVJaWFNPWaIBFAiaCiIPCgJIAxIAKgdJUlpYU09Z&uc=46",
      "caption": "Another Spotlight Snap brought to you by Snapchat",
      "postedAt": "2025-11-22T05:23:32.613Z",
      "commentCount": 0,
      "creator": {
        "username": "br00o",
        "displayName": "Abrar Photography",
        "profileUrl": "https://www.snapchat.com/@br00o",
        "profileImageUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvTHExZWN4ZzF0TnV0eXE2dXVBVkN0P2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,90_FMjpeg"
      }
    },
    {
      "id": "W7_EDlXWTBiXAEEniNoMPwAAYa2R3Z2lzcG1lAYw4N5fQAYw4N5UcAAAAAw",
      "mediaType": "video",
      "mediaUrl": "https://bolt-gcdn.sc-cdn.net/6/Hd0Ev3KpVdjetuk5L1wBl.27.IRZXSOY?mo=GmMaCTIBX0gCUC5gAVCiAVoQU3BvdGxpZ2h0U2hhcmluZ6IBPAgbEisKKQiJp1kgATDgAzjWBkABShQKD4gBWWBmZWNmaGNaZFxiZxD0A1CgOGgCIgsSACoHSVJaWFNPWZADoDg%3D&uc=46",
      "previewUrl": "https://bolt-gcdn.sc-cdn.net/6/Hd0Ev3KpVdjetuk5L1wBl.256.IRZXSOY?mo=GkYaCTIBX0gCUC5gAVCgAVoQRGZMYXJnZVRodW1ibmFpbKIBEAiAAiILEgAqB0lSWlhTT1miARAImgoiCxIAKgdJUlpYU09Z&uc=46",
      "caption": "Another Spotlight Snap brought to you by Snapchat",
      "postedAt": "2023-12-05T04:23:35.964Z",
      "viewCount": 18311,
      "commentCount": 0,
      "creator": {
        "username": "br00o",
        "displayName": "Abrar Photography",
        "profileUrl": "https://www.snapchat.com/@br00o",
        "profileImageUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvTHExZWN4ZzF0TnV0eXE2dXVBVkN0P2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,90_FMjpeg"
      }
    },
    {
      "id": "W7_EDlXWTBiXAEEniNoMPwAAYdXdlaG1oc2hlAYOJAD8kAYOJADy9AAAAAA",
      "mediaType": "video",
      "mediaUrl": "https://bolt-gcdn.sc-cdn.net/z/UNYwtu9UTPOwz2o003JPH.1034.IRZXSOY?mo=Gk4aDRoAGgAyAXlIBVAuYAGiATwIiggSKgooIAFKFgoRPBcZGRkWGRshERUYHiMhJBgQ9ANaAxCMVFoHCOBCEL-lHiILEgAqB0lSWlhTT1k%3D&uc=46",
      "previewUrl": "https://bolt-gcdn.sc-cdn.net/z/UNYwtu9UTPOwz2o003JPH.256.IRZXSOY?mo=Gk0aCxoAGgAyAXlQLmABWhBEZkxhcmdlVGh1bWJuYWlsogEUCIACIg8KAkgCEgAqB0lSWlhTT1miARQImgoiDwoCSAMSACoHSVJaWFNPWQ%3D%3D&uc=46",
      "caption": "Another Spotlight Snap brought to you by Snapchat",
      "postedAt": "2022-09-29T11:27:17.693Z",
      "commentCount": 0,
      "creator": {
        "username": "br00o",
        "displayName": "Abrar Photography",
        "profileUrl": "https://www.snapchat.com/@br00o",
        "profileImageUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvTHExZWN4ZzF0TnV0eXE2dXVBVkN0P2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,90_FMjpeg"
      }
    },
    {
      "id": "W7_EDlXWTBiXAEEniNoMPwAAYd3l1eGR1bXNkAYN-FaG6AYN-FZ9KAAAAAA",
      "mediaType": "video",
      "mediaUrl": "https://cf-st.sc-cdn.net/i/DkyC31ueSoDqHkPKmc7fU.1034.IRZXSOY?mo=Gj4aDRoAGgAyAQlIA1AuYAGiASwIiggSGgoYIAFKDwoKSigpJCUlIyYyIRD0A1oDEJA2IgsSACoHSVJaWFNPWQ%3D%3D&uc=46",
      "previewUrl": "https://cf-st.sc-cdn.net/i/DkyC31ueSoDqHkPKmc7fU.256.IRZXSOY?mo=Gk0aCxoAGgAyAQlQLmABWhBEZkxhcmdlVGh1bWJuYWlsogEUCIACIg8KAkgCEgAqB0lSWlhTT1miARQImgoiDwoCSAMSACoHSVJaWFNPWQ%3D%3D&uc=46",
      "caption": "#khobar #explore #sanpchat #damamm #الخبر_الشرقية #سناب_المشاهير",
      "hashtags": [
        "#khobar",
        "#explore",
        "#sanpchat",
        "#damamm",
        "#الخبر_الشرقية",
        "#سناب_المشاهير"
      ],
      "postedAt": "2022-09-27T08:34:49.802Z",
      "commentCount": 0,
      "creator": {
        "username": "br00o",
        "displayName": "Abrar Photography",
        "profileUrl": "https://www.snapchat.com/@br00o",
        "profileImageUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvTHExZWN4ZzF0TnV0eXE2dXVBVkN0P2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,90_FMjpeg"
      }
    },
    {
      "id": "W7_EDlXWTBiXAEEniNoMPwAAYYWxkbnRrZnFjAYKPI3L9AYKPI0SjAAAAAA",
      "mediaType": "video",
      "mediaUrl": "https://bolt-gcdn.sc-cdn.net/z/6qAc6CRk4vgPePPxYVCx5.1034.IRZXSOY?mo=GpgBGg0aABoAMgF5SARQLmABogGFAQiKCBJzCnEgAUo4CjNdICcrJiEoKCckLCsyKigmOTo4OjJHIR0kJiUZRB0iHxc7GB4bGhQ3HhsWEwEBAAABAAAQ9ANaBBDN5wFaBwjhQBCl6ytaBwitUhDbxDxaBwj3bRCCtk1aCAjOggEQ0ppZWggIvJkBEI3iZCILEgAqB0lSWlhTT1k%3D&uc=46",
      "previewUrl": "https://bolt-gcdn.sc-cdn.net/z/6qAc6CRk4vgPePPxYVCx5.256.IRZXSOY?mo=Gk0aCxoAGgAyAXlQLmABWhBEZkxhcmdlVGh1bWJuYWlsogEUCIACIg8KAkgCEgAqB0lSWlhTT1miARQImgoiDwoCSAMSACoHSVJaWFNPWQ%3D%3D&uc=46",
      "caption": "Another Spotlight Snap brought to you by Snapchat",
      "postedAt": "2022-08-11T23:00:29.475Z",
      "commentCount": 0,
      "creator": {
        "username": "br00o",
        "displayName": "Abrar Photography",
        "profileUrl": "https://www.snapchat.com/@br00o",
        "profileImageUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvTHExZWN4ZzF0TnV0eXE2dXVBVkN0P2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,90_FMjpeg"
      }
    }
  ],
  "videoTranscripts": [],
  "lenses": [],
  "contactEmails": [],
  "accountCreatedAt": "2021-05-20T06:39:05.296Z"
}
```

The same beta build returned populated `curatedHighlights` for the `@nba` handle input and `activeStories` for the public profile URL input. Optional nested data appears when Snapchat exposes it and the selected input allows it.

#### 💳 Pricing

This Actor uses pay-per-event pricing. The current price for each event is shown in Apify's Pricing tab before a run.

| Event | What it covers |
| --- | --- |
| Public Profile | One public account profile saved with identity, audience counts, classification, and available profile details. |
| Highlight Snap | One available curated highlight snap saved with media links, story details, date, and creator context. |

`Public Profile` covers the account row and its available profile data. `Highlight Snap` applies only when curated highlights are enabled and a highlight snap is saved.

#### 🔌 Integrations

Open the dataset in Apify, read it with the Apify API, or export the structured rows for a downstream workflow.

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

#### ❓ FAQ

##### How do I collect one known Snapchat account?

Choose `Handles` for a public username or `Profile URLs` for a public profile URL. Add more than one target to process a batch in one run.

##### Can I run several independent keyword searches in one run?

No. Use one keyword list per run. The selector chooses one discovery method, and the other option sections are ignored for that run.

##### What happens when the same account matches more than one input?

The first eligible occurrence is saved immediately. Later matches are ignored, and the row keeps the first submitted keyword, handle, or profile URL in `matchedInput`.

##### What happens when I leave `maxItems` empty?

The Actor returns all available results until the source is exhausted. Set a positive integer when you want to stop sooner.

##### Can I collect curated highlights with the account profile?

Yes. Turn on `includeCuratedHighlights`. Available highlight snaps are added to the account row, and each returned highlight snap is a separate billable event.

##### Does the Actor access private Snapchat accounts?

No. It collects public Snapchat data and does not require a Snapchat login, session, or API key. Private or login-gated data is outside its scope.

##### Why are some profile or content fields empty?

Snapchat does not expose every field for every public account. Optional fields stay empty or absent when the source does not provide them.

##### Are returned media links permanent?

No. The Actor returns source links when Snapchat exposes them. It does not permanently host or archive the source media, and Snapchat may change or expire a link.

### 📝 Changelog

**v0.0** (18-09-2026)

- Initial release.

### 🆘 Support

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

### 🔗 Related Actors

- [Snapchat Follower Count Scraper](https://apify.com/maximedupre/snapchat-followers-scraper) for public profile data and subscriber counts from known usernames or profile URLs.
- [Snapchat Story Viewer](https://apify.com/maximedupre/snapchat-story-viewer) for public stories, highlights, and source-hosted media links.
- [Snapchat User Spotlight Scraper](https://apify.com/maximedupre/snapchat-user-spotlight-scraper) for public Spotlight videos from creator profiles.
- [Snapchat Hashtag Scraper](https://apify.com/maximedupre/snapchat-hashtag-scraper) for public Spotlight videos found through hashtags.
- [Snapchat User Stories Scraper](https://apify.com/crawlerbros/snapchat-user-stories-scraper) for story-first rows from public Snapchat user profiles.

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

# Actor input Schema

## `findProfilesBy` (type: `string`):

Choose one way to find public Snapchat profiles. Use one keyword list, one handle list, or one list of profile URLs per run.

## `keywords` (type: `array`):

Enter one or more keywords. Accounts found from this one list are returned as public profile records.

## `handles` (type: `array`):

Enter one or more public Snapchat handles, with or without @. Each handle is checked as a direct account target.

## `profileUrls` (type: `array`):

Enter one or more public Snapchat profile URLs. Each URL is checked as a direct account target.

## `includeCuratedHighlights` (type: `boolean`):

Turn this on to collect available curated highlight snaps in addition to account data. Each returned highlight snap is a separate billable event.

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

Only return story and video content posted after this date. The date is interpreted in UTC and does not change account profile results.

## `location` (type: `string`):

Filter keyword discovery or public contact leads by this location when Snapchat exposes a matching location signal. Omit this field to keep all locations.

## `contactEmailDomains` (type: `array`):

Limit public contact-email results to these domains, such as example.com. This filter is used when public contact emails are available.

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

Set a limit for the number of results. Leave this field empty to return all available results until the source is exhausted.

## Actor input object example

```json
{
  "findProfilesBy": "keywords",
  "keywords": [
    "photography"
  ],
  "includeCuratedHighlights": false,
  "maxItems": 100
}
```

# Actor output Schema

## `dataset` (type: `string`):

Open the collected Snapchat account rows.

# 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 = {
    "findProfilesBy": "keywords",
    "keywords": [
        "photography"
    ],
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/snapchat-accounts-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 = {
    "findProfilesBy": "keywords",
    "keywords": ["photography"],
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/snapchat-accounts-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 '{
  "findProfilesBy": "keywords",
  "keywords": [
    "photography"
  ],
  "maxItems": 100
}' |
apify call maximedupre/snapchat-accounts-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maximedupre/snapchat-accounts-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/87nLm2ho1W6hzbTPn/builds/TGizudt7Cvq0o4mRo/openapi.json
