Snapchat has no public API for profiles, and it does not need one: the public web profile is the API. On 28 September 2026 we fetched one profile sixteen times through residential exits in the United States, Germany and India. A plain HTTP client with no login and no JavaScript received 662,597 bytes carrying the subscriber count, the account category, the website, the last-updated date and a Spotlight list with per-video view counts. Rendering the same page cost 2,637,627 bytes for the same 94 words. What the exit country changed was the language of the label around the number, and Snapchat announced the country it saw in a response header.
Search for Snapchat proxies and Google has nothing to suggest
This is the only platform in the series where the head term returns zero autocomplete suggestions. "Proxies for Snapchat" gives "proxy for snapchat free" and "snap proxy settings", which are people trying to open the app on a network that does not allow it. The data intent lives entirely under "snapchat scraper": api, profile, map, username, spotlight, ads, story. The first page of results for the head term is five vendor pages about running several accounts, one of which is copied verbatim into the AI Overview, a Snapchat tag page for the word "proxy" that is full of Slenderman videos, and a Reddit thread about a home firewall. None of them fetches a snapchat.com URL.
Our subject is snapchat.com/add/nasa, the public profile of a verified account. The /add/ path is the one printed on Snapcodes and in bios; the server answers it with a redirect to snapchat.com/@nasa, and every measurement below is of that final page.
The public profile is server-rendered, counters included
We audited the profile with and without JavaScript from each exit, and weighed it over plain HTTP from all three.
| Fetch | Exit | Bytes | Words | Title | Counter in the description |
|---|---|---|---|---|---|
| Profile, no JavaScript | US | 662,597 | 94 | NASA (@nasa) | Snapchat Stories, Spotlight & Lenses | 756.9k Subscribers |
| Profile, no JavaScript | DE | 664,331 | 88 | NASA (@nasa) | Snapchat Storys, Spotlight und Linsen | 756.9k Abonnenten |
| Profile, no JavaScript | IN | 685,928 | 109 | NASA (@nasa) | Snapchat, in Hindi | 756.9k, Hindi label |
| Profile, rendered | US | 2,637,627 | 94 | same as no-JS | 756.9k Subscribers |
| Spotlight hub, no JavaScript | US | 289,440 | 415 | Spotlight | n/a |
Start with the rendered row. The browser downloaded four times the bytes, ran for 6.5 seconds, and produced exactly the same 94 words, the same title, the same description and the same canonical as the plain fetch. Snapchat's web app is a Next.js site that renders on the server, and the audit's diff between the two views is empty on every field. A headless browser is pure cost here.
The 94 words undersell what arrived, because most of the page is a video grid rather than prose. The head carries the counter in the description, "NASA is on Snapchat! (@nasa) | 756.9k Subscribers | ... | Last updated: 09/18/2026". The body carries the display name, the handle, the category "Government Organization", the website, the bio, and a grid of Spotlight videos with their view counts, 25k, 26k, 69k, 43k, 34k, 66k, 70k on the page we read. The hydration state the page ships for its own JavaScript is where the same data sits in structured form, and the head also declares JSON-LD of four types: ProfilePage, BreadcrumbList, VideoObject and ItemList. For a public-profile job, the counter, the category, the link and the video list are all in one 662,597-byte fetch.
There is one shape to defend against. Of our three German plain-HTTP passes, one arrived with the body, the h1 and 88 words but no title, no description and no canonical in the head; the other two, minutes before and after, were complete. Same URL, same exit country. Assert on the body, on the h1 and on the word count, not on the presence of head tags, and retry a page whose head is empty rather than recording the profile as untitled.
The exit country rewrites the label and announces itself
We sent no Accept-Language header and changed nothing between exits. Snapchat localised the page from the IP alone, and it told us so: every response carried the header x-snap-client-country with the value US, DE or IN, matching the exit we used. It is the cheapest geo assertion on any platform in this series. Read the header, compare it to the country you asked for, and you know your pool is doing what you paid for before you parse a byte.
| Exit | x-snap-client-country | Title suffix | Description counter | Bytes |
|---|---|---|---|---|
| United States | US | Snapchat Stories, Spotlight & Lenses | 756.9k Subscribers | 662,597 |
| Germany | DE | Snapchat Storys, Spotlight und Linsen | 756.9k Abonnenten | 664,331 |
| India | IN | Hindi title | 756.9k, Hindi label | 685,928 |
The number itself did not move: 756.9k from all three, formatted the same way, with a point and a k. That is the reverse of what a German exit does on Facebook, where the count becomes 28.729.208 and a naive parser reads 28. On Snapchat the trap is the label, not the number. A parser that finds the counter by matching the word "Subscribers" finds nothing from a German or Indian exit, and nothing is not the same as zero. Match the pattern [\d.]+k? next to the pipe separators, or pin the exit country per job and parse for that locale. The India page is 23,331 bytes heavier than the US page, which is the cost of the Devanagari interface strings; it is the same profile.
Spotlight is a public hub, and it is also localised
Snapchat's public web is larger than profiles. snapchat.com/spotlight returned 289,440 bytes and 415 words over plain HTTP: a feed of Spotlight videos with creator names, and it carries the same x-snap-client-country header, which means the feed you receive is the feed for the country you exited from. robots.txt lists twelve sitemaps, among them the profile sitemap index, a top-Spotlights index, a Lens sitemap, tag and topic sitemaps and three local-places sitemaps. That is the map of what Snapchat considers public, and for a creator-research or trend-monitoring job it is the right starting list.
For Spotlight and trend work the country is the whole point, and it is the one place we would tell you to spend on geo targeting: a trend feed read from the wrong exit is a different country's trend feed. Country-pinned exits are a per-request parameter on our residential network, and on mobile when a job needs a carrier address; nothing we measured on the public web needed one.
What robots.txt allows, and what the Snap Terms forbid
snapchat.com/robots.txt is 3,997 bytes and unusually permissive for a social platform. For every client it disallows exactly four paths: an employment-verification page, a deletion-request PDF, a static directory and /invite/. Everything else, profiles, Spotlight, lenses, places, is open to an unnamed client. Then it names the AI crawlers one by one and sorts them: ChatGPT-User, OAI-SearchBot, Claude-User, Claude-SearchBot, PerplexityBot, Perplexity-User and DuckAssistBot are allowed everywhere except /getreplies and /explore/; GPTBot, ClaudeBot, CCBot, Google-Extended, Bytespider, Amazonbot, cohere-ai and about thirty others get Disallow: /. Scrapy is disallowed by name. The split is the same one we have seen elsewhere: user-triggered fetching allowed, training crawls refused. We cover which way that cuts in should I block AI crawlers.
The Snap Terms of Service are where the limit sits, and they are broad. Users agree not to copy, archive, download, distribute or make derivatives of content on the Services, "other than temporary files that are automatically cached by your web browser for display purposes", and not to access the Services through unauthorized third-party applications. Read together with robots.txt, the honest position is this: the public profile and Spotlight pages are technically open and Snapchat's own crawler rules do not exclude you, but the Terms prohibit storing what you read beyond a browser cache without written permission. Reading a profile to verify a creator's follower count is one thing; archiving Spotlight videos is another, and the Terms name the second.
There is no public read API to fall back on. Snap's developer platform offers the Marketing API, which is OAuth-scoped to the ad accounts of an organisation with a credit line at Snap, and Snap Kit for login and creative tools. Neither returns another account's public profile. For ad and creative verification the Marketing API is the sanctioned route, and the Political Ads Library, linked from every profile footer, is the public one.
What a Snapchat profile costs to read
Every number here came through residential proxies on the Basic line at $0.80/GB, counting a gigabyte as 10^9 bytes.
| Job | Bytes per request | Requests per GB | Cost per request |
|---|---|---|---|
| Public profile, no JavaScript, US exit | 662,597 | 1,509 | $0.00053 |
| Public profile, no JavaScript, IN exit | 685,928 | 1,457 | $0.00055 |
| Public profile, rendered | 2,637,627 | 379 | $0.0021 |
| Spotlight hub, no JavaScript | 289,440 | 3,455 | $0.00023 |
A profile census of 100,000 creators is 66 GB and about $53 over plain HTTP, and $211 rendered for the same fields. The same 100,000 profiles on mobile at $2.30/GB would be $152 for a surface that never asked what network we came from. Sixteen fetches, sixteen clean answers, no address-level obstacle from any exit; the only thing that varied by exit was the language. On Snapchat the budget question is the byte count of a Next.js page, and the answer is to never render it.
The setting that works on Snapchat
- Network: residential proxies, Basic line, $0.80/GB. Sixteen fetches from three countries returned complete pages over plain HTTP; the Premium ($2.20/GB) and Mobile ($2.30/GB) lines returned nothing extra on logged-out reads.
- Fetch mode:
engine: tls, plain HTTP, never rendered. The profile returns its 94 words, the subscriber count, the category, the website and the Spotlight view counts in 662,597 bytes; rendered it returns the same 94 words in 2,637,627 bytes after 6.5 seconds. - Country: pin the exit to the market you are reading and check it. The header
x-snap-client-countryechoes the country Snapchat saw (US, DE, IN in our runs), the title and the counter label change language with it, and the Spotlight feed is the feed for that country. Parse the number by pattern, not by the word next to it. - When the proxy is not enough: there is no Snapchat collector in our catalogue. The web scraping API without rendering returns the profile as clean Markdown from $0.0002 per page, or as structured fields with a CSS extraction schema, and can return the page's hydration state directly so you read the Spotlight list as JSON rather than parsing a grid; failed requests are never billed. To run the same no-JS versus rendered comparison on your own list of profiles, the SEO Audit API does both fetches in one call at $0.0012 per URL.
- Free tier: every account gets $2 of free API usage per month, which is 10,000 profile pages through the scraping API before you pay anything.
Read the profile over plain HTTP, pin and verify the country, parse the counter by pattern, and do not archive what the Terms say you may only cache. For the platform in this series where the opposite was true and only a browser got the page, compare TikTok; for the sibling that also serves counters in the head, Threads.
What we will not help you do
Five of the ten results on this keyword sell running many Snapchat accounts at once through proxies. We will not write that. The Snap Terms prohibit accessing the Services through unauthorized third-party applications and buying, selling or renting accounts; enforcement runs on device and behavioural signals a proxy never touches; and no proxy restores a locked account. What proxies legitimately serve on Snapchat is creator research and sponsorship due diligence on public profiles, checking that your own ads and Spotlight content render correctly in each market, brand and counterfeit monitoring on public pages, and measuring how a market's Spotlight feed differs from yours, which, as the country header shows, is a real and measurable difference rather than a marketing line.