Snapchat Profile Scraper
Pricing
Pay per event
Snapchat Profile Scraper
Fetch Snapchat public profile data by username — display name, bio, subscriber count, snapcode, and current story snaps — parsed from the profile page's embedded JSON. Skips private or removed accounts without failing the run.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🎯 What this scrapes
www.snapchat.com/@<username> public profile pages. We parse the
page's embedded Next.js __NEXT_DATA__ payload and return one row per
username: profile info (display name, bio, website, subscriber count,
snapcode) plus the account's current story snaps, when it has one.
🔥 What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffiimpersonates real Chrome / Firefox TLS handshakes so the target sees a browser, not Python. - 🌐 Proxy routing pinned to a US exit via Apify Proxy — the profile payload is geo-aware, so we keep every run on the exit geography that returns full data.
- 🔁 Retries with exponential backoff on
408 / 429 / 503and network errors — up to 5 attempts per profile,Retry-Afterhonoured. - 🧩 Per-username fault isolation — a private, removed, or malformed profile is skipped with a logged reason; it never sinks the rest of the run.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for profiles that actually land in your dataset.
💡 Use cases
- Brand-safety monitoring — track what a creator account is currently posting.
- Influencer research — pull subscriber counts and bios for a shortlist of accounts.
- Social-media monitoring tools — feed structured Snapchat profile data into a dashboard.
- Competitive research — compare public creator profiles across a category.
⚙️ How to use it
- Click Try for free at the top of the page.
- Paste in one or more Snapchat usernames (with or without the leading
@). - Click Start. Output streams into the run's dataset.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
usernames | array (stringList) | yes | — | 1+ Snapchat usernames. A leading @ and blank entries are stripped automatically. |
proxyConfiguration | object (proxy) | no | {"useApifyProxy": true, "apifyProxyGroups": ["BUYPROXIES94952"], "apifyProxyCountry": "US"} | Apify Proxy, pinned to a US exit — the profile payload is geo-aware. |
Example input
{"usernames": ["kyliejenner"],"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["BUYPROXIES94952"],"apifyProxyCountry": "US"}}
📤 Output
Every row is one resolved public profile.
| Field | Type | Notes |
|---|---|---|
username | string | Requested username, normalized (no @). |
is_public_profile | boolean | true when the account has a public creator profile. |
display_name | string | null | Public display name. |
bio | string | null | Profile bio text. |
website_url | string | null | Linked website. |
subscriber_count | integer | null | Public subscriber count. |
profile_picture_url | string | null | Profile picture URL. |
snapcode_image_url | string | null | Snapcode deep-link image. |
has_active_story | boolean | Whether the account currently has a live story. |
story_snap_count | integer | Number of snaps in the current story. |
story_snaps | array | Per-snap media URL, type, and post time. |
page_title | string | null | The profile page's <title> text. |
profile_url | string | https://www.snapchat.com/@<username>. |
scraped_at | string | ISO-8601 UTC timestamp of the fetch. |
Example output
{"username": "kyliejenner","is_public_profile": true,"display_name": "King Kylie 👑","bio": "","website_url": "kyliecosmetics.com","subscriber_count": 29262900,"profile_picture_url": "https://cf-st.sc-cdn.net/...","snapcode_image_url": "https://app.snapchat.com/web/deeplink/snapcode?username=kyliejenner&type=SVG&bitmoji=enable","has_active_story": true,"story_snap_count": 3,"story_snaps": [{"snap_index": 0, "media_type": 0, "media_url": "https://cf-st.sc-cdn.net/d/...", "media_preview_url": "https://cf-st.sc-cdn.net/d/...", "posted_at": "2026-09-18T12:00:00+00:00"}],"page_title": "King Kylie 👑 (@kyliejenner) | Snapchat Stories, Spotlight & Lenses","profile_url": "https://www.snapchat.com/@kyliejenner","scraped_at": "2026-09-24T12:00:00+00:00"}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.20 | One-off warm-up charge per run |
profile-scraped | $0.003 (provisional) | Per resolved public profile pushed to the dataset |
Example: 1 000 profiles at the rates above ≈ $3.20. No subscription, no minimum. The profile-scraped rate is measured against a real batch before publish, per this fleet's pricing rule — the number above may move slightly.
🚧 Limitations
- v1 covers the profile card and current story only — no lenses, curated/spotlight highlights, tagged-tab search, or pagination.
story_snaps[].media_urlandmedia_preview_urlpoint at Snapchat CDN links that expire — Snapchat stories are ephemeral by design, so treat story media as a snapshot, not a durable asset.- A private, removed, or non-public account is a per-item skip, not a run failure — it's counted and reported in the run's status message.
- No authenticated/logged-in views, DMs, or friend-graph data.
❓ FAQ
Do I need a Snapchat account?
No. This Actor reads only the public profile page at snapchat.com/@<username> — no login, no API key.
What happens if a username doesn't exist or isn't public?
The run reports it as a skipped username in the status message and keeps going — one bad username never fails the whole run.
Why does story_snaps come back empty sometimes?
Either the account has no active story right now, or its story expired between your request and ours — Snapchat stories are short-lived by design.
💬 Your feedback
Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.