Snapchat
GET /v1/snapchat/user-profile

Snapchat User Profile API

Snapchat profile — stable identity card, millisecond timestamps, mediaType image/video (1 credit).

1 credit per request
TL;DR
Snapchat profile — stable identity card, millisecond timestamps, mediaType image/video (1 credit). The Snapchat User Profile API (Snapchat) is a single authenticated GET request to /v1/snapchat/user-profile that responds with clean JSON and costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh. Start with 100 free credits — no credit card.

What is the Snapchat User Profile API?

Pass a Snapchat username or profile URL and get the public profile as clean JSON — not Snapchat's protobuf wrappers. This is an identity card: highlights / spotlightHighlights / relatedAccounts are always keyed ([] when we know there are none — hasCuratedHighlights: false is [], not a missing key). Canonical card: username, displayName, bio, avatar, banner (square hero), url, followers, verified (from badge), human-readable category (public-profile-category-v3-business-group → Business Group), absolute website URL, snapcode. createdAt / updatedAt / publishedAt are ISO-8601 milliseconds; unix twins live under raw (creationTimestampMs / lastUpdateTimestampMs / timestampInSec). Identical-value aliases (handle/subscriberCount/profilePictureUrl/squareHeroImageUrl/firstSnapUrl/firstSnapType) are not emitted — read snapList[0] for the first snap. Regular (non-creator) accounts are supported too — Snapchat's web page only exposes username, displayName, snapcode and bitmoji avatar for them (no followers/bio/highlights exist on the web), so their card is legitimately slim. An unresolvable handle is 404 at 0 credits with username and url echoed on the error — and when Snapchat's own site answers 404 (the username has no public web profile; the account may still exist in-app), we return that verdict immediately instead of burning seconds re-checking — never a 200 with verified: false about an account that does not exist. highlights[] are curated Story albums; spotlightHighlights[] are Spotlight posts — different collections. Highlight ids/titles unwrap to plain strings (never Python dict repr). Each snap has mediaType image|video; the raw Snapchat enum is raw.snapMediaType. story.snapCount always equals story.snapList length. Spotlight rows add engagement{views,shares,comments,boosts,recommends}. relatedAccounts[] use the same avatar/url/verified keys as the top-level card. . mediaUrlsExpireAt is null — sc-cdn.net mo= is a content timestamp (matches publishedAt), not a CDN expiry. Flat 1 credit.

What you get

  • highlights: [] when hasCuratedHighlights is false (stable identity card)
  • Millisecond ISO dates; unix twins and snapMediaType under raw
  • Canonical username/followers/avatar/banner (no firstSnap* aliases)

Try it

Open in Playground

Fill in the parameters below and copy a ready-to-run request, or open the live Playground to run it against your account (no API key paste).

Parameters

Sign in to run live
curl "https://api.captapi.com/v1/snapchat/user-profile?url=https%3A%2F%2Fwww.snapchat.com%2F%40nba" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

Edit the parameters and the code updates instantly. Switch languages and hit copy.

Example response

{
  "success": true,
  "data": {
    "platform": "snapchat",
    "username": "nba",
    "url": "https://www.snapchat.com/@nba",
    "displayName": "NBA",
    "bio": "30 teams, 1 goal.",
    "category": "Business Group",
    "categoryId": "public-profile-category-v3-business-group",
    "subcategory": "Sports League",
    "subcategoryId": "public-profile-subcategory-v3-sports-league",
    "followers": 3653600,
    "verified": true,
    "badge": 1,
    "avatar": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvcGxQanhqRDFZRk9IUWdGMUZLRHNqP2JvPUVna3lBUVJJQWxBWllBRSUzRCZ1Yz0yNQ._RS0,90_FMjpeg",
    "banner": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvcUZBYjExSEY3QkdkeHNiOXpkMTREP2JvPUVna3lBUVJJQWxBWllBRSUzRCZ1Yz0yNQ._RS0,1080_FMjpeg",
    "snapcode": "https://app.snapchat.com/web/deeplink/snapcode?username=nba&type=SVG&bitmoji=enable",
    "website": "https://NBA.com",
    "businessProfileId": "ea71b19b-5eb1-4dda-afb8-13ced485f180",
    "createdAt": "2018-05-17T22:48:15.058Z",
    "updatedAt": "2026-08-01T22:01:14.522Z",
    "hasStory": false,
    "hasCuratedHighlights": true,
    "hasSpotlightHighlights": true,
    "highlights": [
      {
        "highlightId": "029f2cc3-c0df-46c2-b610-485c137f9a0a",
        "storyTitle": "2025-26 NBA Finals 🏆",
        "thumbnailUrl": "https://cf-st.sc-cdn.net/d/ZXSSacNIpSYqxAm21SSGc.410?mo=GjcaFjIBBDoBfUIGCMqG99AGSAJQXmABcAFQxQFaEERmTGFyZ2VUaHVtYm5haWyiAQcImgMiAhIA&uc=94",
        "snapCount": 4,
        "snapList": [
          {
            "snapIndex": 0,
            "mediaType": "image",
            "mediaUrl": "https://cf-st.sc-cdn.net/d/ZXSSacNIpSYqxAm21SSGc.400?mo=Gk8aDDIBBDoBfVBeYAFwAVDBAVoQUHVibGljSW1hZ2VTdG9yeaIBEwiQAyIOCgpCBgjKhvfQBkgCEgCiARMI5wciDgoKQgYIy4b30AZIAxIA&uc=94",
            "mediaPreviewUrl": "https://cf-st.sc-cdn.net/d/ZXSSacNIpSYqxAm21SSGc.410?mo=GjcaFjIBBDoBfUIGCMqG99AGSAJQXmABcAFQxQFaEERmTGFyZ2VUaHVtYm5haWyiAQcImgMiAhIA&uc=94",
            "publishedAt": "2026-06-01T17:36:48.000Z",
            "raw": {
              "snapMediaType": 0,
              "timestampInSec": 1780335408
            }
          },
          {
            "snapIndex": 1,
            "mediaType": "image",
            "mediaUrl": "https://cf-st.sc-cdn.net/d/FgntIqJi6clNRLmaxXkXN.400?mo=Gk0aDjIBBDoBfUgCUF5gAXABUMEBWhBQdWJsaWNJbWFnZVN0b3J5ogERCJADIgwKCEIGCMuG99AGEgCiAREI5wciDAoIQgYIyob30AYSAA%3D%3D&uc=94",
            "mediaPreviewUrl": "https://cf-st.sc-cdn.net/d/FgntIqJi6clNRLmaxXkXN.410?mo=GjcaFjIBBDoBfUIGCMuG99AGSAJQXmABcAFQxQFaEERmTGFyZ2VUaHVtYm5haWyiAQcImgMiAhIA&uc=94",
            "publishedAt": "2026-06-01T17:36:48.000Z",
            "raw": {
              "snapMediaType": 0,
              "timestampInSec": 1780335408
            }
          }
        ]
      },
      {
        "highlightId": "2941c1a3-96ba-45aa-bdf4-30b344e63e42",
        "storyTitle": "Your 2025-26 Kia NBA MVP 🏆",
        "thumbnailUrl": "https://cf-st.sc-cdn.net/d/iqFfVpTceYNBTtMJvlQns.410.IRZXSOY?mo=GkAaFjIBBDoBfUIGCPa5qdAGSAJQXmABcAFQxQFaEERmTGFyZ2VUaHVtYm5haWyiARAImgMiCxIAKgdJUlpYU09Z&uc=94",
        "snapCount": 19,
        "snapList": [
          {
            "snapIndex": 0,
            "mediaType": "image",
            "mediaUrl": "https://cf-st.sc-cdn.net/d/iqFfVpTceYNBTtMJvlQns.400.IRZXSOY?mo=GlwaCTIBBFBeYAFwAVDBAVoQUHVibGljSW1hZ2VTdG9yeaIBHwiQAyIaCg06AX1CBgj2uanQBkgCEgAqB0lSWlhTT1miARcI5wciEgoFMgF9SAQSACoHSVJaWFNPWQ%3D%3D&uc=94",
            "mediaPreviewUrl": "https://cf-st.sc-cdn.net/d/iqFfVpTceYNBTtMJvlQns.410.IRZXSOY?mo=GkAaFjIBBDoBfUIGCPa5qdAGSAJQXmABcAFQxQFaEERmTGFyZ2VUaHVtYm5haWyiARAImgMiCxIAKgdJUlpYU09Z&uc=94",
            "publishedAt": "2026-05-17T23:43:34.000Z",
            "raw": {
              "snapMediaType": 0,
              "timestampInSec": 1779061414
            }
          },
          {
            "snapIndex": 1,
            "mediaType": "video",
            "mediaUrl": "https://cf-st.sc-cdn.net/d/eHfqR7qRY9kuVjZbupqN4.1034.IRZXSOY?mo=GlgaDDICBH1IA1BeYAFwAVDIAVoHRGZNZWRpYaIBNwiKCBIlCiMIk84gIAEw4AM41AZAAUoOCgk9ExQVFBIUFRUQ9ANQ_E1oAiILEgAqB0lSWlhTT1mQA_xN&uc=94",
            "mediaPreviewUrl": "https://cf-st.sc-cdn.net/d/eHfqR7qRY9kuVjZbupqN4.410.IRZXSOY?mo=GkAaFjIBBDoBfUIGCP25qdAGSAJQXmABcAFQxQFaEERmTGFyZ2VUaHVtYm5haWyiARAImgMiCxIAKgdJUlpYU09Z&uc=94",
            "publishedAt": "2026-05-17T23:50:52.000Z",
            "raw": {
              "snapMediaType": 1,
              "timestampInSec": 1779061852
            }
          }
        ]
      }
    ],
    "spotlightHighlights": [
      {
        "id": "W7_EDlXWTBiXAEEniNoMPwAAYZ214b2ZqdWhiAZ-_WJm3AZ-_WHoaAAAAAQ",
        "title": "Spotlight Snap",
        "description": "Another Spotlight Snap brought to you by Snapchat",
        "thumbnailUrl": "https://cf-st.sc-cdn.net/d/Qmm68dwXUXh0Rk6RHsywT.256.IRZXSOY?mo=GkYaCTIBBEgCUC5gAVCgAVoQRGZMYXJnZVRodW1ibmFpbKIBEAiAAiILEgAqB0lSWlhTT1miARAImgoiCxIAKgdJUlpYU09Z&uc=46",
        "contentUrl": "https://cf-st.sc-cdn.net/d/Qmm68dwXUXh0Rk6RHsywT.27.IRZXSOY?mo=Gl8aCTIBBEgCUC5gAVCiAVoQU3BvdGxpZ2h0U2hhcmluZ6IBNwgbEiYKJAjP-XQgATCcBDjAB0ABSg4KCVgeHCgsJis0LxD0A1DirgFoAiILEgAqB0lSWlhTT1mQA-KuAQ%3D%3D&uc=46",
        "durationMs": 22370,
        "width": 540,
        "height": 960,
        "publishedAt": "2026-08-01T22:01:14.522Z",
        "deeplink": "https://click.snapchat.com/aVHG?pid=snapchat_download_page&af_dp=https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYZ214b2ZqdWhiAZ-_WJm3AZ-_WHoaAAAAAQ&af_web_dp=https://snapchat.com/download?purpose%3Dweb_stories%26sp%3Dspotlight&af_ios_url=https://apps.apple.com/app/apple-store/id447188370?pt%3D614006%26ct%3Dspotlight%26mt%3D8",
        "creator": {
          "username": "nba",
          "displayName": "NBA",
          "url": "https://www.snapchat.com/@nba"
        },
        "engagement": {
          "views": 20844,
          "shares": 21,
          "comments": 37,
          "boosts": 1618,
          "recommends": 108
        },
        "snapList": [
          {
            "snapIndex": 0,
            "snapId": "W7_EDlXWTBiXAEEniNoMPwAAYZ214b2ZqdWhiAZ-_WJm3AZ-_WHoaAAAAAQ",
            "mediaType": "video",
            "mediaUrl": "https://cf-st.sc-cdn.net/d/Qmm68dwXUXh0Rk6RHsywT.27.IRZXSOY?mo=Gl8aCTIBBEgCUC5gAVCiAVoQU3BvdGxpZ2h0U2hhcmluZ6IBNwgbEiYKJAjP-XQgATCcBDjAB0ABSg4KCVgeHCgsJis0LxD0A1DirgFoAiILEgAqB0lSWlhTT1mQA-KuAQ%3D%3D&uc=46",
            "mediaPreviewUrl": "https://cf-st.sc-cdn.net/d/Qmm68dwXUXh0Rk6RHsywT.256.IRZXSOY?mo=GkYaCTIBBEgCUC5gAVCgAVoQRGZMYXJnZVRodW1ibmFpbKIBEAiAAiILEgAqB0lSWlhTT1miARAImgoiCxIAKgdJUlpYU09Z&uc=46",
            "publishedAt": "2026-08-01T22:01:14.000Z",
            "raw": {
              "snapMediaType": 1,
              "timestampInSec": 1785621674
            }
          }
        ],
        "raw": {
          "uploadDateMs": 1785621674522
        }
      },
      {
        "id": "W7_EDlXWTBiXAEEniNoMPwAAYcm95aXJwZW1tAZ-_U_PhAZ-_U8m2AAAAAQ",
        "title": "Spotlight Snap",
        "description": "Another Spotlight Snap brought to you by Snapchat",
        "thumbnailUrl": "https://cf-st.sc-cdn.net/d/pnucYwUhWRai63fD72ieX.256.IRZXSOY?mo=GkYaCTIBBEgCUC5gAVCgAVoQRGZMYXJnZVRodW1ibmFpbKIBEAiAAiILEgAqB0lSWlhTT1miARAImgoiCxIAKgdJUlpYU09Z&uc=46",
        "contentUrl": "https://cf-st.sc-cdn.net/d/pnucYwUhWRai63fD72ieX.27.IRZXSOY?mo=GmAaCTIBBEgCUC5gAVCiAVoQU3BvdGxpZ2h0U2hhcmluZ6IBOAgbEicKJQieqbECIAEwnAQ4wAdAAUoOCglqLFtrV1FcVE8Q9ANQqskBaAIiCxIAKgdJUlpYU09ZkAOqyQE%3D&uc=46",
        "durationMs": 25770,
        "width": 540,
        "height": 960,
        "publishedAt": "2026-08-01T21:56:07.222Z",
        "deeplink": "https://click.snapchat.com/aVHG?pid=snapchat_download_page&af_dp=https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYcm95aXJwZW1tAZ-_U_PhAZ-_U8m2AAAAAQ&af_web_dp=https://snapchat.com/download?purpose%3Dweb_stories%26sp%3Dspotlight&af_ios_url=https://apps.apple.com/app/apple-store/id447188370?pt%3D614006%26ct%3Dspotlight%26mt%3D8",
        "creator": {
          "username": "nba",
          "displayName": "NBA",
          "url": "https://www.snapchat.com/@nba"
        },
        "engagement": {
          "views": 10051,
          "shares": 3,
          "comments": 4,
          "boosts": 533,
          "recommends": 33
        },
        "snapList": [
          {
            "snapIndex": 0,
            "snapId": "W7_EDlXWTBiXAEEniNoMPwAAYcm95aXJwZW1tAZ-_U_PhAZ-_U8m2AAAAAQ",
            "mediaType": "video",
            "mediaUrl": "https://cf-st.sc-cdn.net/d/pnucYwUhWRai63fD72ieX.27.IRZXSOY?mo=GmAaCTIBBEgCUC5gAVCiAVoQU3BvdGxpZ2h0U2hhcmluZ6IBOAgbEicKJQieqbECIAEwnAQ4wAdAAUoOCglqLFtrV1FcVE8Q9ANQqskBaAIiCxIAKgdJUlpYU09ZkAOqyQE%3D&uc=46",
            "mediaPreviewUrl": "https://cf-st.sc-cdn.net/d/pnucYwUhWRai63fD72ieX.256.IRZXSOY?mo=GkYaCTIBBEgCUC5gAVCgAVoQRGZMYXJnZVRodW1ibmFpbKIBEAiAAiILEgAqB0lSWlhTT1miARAImgoiCxIAKgdJUlpYU09Z&uc=46",
            "publishedAt": "2026-08-01T21:56:07.000Z",
            "raw": {
              "snapMediaType": 1,
              "timestampInSec": 1785621367
            }
          }
        ],
        "raw": {
          "uploadDateMs": 1785621367222
        }
      }
    ],
    "relatedAccounts": [
      {
        "username": "warriors",
        "displayName": "Golden State Warriors",
        "url": "https://www.snapchat.com/@warriors",
        "avatar": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvNjRqVjdIRlJMaHk1V21yS0MwNUZ2P2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,640_FMjpeg",
        "verified": true,
        "hasStory": true,
        "hasCuratedHighlights": false,
        "hasSpotlightHighlights": false,
        "subscribeLink": {
          "oneLinkBaseUrl": "https://click.snapchat.com/aVHG",
          "deepLinkUrl": "https://www.snapchat.com/@warriors",
          "iosAppStoreUrl": "https://apps.apple.com/app/apple-store/id447188370?pt=614006&ct=add_user&mt=8"
        }
      },
      {
        "username": "nfl",
        "displayName": "NFL Official",
        "url": "https://www.snapchat.com/@nfl",
        "avatar": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvT3NjakFOS0dwSWh1VzQwek9qRnowP2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,640_FMjpeg",
        "verified": true,
        "hasStory": true,
        "hasCuratedHighlights": false,
        "hasSpotlightHighlights": false,
        "subscribeLink": {
          "oneLinkBaseUrl": "https://click.snapchat.com/aVHG",
          "deepLinkUrl": "https://www.snapchat.com/@nfl",
          "iosAppStoreUrl": "https://apps.apple.com/app/apple-store/id447188370?pt=614006&ct=add_user&mt=8"
        }
      }
    ],
    "raw": {
      "creationTimestampMs": 1526597295058,
      "lastUpdateTimestampMs": 1785621674522
    },
    "mediaUrlsExpireAt": null
  }
}

Billing metadata is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Source. Failed requests (4xx/5xx) are never charged. See the full list of error codes in the error reference.

Response structure

A successful call returns success and a data object with the following fields:

Top-level fields

  • platformPlatform identifier for this response (matches the endpoint's platform).
  • usernameSnapchat @handle without @. Canonical account identifier (no handle twin). Echoed on every response, including 404 misses.
  • urlCanonical URL of the item.
  • displayNameDisplay name of the account. Canonical across profile endpoints (prefer over name).
  • bioProfile bio. Canonical across profile endpoints (prefer over description on YouTube).
  • categoryHuman-readable category label derived from categoryId (e.g. Business Group).
  • categoryIdSnapchat public-profile category string id (e.g. public-profile-category-v3-business-group). Prefer human-readable category.
  • subcategorySubcategory. Example: "Sports League".
  • subcategoryIdSubcategory id.
  • followersSubscriber count from Snapchat's public profile (no subscriberCount twin).
  • verifiedWhether the resolved profile shows Snapchat's official badge (badge === 1). Only emitted when the handle resolved; a miss is 404 at 0 credits, never verified: false.
  • badgeSnapchat official badge code: 0/absent = none, 1 = official verified. verified is derived from this — only when a profile resolved.
  • avatarProfile picture URL (no profilePictureUrl twin).
  • bannerSquare hero / cover image URL (no squareHeroImageUrl twin).
  • snapcodeSnapcode URL.
  • websiteAbsolute https website URL (scheme added when Snapchat omits it, e.g. NBA.com → https://NBA.com).
  • businessProfileIdBusiness profile id. Example: "ea71b19b-5eb1-4dda-afb8-13ced485f180".
  • createdAtProfile creation time as ISO-8601 UTC with millisecond precision (…T22:48:15.058Z). The unix twin is raw.creationTimestampMs.
  • updatedAtLast public-profile update as ISO-8601 UTC milliseconds. The unix twin is raw.lastUpdateTimestampMs.
  • hasStoryHas story. Example: false.
  • hasCuratedHighlightsHas curated highlights. Example: true.
  • hasSpotlightHighlightsHas spotlight highlights. Example: true.
  • rawRaw upstream payload for advanced use (fields may change). Prefer the normalized top-level fields when available.
  • mediaUrlsExpireAtEarliest parseable CDN expiry across avatar / banner / highlight / snap URLs. sc-cdn.net mo= is a content timestamp (matches publishedAt ± seconds), not an expiry. A sampled highlight URL from June 2026 still 200s in August; Cache-Control max-age=86400 is a cache hint, not a signature lifetime. The field is null — we do not invent an expiry.
  • source"native" on a live profile-page parse, "extended" on the backup actor, "cache" on a hit. Always keyed.

Highlights

Each item in highlights contains:

  • highlightIdCurated highlight id as a plain UUID string — never a protobuf {value} wrapper or Python dict repr.
  • storyTitleHighlight title as a plain string (unwrapped from Snapchat's {value} wrapper).
  • thumbnailUrlHighlight album cover Snapchat publishes. Often matches snapList[0].mediaPreviewUrl; it is Snapchat's cover field, not a firstSnap alias we invent.
  • snapCountNumber of snaps in snapList for this story/highlight — always equals len(snapList).
  • snapListArray of objects with snapIndex, mediaType, mediaUrl, mediaPreviewUrl, publishedAt, raw.

Spotlight highlights

Each item in spotlightHighlights contains:

  • idId of this spotlight highlights item.
  • titleTitle of this spotlight highlights item.
  • descriptionDescription of this spotlight highlights item.
  • thumbnailUrlHighlight album cover Snapchat publishes. Often matches snapList[0].mediaPreviewUrl; it is Snapchat's cover field, not a firstSnap alias we invent.
  • contentUrlContent url URL.
  • durationMsLength in milliseconds.
  • widthWidth in pixels.
  • heightHeight in pixels.
  • publishedAtSnap publish time as ISO-8601 UTC milliseconds. The unix twin is raw.timestampInSec.
  • deeplinkDeeplink URL.
  • creatorCreator handle or account for this item (platform-specific — e.g. who founded a community, or who cut a clip).
  • engagementEngagement metrics for the item.
  • snapListArray of objects with snapIndex, snapId, mediaType, mediaUrl, mediaPreviewUrl, publishedAt.
  • rawRaw upstream payload for advanced use (fields may change). Prefer the normalized top-level fields when available.

Related accounts

Each item in relatedAccounts contains:

  • usernameSnapchat @handle without @. Canonical account identifier (no handle twin). Echoed on every response, including 404 misses.
  • displayNameDisplay name of the account. Canonical across profile endpoints (prefer over name).
  • urlCanonical URL of the item.
  • avatarProfile picture URL (no profilePictureUrl twin).
  • verifiedWhether the resolved profile shows Snapchat's official badge (badge === 1). Only emitted when the handle resolved; a miss is 404 at 0 credits, never verified: false.
  • hasStoryHas story. Example: true.
  • hasCuratedHighlightsHas curated highlights. Example: false.
  • hasSpotlightHighlightsHas spotlight highlights. Example: false.
  • subscribeLinkObject with oneLinkBaseUrl, deepLinkUrl, iosAppStoreUrl.

Stages

The stages object contains:

  • kindKind. Example: "cascade".
  • nativeStatusNative status. Example: "ok".
  • apifyStatusApify status. Example: "skipped".

Timings

The timings object contains:

  • pathPath. Example: "native".
  • nativeMsNative ms. Example: 3846.
  • apifyMsApify ms. Example: 0.
  • totalMsTotal ms. Example: 3846.

Parameters

NameTypeRequiredDescription
urlstringYesSnapchat username or profile URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.

Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh.

Using an AI agent? This endpoint is the MCP tool snapchat_user_profile via @captapi/mcp. Set it up →

How it works

  1. 1. Sign up — get 100 free credits, no card required.
  2. 2. Create a key from your dashboard.
  3. 3. Send one request to /v1/snapchat/user-profile and parse the JSON response.

Use cases

Profile Enrichment

Add live stats, bio, and account flags to a contact you already have.

Creator Verification

Confirm a known handle, audience size, and business/verified status before outreach.

Competitive Analysis

Track follower growth and posting cadence for accounts you already follow.

Partnership Qualification

Vet known partnership and sponsorship targets with fresh profile data.

Frequently asked questions

What does the Snapchat User Profile API do?+

The Snapchat User Profile API lets you fetch profile or page details and audience stats from a public Snapchat profile or page using one GET request to /v1/snapchat/user-profile. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the Snapchat User Profile API cost?+

Each successful call costs 1 credit. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.

Do I need a Snapchat API key or OAuth?+

No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.

Why did a made-up handle return verified: false and 1 credit?+

That was a miss-path bug: badge was absent, so verified became false and the stub shipped as a profile. An unresolved handle is now 404 NOT_FOUND at 0 credits. The error echoes username and url so a fan-out across handles is distinguishable. verified is only derived when a profile actually resolved (badge === 1). A miss is not an unverified account.

Why is highlights missing on one account and an array on another?+

It isn't anymore. This is an identity card — highlights is always keyed. hasCuratedHighlights: false means we looked and there are none, so the value is [] (not omitted, not null). profile.highlights.length is safe on every resolved account.

Where did creationTimestampMs / snapMediaType / firstSnapUrl go?+

Unix twins and the raw enum live under raw (same move as tiktok/channel-details createTimeUnix). firstSnapUrl / firstSnapType were copies of snapList[0] — read the list. thumbnailUrl stays; it is Snapchat's album cover.

Do the sc-cdn.net URLs expire?+

They carry mo= + uc= (they look signed). mo= decodes to the snap's content timestamp — the same instant as publishedAt ± seconds — not a CDN expiry. A June 2026 highlight URL still returned 200 in August; Cache-Control max-age=86400 is a cache hint, not when the URL dies. mediaUrlsExpireAt is null because we will not invent a lifetime. Persist the profile and refetch if a URL 403s.

Is the Snapchat User Profile API suitable for production use?+

Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.

Ready to use the Snapchat User Profile API?

Sign up, grab your key, and make your first call in 60 seconds.

Snapchat User Profile API | Captapi — Captapi