# Letterboxd Film Reviews Scraper - Low-cost💲🔥🎬⭐ (`delectable_incubator/letterboxd-film-reviews-scraper-low-cost`) Actor

🎬 Easily scrape Letterboxd review pages from bulk URLs. Extract reviewer usernames, display names, ratings, comments, review dates, review text, review language, URLs, reviewer avatars & full review URLs. Perfect for sentiment analysis, audience research, movie analytics, AI datasets & NLP projects

- **URL**: https://apify.com/delectable\_incubator/letterboxd-film-reviews-scraper-low-cost.md
- **Developed by:** [Prime Scrape](https://apify.com/delectable_incubator) (community)
- **Categories:** Lead generation, Automation, Videos
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00005 / actor start

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

<p align="center">
  <img src="https://i.ibb.co/jkNS73wX/readme.png" alt="Letterboxd Reviews Scraper" width="100%">
</p>

***

## 🎬⭐ Letterboxd Reviews Scraper | Bulk Review URL Scraper | Film Reviews & Ratings | Apify Actor

### 🚀 Extract Letterboxd Reviews in Seconds (No Code)

The **Letterboxd Reviews Scraper (Apify Actor)** is a powerful, scalable, and SEO-optimized scraping solution designed to extract public **Letterboxd review pages** using **bulk URLs**.

Scrape reviews from any Letterboxd **reviews/by/activity** page and collect structured review datasets including reviewer information, ratings, likes, comments, review text, review language, dates, film URLs, and much more.

Perfect for **movie review analysis, sentiment analysis, AI datasets, market research, audience insights, recommendation systems, NLP projects, academic research, and data automation.**

***

## 🔥 Why This Letterboxd Reviews Scraper?

✔ Best Letterboxd Reviews Scraper on Apify

✔ Supports Bulk Review URLs

✔ Scrape Any Public Letterboxd Review Page

✔ Automatic Infinite Scroll Handling

✔ Automatic Pagination

✔ Fast & Scalable Extraction

✔ JSON / CSV / Excel Ready

✔ No Coding Required

***

## 🎯 What This Scraper Does

This Apify Actor extracts public reviews directly from **Letterboxd review pages**.

For every URL, the scraper:

- Performs two large page scrolls to load additional reviews
- Automatically follows the **Next** pagination button
- Continues scraping until **max\_items\_per\_url** is reached or no additional pages are available

***

### 📌 Core Features

✅ Bulk URL Scraping

✅ Letterboxd Review Pages

✅ Automatic Infinite Scroll

✅ Automatic Pagination

✅ Reviewer Information

✅ Ratings

✅ Star Ratings

✅ Likes

✅ Comments

✅ Review Dates

✅ Review Language

✅ Full Review Text

✅ Full Review URLs

✅ Film URLs

✅ High-Speed Cloud Scraping

✅ Clean Structured Datasets

***

## ⚡ Input Configuration (Simple & Powerful)

### 🔥 BULK URL MODE (SEO BOOST 🚀)

```
{
  "urls": [
    "https://letterboxd.com/film/war/reviews/by/activity/",
    "https://letterboxd.com/film/drama/reviews/by/activity/"
  ],
  "max_items_per_url": 60,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

Simply add one or hundreds of Letterboxd review URLs.

Each URL is processed independently and returns up to **max\_items\_per\_url** reviews.

**Residential proxies are required for the best reliability.**

***

## 📊 Extracted Data

| Field | Description |
|--------|-------------|
| id | Review ID |
| reviewerUsername | Reviewer's username |
| reviewerDisplayName | Reviewer's display name |
| reviewerAvatar | Reviewer avatar URL |
| filmUrl | Film URL |
| watchedType | Watched type (rewatch, first watch, etc.) |
| rating | Numeric rating |
| ratingDisplay | Star rating display |
| liked | Whether the reviewer liked the film |
| date | Review date |
| dateDisplay | Human-readable review date |
| commentsCount | Number of comments |
| likesCount | Number of likes |
| reviewText | Review content |
| reviewTextTruncated | Whether the review was truncated |
| reviewLang | Review language |
| fullTextUrl | Full review URL |
| sourceUrl | Source review page URL |

***

## 💡 Use Cases

Perfect for:

🎬 Movie Review Analysis

📊 Audience Sentiment Analysis

🤖 AI Training Datasets

🧠 NLP & LLM Datasets

📈 Film Popularity Tracking

⭐ Rating Analysis

❤️ User Engagement Analytics

💬 Review Mining

🎓 Academic Research

📚 Recommendation Systems

***

## 🚀 Key Features

⚡ Bulk URL Support

🎬 Any Public Letterboxd Review Page

📜 Automatic Infinite Scroll

📄 Automatic Pagination

⭐ Ratings & Likes

💬 Full Review Text

👤 Reviewer Information

📅 Review Dates

🌍 Language Detection

📊 Structured Output

🔁 Reliable Cloud Execution

💾 Export-Ready Datasets

⚙️ Enterprise-Ready Apify Actor

***

## 📤 Export Formats

✔ JSON

✔ CSV

✔ Excel (XLSX)

✔ XML

✔ HTML

✔ RSS

***

## 📦 Example Output

```
{
  "id": "654987321",
  "reviewerUsername": "cinephile",
  "reviewerDisplayName": "John Doe",
  "reviewerAvatar": "https://...",
  "filmUrl": "https://letterboxd.com/film/war/",
  "watchedType": "Watched",
  "rating": 4.5,
  "ratingDisplay": "★★★★½",
  "liked": true,
  "date": "2025-10-14",
  "dateDisplay": "14 Oct 2025",
  "commentsCount": 12,
  "likesCount": 86,
  "reviewText": "One of the best war movies ever made...",
  "reviewTextTruncated": false,
  "reviewLang": "en",
  "fullTextUrl": "https://letterboxd.com/user/review/654987321/",
  "sourceUrl": "https://letterboxd.com/film/war/reviews/by/activity/"
}
```

***

## 🔥 Why This is the BEST Letterboxd Reviews Scraper on Apify?

✔ Optimized for Apify Search Ranking

✔ Bulk URL Support

✔ Automatic Infinite Scroll

✔ Automatic Pagination

✔ Rich Review Metadata

✔ Reviewer Information

✔ Ratings & Likes

✔ Comments Statistics

✔ Full Review Content

✔ Structured Export-Ready Datasets

✔ Enterprise-Ready Scalability

***

## 💸 Pricing

This scraper runs on a **pay-per-result** pricing model.

You only pay for successfully extracted reviews.

**💳 Price: $0.99 / 1,000 results**

***

## ❓ FAQ

#### Can I scrape multiple Letterboxd review URLs?

Yes.

Bulk URL mode is fully supported.

***

#### Which Letterboxd pages are supported?

Any public **reviews/by/activity** page, including reviews for:

- Movies
- Films
- Popular titles
- Classic films
- Recent releases
- Any public review feed

***

#### Does it support infinite scrolling?

Yes.

The scraper automatically performs multiple large page scrolls before scraping.

***

#### Does it support pagination?

Yes.

The scraper automatically follows the **Next** button until the requested number of reviews has been collected or no further pages exist.

***

#### Can I scrape thousands of reviews?

Yes.

Increase **max\_items\_per\_url** and add as many URLs as needed.

***

#### Are Residential proxies recommended?

Yes.

Residential proxies are required for the best scraping reliability.

***

#### Is coding required?

No.

Everything runs directly on Apify.

***

#### Can I export the data?

Yes.

Supports JSON, CSV, Excel, XML, HTML and RSS.

***

## ⚠️ Disclaimer

This tool is an independent data extraction solution and is **not affiliated with Letterboxd**.

Users are responsible for complying with Letterboxd's Terms of Service and all applicable laws.

***

## 🔗 Related Actors

We are building the complete **PrimeScrape Review Intelligence Suite.**

More premium review, entertainment, marketplace, and social media scrapers are coming soon.

🚀 Stay tuned.

***

## 🌍 PrimeScrape Ecosystem

Built for large-scale data extraction, automation, AI datasets, and business intelligence.

🎬 Movie Intelligence

⭐ Review Analytics

💬 Sentiment Analysis

📊 Audience Research

🤖 AI Training Datasets

📈 Consumer Insights

⚙️ Automation Pipelines

🌐 Public Data Extraction

***

## 📬 Support

⭐⭐⭐⭐⭐

If this scraper saves you time, please leave a review.

For enterprise scraping solutions, custom Apify Actors, or large-scale review scraping projects, feel free to contact **PrimeScrape**.

# Actor input Schema

## `urls` (type: `array`):

Provide one or more Letterboxd 'reviews/by/activity' URLs to scrape.

## `max_items_per_url` (type: `integer`):

Maximum number of reviews to scrape for each individual URL.

## `proxy` (type: `object`):

RESIDENTIAL proxy required.

## Actor input object example

```json
{
  "urls": [
    "https://letterboxd.com/film/war/reviews/by/activity/",
    "https://letterboxd.com/film/drama/reviews/by/activity/"
  ],
  "max_items_per_url": 60,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://letterboxd.com/film/war/reviews/by/activity/",
        "https://letterboxd.com/film/drama/reviews/by/activity/"
    ],
    "max_items_per_url": 60,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("delectable_incubator/letterboxd-film-reviews-scraper-low-cost").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": [
        "https://letterboxd.com/film/war/reviews/by/activity/",
        "https://letterboxd.com/film/drama/reviews/by/activity/",
    ],
    "max_items_per_url": 60,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("delectable_incubator/letterboxd-film-reviews-scraper-low-cost").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://letterboxd.com/film/war/reviews/by/activity/",
    "https://letterboxd.com/film/drama/reviews/by/activity/"
  ],
  "max_items_per_url": 60,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call delectable_incubator/letterboxd-film-reviews-scraper-low-cost --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,delectable_incubator/letterboxd-film-reviews-scraper-low-cost"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/X6JrGKLkYACjyDSpy/builds/8FemBY0bprLRjGW2E/openapi.json
