LurkAPI Snapchat API
Public profiles, live stories, highlights and Spotlight videos from Snapchat.
Public profiles, live stories, highlights and Spotlight videos from Snapchat.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/lurkapi:lurkapi-snapchat-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Lurkapi Snapchat API
version: 1.0.0
description: 'Operations tagged Snapchat across 2 of this provider''s published API definitions: lurkapi-openapi-api.json, lurkapi-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.lurkapi.com
security:
- apiKey: []
tags:
- name: Snapchat
description: Public profiles, live stories, highlights and Spotlight videos from Snapchat.
paths:
/v1/snapchat/profile:
get:
operationId: snapchat_profile
tags:
- Snapchat
summary: Profile and stories
description: 'A public profile with its live story, highlights and Spotlight videos, with direct media links.
Use it to see what a creator or brand is posting on Snapchat right now, without an account. One call returns the profile, the live public story (`story`), saved highlights and up to ~25 recent Spotlight videos.
**Only Public Profiles post to the web.** For a regular account you get the username, display name and Snapcode, `isPublic: false` and empty lists. That''s not an error. Friends-only and private stories are never visible.
**Media links** point straight at Snapchat''s CDN and open without cookies. Story snaps are temporary (usually 24 hours; some creators keep theirs up for several days), so save what you need.
Unknown usernames return 404 `not_found`.
Cost: 1 credit.'
externalDocs:
url: https://lurkapi.com/docs/snapchat/profile
x-credits: 1
parameters:
- name: handle
in: query
required: true
description: Snapchat username, with or without @ (e.g. `nba`), or the profile URL (`snapchat.com/add/nba`, `snapchat.com/@nba`).
schema:
description: Snapchat username, with or without @ (e.g. `nba`), or the profile URL (`snapchat.com/add/nba`, `snapchat.com/@nba`).
type: string
example: nba
responses:
'200':
description: A public profile with its live story, highlights and Spotlight videos, with direct media links.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
const: true
description: 'Always true here; errors have `success: false`.'
credits_remaining:
type: number
description: 'Your balance after this call. On anonymous playground calls: free tries left today.'
credits_charged:
type: number
description: 'Credits this call cost; 0 on free endpoints. On anonymous playground calls: tries used (1).'
profile:
type: object
properties:
username:
type: string
description: Username, lowercase.
displayName:
description: Display name.
type:
- string
- 'null'
bio:
description: Bio; null if empty or not public.
type:
- string
- 'null'
subscriberCount:
description: Followers, as Snapchat gives them (in steps of 100). The field keeps its old name from when Snapchat called them subscribers. null when the creator hides it or the account isn't public.
type:
- number
- 'null'
website:
description: Website link from the profile, with `https://` added when the creator left it out.
type:
- string
- 'null'
avatarUrl:
description: Profile picture.
type:
- string
- 'null'
snapcodeUrl:
description: The account's Snapcode (SVG), scannable to add them.
type:
- string
- 'null'
category:
description: Profile category, e.g. `people` or `business-group`.
type:
- string
- 'null'
subcategory:
description: Profile subcategory, e.g. `artist` or `sports-league`.
type:
- string
- 'null'
badge:
anyOf:
- type: string
enum:
- star
- tick
- snapchat_plus
- type: 'null'
description: 'Badge next to the name: `star` (Snap Star), `tick` (verified checkmark) or `snapchat_plus`; null without one.'
verified:
type: boolean
description: Has a Snap Star or checkmark badge.
isPublic:
type: boolean
description: Has a Public Profile. Only public profiles show stories, highlights and Spotlight on the web; for other accounts the lists are empty.
hasStory:
type: boolean
description: A public story is live right now (`story` isn't empty).
createdAt:
description: When the Public Profile was created; null if not public, ISO 8601.
type:
- string
- 'null'
url:
type: string
description: Profile on snapchat.com.
required:
- username
- displayName
- bio
- subscriberCount
- website
- avatarUrl
- snapcodeUrl
- category
- subcategory
- badge
- verified
- isPublic
- hasStory
- createdAt
- url
additionalProperties: false
description: The account.
story:
type: array
items:
type: object
properties:
id:
description: Snap id. null in highlights, where Snapchat serves snaps without one.
type:
- string
- 'null'
type:
type: string
enum:
- image
- video
description: '`image` or `video`.'
thumbnailUrl:
description: Small preview image on Snapchat's CDN.
type:
- string
- 'null'
mediaUrl:
type: string
description: The full image or video on Snapchat's CDN. Opens in a browser as is, with no login or cookies.
postedAt:
description: When it was posted, ISO 8601.
type:
- string
- 'null'
required:
- id
- type
- thumbnailUrl
- mediaUrl
- postedAt
additionalProperties: false
description: The public story that's live now, oldest snap first. Empty when there's none.
highlights:
type: array
items:
type: object
properties:
id:
description: Highlight id.
type:
- string
- 'null'
title:
description: The highlight's title, as the creator named it.
type:
- string
- 'null'
thumbnailUrl:
description: Cover image.
type:
- string
- 'null'
snaps:
type: array
items:
type: object
properties:
id:
description: Snap id. null in highlights, where Snapchat serves snaps without one.
type:
- string
- 'null'
type:
type: string
enum:
- image
- video
description: '`image` or `video`.'
thumbnailUrl:
description: Small preview image on Snapchat's CDN.
type:
- string
- 'null'
mediaUrl:
type: string
description: The full image or video on Snapchat's CDN. Opens in a browser as is, with no login or cookies.
postedAt:
description: When it was posted, ISO 8601.
type:
- string
- 'null'
required:
- id
- type
- thumbnailUrl
- mediaUrl
- postedAt
additionalProperties: false
description: The snaps saved in this highlight, in order.
required:
- id
- title
- thumbnailUrl
- snaps
additionalProperties: false
description: Saved story highlights, as ordered on the profile.
spotlight:
type: array
items:
type: object
properties:
id:
type: string
description: Spotlight id.
url:
type: string
description: The Spotlight's page on snapchat.com.
title:
description: The creator's title or on-screen caption. When there's none, Snapchat's own AI-generated title; null if neither exists.
type:
- string
- 'null'
description:
description: The creator's description, hashtags included; null if empty.
type:
- string
- 'null'
thumbnailUrl:
description: Cover image.
type:
- string
- 'null'
videoUrl:
type: string
description: The video on Snapchat's CDN. Opens in a browser as is.
durationMs:
description: Length in milliseconds.
type:
- number
- 'null'
views:
description: View count; null if hidden.
type:
- number
- 'null'
shares:
description: Share count; null if Snapchat didn't include it.
type:
- number
- 'null'
comments:
description: Comment count; null if Snapchat didn't include it.
type:
- number
- 'null'
postedAt:
description: When it was posted, ISO 8601.
type:
- string
- 'null'
hashtags:
type: array
items:
type: string
description: Hashtags as Snapchat lists them, often lowercased, e.g. `#nba`.
required:
- id
- url
- title
- description
- thumbnailUrl
- videoUrl
- durationMs
- views
- shares
- comments
- postedAt
- hashtags
additionalProperties: false
description: Recent Spotlight videos (up to ~25), newest first.
relatedAccounts:
type: array
items:
type: object
properties:
username:
type: string
description: Username.
displayName:
description: Display name.
type:
- string
- 'null'
avatarUrl:
description: Profile picture.
type:
- string
- 'null'
verified:
type: boolean
description: Has a Snap Star or checkmark badge.
url:
type: string
description: Profile on snapchat.com.
required:
- username
- displayName
- avatarUrl
- verified
- url
additionalProperties: false
description: Accounts Snapchat suggests alongside this one.
required:
- success
- credits_remaining
- credits_charged
- profile
- story
- highlights
- spotlight
- relatedAccounts
additionalProperties: false
'404':
description: 'not_found: What you asked for (a post, an ad, a subreddit) doesn''t exist, or there''s no endpoint at that path. Charged if the platform was checked.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Error. Not charged, except the endpoint's own 4xx answers such as not_found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.lurkapi.com
components:
schemas:
Error:
type: object
properties:
success:
type: boolean
const: false
error:
type: string
description: What went wrong, in plain words.
code:
type: string
enum:
- invalid_params
- missing_api_key
- invalid_api_key
- invalid_token
- insufficient_credits
- over_max_credits
- account_suspended
- not_public
- not_found
- transcript_unavailable
- method_not_allowed
- rate_limited
- signup_required
- upstream_error
- upstream_busy
- upstream_timeout
- internal_error
description: Stable machine-readable code.
docs:
type: string
description: Page that explains how to fix it.
issues:
description: One entry per invalid parameter (invalid_params only).
type: array
items:
type: object
properties:
path:
type: string
message:
type: string
required:
- path
- message
additionalProperties: false
required:
- success
- error
- code
- docs
additionalProperties: false
securitySchemes:
apiKey:
type: apiKey
in: header
name: x-api-key
x-refined-from:
- lurkapi-openapi-api.json
- lurkapi-openapi.json