Snapchat Profile & Story Scraper avatar

Snapchat Profile & Story Scraper

Pricing

Pay per event

Go to Apify Store
Snapchat Profile & Story Scraper

Snapchat Profile & Story Scraper

Read public Snapchat profiles: subscriber count, bio, website and verification, plus each Spotlight and Story highlight with its snap count, thumbnail and dates. Paste usernames or profile links.

Pricing

Pay per event

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Read public Snapchat profiles as structured data: the account with its subscriber count, bio, website and verification, and every Spotlight and Story highlight with its snap count, thumbnail and dates.

Paste usernames or profile links. No login, no API key, no browser.

Two kinds of profile, and only one of them has subscribers

Snapchat has two sorts of public account, and they carry different data. This matters more than it sounds, because most scrapers pick one and silently return nothing for the other.

Creator profiles carry a subscriber count, a bio, a website, a profile picture and a verification badge. mrbeast is one: 1,463,000 subscribers. kyliejenner is another: 29,581,900.

Ordinary accounts carry a username, a display name and a snapcode. That is all there is. teamsnapchat is one.

Both are returned. is_creator says which arrived, and subscriber_count is empty rather than 0 on an ordinary account, because it does not have one. Zero would be a claim about its audience. The run summary counts the two kinds apart, so a run of fifty tells you how many were creators without you having to check row by row.

Stories and Spotlight

Each account's highlights come back one row per story:

  • story_typespotlight or story
  • title where the creator set one, thumbnail_url, story_id
  • snap_count — how many snaps are in it
  • posted_at and latest_snap_at — the first and last snap in the story, so a long-running highlight shows its span rather than a single date
  • media_url and first_snap_id
  • the account fields on every row, so a multi-account run is one table

Four accounts returned 64 stories containing 1,186 snaps in under ten seconds.

Turn Include stories off to read only the accounts. That is one request per account and the cheap way to track subscriber counts on a schedule.

Empty highlights are dropped, and reported

A profile lists highlights that have nothing behind them: a story id with an empty snap list and every other field null. Published, those are rows that look like stories and contain nothing.

They are dropped. And when an account's own profile says it has highlights but none of them carried snaps, the run reports it by name in accountsClaimingHighlightsButServingNone. That distinction matters: an account with no highlights and an account whose highlights were not delivered look identical in a table of results, and only one of them is worth running again.

Missing accounts are named

Snapchat answers a username that does not exist with a 404, which is unusually direct, so a bad handle is reported by name instead of quietly returning fewer rows. A run of fifty tells you exactly which one was wrong.

Reading the dates properly

posted_at is the first snap in a highlight and latest_snap_at is the last. A creator who builds one highlight over a week and a creator who posts seven separate ones look very different in a table sorted by date, and only the span tells them apart.

Both are UTC. Snapchat publishes them as unix seconds, and the same field arrives as a bare number on one snap and wrapped in an object on the next, which is the sort of inconsistency that turns a sort into nonsense if it is not unwrapped first. It is.

What this does not cover

No private accounts, no friends, no messages. This reads what a public profile page shows to anyone who visits it, and nothing else exists to read without an account.

No Lenses. They sit on the same page and are a different kind of object with different fields; mixing them into a story table would give you rows with half the columns empty.

No snap contents. A snap is identified, not transcribed or downloaded. You get its id, its media URL and its timestamp.

No search. Snapchat has no public way to search accounts or stories by keyword, so you name the accounts you care about.

What people use this for

Creator research. Subscriber count next to how many stories an account actually publishes separates a large account from an active one. The two are often not the same account.

Campaign tracking. Run the accounts in a campaign on a schedule with stories on, and posted_at gives you publishing cadence per creator over time.

Audience benchmarking. Subscriber counts across a set of creators in one table, refreshed whenever you like, at one request each.

Content research. snap_count and the date span show how creators actually structure a story: a fifteen-snap highlight built over a day is a different thing from a single snap, and the counts make that visible without opening any of them.

Notes

Only public profiles are readable. A private account has no public profile page and is reported as not found.

Subscriber counts move, and stories expire. A run is a snapshot, which is why every story carries its own dates.

Snaps are identified rather than downloaded: media_url points at Snapchat's own CDN and the media itself is not part of the output.

The account's Lenses are visible on the same page but are not returned here; they are a different kind of object and would need their own columns.