Snapchat Creator Profile & Highlights Extractor avatar

Snapchat Creator Profile & Highlights Extractor

Pricing

from $0.49 / 1,000 results

Go to Apify Store
Snapchat Creator Profile & Highlights Extractor

Snapchat Creator Profile & Highlights Extractor

Turn Snapchat usernames into structured profile records with bio, subscriber count, verification status, story highlights, Spotlight videos, AR lenses, and related creators.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

vexaloom-labs

vexaloom-labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Paste a list of Snapchat usernames or profile links and receive one structured record per account: identity, bio and links, subscriber and verification signals, curated highlights, Spotlight videos with captions and engagement, active story snaps, lenses, contacts and the accounts Snapchat lists as related. No Snapchat login, cookies or API key is needed.

What this actor does

  • Normalises bare usernames, @username, /add/ links and https://www.snapchat.com/@username links, then reads the public profile page once per account.
  • Builds a flat, joinable record instead of dumping raw page data: identity, coverage, flags, counts, highlights, Spotlight, story, lenses, comments, contacts and related accounts.
  • Merges each Spotlight card with its metadata, so every entry carries the real storyId, spotlightUrl, view/share/comment/boost/recommend counts, caption, hashtags, AI title/description/keywords and a transcript URL when one exists.
  • Drops empty Spotlight slots, placeholder rows, 1970 timestamps, negative sentinel counts and empty strings at every depth. A field the source genuinely lacks is omitted, never zero-filled.
  • Derives hasStory from the actual active story snaps instead of the stale page flag.
  • Can expand one hop into related accounts, with isSeed, sourceUsername and discoveryDepth recorded so seed rows and discovered rows stay distinguishable.
  • Supports optional full highlight snap lists with a per-highlight snap cap, and caps the total number of profile records.

Output per profile

Core fields

FieldDescription
usernameSnapchat username.
displayNamePublic display name.
accountType"public" or "private" (personal account).
profileStatus"public", "personal", "not_found" or "invalid".
recordType"profile" for profile rows, "error" for failed entries.
isVerifiedWhether the account carries Snapchat's verification badge.
subscriberCountSubscriber count when Snapchat publishes it. Hidden counts are omitted.
bio / websiteUrlProfile bio and linked website, when present.
profileUrlCanonical profile URL (/@username).
profilePictureUrl / snapcodeImageUrl / squareHeroImageUrlAvatar, Snapcode and hero image URLs.
category / subcategory / publisherTypeContent category and publisher identifiers.
businessProfileId / hostUserIdBusiness profile and host identifiers, when exposed.
address / mutableName / primaryColorOptional profile presentation fields.
shouldHideUsernameWhether Snapchat hides the username in its own UI.
hasStory / hasCuratedHighlights / hasSpotlightHighlightsWhether each content type is present now.
storySnapCount / curatedHighlightCount / spotlightCount / lensCount / relatedAccountCountFlat counts. storySnapCount and lensCount describe the profile even when those sections are disabled; curatedHighlightCount, spotlightCount and relatedAccountCount reflect the entries returned after caps.
createdAt / lastUpdatedAtAccount creation and last-update timestamps in ISO 8601 UTC.
sameAsLinksCross-platform links listed for the profile.
contactsLocally parsed emails, phones, social handles, Linktree and website URLs.
engagementSummarySpotlight totals for the returned entries (after maxHighlightsPerUser): views, shares, comments, boosts, recommends and average views.
isSeed / sourceUsername / discoveryDepthisSeed is set on every profile row; sourceUsername and discoveryDepth appear on discovered rows.
scrapedAtTimestamp this actor fetched the record (ISO 8601 UTC).

curatedHighlights[]

Each entry keeps highlightId, storyTitle, thumbnailUrl, snapCount, firstSnapUrl and firstSnapType. With includeHighlightSnaps enabled, each entry also contains snaps[] with snapIndex, snapId (only when non-empty), mediaUrl, mediaPreviewUrl, mediaType, postedAt, snapTitle, lat, lng, isSponsored, hasAttachment and transcriptUrl.

spotlightHighlights[]

The canonical Spotlight list. Every entry has a storyId and spotlightUrl, plus thumbnailUrl, mediaUrl, mediaPreviewUrl, mediaType, transcriptUrl, uploadedAt, durationMs, width, height, caption, hashtags, viewCount, shareCount, commentCount, boostCount, recommendCount, creator fields, aiTitle, aiDescription, aiKeywords, contentKeywords, contextCards and detectedLanguages when the page provides them.

spotlightMetadata[] (when includeSpotlightMeta is true)

A backward-compatible metadata array with the same placeholder and sentinel fixes, plus storyId and spotlightUrl. It is capped by maxHighlightsPerUser. spotlightHighlights[] is the recommended, merged view.

activeStorySnaps[] and activeStoryMeta (when includeActiveStory is true)

Per snap: snapIndex, snapId, mediaUrl, mediaPreviewUrl, mediaType, postedAt, snapTitle, lat, lng, hasAttachment, audioTranscriptionObjectUrl, isSponsored and storySource. Story-level metadata appears in activeStoryMeta when the page exposes it.

lenses[] (when includeLenses is true)

scannableUuid, lensName, lensCreatorDisplayName, lensCreatorUsername, lensId, lensPreviewImageUrl, lensPreviewVideoUrl, iconUrl, unlockUrl, userProfileUrl, lensCreatorSearchTags, isOfficialSnapLens, lastUpdatedAt and lensUrl. The UUID is recovered from the unlock link when the page omits the dedicated field.

spotlightComments[] (when includeComments is true)

commentId, snapId, replyText, reactionCounts, likeCount, commenterDisplayName, commenterBitmojiAvatarId, commenterBitmojiSelfieId, commenterProfileLogoUrl, commenterId, commenterProfileId, approvalState, postedAt, updatedAt, rankingScore, threadedReplyCount and reportCount. Duplicate comments are removed within a profile.

relatedAccounts[]

username, displayName, profileUrl, profilePictureUrl, isVerified, subscriberCount (only when published), bio, snapcodeImageUrl, category, websiteUrl, presence flags and subscribeLink with oneLinkBaseUrl, deepLinkUrl and iosAppStoreUrl.

Personal and error records

Personal accounts return username, displayName, profileUrl, snapcodeImageUrl, optional Bitmoji URLs, accountType: "private", profileStatus: "personal", isVerified: false, recordType and scrapedAt.

An unknown or unparseable profile returns inputUsername, profileStatus, recordType: "error", error and scrapedAt. Error rows count toward maxItems.

Legacy cursors

cursors is retained for compatibility: curatedHighlightsCursor, spotlightHighlightsCursor and lensCursor. It is a raw cursor object and is not required to read the records.

Input

FieldTypeDefaultDescription
usernamesArray of strings–Required. Snapchat usernames or profile URLs: brentrivera, @brentrivera, https://www.snapchat.com/add/brentrivera, https://www.snapchat.com/@brentrivera.
includeLensesBooleantrueInclude lenses published by the profile.
includeSpotlightMetaBooleantrueMerge Spotlight metadata into spotlightHighlights[] and keep the legacy metadata array.
includeActiveStoryBooleantrueInclude the current public story snaps.
includeHighlightSnapsBooleanfalseAdd the full snap list to each curated highlight.
includeCommentsBooleanfalseInclude embedded Spotlight comments.
maxRelatedAccountsInteger–Cap related accounts per profile. 0 excludes them.
maxHighlightsPerUserInteger–Cap curated highlights, Spotlight entries and legacy spotlightMetadata[] rows per profile. 0 excludes all three; counts and engagement totals follow the capped list.
maxSnapsPerHighlightInteger0With includeHighlightSnaps, cap snaps per highlight. 0 means no cap, maximum 500.
maxItemsInteger–Stop after this many profile rows, including error rows.
relatedProfilesLimitInteger0Scrape up to this many unique related accounts after the supplied profiles. One hop only.
proxyConfigurationObject–Optional proxy configuration. Public profiles work without one.

Example: quick profile lookup

{
"usernames": ["brentrivera", "https://www.snapchat.com/@khaby.lame"]
}

Example: lightweight run

{
"usernames": ["teamsnapchat"],
"includeLenses": false,
"includeSpotlightMeta": false,
"includeActiveStory": false,
"maxRelatedAccounts": 0
}

Example: full enrichment with comments and highlight snaps

{
"usernames": ["kyliejenner"],
"includeLenses": true,
"includeSpotlightMeta": true,
"includeActiveStory": true,
"includeHighlightSnaps": true,
"maxSnapsPerHighlight": 10,
"includeComments": true,
"maxHighlightsPerUser": 5
}
{
"usernames": ["nba"],
"relatedProfilesLimit": 3,
"maxItems": 4
}

Use cases

  • Influencer vetting — check verification, published subscriber counts, recent Spotlight performance and the links a creator lists.
  • Campaign benchmarking — compare total Spotlight views, shares and comments across a roster of accounts.
  • Contact discovery — collect public emails, phone numbers and social handles from bios and linked pages without extra requests.
  • Content research — export captions, hashtags, AI titles and transcript URLs for a creator's current Spotlight catalog.
  • Network mapping — expand one hop into the accounts Snapchat associates with a brand, with provenance on every discovered row.
  • Media archiving — capture highlight, story and Spotlight media URLs for a point-in-time snapshot.

FAQ

Do I need a Snapchat account or cookies? No. The actor reads the same public profile page that opens in a browser without signing in.

Why is subscriberCount missing on some records? Snapchat hides the count on some accounts. A hidden count is omitted rather than written as 0. When Snapchat publishes a count it is rounded by Snapchat, commonly to the nearest 100.

Why does a Spotlight entry have no view count? Some entries have no public engagement data. A count is included only when Snapchat supplies a non-negative value; negative sentinels are dropped.

What is the difference between curatedHighlights and spotlightHighlights? Curated highlights are albums saved from the creator's story. Spotlight highlights are Spotlight videos pinned to the profile. Both are limited to what the public profile page exposes.

How many highlights, Spotlights, lenses or related accounts can a profile have? The public page currently exposes about 30 Spotlight slots, about 18 curated highlights, up to 16 lenses and up to 3 related accounts per profile. The actor reports exactly what the page returns; it does not promise full history.

Why are some media URLs no longer playable later? Snapchat's CDN links can carry expiring tokens. Download or cache media promptly after a run.

Does a personal account return highlights or stories? Personal accounts expose very little publicly. They return identity, Snapcode and Bitmoji assets when available, and profileStatus: "personal" explains the reduced record.

How does related-account expansion work? Set relatedProfilesLimit above 0. The actor reads the related list from the supplied profiles, de-duplicates usernames, and scrapes one hop only. Discovered profiles keep isSeed: false, sourceUsername and discoveryDepth: 1.

Are empty fields written as null? No. Empty strings, nulls, empty arrays and empty objects are removed at every depth. Legitimate false values and numeric 0 from the source are preserved.

Is this affiliated with Snapchat? No. This actor reads public profile pages and is not affiliated with, endorsed by, or supported by Snap Inc.

Limitations

  • Subscriber counts are rounded by Snapchat and hidden on some accounts.
  • The profile page exposes a fixed batch of highlights and Spotlight entries, not the account's full history.
  • Full comment-thread pagination and transcript text are owned by separate actors; this actor returns the embedded comments and transcript URLs only.
  • Personal accounts expose minimal public data.
  • Snapchat can change its page format at any time. When the page cannot be parsed, the actor returns an explicit error row instead of invented values.