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

---

# Letterboxd Activity API

A member's recent activity as watch, review, list and story entries, newest first.

`GET /v1/letterboxd/users/{username}/activity` returns `data.user` and `data.activity`. The response carries up to 100 entries and has no paging, so it is the recent slice rather than a full history. Each entry has `kind` (`watch`, `review`, `list`, `story` or `other`), `guid`, `title`, `url`, `publishedAt`, `watchedDate`, `rewatch`, `film`, `rating`, `liked`, `reviewText`, `list`, `storyText` and `creator`.

`watch` and `review` entries name a `film` with `slug`, `title`, `year`, `tmdbMovieId`, `tmdbTvId` and `poster`. A `review` entry carries the full `reviewText`. A `list` entry carries a `list` object with the description and the films it names. A `story` entry carries `storyText`. Fields that do not apply to a kind are null. This is the cheapest way to poll what a member has done recently.

## Request

- **Endpoint:** `GET /v1/letterboxd/users/{username}/activity`
- **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/activity/get)
- **Platform page:** [/platforms/letterboxd](https://www.socialfetch.dev/platforms/letterboxd)

## FAQ

### How many entries does the recent activity response return?

Up to 100, newest first. There is no paging, so there is no cursor or page parameter. For a dated history, use the diary route.

### What do the kind values mean?

watch is a viewing, review carries review text, list is a list entry, story is a story entry, and other is an entry the response does not classify. Fields that do not apply are null.

### Where is the review text?

On a review entry, reviewText holds the full text carried by the entry. On a watch entry it is null. For review fields such as tags, likes and watched date, use the single review route.

### How many credits does an activity 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 the member's recent activity was returned, even if activity is empty. not_found means the username does not exist, and data.user is null.
