Snapchat APIWww.Snapchat.com ↗
Retrieve public Spotlight posts, curated stories, and profile data from any Snapchat username via a single API endpoint.
What is the Snapchat API?
The Snapchat API exposes 1 endpoint — get_user_posts — that returns up to 14 structured fields covering a user's public profile, curated story highlights, and up to 25 Spotlight posts with engagement metrics including view count, share count, and comments. It works against any public Snapchat profile by username and includes a pagination cursor for fetching additional Spotlight content beyond the first page.
curl -X GET 'https://api.parse.bot/scraper/3adb94ec-4b29-455a-8a11-81996d999735/get_user_posts?username=mangeshdarji007' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace snapchat-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Snapchat User Posts API — fetch a user's public Spotlight posts and curated stories."""
from parse_apis.snapchat_com_api import Snapchat, UsernameNotFound
client = Snapchat()
# Fetch a user's public profile, spotlight posts, and curated stories.
try:
user = client.users.get(username="mangeshdarji007")
except UsernameNotFound as e:
print(f"Username not found: {e.message}")
raise SystemExit(1)
# Display profile info.
print(f"{user.profile.display_name} (@{user.profile.username})")
print(f"Subscribers: {user.profile.subscriber_count}")
# Browse spotlight posts — typed fields, no manual dict access.
for post in user.spotlight_posts[:5]:
print(f" [{post.media_type}] {post.snap_id[:20]}… views={post.view_count} comments={post.comment_count}")
if post.title:
print(f" title: {post.title[:80]}")
# Browse curated stories.
for story in user.curated_stories[:3]:
print(f" Story: snaps={story.snap_count} thumb={story.thumbnail_url[:60]}…")
print("exercised: users.get / Profile / SpotlightPost / CuratedStory")
Fetches public Spotlight posts and curated stories from a Snapchat user's profile page. Returns profile info, up to 25 spotlight posts with engagement stats (views, shares, comments, boosts), and curated story highlights. Users with no public content return empty arrays. A non-existent username returns an upstream 404 error.
| Param | Type | Description |
|---|---|---|
| usernamerequired | string | Snapchat username (e.g. 'mangeshdarji007'). Leading '@' is stripped automatically. |
{
"type": "object",
"fields": {
"profile": "object containing username, display_name, subscriber_count, bio, profile_picture_url",
"curated_stories": "array of curated story objects with story_id, title, thumbnail_url, snap_count",
"spotlight_posts": "array of spotlight post objects with snap_id, story_id, media_type, timestamp, media_url, thumbnail_url, view_count, share_count, comment_count, boost_count, duration_ms, title, description",
"spotlight_cursor": "pagination cursor for additional spotlight posts (empty string if no more)"
},
"sample": {
"data": {
"profile": {
"bio": "",
"username": "mangeshdarji007",
"display_name": "Mangesh Darji",
"subscriber_count": "8200",
"profile_picture_url": "https://cf-st.sc-cdn.net/aps/bolt/..."
},
"curated_stories": [
{
"title": "",
"story_id": "",
"snap_count": 1,
"thumbnail_url": "https://cf-st.sc-cdn.net/d/..."
}
],
"spotlight_posts": [
{
"title": "",
"snap_id": "W7_EDlXWTBiXAEEniNoMPwAAYd3ZxY2dvYml6AZ_PxnQ6AZ_PxmPBAAAAAw",
"story_id": "W7_EDlXWTBiXAEEniNoMPwAAYd3ZxY2dvYml6AZ_PxnQ6AZ_PxmPBAAAAAw",
"media_url": "https://cf-st.sc-cdn.net/o/...",
"timestamp": "1785897313",
"media_type": "image",
"view_count": "-1",
"boost_count": "20",
"description": "",
"duration_ms": "10000",
"share_count": "0",
"comment_count": "0",
"thumbnail_url": "https://cf-st.sc-cdn.net/o/..."
}
],
"spotlight_cursor": "eyJkZGJfcGFnaW5hdGlvbl9jdXJzb3IiOi..."
},
"status": "success"
}
}About the Snapchat API
What the API Returns
The get_user_posts endpoint accepts a single required parameter — username (leading @ is stripped automatically) — and returns three top-level objects: profile, curated_stories, and spotlight_posts. The profile object includes username, display_name, subscriber_count, bio, and profile_picture_url. If a user has no public content, both arrays return empty.
Spotlight Posts
Each object in spotlight_posts carries snap_id, story_id, media_type, timestamp, media_url, thumbnail_url, view_count, share_count, and additional engagement signals. Up to 25 posts are returned per call. If more exist, the spotlight_cursor field returns a non-empty string you pass back on the next request to paginate through the full post history.
Curated Stories
The curated_stories array returns story highlights the user has pinned to their profile. Each entry includes story_id, title, thumbnail_url, and snap_count, letting you see how many individual snaps are in each story collection without fetching the full story content.
Coverage Notes
Data is limited to publicly visible profiles. Private accounts and content requiring a Snapchat login return empty arrays rather than errors. Subscriber counts and engagement metrics reflect what Snapchat surfaces on the public profile view.
The Snapchat API is a managed, monitored endpoint for Www.Snapchat.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when Www.Snapchat.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official Www.Snapchat.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track Spotlight post view counts and share counts for influencer benchmarking
- Monitor subscriber growth on a public Snapchat creator profile over time
- Aggregate curated story titles and snap counts to map a creator's content catalog
- Pull thumbnail URLs from spotlight posts for visual content analysis pipelines
- Compare engagement metrics (views, shares) across multiple Snapchat creators
- Ingest profile bios and display names for creator database enrichment
- Paginate through a creator's full Spotlight history using the spotlight_cursor field
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Snapchat have an official developer API?+
What does `get_user_posts` return for a private or inactive account?+
profile object with whatever fields are publicly visible, and empty arrays for curated_stories and spotlight_posts. The spotlight_cursor will be an empty string in that case.How does pagination work for Spotlight posts?+
spotlight_cursor field in the response is a non-empty string, pass it as a parameter on the next call to retrieve the next page. An empty string means there are no further posts to fetch.Does the API return the individual snaps inside a curated story?+
story_id, title, thumbnail_url, and snap_count for each curated story, but does not return the individual snap media or metadata within a story. You can fork this API on Parse and revise it to add an endpoint that fetches individual snaps from a given story.