> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/letterboxd/users-username-stats>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/letterboxd/users-username-stats.mdx>

---

# Letterboxd Statistics API

A member's all-time counters and featured-list progress, with a typed restricted answer when statistics are not available.

`GET /v1/letterboxd/users/{username}/stats` returns `data.user`, `data.stats` and `data.url`. `stats` carries `filmCount`, `hours`, `directors`, `countries`, `longestStreak` (`value` and `note`), `twoPlusFilmDays`, every labelled counter in `statistics`, and `listProgress` with each featured list's name, total and URL. A meaningful watched count or percentage is not available for those lists, so neither is returned. A membership badge is not available on this route, so `user.badge` is null.

Statistics are available for Pro and Patron members. When they are not public, the route returns `lookupStatus: restricted` with `stats: null`. `not_found` means the username does not exist. HTTP 200 only means the request finished, so branch on `lookupStatus`.

## Request

- **Endpoint:** `GET /v1/letterboxd/users/{username}/stats`
- **Credits:** 1 credit
Failed requests are free
A not-found answer is still charged
- **Input:** by username
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/letterboxd/users/username/stats/get)
- **Platform page:** [/platforms/letterboxd](https://www.socialfetch.dev/platforms/letterboxd)

## FAQ

### Why is stats null?

lookupStatus restricted means the member's statistics are not public. `user` carries the username you asked for; the other header fields are null, including displayName, avatar and badge. The counters are not invented.

### What do longestStreak and twoPlusFilmDays mean?

longestStreak is the streak value, for example 9w, with its tooltip note when available. twoPlusFilmDays is the number of days with two or more films.

### What is in listProgress?

One row per featured list with the list name, total films and a link to the list. A meaningful watched count or completion percentage is not available, so those fields are not returned.

### How many credits does a statistics lookup cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.

### What does lookupStatus mean here?

found means data.stats is the member's statistics. restricted means the member's statistics are not public, and not_found means the username does not exist.
