Snapchat Scraper: Profile Spotlight Story Lens Hashtag Email
Pricing
from $1.75 / 1,000 results
Snapchat Scraper: Profile Spotlight Story Lens Hashtag Email
Scrape Snapchat profiles, Spotlight clips, Stories, AR Lenses, search/hashtag feeds — all in one actor. Extract emails, phones and social handles from bios. AI titles, scene descriptions, audio transcripts, viewer comments, related-clip feeds. Pure HTTP. 31 fields. JSON + CSV.
Pricing
from $1.75 / 1,000 results
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
3
Monthly active users
a day ago
Last modified
Categories
Share
Snapchat Profile, Spotlight, Story, Lens & Hashtag Scraper
All-in-one Snapchat scraper — paste any mix of URL kinds in the same input list and the actor auto-classifies each one:
| Input | Row type emitted |
|---|---|
Profile URL — /@{u}, /add/{u}, or bare username | profile row: bio, subscribers, AR Lenses, live 24h story, all Stories, all Spotlights with AI titles + keywords + scene descriptions + detected language + viewer comments, plus a contacts panel (emails, phones, social handles, link aggregators) |
Spotlight URL — /spotlight/{id} | spotlight row: that clip + full audio transcript + 25 "more like this" related clips + the clip's own comment thread |
Lens URL — /lens/{uuid} or /unlock?uuid={uuid} | lens row: AR Lens detail + creator search tags + 12 related Lenses + Spotlight clips that use this Lens |
Search / hashtag URL — /explore/{query} (or #hashtag) | search row: matching Spotlights, creators, Lenses, Discover episodes, places and topics — all in one normalised payload |
One row per URL. JSON + CSV.
Pure HTTP. No Puppeteer, no Playwright, no headless Chromium, no third-party CAPTCHA solvers.
How it works
-
Input. Paste any mix of:
- Profile URLs —
https://www.snapchat.com/@fcbayernorhttps://www.snapchat.com/add/fcbayern - Spotlight clip URLs —
https://www.snapchat.com/spotlight/{shareId}(or the canonical long form/@{username}/spotlight/{shareId}) - Lens URLs —
https://www.snapchat.com/lens/{uuid}orhttps://www.snapchat.com/unlock?type=SNAPCODE&uuid={uuid} - Search / hashtag URLs —
https://www.snapchat.com/explore/{query} - Bare usernames —
fcbayernor@fcbayern - Bare hashtags —
#UCL - Bare lens UUIDs —
8124c89bb79642518622ddebb088ccc0
- Profile URLs —
-
Process. Server-side resolve, fetch, extract and normalise. No browser overhead.
-
Output. One row per URL — a profile row, spotlight-clip row, lens row, or search row — written to the Apify dataset.
Input
| Field | Type | Required | Notes |
|---|---|---|---|
profileUrls | string[] | yes | Any mix of profile URLs (/add/{u}, /@{u}, bare usernames), Spotlight URLs (/spotlight/{id}), Lens URLs (/lens/{uuid} or /unlock?uuid=...), and search/hashtag URLs (/explore/{q} or #hashtag). Auto-classified. Default includes a profile, a Spotlight clip, a Lens, and a hashtag search. |
maxItems | integer | no | Safety cap on how many URLs from the list get processed. One row per URL = one paid output record. Default 1000. Free-tier users are capped at 100. |
includeSpotlightComments | boolean | no | Include the public viewer-comments thread under each Spotlight (default true). Turn OFF for compact rows / CSV-friendly exports / PII-light workflows. Comments typically run 300–500 per profile and are the heaviest field — disabling cuts row size by ~45%. The spotlightComments[][] shape is preserved (empty arrays), so downstream code that indexes by spotlight position keeps working. |
maxCommentsPerSpotlight | integer | no | When > 0, keeps only the top-N comments per Spotlight by Snapchat's ranking score. Default 0 (no limit). Useful for sentiment analysis when you only need top engagement. |
maxConcurrency / minConcurrency | integer | no | Per-actor parallelism. Default 5 / 1. |
maxRequestRetries | integer | no | Retries before a profile is given up. Default 5. |
proxy | object | no | Default: off (Snapchat profiles aren't gated). Enable a residential pool only if you hit rate limits on a very large input list. |
Example input
Mix any URL kinds freely — auto-classified.
{"profileUrls": ["https://www.snapchat.com/add/fcbayern","@kyliejenner","https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYamRxY2h6Znl4AZ34_8b_AZ34_5HDAAAAAQ","https://www.snapchat.com/lens/8124c89bb79642518622ddebb088ccc0","https://www.snapchat.com/explore/UCL","#fcbarcelona"],"maxItems": 50,"maxConcurrency": 5,"includeSpotlightComments": true,"maxCommentsPerSpotlight": 0,"proxy": { "useApifyProxy": false }}
Yields 6 rows: 2 profile rows (Bayern + Kylie Jenner, each with a contacts panel), 1 Spotlight clip row (with audio transcript + 25 related clips), 1 Lens row (FC Barcelona AR lens + 12 related lenses), and 2 search rows (one per query — each aggregating ~24 matching Spotlights, ~5 creators and ~24 lenses).
Comment-toggle cheat sheet (measured on fcbayern, 25 spotlights)
includeSpotlightComments | maxCommentsPerSpotlight | Comments kept | Row size |
|---|---|---|---|
true (default) | 0 (default) | all 467 | ~322 KB |
true | 5 | top 125 by ranking | ~218 KB |
true | 20 | top ~400 by ranking | ~290 KB |
false | — | 0 (empty threads) | ~177 KB |
Output schema
Four row shapes, distinguished by the rowType field:
rowType: "profile"— emitted for profile URLs. Includes acontactspanel.rowType: "spotlight"— emitted for Spotlight clip URLs. Includes audio transcript + related-feed.rowType: "lens"— emitted for Lens URLs. Includes 12 related lenses + clips using this lens.rowType: "search"— emitted for/explore/{query}URLs and bare#hashtags. Aggregates matching spotlights, creators, lenses, episodes, places and topics.
Eats five competitor SKUs. This actor folds the use cases of Profile Scraper, Spotlight Clip Scraper, Email Scraper, Lens Scraper, and Hashtag/Discovery Scraper — five separately-sold sister products on the Apify marketplace — into a single multi-URL-aware actor. And it surfaces fields that none of them expose: Snapchat's AI-generated Spotlight titles & scene descriptions, per-clip detected-language scores, audio-transcription URLs on Story snaps, full WebVTT audio transcripts, 25-clip related-feed, viewer comment threads.
Profile-level (top-level row)
{"profileUrl": "https://www.snapchat.com/@fcbayern","username1": "FC Bayern", // display name"username2": "fcbayern", // handle"profileImageUrl": "https://cf-st.sc-cdn.net/…","profileDescription": "", // creator bio (when set)"profileLocation": "Munich, Bavaria, Germany","subscribers": 902000, // integer"category": "Sports Team","websiteUrl": "https://fcbayern.com","snapcodeImageUrl": "https://app.snapchat.com/…","badge": 1, // verified badge code"sameAsLinks": [], // external profile links"creationTimestampMs": "1557950746979","lastUpdateTimestampMs": "1778352327000","hasStory": false, // is a live 24h story posted right now?"businessProfileId": "f035a3c6-9e43-4a23-a160-…", // UUID for joining datasets"publisherType": null,"primaryColor": null, // brand theme hex, if set"squareHeroImageUrl": null, // wide hero banner, if set"pageDescription": "FC Bayern is on Snapchat! (@fcbayern) | 902.0k Subscribers | Munich, Bavaria, Germany …","oneLinkUrl": "https://click.snapchat.com/aVHG?…", // universal mobile deeplink"ogImageUrl": "https://us-east1-aws.api.snapchat.com/web-capture/…","relatedAccounts": [ // Snapchat's curated affinity list{ "username": "juventus", "title": "Juventus", "badge": 1, "snapcodeImageUrl": null },{ "username": "mancityofficial", "title": "Man City", "badge": 1, "snapcodeImageUrl": null },{ "username": "chelseafc", "title": "Chelsea Football Club", "badge": 1, "snapcodeImageUrl": null }],"liveStory": { /* current 24h story — see below */ },"lenses": [ /* AR Lenses tab — see below */ ],"stories": [ /* see below */ ],"spotlights": [ /* see below */ ],"spotlightComments": [ /* per-spotlight viewer comments — see below */ ],"contacts": { // see "Contacts" section below"emails": ["press@example.com"],"phones": ["+498912345678"],"socialHandles": {"instagram": "fcbayern","tiktok": "fcbayern","youtube": "fcbayerntv","twitter": "fcbayern","facebook": "FCBayern","telegram": null},"linktreeUrls": ["https://linktr.ee/…"],"websiteUrls": ["https://fcbayern.com", "https://linktr.ee/…"]},"scrapedAt": "2026-05-11T08:21:09.412Z"}
contacts — emails, phones, social handles extracted from bio + website
We run the profile's profileDescription, websiteUrl, and sameAsLinks through a contact-detection pass and surface:
emails[]— every email address found in the biophones[]— international-style phone numbers (digits-only, with leading+)socialHandles— Instagram, TikTok, YouTube, Twitter/X, Facebook, Telegram (bare handles, no@). Recognises both full URLs (instagram.com/brand) and bio shorthand (IG: @brand)linktreeUrls[]—linktr.ee,linkin.bio,bio.link,beacons.ai,allmylinks.com,carrd.coaggregator URLswebsiteUrls[]— every http(s) URL found anywhere in the bio
If a creator hasn't put a given channel in their bio, the corresponding field is null or []. The fields are always present so downstream code can index without null-guarding.
stories[] — curated highlight collections (chronological)
{"storyType": 3,"storyId": "","storyTitle": "","storySubtitle": null,"emoji": null,"thumbnailUrl": "https://cf-st.sc-cdn.net/d/BvC2b4GL…","canonicalUrlSuffix": null,"videoTrackUrl": null,"snapList": [{"snapId": "","snapMediaType": 1,"mediaUrl": "https://cf-st.sc-cdn.net/d/…","mediaPreviewUrl": "https://cf-st.sc-cdn.net/d/…","overlayUrl": null,"attachmentUrl": null,"timestampInSec": "1778311147","snapTitle": null,"snapSubtitles": null,"lat": null, // geo-tag if the snap was tagged with a location"lng": null,"isSponsored": null,"audioTranscriptionUrl": null // Snapchat-hosted WebVTT of the spoken audio, if available}// … up to ~15 snaps per story]}
spotlights[] — single-clip Spotlight posts with engagement + AI enrichments
{"storyId": "W7_EDlXWTBiXAEEn…","thumbnailUrl": "https://bolt-gcdn.sc-cdn.net/bp/…","description": "🟥😤🟥 What we need from our fans against PSG 🤜🤛 #UCL #FCBPSG","hashtags": ["#UCL", "#FCBPSG"],"timestampInSec": "1777998991","uploadDateMs": "1777998991811","durationMs": "44170","width": 540,"height": 960,"mediaUrl": "https://bolt-gcdn.sc-cdn.net/bp/…","mediaPreviewUrl": "https://bolt-gcdn.sc-cdn.net/bp/…","contentUrl": "https://bolt-gcdn.sc-cdn.net/bp/…","deeplink": "https://click.snapchat.com/aVHG?…",// Engagement"viewCount": "15849","shareCount": "94","commentCount": "67","boostCount": "1455","recommendCount": "130",// On-screen text + AI enrichments — exclusive to this actor"embeddedTextCaption": null,"aiTitle": "FC Bayern Players Urge Fans to Wear Red & Bring Energy for Champions League Match","aiDescription": "Athletes discussing fan engagement in soccer.","aiKeywords": ["Bayern Munich training", "football fan energy", "Bayern Munich news","football motivation", "matchday tips"// … up to ~25 LLM tags per clip],"contentKeywords": ["athlete training", "soccer", "fan engagement", "football", "team support"],"detectedLanguages": [{ "languageCode": "de", "score": 0.9259 }],// Linked sounds / business profile cards attached to the clip"contextCards": [{ "contextType": 2, "title": "Original Sound", "subtitle": "fcbayern", "url": null, "snapcodeUrl": null, "thumbnailUrl": "https://cf-st.sc-cdn.net/d/…", "hasBadge": false, "id": "108293712385" },{ "contextType": 3, "title": "FC Bayern", "subtitle": "fcbayern", "url": "https://www.snapchat.com/@fcbayern", "snapcodeUrl": "https://app.snapchat.com/web/deeplink/snapcode?username=fcbayern&type=SVG&bitmoji=enable", "thumbnailUrl": "https://cf-st.sc-cdn.net/aps/bolt/…", "hasBadge": true, "id": "f035a3c6-9e43-4a23-a160-701dec6bb12b" }]}
lenses[] — the AR Lenses tab on the profile
{"lensName": "FC Barcelona","lensCreatorDisplayName": "FC Barcelona","lensCreatorUsername": null,"iconUrl": "https://bolt-gcdn.sc-cdn.net/3/RBXv7yxQeo4VeQLNNAJmM?…","previewImageUrl": "https://lens-preview-storage.storage.googleapis.com/previewmedia/preview_thumbnail/…webp","previewVideoUrl": "https://lens-storage.storage.googleapis.com/previewvideo/…","unlockUrl": "https://www.snapchat.com/unlock/?type=SNAPCODE&uuid=8124c89bb79642518622ddebb088ccc0&metadata=01","isOfficialSnapLens": false,"lastUpdatedEpoch": 1777434016}
liveStory — the creator's currently-live 24-hour ephemeral story (or null)
Same shape as a stories[] entry, but the content disappears 24 hours after posting — scrape it now or lose it. storyType is typically 5 for the live story (vs 3 for curated highlights). FC Barcelona had 32 active snaps within the last 14 hours at the time of writing.
spotlightComments[][] — public viewer comments under each Spotlight clip
A 2-D array indexed by Spotlight position. spotlightComments[i] is the comment thread under spotlights[i].
[// comments under spotlights[0]:[{"snapId": "W7_EDlXWTBiXAEEniNoMPwAA…","text": "Hala madrid","authorDisplayName": "Oswald🇮🇪⚽️✝️","authorBitmojiAvatarId": "105791014945_7-s5","timestampMs": "1778424523857","threadedReplyCount": 4,"rankingScore": 1812,"reactions": [{ "reactTypeId": "1", "reactCount": "10" }],"totalReactions": 10}// … typically 15–25 top-level comments per spotlight on active profiles]]
Real volume from a single FC Barcelona scrape: 331 comments across 16 spotlights. Bayern Munich: 467 comments across 25 spotlights.
Spotlight clip row (rowType: "spotlight")
Emitted when the input URL is a Spotlight clip (/spotlight/{id} or /@{u}/spotlight/{id}).
{"rowType": "spotlight","spotlightUrl": "https://www.snapchat.com/spotlight/W7_EDl…","storyId": "W7_EDlXWTBiXAEEniNoMPwAA…","shareId": "W7_EDlXWTBiXAEEniNoMPwAA…","creator": {"username": "fcbarcelona","displayName": "FC Barcelona","followerCount": "0","websiteUrl": null},// Same clip-level fields as a profile-row's spotlights[] entry:"thumbnailUrl": "https://bolt-gcdn.sc-cdn.net/bp/…","description": "#fcbarcelona","hashtags": ["#fcbarcelona"],"uploadDateMs": "1778418164840","durationMs": "9930","width": 540,"height": 960,"mediaUrl": "https://bolt-gcdn.sc-cdn.net/bp/…","mediaPreviewUrl": "https://bolt-gcdn.sc-cdn.net/bp/…","contentUrl": "https://bolt-gcdn.sc-cdn.net/bp/…","deeplink": "https://click.snapchat.com/aVHG?…","viewCount": "16408","shareCount": "97","commentCount": "93","boostCount": "2751","recommendCount": "305","embeddedTextCaption": null,// AI enrichments (same shape as in profile-row spotlights):"aiTitle": "FC Barcelona Players Celebrate Birthday with Teammates","aiKeywords": [ /* up to ~25 LLM tags */ ],"aiDescription": "Athletes discussing fan engagement in soccer.","contentKeywords": ["athlete training", "soccer", "fan engagement"],"detectedLanguages": [{ "languageCode": "en", "score": 0.9921 }],"contextCards": [ /* linked sound + business profile */ ],// SPOTLIGHT-URL EXCLUSIVES (not available from the profile page):"transcriptUrl": "https://bolt-gcdn.sc-cdn.net/3/pLovkAlk…vtt?…","transcript": "Hey coolers, it's Olivia Rodrigo and I am wishing the FC Barcelona team a successful El Clasico. Forza Barça!","comments": [ /* 22 comments under THIS clip, flat list */ ],"relatedSpotlights": [/* up to 25 "more like this" clips, each a full SnapchatSpotlightobject with its own AI title / keywords / detected language/ engagement stats / context cards. Snapchat ranks them byrelevance to the input clip. */],"scrapedAt": "2026-05-11T08:21:09.412Z"}
Why this is exclusive: the WebVTT audio transcript and the 25-clip related-feed are only present on the Spotlight clip page. Scraping the creator's profile gives you the same clip's metadata + engagement + AI enrichments — but no transcript and no related-feed.
Lens row (rowType: "lens")
Emitted from /lens/{uuid} or /unlock?uuid={uuid} URLs (bare 32-char hex UUIDs are also auto-canonicalised).
{"rowType": "lens","lensUrl": "https://www.snapchat.com/lens/8124c89bb79642518622ddebb088ccc0","scannableUuid": "8124c89bb79642518622ddebb088ccc0","lensId": "53181080886","lensName": "FC Barcelona","lensCreatorDisplayName": "FC Barcelona","lensCreatorUsername": "fcbarcelona","creatorProfileUrl": "https://www.snapchat.com/@fcbarcelona","iconUrl": "https://bolt-gcdn.sc-cdn.net/3/…","previewImageUrl": "https://lens-preview-storage.storage.googleapis.com/…webp","previewVideoUrl": "https://lens-storage.storage.googleapis.com/previewvideo/…","unlockUrl": "https://snapchat.com/unlock/?type=SNAPCODE&uuid=…&metadata=01","creatorSearchTags": ["event", "football", "game", "sport", "Barcelona", "FCB"],"isOfficialSnapLens": false,"lastUpdatedEpoch": 1777434016,"moreLenses": [ /* up to 12 Snapchat-curated related Lenses */ ],"spotlightsUsingThisLens":[ /* Spotlight clips that USE this Lens — often empty for brand lenses, populated for trending creator lenses */ ]}
Search row (rowType: "search")
Emitted from /explore/{query} URLs and bare #hashtags. Aggregates all 6 of Snapchat's search sections into a single normalised payload.
{"rowType": "search","searchUrl": "https://www.snapchat.com/explore/UCL","query": "UCL","spotlights": [/* up to 24 Spotlight clips matching the query — same shape as theper-profile spotlights[] entries (engagement stats, hashtags,content keywords, media URLs). AI enrichments are not on the searchpayload — use the Spotlight URL row type if you need aiTitle etc. */],"creators": [{"username": "ucl","title": "ᴬ ᴼ ᴬ 🌪️","badge": null,"subscriberCount": 805,"bio": "🐎 …","profilePictureUrl": "https://cf-st.sc-cdn.net/aps/bolt/…","snapcodeImageUrl": null,"businessProfileId": "cfa17514-24d6-4e2d-9def-…"}],"lenses": [{"lensName": "UCL Final 2020","lensCreatorDisplayName": "Nabhan Mohtesham","lensCreatorUsername": null,"iconUrl": "https://lens-storage.storage.googleapis.com/png/…","previewImageUrl": null,"previewVideoUrl": null,"unlockUrl": "https://www.snapchat.com/unlock/?type=SNAPCODE&uuid=…","isOfficialSnapLens": false,"lastUpdatedEpoch": null}],"episodes": [ { "title": "Beckham pulled this off for his first UCL match with PSG 😳", "publisherName": null } ],"places": [ { "title": "Champions League Stadium", "subtitle": "London, UK" } ],"topics": ["ucl"],"counts": { "spotlights": 24, "creators": 4, "lenses": 24, "episodes": 12, "places": 10, "topics": 1 }}
What makes this richer than the competition
We surveyed all 17 Snapchat actors on the Apify marketplace (May 2026):
| Capability | Competitor actors | This actor |
|---|---|---|
| Per-profile top-level fields | ~12 | 31 |
| Per-Spotlight fields | ~6 | 25 |
| Per-Spotlight-clip-row fields | n/a (separate SKU) | 33 (incl. transcript + 25-clip related feed) |
| Per-Story-snap fields | 4–5 | 13 (incl. geo, on-screen text, audio-transcript URL) |
AI-generated aiTitle per Spotlight | ❌ | ✅ (15 / 16 clips for active creators) |
AI-generated aiKeywords (up to 25) | ❌ | ✅ |
AI scene aiDescription | ❌ | ✅ |
| Snapchat content-classification keywords | ❌ | ✅ |
Per-clip detectedLanguages with confidence | ❌ | ✅ |
| Public viewer comments under each Spotlight | ❌ | ✅ (300–500 per profile) |
| Live 24h ephemeral story snaps | Separate sister product | ✅ (folded into the same row) |
AR lenses[] panel | 1 of 17 actors | ✅ |
| Snapchat's "Related Accounts" affinity panel | 2 of 17 actors | ✅ |
Live-story flag (hasStory) | ❌ | ✅ |
| Business profile UUID (join key) | ❌ | ✅ |
| Universal deeplink + OG share image | ❌ | ✅ |
Spotlight contextCards (linked sound + biz card) | ❌ | ✅ |
| Single Spotlight clip URL → row (separate product) | easyapi/snapchat-spotlight-detail-scraper, crawlerbros/snapchat-spotlight-video-downloader | ✅ (folded into the same actor) |
| Full WebVTT audio transcript of a Spotlight clip | ❌ | ✅ (transcript + transcriptUrl) |
| 25-clip "more like this" related-feed per Spotlight URL | ❌ | ✅ (with full AI enrichment per related clip) |
| Email / phone / social-handle extraction from profile bios | easyapi/snapchat-email-scraper (740 users — separate product) | ✅ (folded into every profile row's contacts panel) |
| Lens URL → row (separate product) | ❌ | ✅ (incl. 12 related lenses + clips using the lens) |
| Search / hashtag URL → row (separate product) | crawlerbros/snapchat-hashtag-scraper (7 users), easyapi/snapchat-popular-accounts-scraper (92 users — separate products) | ✅ (folded into one search row aggregating 6 sections) |
Pricing
Two-tier pay-per-event:
| Event | When | Suggested rate |
|---|---|---|
outputrecord | Once per dataset row pushed (profile, spotlight-clip, lens, or search row) | configured on the actor page |
additional-data | Once per nested item inside a row — see counting rules below | $0.75 per 1,000 items ($0.00075 each) |
What counts as additional-data
| Row type | Items billed |
|---|---|
| Profile row | every story + every spotlight clip + every AR Lens + every viewer comment + every related-account entry + every live-24h-story snap |
| Spotlight-clip row | every viewer comment under THIS clip + every entry in the 25-clip related-feed |
| Lens row | every related lens (moreLenses) + every clip that uses this lens (spotlightsUsingThisLens) |
| Search / hashtag row | every matching Spotlight + every matching creator + every matching Lens + every Discover episode + every place + every topic |
Real-world cost preview
Measured on the default 4-URL prefill (1 profile + 1 spotlight + 1 lens + 1 search):
| Row | Base outputrecord | Additional items | additional-data cost |
|---|---|---|---|
profile (@fcbayern) | 1× | 511 (16 stories + 25 spotlights + 467 comments + 3 related) | $0.383 |
| spotlight (FC Bayern UCL clip) | 1× | 47 (22 comments + 25 related) | $0.035 |
| lens (FC Barcelona AR) | 1× | 12 (12 moreLenses) | $0.009 |
search (UCL) | 1× | 75 (24 spotlights + 4 creators + 24 lenses + 12 episodes + 10 places + 1 topic) | $0.056 |
| Run total | 4× outputrecord | 645 | $0.484 + base |
Why two tiers
The base outputrecord rate keeps simple per-URL pricing predictable. The additional-data event aligns cost with delivered value — a profile row with 467 viewer comments and 25 AI-tagged Spotlight clips costs more than an empty-bio profile, exactly as it should.
Buyers who want to cap costs can turn includeSpotlightComments off (drops ~300–500 items per profile) or set maxCommentsPerSpotlight: N to keep only the top-N comments per Spotlight. Both knobs reduce the additional-data bill proportionally.
Free-tier users are capped at 100 rows per run (the outputrecord ceiling). The additional-data event has no separate cap.
Pagination & limits
For each profile row, the actor returns the first batch of items per tab — the same set Snapchat itself shows on the anonymous profile landing page:
| Tab | Typical first-batch size |
|---|---|
| Stories (curated highlights) | up to 16 |
| Spotlight clips | up to ~25 |
| Lenses (AR) | typically 0–12 — full list |
| Live 24h story | all snaps in the active window |
| Related accounts | 3 (Snapchat's hard cap) |
| Spotlight comments per clip | all top-level comments (~15–30) |
Why first-batch only: Snapchat's profile page is server-rendered. The pagination cursors that would load older content (curatedHighlightsCursor, spotlightHighlightsCursor, lensCursor) point to an internal backend (ingress-us-east1-aws.api.snapchat.com/web-stories-api) that requires a server-side SC-LCA-1 token Snapchat does not expose publicly. Loading deeper history would require an authenticated Snapchat account — out of scope for a public-data scraper.
This is the same ceiling every other Snapchat scraper on the Apify marketplace hits — none paginate. For most accounts the first batch covers all recent activity; for heavily-active creators with 50+ archived stories, older content is not retrievable without auth.
Notes & limitations
- Public profiles only. Private accounts, age-gated content, and deactivated users are skipped and logged.
- Stories vs spotlights.
stories[]are chronological collections of snaps a creator pinned to their profile.spotlights[]are single-clip TikTok-style snaps with engagement metrics (views, shares, comments). - Subscribers are returned as an integer.
- Category is the human label that Snapchat displays on the profile (e.g.
"Sports Team"). - Anti-bot. A multi-stack fallback layer is wired up so the actor keeps working if Snapchat tightens up over time — no input changes needed on your end.
Support
Issues, feature requests, or custom output shapes? Open a ticket on the actor's Apify page or message the maintainer.