Letterboxd API Scraper avatar

Letterboxd API Scraper

Pricing

from $2.54 / 1,000 film rows

Go to Apify Store
Letterboxd API Scraper

Letterboxd API Scraper

Scrape Letterboxd public film data: search & browse films, full film detail (genres, directors, rating, description, poster), popular reviews, list films, and optional statistics (watches/likes/ratings/fans + rating histogram). Read-only, guest access, no account.

Pricing

from $2.54 / 1,000 film rows

Rating

0.0

(0)

Developer

R.L.

R.L.

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

6 days ago

Last modified

Categories

Security

Limited permissions

Share

Letterboxd Scraper

Scrape public film data from Letterboxd straight from its official mobile API — search & browse films, full film detail, popular reviews, and the films in any list, with optional per-film statistics. Read-only, guest access, no account (the actor mints Letterboxd's own anonymous app token).

Modes

ModeReturnsKey inputs
Search filmsFilms matching a queryquery
Browse films (by genre)Popular films, narrowed by any of the filtersgenre, decade, year, country, language
Film details (by ID)Full records for given filmsfilms, filmIds
Film reviews (by ID)Popular reviews for one filmfilmId, reviewsSort
List films (by list ID)The films in a Letterboxd listlistId

Films and lists can be given by title, Letterboxd URL (https://letterboxd.com/film/parasite/) or boxd.it short link (https://boxd.it/18kE) — the raw filmIds / filmId / listId fields stay available as power-user overrides.

Browse filters

All five narrow the same popular-films feed and combine freely. decade is a decade's first year (1990, not 1990s), country is an ISO 3166-1 alpha-2 code (KR, JP) matched against a film's production countries, and language is ISO 639-1 (ko, ja) matched against its spoken languages. Leave them all empty for the unfiltered popular feed.

Turn on Include film statistics to add average rating and counts of watches, likes, ratings, fans, lists and reviews (plus the rating histogram) to every film returned. It is one extra API request per film, charged as its own event. If that request fails, the film is still delivered and still billed — as a plain film row, without the statistics columns.

Output

Film rows: film_id, name, original_name, year, runtime, tagline, description, rating, genres, directors, countries, languages, themes, top250_position, poster_url, letterboxd_url, adult. With statistics: watches, likes, ratings_count, fans, lists_count, reviews_count, rating_histogram.

Five of those come only from Film details. Search, Browse and List films read Letterboxd's film summary, which does not carry them, so tagline, description, countries, languages and themes are null on every row of those three modes (measured across five runs, 2026-11-01). Everything else is filled in every mode. To get the full record, take the film_id values from a Search or Browse run and feed them into Film details.

Review rows: review_id, film_id, film_name, film_year, rating, review, contains_spoilers, like_count, comment_count, when_created, when_updated, author, author_username, review_url.

Two columns worth reading carefully

  • rating is on Letterboxd's 0-5 scale, to full precision — 4.5142172380887375 for Parasite, which the site rounds to the 4.5 stars you see. On a review row it is that member's own star rating, and null for a review left without one.
  • top250_position is a Top 500 rank, despite the name. It passes through Letterboxd's own legacy field, and measured over the official list on 2026-11-01 it carries values up to 400 — films at ranks 251, 301 and 400 all have one. Filtering on "not null" gives you 500 films, not 250. The column keeps the upstream's name so existing consumers do not break.

Notes

  • Letterboxd film/list IDs are short base62 strings (e.g. 2a9q = Fight Club). Get them from a Search or Browse run, then feed them into the detail / reviews / list modes.
  • The API is not bot-gated; a proxy is optional.
  • Review text is plain text with its paragraphs kept as blank lines. It comes from Letterboxd's own markup rather than the HTML copy of the same review, so punctuation arrives as punctuation (they're, not they're).
  • maxItems counts rows, and a statistics-enriched film is still one row.

Pricing

The current price of every event is on the Pricing tab of this Actor's page in Apify Store. That tab is generated from the Actor's own pricing record, so it is always current, and your plan's rung is applied automatically. A figure repeated here would be a second copy that drifts out of date.

You can cap what any single run may spend with Max total charge.