> **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-films-slug-review>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/letterboxd/users-username-films-slug-review.mdx>

---

# Letterboxd Review API

One review with the full text, rating, watched date, tags and rewatch number; a viewing without review text is found with text null.

`GET /v1/letterboxd/users/{username}/films/{slug}/review` returns `data.review` for one member and one film. The review has `id`, `entry`, `rewatch`, `author`, `film`, `rating`, `watchedDate`, `text`, `containsSpoilers`, `tags`, `likes` and `url`. `author` carries `username`, `displayName` and `badge`, and `film` uses the shared film reference shape.

Call it without `entry` for the viewing without a number, for example `/users/dave/films/avatar-fire-and-ash/review`. When the review URL ends with a number, pass it as the `entry` query parameter. An entry request is best effort: when it is refused, the route returns HTTP 503 and does not charge. `entry` is null when the review URL carries no number and the number when it does; `rewatch` says whether the viewing is a rewatch, so read it rather than inferring it from `entry`. A viewing with no review text is `found` with `text: null`; its rating and watched date are still returned. The full text is returned here even when the member's reviews list carries a truncated version. Comment threads under a review are not part of this API.

## Request

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

## FAQ

### How do I request a rewatch review?

Pass entry with the number from the review URL. A URL ending in /1/ is entry=1, and so on. Omit entry for the viewing without a number; rewatch tells you whether it is a rewatch. An entry request is best effort: a refusal is an HTTP 503 and is not billed. The response reports the number in review.entry, which is null when the URL carries no number.

### Is this the route for the full text?

Yes. review.text is the full text on this route, including when the member's reviews list returned textTruncated: true. The list still gives you the card, rating, likes and tags for scanning many reviews cheaply.

### Does a review include its comments?

No. This route returns the review and its author, film, rating, watched date, text, tags, likes and url. Comment threads under the review are not exposed.

### How many credits does a review 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.review is the review. not_found means the member, film or entry does not exist, and data.review is null.
