Snapchat Public Profile Stories Scraper avatar

Snapchat Public Profile Stories Scraper

Pricing

Pay per event

Go to Apify Store
Snapchat Public Profile Stories Scraper

Snapchat Public Profile Stories Scraper

Extract currently visible Story snaps, media links, previews, timestamps, and creator details from public Snapchat profiles.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

Monitor currently visible Snapchat public profile stories and export one structured record per Story snap.

Provide public Snapchat usernames or profile URLs. The Actor resolves each profile and returns current Story snap IDs, direct media links, previews, timestamps, media types, creator identity, and source URLs.

It is designed for influencer teams, campaign analysts, social-media researchers, and automation builders who need repeatable snapshots of public creator Stories before they expire.

What does Snapchat Public Profile Stories Scraper do?

The Actor visits logged-out public Snapchat profile pages and reads the Story data Snapchat exposes to web visitors.

It can:

  • accept usernames such as nfl or @nfl;
  • accept https://www.snapchat.com/add/... profile URLs;
  • combine both input routes in one run;
  • remove duplicate profiles;
  • export one dataset item per visible Story snap;
  • stop at a global maxItems limit;
  • preserve image and video media links without downloading the files;
  • return a successful empty dataset when a valid public profile has no current Story;
  • isolate a failed profile while continuing with other supplied profiles.

The Actor does not log in, open private profiles, or retrieve expired Stories.

Who is it for?

Influencer marketing teams

Take scheduled snapshots of public creator Stories during campaigns. Use stable snap IDs to identify newly visible items between runs.

Brand and competitor analysts

Collect public Story media types, timestamps, and creator context into a dataset that can be compared over time.

Researchers and journalists

Capture structured metadata for currently public Stories while retaining the source profile and collection timestamp.

Data and automation teams

Send the default dataset to spreadsheets, databases, webhooks, or data warehouses without building a Snapchat page parser.

Why use this Actor?

  • Profile-focused output: the dataset is limited to current public profile Stories rather than mixing Spotlight, Discover, lenses, and profile records.
  • One row per snap: every item has its own snap ID, media URL, preview, type, and timestamp.
  • Two input routes: use usernames for compact automation or URLs copied from Snapchat.
  • HTTP-only collection: no browser or media download is used, reducing runtime and transfer.
  • Monitoring-ready IDs: compare snapId values between scheduled runs to detect additions and removals.
  • Bounded runs: cap the total accepted records with maxItems.

What Snapchat Story data can I extract?

FieldMeaning
profileUsernameUsername that owns the Story
profileDisplayNamePublic creator display name
profileUrlCanonical public profile URL
profilePictureUrlCreator image URL, when exposed
businessProfileIdStable public profile identifier, when exposed
storyIdIdentifier of the current Story
storyTypeSnapchat's numeric Story type
storyTitleStory title, when available
storyThumbnailUrlStory-level thumbnail URL
snapIdIdentifier of the Story snap
snapIndexZero-based position inside the Story
snapMediaTypeNormalized image, video, or unknown value
snapMediaTypeCodeOriginal Snapchat media type code
mediaUrlDirect public Snapchat CDN media URL
previewUrlPublic preview image URL, when available
overlayUrlOverlay asset URL, when available
attachmentUrlAttached public URL, when available
postedAtISO publication time, when exposed
postedTimestampUnix publication timestamp in seconds
isSponsoredSponsored flag, when Snapchat supplies it
scrapedAtISO time when the Actor collected the item

Nullable fields remain null when Snapchat does not expose them.

How to scrape Snapchat public profile Stories

  1. Open the Actor input page.
  2. Enter one or more values in Snapchat usernames, or add public profile URLs.
  3. Set Maximum Story snaps to bound the output.
  4. Click Start.
  5. Open the Dataset tab when the run finishes.
  6. Export the records as JSON, CSV, Excel, XML, or RSS.

For repeat monitoring, save the input as an Apify Task and add a schedule.

Input parameters

usernames

An array of up to 100 public Snapchat usernames.

The Actor accepts values with or without @. Usernames are matched case-insensitively and deduplicated.

{
"usernames": ["nfl", "@kyliejenner"],
"maxItems": 25
}

startUrls

An array of up to 100 Snapchat profile URLs in either supported form:

  • https://www.snapchat.com/add/nfl
  • https://www.snapchat.com/@nfl

Other domains and non-profile Snapchat URLs fail validation.

maxItems

Maximum total Story snap records saved across all profiles.

  • minimum: 1
  • maximum: 10000
  • default: 100

At least one username or profile URL is required.

Output example

The default dataset contains one item per current Story snap. This shortened record reflects the real output shape:

{
"profileUsername": "nfl",
"profileDisplayName": "NFL Official",
"profileUrl": "https://www.snapchat.com/add/nfl",
"businessProfileId": "21f4e252-2d8b-44f7-a7ac-21a767730b7f",
"storyId": "nfl",
"storyType": 5,
"storyTitle": null,
"snapId": "Rm9NJEHmSy6saC3njUVAVAAAga2lncmJmenJrAaAK9NPkAaAK9F59AAAAAA",
"snapIndex": 0,
"snapMediaType": "video",
"snapMediaTypeCode": 1,
"mediaUrl": "https://cf-st.sc-cdn.net/...",
"previewUrl": "https://cf-st.sc-cdn.net/...",
"postedAt": "2026-08-16T14:23:02.000Z",
"postedTimestamp": 1786890182,
"isSponsored": null,
"scrapedAt": "2026-08-17T14:12:14.495Z"
}

CDN links are controlled by Snapchat and may expire. Copy or process media promptly when your lawful workflow requires retention.

How much does it cost to scrape Snapchat public profile Stories?

The Actor uses pay-per-event pricing:

  • $0.01000 once when a run starts;
  • one item event for each Story snap saved.

The BRONZE item price is $0.001896 per Story snap. Higher subscription tiers receive progressively lower item prices.

TierPrice per Story snap
FREE$0.0021804
BRONZE$0.001896
SILVER$0.0014789
GOLD$0.0011376
PLATINUM$0.0007584
DIAMOND$0.00053088

Example BRONZE Actor charges:

Saved snapsEstimated Actor charge
1$0.011896
10$0.02896
25$0.05740
100$0.19960

A valid profile with no currently visible Story produces no item event. Platform usage charges may be separate according to your Apify plan and the active pricing display.

Monitor new Snapchat Story snaps

A scheduled Apify Task can turn each run into a timestamped snapshot:

  1. Save the usernames and limit as a Task.
  2. Schedule it at a frequency appropriate for your use case.
  3. Store each dataset or send it through a webhook.
  4. Compare profileUsername plus snapId against the previous run.
  5. Treat unseen IDs as additions and missing IDs as no longer visible.

The Actor reports current state. It does not maintain history or send alerts by itself.

Export Snapchat Story data

Apify datasets support:

  • JSON for applications and APIs;
  • CSV or Excel for campaign analysts;
  • XML and RSS for compatible tools;
  • Google Sheets through Apify integrations;
  • webhooks for event-driven pipelines;
  • dataset API reads from ETL jobs.

For large monitoring programs, schedule bounded profile groups and persist the resulting snap IDs in your own database.

Run with the Apify API

Replace YOUR_TOKEN with an Apify API token.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~snapchat-public-profile-stories/run-sync-get-dataset-items" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"usernames":["nfl"],"maxItems":10}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/snapchat-public-profile-stories').call({
usernames: ['nfl', 'kyliejenner'],
maxItems: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/snapchat-public-profile-stories').call(
run_input={'usernames': ['nfl'], 'maxItems': 10}
)
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use with MCP and AI agents

Add this Actor to Claude Code through Apify MCP:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/snapchat-public-profile-stories"

Claude Desktop setup

Use this MCP configuration in Claude Desktop:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/snapchat-public-profile-stories"
}
}
}

Cursor setup

Add the same server URL in Cursor under Settings → MCP → Add server.

VS Code setup

Add the same HTTP MCP server URL to your VS Code MCP configuration.

Example prompts:

  • "Run the Snapchat Public Profile Stories Scraper for nfl and return the newest video snap IDs."
  • "Check these public Snapchat profile URLs and save up to 50 current Story items."
  • "Compare this run's snap IDs with yesterday's dataset and list additions."

The comparison step uses your agent or downstream storage; the Actor itself returns the current snapshot.

Integrations and automation patterns

Campaign evidence pipeline

Schedule a Task, send the dataset ID to a webhook, and copy allowed media into approved campaign storage before source links expire.

Creator activity dashboard

Load profileUsername, snapId, snapMediaType, postedAt, and scrapedAt into a warehouse. Build counts and freshness metrics there.

Spreadsheet review

Export a run to Google Sheets so reviewers can open preview and source links without handling raw page HTML.

Change detection

Use snapId as the source key and profileUsername as the partition key. Compare snapshots rather than relying only on timestamps.

Limits and responsible operation

  • Only anonymously reachable public profile data is supported.
  • Private, friends-only, restricted, removed, and expired Stories are unavailable.
  • A public profile may have no current Story; this is a valid empty result.
  • Snapchat can change its public page structure or CDN link lifetime.
  • Media URLs may expire even though the dataset record remains.
  • The Actor does not download media or bypass access controls.
  • The Actor does not expose view counts, replies, private audience data, or Story history.
  • maxItems is global across all supplied profiles.
  • Profiles are fetched in conservative bounded batches.

Use schedules that are proportionate to your monitoring need.

Errors and troubleshooting

Why is the dataset empty?

The supplied public profile may not have a currently visible Story. Check the profile in a logged-out browser. The Actor logs visibleStorySnaps: 0 for a valid empty profile.

Why was a profile skipped?

The username may be invalid, missing, private, unavailable in the public web experience, or temporarily failing upstream. In multi-profile runs, other valid profiles continue.

Snapchat controls CDN link validity. Run the Actor again to collect the currently exposed URL, or copy permitted media promptly in your downstream workflow.

Why did the whole run fail?

A run fails when the input is malformed or none of the supplied profiles can be processed as public profiles. This prevents a misleading successful run with only upstream failures.

This Actor accesses data that Snapchat exposes on logged-out public profile pages.

You are responsible for:

  • following applicable laws and regulations;
  • respecting Snapchat's terms and content rights;
  • collecting only data needed for a legitimate purpose;
  • avoiding harassment, surveillance, or sensitive profiling;
  • protecting exported data and deleting it when no longer needed;
  • obtaining any permissions required to retain or republish media.

Public availability does not remove copyright, privacy, publicity, or contractual obligations. This Actor is not affiliated with or endorsed by Snapchat or Snap Inc.

FAQ

Can I use Snapchat profile URLs instead of usernames?

Yes. Use /add/username or /@username HTTPS URLs on snapchat.com.

Can I mix usernames and URLs?

Yes. They are normalized and deduplicated before collection.

Does it scrape saved Highlights or Spotlight posts?

No. This Actor is intentionally limited to the current public profile Story. Use related Actors for profile metadata, Discover, or supplied Spotlight video URLs.

Does it retrieve expired Story history?

No. It reports only the Story currently exposed on the public profile page.

Does it download images or videos?

No. It exports current direct media and preview links, which keeps runs lightweight.

Can I monitor many profiles?

A run supports up to 100 unique profiles. For recurring monitoring, use a scheduled Task and a bounded maxItems value.

Are timestamps always available?

No. postedAt and postedTimestamp are null if Snapchat does not expose a valid publication time.

How do I avoid duplicates between runs?

Store the pair profileUsername and snapId in your destination, then upsert or compare each new snapshot.

Choose this Actor when the unit you need is a currently visible Story snap tied to a supplied public creator profile.