LurkAPI
Docs · Profile and stories

Profile and stories

A public profile with its live story, highlights and Spotlight videos, with direct media links.

1 credit per callFresh within 15 minutesMCP tool: snapchat_profile
GEThttps://api.lurkapi.com/v1/snapchat/profile

Example responseView as markdown

When to use this

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.

Parameters

All parameters go in the query string.

ParameterDescription
handle
stringrequired
Snapchat username, with or without @ (e.g. nba), or the profile URL (snapchat.com/add/nba, snapchat.com/@nba).
Example
nba

Example request

Replace YOUR_API_KEY with your key, or set LURKAPI_KEY for the code. Get a free key.

Language

Example response

A real response from this endpoint, captured from the live API and trimmed to a couple of items. Strings over 96 characters (mostly signed media URLs) are cut short and end in ….

Show the example response (6 KB)
{
  "success": true,
  "credits_remaining": 999999,
  "credits_charged": 1,
  "profile": {
    "username": "nba",
    "displayName": "NBA",
    "bio": "30 teams, 1 goal.",
    "subscriberCount": 3572700,
    "website": "https://NBA.com",
    "avatarUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvcG…",
    "snapcodeUrl": "https://app.snapchat.com/web/deeplink/snapcode?username=nba&type=SVG&bitmoji=enable",
    "category": "business-group",
    "subcategory": "sports-league",
    "badge": "star",
    "verified": true,
    "isPublic": true,
    "hasStory": true,
    "createdAt": "2018-05-17T22:48:15.058Z",
    "url": "https://www.snapchat.com/@nba"
  },
  "story": [
    {
      "id": "2wzhbo4SSiWIG-fd9lWR2wAAgc3pueWZkaGV1AaDuF62BAaDt-_1RAAAAAA",
      "type": "video",
      "thumbnailUrl": "https://cf-st.sc-cdn.net/d/y5Z3yeCzQGozfAaHB1jA5.256.IRZXSOY?mo=GlMaDjIC…",
      "mediaUrl": "https://cf-st.sc-cdn.net/d/y5Z3yeCzQGozfAaHB1jA5.1034.IRZXSOY?mo=Gl8aGDI…",
      "postedAt": "2026-09-29T16:25:09.000Z"
    },
    {
      "id": "2wzhbo4SSiWIG-fd9lWR2wAAgdHB4dmdtdWt2AaDuF7BAAaDuDo3MAAAAAA",
      "type": "video",
      "thumbnailUrl": "https://cf-st.sc-cdn.net/d/ASfxTY9T1IATr8Yh7lf0R.256.IRZXSOY?mo=GlMaDjIC…",
      "mediaUrl": "https://cf-st.sc-cdn.net/d/ASfxTY9T1IATr8Yh7lf0R.1034.IRZXSOY?mo=Gl8aGDI…",
      "postedAt": "2026-09-29T16:45:26.000Z"
    }
  ],
  "highlights": [
    {
      "id": "029f2cc3-c0df-46c2-b610-485c137f9a0a",
      "title": "2025-26 NBA Finals 🏆",
      "thumbnailUrl": "https://cf-st.sc-cdn.net/d/ZXSSacNIpSYqxAm21SSGc.410?mo=GjcaFjIBBDoBfUIG…",
      "snaps": [
        {
          "id": null,
          "type": "image",
          "thumbnailUrl": "https://cf-st.sc-cdn.net/d/ZXSSacNIpSYqxAm21SSGc.410?mo=GjcaFjIBBDoBfUIG…",
          "mediaUrl": "https://cf-st.sc-cdn.net/d/ZXSSacNIpSYqxAm21SSGc.400?mo=Gk8aDDIBBDoBfVBe…",
          "postedAt": "2026-06-01T17:36:48.000Z"
        },
        {
          "id": null,
          "type": "image",
          "thumbnailUrl": "https://cf-st.sc-cdn.net/d/FgntIqJi6clNRLmaxXkXN.410?mo=GjcaFjIBBDoBfUIG…",
          "mediaUrl": "https://cf-st.sc-cdn.net/d/FgntIqJi6clNRLmaxXkXN.400?mo=Gk0aDjIBBDoBfUgC…",
          "postedAt": "2026-06-01T17:36:48.000Z"
        }
      ]
    },
    {
      "id": "2941c1a3-96ba-45aa-bdf4-30b344e63e42",
      "title": "Your 2025-26 Kia NBA MVP 🏆",
      "thumbnailUrl": "https://cf-st.sc-cdn.net/d/iqFfVpTceYNBTtMJvlQns.410.IRZXSOY?mo=GkAaFjIB…",
      "snaps": [
        {
          "id": null,
          "type": "image",
          "thumbnailUrl": "https://cf-st.sc-cdn.net/d/iqFfVpTceYNBTtMJvlQns.410.IRZXSOY?mo=GkAaFjIB…",
          "mediaUrl": "https://cf-st.sc-cdn.net/d/iqFfVpTceYNBTtMJvlQns.400.IRZXSOY?mo=GlwaCTIB…",
          "postedAt": "2026-05-17T23:43:34.000Z"
        },
        {
          "id": null,
          "type": "video",
          "thumbnailUrl": "https://cf-st.sc-cdn.net/d/eHfqR7qRY9kuVjZbupqN4.410.IRZXSOY?mo=GkAaFjIB…",
          "mediaUrl": "https://cf-st.sc-cdn.net/d/eHfqR7qRY9kuVjZbupqN4.1034.IRZXSOY?mo=GlgaDDI…",
          "postedAt": "2026-05-17T23:50:52.000Z"
        }
      ]
    }
  ],
  "spotlight": [
    {
      "id": "W7_EDlXWTBiXAEEniNoMPwAAYZGl0Ym1wZ3ZsAaDvhddzAaDvhbJSAAAAAQ",
      "url": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYZGl0Ym1wZ3ZsAaDvhddzAaDvhbJSAAAAAQ",
      "title": "WEMBY ON THE OUTCOME OF THE 2026 NBA FINALS: | “I COULDN’T IMAGINE A BETTER MOTIVATION.” 😤",
      "description": "Victor Wembanyama’s mindset is built for greatness 🔥🗣️ #NBA #Basketball #Wemby #Spurs",
      "thumbnailUrl": "https://cf-st.sc-cdn.net/d/24TV6xVxTujwNzwlpEVXB.256.IRZXSOY?mo=GkYaCTIB…",
      "videoUrl": "https://cf-st.sc-cdn.net/d/24TV6xVxTujwNzwlpEVXB.27.IRZXSOY?mo=Gl0aCTIBB…",
      "durationMs": 15080,
      "views": 2019,
      "shares": 12,
      "comments": 2,
      "postedAt": "2026-09-29T23:35:11.698Z",
      "hashtags": [
        "#nba",
        "#wemby",
        "#basketball",
        "#spurs"
      ]
    },
    {
      "id": "W7_EDlXWTBiXAEEniNoMPwAAYdW10aGdlY2h3AaDvVhSqAaDvVgVGAAAAAQ",
      "url": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYdW10aGdlY2h3AaDvVhSqAaDvVgVGAAAAAQ",
      "title": "Steph Curry & Jordan Poole's Golden State Warriors Photo Shoot Fun",
      "description": null,
      "thumbnailUrl": "https://cf-st.sc-cdn.net/d/jJMXmhYbdFnf15nBog0BX.256.IRZXSOY?mo=GkYaCTIB…",
      "videoUrl": "https://cf-st.sc-cdn.net/d/jJMXmhYbdFnf15nBog0BX.27.IRZXSOY?mo=Gl0aCTIBB…",
      "durationMs": 13630,
      "views": 2077,
      "shares": 0,
      "comments": 3,
      "postedAt": "2026-09-29T22:43:07.206Z",
      "hashtags": []
    }
  ],
  "relatedAccounts": [
    {
      "username": "warriors",
      "displayName": "Golden State Warriors",
      "avatarUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvNj…",
      "verified": true,
      "url": "https://www.snapchat.com/@warriors"
    },
    {
      "username": "nfl",
      "displayName": "NFL Official",
      "avatarUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvT3…",
      "verified": true,
      "url": "https://www.snapchat.com/@nfl"
    }
  ]
}

Response fields

Every field of a successful response. [] marks a list: a[].b is the b of each item in a. nullable fields can be null; optional fields can be missing.

Show all 54 fields
FieldTypeDescription
successtrueAlways true here; errors have success: false.
credits_remainingnumberYour balance after this call. On anonymous playground calls: free tries left today.
credits_chargednumberCredits this call cost; 0 on free endpoints. On anonymous playground calls: tries used (1).
profileobjectThe account.
profile.usernamestringUsername, lowercase.
profile.displayNamestringnullableDisplay name.
profile.biostringnullableBio; null if empty or not public.
profile.subscriberCountnumbernullableSubscribers, rounded by Snapchat (to 100). null when the creator hides it or the account isn't public.
profile.websitestringnullableWebsite link from the profile, with https:// added when the creator left it out.
profile.avatarUrlstringnullableProfile picture.
profile.snapcodeUrlstringnullableThe account's Snapcode (SVG), scannable to add them.
profile.categorystringnullableProfile category, e.g. people or business-group.
profile.subcategorystringnullableProfile subcategory, e.g. artist or sports-league.
profile.badgestringnullableBadge next to the name: star (Snap Star), tick (verified checkmark) or snapchat_plus; null without one.
profile.verifiedbooleanHas a Snap Star or checkmark badge.
profile.isPublicbooleanHas a Public Profile. Only public profiles show stories, highlights and Spotlight on the web; for other accounts the lists are empty.
profile.hasStorybooleanA public story is live right now (story isn't empty).
profile.createdAtstringnullableWhen the Public Profile was created; null if not public, ISO 8601.
profile.urlstringProfile on snapchat.com.
storyobject[]The public story that's live now, oldest snap first. Empty when there's none.
story[].idstringnullableSnap id. null in highlights, where Snapchat serves snaps without one.
story[].typestringimage or video.
story[].thumbnailUrlstringnullableSmall preview image on Snapchat's CDN.
story[].mediaUrlstringThe full image or video on Snapchat's CDN. Opens in a browser as is: no login, no cookies.
story[].postedAtstringnullableWhen it was posted, ISO 8601.
highlightsobject[]Saved story highlights, as ordered on the profile.
highlights[].idstringnullableHighlight id.
highlights[].titlestringnullableThe highlight's title, as the creator named it.
highlights[].thumbnailUrlstringnullableCover image.
highlights[].snapsobject[]The snaps saved in this highlight, in order.
highlights[].snaps[].idstringnullableSnap id. null in highlights, where Snapchat serves snaps without one.
highlights[].snaps[].typestringimage or video.
highlights[].snaps[].thumbnailUrlstringnullableSmall preview image on Snapchat's CDN.
highlights[].snaps[].mediaUrlstringThe full image or video on Snapchat's CDN. Opens in a browser as is: no login, no cookies.
highlights[].snaps[].postedAtstringnullableWhen it was posted, ISO 8601.
spotlightobject[]Recent Spotlight videos (up to ~25), newest first.
spotlight[].idstringSpotlight id.
spotlight[].urlstringThe Spotlight's page on snapchat.com.
spotlight[].titlestringnullableThe creator's title or on-screen caption. When there's none, Snapchat's own AI-generated title; null if neither exists.
spotlight[].descriptionstringnullableThe creator's description, hashtags included; null if empty.
spotlight[].thumbnailUrlstringnullableCover image.
spotlight[].videoUrlstringThe video on Snapchat's CDN. Opens in a browser as is.
spotlight[].durationMsnumbernullableLength in milliseconds.
spotlight[].viewsnumbernullableView count; null if hidden.
spotlight[].sharesnumbernullableShare count; null if Snapchat didn't include it.
spotlight[].commentsnumbernullableComment count; null if Snapchat didn't include it.
spotlight[].postedAtstringnullableWhen it was posted, ISO 8601.
spotlight[].hashtagsstring[]Hashtags, as written, e.g. #nba.
relatedAccountsobject[]Accounts Snapchat suggests alongside this one.
relatedAccounts[].usernamestringUsername.
relatedAccounts[].displayNamestringnullableDisplay name.
relatedAccounts[].avatarUrlstringnullableProfile picture.
relatedAccounts[].verifiedbooleanHas a Snap Star or checkmark badge.
relatedAccounts[].urlstringProfile on snapchat.com.

Caching and freshness

Responses are cached for up to 15 minutes, so a repeat call within that window can return the same data. It still costs 1 credit.

Errors

Errors return { success: false, error, code, docs } with the HTTP status below. Validation errors, 401/402/429 rejections and 5xx failures are free; not_found is charged (how charging works). All error codes.

StatusCodeMeaning
401missing_api_keyNo API key. Send it in the x-api-key header.
401invalid_api_keyThe key is unknown or was revoked.
402insufficient_creditsNot enough credits for this call. Buy a pack or wait for tomorrow's top-up.
404not_foundThe endpoint, or the thing you asked for (ad, post, subreddit), doesn't exist. Charged when the platform was checked.
405method_not_allowedEndpoints take GET with query params.
429rate_limitedToo many calls at once. Wait for the retry-after seconds, then retry.
500internal_errorSomething broke on our side. Retry; 5xx errors are free.
502upstream_errorThe platform didn't give a usable answer. Retry; 5xx errors are free.
503upstream_busyAll our connections to the platform are busy. Retry in a few seconds; 5xx errors are free.
504upstream_timeoutThe platform took over 30 seconds to answer. Retry; timeouts are free.

Use it in Claude

Once LurkAPI is connected to Claude, this endpoint is the snapchat_profile tool. Ask in plain English, for example:

Ask Claude
Use LurkAPI's snapchat_profile with handle "nba" and summarize what you find.

Claude calls snapchat_profile with arguments like these, and each call costs 1 credit:

Tool arguments
{
  "handle": "nba"
}

Tool results skip nulls and empty lists to save tokens.