Letterboxd Film & Review Scraper
Pricing
from $3.50 / 1,000 films
Letterboxd Film & Review Scraper
Extract film metadata, ratings, cast, genres & user reviews from Letterboxd. Supports film detail pages, user watchlists, curated lists & keyword search. Residential proxy required. No browser โ static HTML only.
Pricing
from $3.50 / 1,000 films
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
18
Total users
3
Monthly active users
a day ago
Last modified
Categories
Share
๐ฌ Letterboxd Scraper โ Films, Ratings, Reviews & User Data

Scrape films, ratings, cast & crew, genres, and user reviews from Letterboxd, the world's leading social film-discovery platform. This Apify Actor extracts structured data from Letterboxd film pages, user profiles, curated lists, and keyword search โ perfect for anyone who needs a Letterboxd reviews API alternative or a clean Letterboxd dataset. Export everything to JSON or CSV for recommendation engines, sentiment analysis, and film research.
Letterboxd has no public API, so its website is the only data source. This scraper turns it into queryable, paginated, structured output โ no manual copy-paste required.
โจ What this Actor does / Key features
- 4 scrape modes โ film details, user watch history, curated lists, and keyword search.
- Ratings & reviews โ Letterboxd average rating, total ratings count, and full user review text with reviewer username, star rating, like count, and spoiler flag.
- Rich film metadata โ director, top cast (up to 10), genres, runtime, language, country, tagline, and poster URL.
- User profile scraping โ extract a user's watched-film history with their personal star ratings.
- List scraping โ scrape any public Letterboxd list (Top 250, decade lists, genre collections, user-curated lists).
- Keyword search โ find films by title or theme, then follow through to full detail pages.
- Automatic pagination โ all multi-page modes are handled automatically.
- Residential proxy support โ Letterboxd blocks datacenter IPs, so residential proxy is built in for reliable runs.
- NLP-ready output โ clean, HTML-stripped review text, with a
typefield to filter records by kind.
๐ Input
| Field | Type | Description |
|---|---|---|
mode | string (enum) | Required. What to scrape: film (metadata + embedded reviews), user (watched films + ratings), list (films from a curated list), search (films matching a keyword). |
startUrls | array | Letterboxd URLs to scrape โ film pages, user profiles, or list pages. The scraper auto-detects the URL type. |
searchQueries | array | Film titles or keywords to search for. Used when mode is search. |
scrapeReviews | boolean | When enabled, parses the popular reviews embedded on each film page (reviewer, rating, text, likes, spoiler flag). Default true. |
maxReviews | integer | Maximum embedded reviews to extract per film (0โ200). Letterboxd typically shows up to 6โ12 popular reviews per page. |
maxFilms | integer | Maximum total film records to save (1โ1000). Applies to user, list, and search modes. Default 50. |
proxyConfiguration | object | Proxy settings. Residential proxy is strongly recommended โ Letterboxd blocks datacenter IPs. |
๐ Example input
{"mode": "film","startUrls": [{ "url": "https://letterboxd.com/film/the-godfather/" },{ "url": "https://letterboxd.com/film/inception/" }],"scrapeReviews": true,"maxReviews": 50,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Scrape a curated list:
{"mode": "list","startUrls": [{ "url": "https://letterboxd.com/dave/list/official-top-250-narrative-feature-films/" }],"maxFilms": 250}
๐ฆ Output
The dataset contains film records and review records, distinguished by the type field.
Film record
| Field | Description |
|---|---|
type | Record type: film, user_film, list_film, or search_result. |
filmSlug | Letterboxd film slug (e.g. the-godfather). |
title | Film title. |
year | Release year. |
director | Director name(s). |
cast | Top cast members (up to 10). |
genres | Genre list. |
runtime | Runtime in minutes. |
averageRating | Letterboxd average rating (0โ5 scale). |
ratingsCount | Total number of ratings. |
language | Primary language. |
country | Country of origin. |
tagline | Film tagline or synopsis. |
posterUrl | Film poster image URL. |
filmUrl | Direct Letterboxd URL. |
scrapedAt | ISO timestamp of extraction. |
Review record (type: review)
| Field | Description |
|---|---|
filmSlug | Film the review belongs to. |
filmTitle | Film title. |
reviewer | Reviewer's Letterboxd username. |
rating | Reviewer's star rating (0โ5). |
reviewText | Full, HTML-stripped review text. |
reviewDate | Date of the review. |
likes | Number of likes on the review. |
๐ก Use cases
- AI & recommendation engines โ build training datasets from Letterboxd's nuanced, cinephile-accurate community ratings.
- Sentiment analysis โ extract thousands of user reviews with star ratings for NLP training and opinion mining.
- Film research & journalism โ analyze rating distributions, genre trends, and director reception at scale.
- List intelligence โ scrape famous community lists for editorial and recommendation projects.
- Audience profiling โ extract user watch histories to understand viewing patterns and taste profiles.
โ Frequently Asked Questions
Does Letterboxd have an API? Why use a scraper? Letterboxd has no public API, so its website is the only source of this data. This Actor delivers structured JSON/CSV instead of manual browsing, with full pagination and batch processing.
Do I need a login or API key? No login or API key is needed โ you only need an Apify account. Profiles and lists you scrape must be public.
Is it legal to scrape Letterboxd? The Actor accesses publicly available pages on Letterboxd. Use the data responsibly, in line with Letterboxd's terms of service, and respect reasonable request rates.
Why is residential proxy required? Letterboxd actively blocks datacenter IP addresses. The Actor defaults to the RESIDENTIAL Apify proxy group for reliable, uninterrupted runs โ keep this setting enabled.
How many reviews can I get per film?
Letterboxd shows a limited set of popular reviews on each film page (typically 6โ12). maxReviews caps how many of those are saved per film, up to 200.
Can I scrape a user's full watch history?
Yes. Use mode: user with the profile URL โ the scraper reads the user's films list and their personal ratings, up to maxFilms.
What output formats are supported?
JSON, CSV, Excel (XLSX), HTML, and JSONLines, available through the Apify dataset and API. Use the type field to filter film vs review records.
โฐ Scheduling & integration
Schedule the Actor on Apify to keep film, rating, and review datasets fresh, and export to JSON or CSV for ML pipelines and spreadsheets. Call it from the Apify API or connect it to Google Sheets, databases, or notebooks via webhooks and no-code tools like Make and Zapier.
Keywords: letterboxd scraper, letterboxd reviews api, scrape letterboxd ratings, letterboxd data extractor, letterboxd film list scraper, letterboxd user watchlist scraper, movie ratings scraper, film review sentiment dataset, letterboxd dataset for machine learning, film recommendation dataset