# Letterboxd Proxies: 2,830 Words, No Browser

> Letterboxd measured from 3 countries: a film page returns 2,830 words over plain HTTP, the rating histogram 5,981 bytes; member pages need the browser.

[Home](https://quanticdata.io/)/[Blog](https://quanticdata.io/blog/)/Letterboxd Proxies: 2,830 Words, No Browser

# Letterboxd Proxies: 2,830 Words, No Browser

Social proxiesSep 29, 2026·10 min read·By [Aldo Morese](https://quanticdata.io/about/), founder of QuanticData

What a Letterboxd URL costs to read through a proxy, measured on 28 September 2026: a film page returns 2,830 words over plain HTTP in 334,446 bytes and 2,679 words rendered in 1,471,790 bytes, the rating histogram fragment returns the 4.5 average and the star distribution in 5,981 bytes, and a member profile answers only a real browser in 1,270,529 bytes

On this page [On this keyword, "proxy" is a film from 2013](/blog/letterboxd-proxies/#on-this-keyword-proxy-is-a-film-from-2013) [A film page is 2,830 words without JavaScript, from any country](/blog/letterboxd-proxies/#a-film-page-is-2-830-words-without-javascript-from-any-count) [The rating lives in a 5,981-byte fragment, not in the page](/blog/letterboxd-proxies/#the-rating-lives-in-a-5-981-byte-fragment-not-in-the-page) [Member pages answer the browser, and nothing else](/blog/letterboxd-proxies/#member-pages-answer-the-browser-and-nothing-else) [The API is by request, and the request page says who is refused](/blog/letterboxd-proxies/#the-api-is-by-request-and-the-request-page-says-who-is-refus) [What robots.txt closes, and why the posters matter](/blog/letterboxd-proxies/#what-robots-txt-closes-and-why-the-posters-matter) [What a gigabyte buys on Letterboxd](/blog/letterboxd-proxies/#what-a-gigabyte-buys-on-letterboxd) [The setting that works on Letterboxd](/blog/letterboxd-proxies/#the-setting-that-works-on-letterboxd)

Letterboxd is the film diary that became the most cited source of audience ratings on the web, and it hands a logged-out client almost everything except the rating. On 28 September 2026 we fetched it nineteen times through residential exits in the United States, the United Kingdom and Germany. A public film page returned 2,830 words to a plain HTTP client, identical from all three countries, with the full cast, crew, runtime and twelve popular reviews. The 4.5 average and the star distribution arrived in a separate 5,981-byte fragment. Member profiles are the one surface that answers only a real browser: 1,270,529 bytes and 32.9 seconds for a page that lists 2,584 films and 36,306 followers.

## On this keyword, "proxy" is a film from 2013

Search for Letterboxd proxies and Google returns Letterboxd itself: the pages for Proxy (2013), Proxy (2015), Proxy (2017) and PROXY (2026), the site’s own search results for the word, an r/movies thread and Wikipedia. The autocomplete box is empty for the head term. The intent that exists is under two other phrases. "Letterboxd scraper" completes eight ways, and the suffixes tell you what people build: list scraper, review scraper, watchlist scraper, data scraper, github. "Letterboxd api" completes fourteen ways, and the suffixes tell you what they run into: reddit, github, python, free, pricing, down, cost.

Both questions have numeric answers, and neither is on that results page. This post is about reading what Letterboxd serves to anyone, for film research, audience analytics and review monitoring, and it ends with what the platform says about its API, which is the paragraph most people on that SERP are looking for.

## A film page is 2,830 words without JavaScript, from any country

We audited `letterboxd.com/film/parasite-2019/` from three countries, each time as a pure HTTP client and as a full browser.

| Exit | Plain HTTP words | Rendered words | Plain HTTP bytes | Canonical | JSON-LD |
| --- | --- | --- | --- | --- | --- |
| United States | 2,830 | 2,679 | 334,446 | absent | none |
| United Kingdom | 2,830 | 3,018 | 334,390 | absent | none |
| Germany | 2,830 | 2,793 | 334,390 | absent | none |

Six passes, one page. The plain response is the same 2,830 words from all three exits, with 56 bytes of variance. The rendered counts wobble by a few hundred words in both directions because the browser loads ad slots and a "similar films" carousel that differ per request; nothing in that wobble is film data. What the plain HTML carries is the whole card: title, year, original title, director, tagline, synopsis, a 133-minute runtime, the full cast list (30 names before the "show all" fold), twelve popular reviews with their like counts, and the "Mentioned by" stories.

Two things a parser should know before it starts. The page has no canonical link and no structured data of any kind, so there is no JSON-LD shortcut here as there is on Flickr or Snapchat; you read the DOM. And the h1 is "Letterboxd — Your life in film", the site’s slogan, on every page: the film title lives in the `<title>` and in the response header `x-letterboxd-type: Film` with an `x-letterboxd-identifier`, which is the stable id you want to key on.

## The rating lives in a 5,981-byte fragment, not in the page

This is the finding that saves the most bandwidth. The average rating and the star distribution are not in the film HTML at all. The page loads them afterwards from a fragment endpoint, and that endpoint answers a plain HTTP client directly:

```
GET https://letterboxd.com/csi/film/parasite-2019/rating-histogram/

Rating Distribution
half-star 5,593 (0%) | 1 star 13.9K (0%) | 1.5 6,528 (0%) | 2 stars 42.1K (1%)
2.5 37.4K (1%) | 3 stars 240K (4%) | 3.5 283K (5%) | 4 stars 1.3M (22%)
4.5 1M (17%) | 5 stars 2.9M (50%)
Average: 4.5
```

5,981 bytes, 2.3 seconds, no cookie, no token. It is 56 times smaller than the film page and it carries the number every "letterboxd data scraper" query is really after: ten buckets, their counts and percentages, and the average. If ratings are the job, this fragment is the job, and the film page is optional. Note the counts are abbreviated ("2.9M", "13.9K"); parse the suffix or take the percentages, which are exact to the unit.

## Member pages answer the browser, and nothing else

Film pages are served to everyone. Member pages are served to browsers. Over plain HTTP, `letterboxd.com/dave/` does not return a profile; rendered, it returns a complete one in 1,270,529 bytes and 32.9 seconds: 2,584 films, 101 this year, 158 lists, 77 following, 36,306 followers, four favourite films, the recent diary with dates and star ratings, pinned and recent reviews with like counts, the member’s own rating distribution, a 620-film watchlist and the activity stream. The page even carries a full month calendar in the DOM, which is where most of the 32.9 seconds go.

So the platform has two surfaces with two settings. Film pages: plain HTTP, 334,446 bytes, 2,830 words. Member pages: a real browser, 1,270,529 bytes, half a minute each. Do not point the browser at film pages to keep one code path: the rendered film page cost 1,471,790 bytes and 13.4 seconds for 151 fewer words than the plain fetch. And be aware that the developer documentation site behaves like the member pages, answering only a browser; the API access page on the main site, by contrast, is plain HTML.

## The API is by request, and the request page says who is refused

Letterboxd’s API page is short and unusually specific. Access is available by request only, by email, with the project named in the subject line; applications are read but not individually answered, and access is not guaranteed. Then the sentence that matters for anyone arriving from the "letterboxd api free" query: at this time they are not granting access for data-analysis, visualization or recommendation projects, for LLM or GPT-related use, for private or personal projects, or for anything that recreates features of the paid tiers. For film metadata they point you to TMDB; for your own data, every member profile has an RSS feed of diary entries, reviews and lists, and the account settings offer an export.

Read that as the platform’s statement of what it wants read by machines: your own diary via RSS and export, film metadata via TMDB, and public film pages via the site itself. Audience research on public film pages and the rating fragment sits inside that; harvesting member profiles at scale does not, and a member’s diary, ratings and lists are personal data wherever your users live.

## What robots.txt closes, and why the posters matter

`letterboxd.com/robots.txt` is 3,402 bytes, generated with a public robots builder, and it opens with 24 named AI data scrapers refused everywhere: AI2Bot, Applebot-Extended, Bytespider, CCBot, ClaudeBot, Diffbot, GPTBot, Google-Extended, Meta-ExternalAgent, PetalBot and the rest, plus the Algolia crawler. Everyone else is allowed in, with twelve path patterns closed:

```
User-agent: *
Disallow: /*/by/*                 # sorting options
Disallow: /*/genre/*              # Films by genre
Disallow: /*/decade/*             # Films by decade
Disallow: /films/*/size/large/*   # Films with large posters (and therefore stats)
Disallow: /*/friends/*            # stuff grouped for users' friends
```

The comments are the platform explaining itself. Sort orders, genre, country, language, decade and year listings are closed because they multiply the crawl space; the large-poster views are closed because, in Letterboxd’s own words, they carry stats. Film pages, review pages and lists are not on the list. That is a cleaner signal than most platforms give: the canonical film page is meant to be read, the combinatorial listings are not, and the stats views are the ones they care about.

## What a gigabyte buys on Letterboxd

Nothing in the film-page fetches looked at the address: 200 from a rotating residential exit on the first attempt, from three countries, identical bodies. The cost driver is bytes on film pages and browser time on member pages, and the arithmetic below uses [residential proxies](https://quanticdata.io/residential-proxies/) on the Basic line at $0.80/GB, counting a gigabyte as 10^9 bytes.

| Request | Bytes | Requests per GB | Cost per request |
| --- | --- | --- | --- |
| Film page, plain HTTP | 334,446 | 2,990 | $0.00027 |
| Rating histogram fragment, plain HTTP | 5,981 | 167,196 | $0.000005 |
| Film page, rendered | 1,471,790 | 679 | $0.00118 |
| Member page, rendered | 1,270,529 | 787 | $0.00102 |

Put a real job through it. A catalogue of 50,000 films with their rating distributions is 50,000 film pages plus 50,000 fragments: 17.0 GB, about $13.62, and no browser. The same catalogue through rendered film pages is 73.6 GB and about $59, for fewer words. Ten thousand member pages, which is the smallest useful sample for audience research, are 12.7 GB and about $10 in bandwidth, but at 32.9 seconds each they are also 91 browser-hours, which is the real cost line and the reason to keep that sample small. If you are sizing a pool before you buy, our note on [how much proxy data you need](https://quanticdata.io/blog/how-much-proxy-data-do-i-need/) does the same arithmetic in the other direction.

## The setting that works on Letterboxd

- **Network:** [residential proxies](https://quanticdata.io/residential-proxies/), Basic line, $0.80/GB, rotating for film pages, sticky for the member sessions you render. Film pages met no address-level obstacle from three countries; the pool is for throughput. Mobile at $2.30/GB and ISP at $2.50/IP per month buy nothing we could measure here.

- **Fetch mode:** two settings. Film pages and the rating fragment: `engine: tls`, plain HTTP, 2,830 words in 334,446 bytes plus 5,981 bytes for the histogram. Member pages: rendered, 1,270,529 bytes and 32.9 seconds each, because the plain client does not get the page.

- **Country:** none required. The film page returned 334,446, 334,390 and 334,390 bytes and the same 2,830 words from the United States, the United Kingdom and Germany. Spread the pool for throughput.

- **When the proxy is not enough:** there is no Letterboxd collector in our catalogue, and film pages do not need one. The [web scraping API](https://quanticdata.io/web-scraping-api/) returns each film page as clean Markdown or JSON from $0.0002 per page without rendering and $0.001 with, retries and rotation included, and failed requests are never billed. For critic and audience scores from another source, the [Rotten Tomatoes collector](https://quanticdata.io/collectors/rotten-tomatoes-api/) returns Tomatometer and audience scores per delivered result. For your own diary, use the RSS feed and export Letterboxd provides.

- **Free tier:** every account gets $2 of free API usage per month, which is 10,000 film pages through the scraping API before you pay anything.

Read film pages over plain HTTP, take the rating from the histogram fragment, render only the member pages you have a reason to read, and stay inside what the API page says the platform wants read by machines. That is the whole configuration. For the platform in this series where a public page also carried the data and the API did not, see [Facebook](https://quanticdata.io/blog/facebook-proxies/); for the one where the open API made the browser pointless, see [Mastodon](https://quanticdata.io/blog/mastodon-proxies/).

### Sources & further reading

- [letterboxd.com/robots.txt (fetched 28 September 2026)](https://letterboxd.com/robots.txt)

- [Letterboxd API access page](https://letterboxd.com/api-beta/)

- [Letterboxd Terms of Use](https://letterboxd.com/legal/terms-of-use/)

- [Letterboxd rating histogram fragment for Parasite (fetched 28 September 2026)](https://letterboxd.com/csi/film/parasite-2019/rating-histogram/)

## FAQ

Quick answers on letterboxd proxies.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### Do I need a headless browser to scrape Letterboxd film pages?

No. On 28 September 2026 a public film page returned 2,830 words to a plain HTTP client in 334,446 bytes, identical from the United States, the United Kingdom and Germany, with cast, crew, runtime and twelve popular reviews. Rendering the same page cost 1,471,790 bytes and 13.4 seconds and returned 2,679 words. Only member profiles need the browser.

### Where is the Letterboxd rating in the HTML?

It is not in the film page. The average and the star distribution arrive from a separate fragment, /csi/film/<slug>/rating-histogram/, which answered a plain HTTP client in 5,981 bytes and 2.3 seconds with ten buckets, their counts and percentages, and the 4.5 average. That fragment is 56 times smaller than the film page and carries the number most scrapers want.

### Can you scrape Letterboxd member profiles?

Only with a real browser, and only for a reason. A member page answered the rendered client in 1,270,529 bytes and 32.9 seconds with 2,584 films, 36,306 followers, 158 lists, the diary and the rating distribution; the plain HTTP client does not get the page. A diary and its ratings are personal data, and the API page says the platform refuses access for data-analysis and recommendation projects. Keep any sample small and justified.

### Does Letterboxd have a public API?

By request only. The API page, 184 words long, says to email details of the intended use, that applications are not individually answered and access is not guaranteed, and that access is currently not granted for data-analysis, visualization or recommendation projects, for LLM or GPT-related use, or for private projects. For film metadata it points to TMDB; every member profile has an RSS feed of diary entries, reviews and lists.

### Does the exit country change what Letterboxd returns?

No. The film page returned 334,446 bytes from the United States and 334,390 from both the United Kingdom and Germany, with the same 2,830 words and the same English content-language header. The rendered counts differed (2,679, 3,018, 2,793) only because ad slots and the similar-films carousel vary per request. Geo targeting buys nothing here; spread the pool for throughput.

### What does it cost to read 50,000 Letterboxd films with ratings?

At 334,446 bytes per film page plus 5,981 bytes per rating fragment, 50,000 films are 17.0 GB, about $13.62 on residential Basic at $0.80/GB, counting a gigabyte as 10^9 bytes, with no browser. The same catalogue through rendered film pages is 73.6 GB and about $59 for fewer words per page.

## Read the film page, fetch the fragment, skip the browser

Every number here came from one platform: fetch any Letterboxd URL over plain HTTP or rendered, compare the two views, and see what each byte returns. Every account gets $2 of free API usage each month, and failed requests are never billed.

[Start free — $2/month included](https://quanticdata.io/signup/)[Explore Residential Proxies from $0.80/GB](https://quanticdata.io/residential-proxies/)

## Related reading

[Social proxies Nextdoor Proxies: 2,404 Words, No Login Nineteen fetches of Nextdoor on 28 September 2026 from the United States, Canada and the United Kingdom. A public city page returns 2,404 words to a plain HTTP client, identical from all three countries: resident counts, six neighbour conversations, 1,147 groups, marketplace listings with prices and 44 events. Rendering the same URL costs 1,046,614 bytes and returns 322 fewer words. Here is the whole measurement, the two paths robots.txt leaves open, and where Nextdoor’s own Display API takes over. Read →](https://quanticdata.io/blog/nextdoor-proxies/) [Social proxies Strava Proxies: 117 Words Without a Login Twenty-one fetches of Strava on 28 September 2026 from the United States, Germany and Italy. A public segment page returns 117 words to a logged-out client: the segment name, sport and location in the title, and a sign-in prompt in the body, from any country and with or without a browser. The club page is the one public surface with data: 7,284,511 members and twenty dated posts in 963,234 bytes over plain HTTP. The API needs OAuth and documents its own limits. Here is the whole measurement and the sentence in Strava’s terms that governs all of it. Read →](https://quanticdata.io/blog/strava-proxies/) [Social proxies XING Proxies: 2,514 Words Without a Browser Twenty-two fetches of XING on 28 September 2026 from Germany, Austria and the United States. A public company page returns 2,514 words to a plain HTTP client, byte-identical from Germany and Austria, with follower count, headcount band, news, twelve job ads and named employees. A member profile returns 679 words and a complete Person JSON-LD block with every role and start date. Rendering the company page costs 1,511,542 bytes for 394 extra words of interface. Here is the whole measurement, what robots.txt closes, and the one line about personal data. Read →](https://quanticdata.io/blog/xing-proxies/)

## Also on this site

Quantic**Data**

Residential proxies & web data APIs for AI.

#### Proxies

- [Residential Basic](https://quanticdata.io/residential-proxies/#basic)

- [Residential Premium](https://quanticdata.io/residential-proxies/#plans)

- [Cheap Residential](https://quanticdata.io/cheap-residential-proxies/)

- [Mobile Proxies](https://quanticdata.io/mobile-proxies/)

- [Datacenter Proxies](https://quanticdata.io/datacenter-proxies/)

- [ISP Proxies](https://quanticdata.io/isp-proxies/)

- [Rotating Proxies](https://quanticdata.io/rotating-proxies/)

- [Sneaker Proxies](https://quanticdata.io/sneaker-proxies/)

- [SOCKS5 Proxies](https://quanticdata.io/socks5-proxies/)

- [IPv6 Proxies](https://quanticdata.io/ipv6-proxies/)

- [Proxy locations](https://quanticdata.io/proxies/)

#### Data APIs

- [MCP Server](https://quanticdata.io/mcp-server/)

- [Web Scraper API](https://quanticdata.io/web-scraping-api/)

- [SERP API](https://quanticdata.io/serp-api/)

- [Collectors](https://quanticdata.io/collectors/)

- [Web Data for AI](https://quanticdata.io/web-data-api-for-ai/)

- [Quantic AI](https://quanticdata.io/ai-web-scraping-service/)

- [Crawl & Map](https://quanticdata.io/crawl-map/)

- [SEO Audit](https://quanticdata.io/seo-audit/)

#### Use cases

- [Company data](https://quanticdata.io/scrape-company-data/)

- [Price monitoring](https://quanticdata.io/competitor-price-monitoring/)

- [Market research](https://quanticdata.io/market-research-data/)

- [Real estate data](https://quanticdata.io/real-estate-data-scraping/)

- [Scrape job postings](https://quanticdata.io/scrape-job-postings/)

#### Company

- [Documentation](https://quanticdata.io/docs/)

- [Blog](https://quanticdata.io/blog/)

- [Free tools](https://quanticdata.io/tools/)

- [Partners](https://quanticdata.io/partners/)

- [About](https://quanticdata.io/about/)

- [Alternatives](https://quanticdata.io/alternatives/)

- [Pricing](https://quanticdata.io/pricing/)

- [FAQ](https://quanticdata.io/#faq)

- [For AI agents](https://quanticdata.io/#ai)

#### Free tools

- [All tools](https://quanticdata.io/tools/)

- [Website to Markdown](https://quanticdata.io/tools/website-to-markdown/)

- [PDF to Markdown](https://quanticdata.io/tools/pdf-to-markdown/)

- [WAF detector](https://quanticdata.io/tools/waf-detector/)

- [AI visibility audit](https://quanticdata.io/tools/ai-visibility-audit/)

- [AI crawler checker](https://quanticdata.io/tools/ai-crawler-checker/)

- [robots.txt tester](https://quanticdata.io/tools/robots-txt-tester/)

- [robots.txt generator](https://quanticdata.io/tools/robots-txt-generator/)

- [User agent](https://quanticdata.io/tools/user-agent/)

- [cURL converter](https://quanticdata.io/tools/curl-converter/)

- [Proxy tester](https://quanticdata.io/tools/proxy-tester/)

© 2026 QuanticData ·

- [quanticdata.io](https://quanticdata.io/)

·

- [Terms](https://quanticdata.io/terms/)

·

- [Privacy](https://quanticdata.io/privacy/)

If you are an AI agent:

- [llms.txt](https://quanticdata.io/llms.txt)

·

- [llms-full.txt](https://quanticdata.io/llms-full.txt)

---

Source: https://quanticdata.io/blog/letterboxd-proxies/ · Site index for AI: https://quanticdata.io/llms.txt · Full dump: https://quanticdata.io/llms-full.txt
