Letterboxd API endpoint
Returns popular reviews for a Letterboxd film by `slug`, up to `limit` (default 10, max 50). Each review has the username, display name, rating from 0.5 to 5.0 when the reviewer gave one, liked flag, date, text, spoiler flag, and like and comment counts.
/letterboxd/film/{slug}/reviewsReturns a film's popular reviews (by activity).
Path parameters:
slug (required) — Letterboxd film slug.Query parameters:
limit (optional, default 10, max 50).Response includes reviews[]: username, display_name, rating (0.5–5.0, omitted if the reviewer didn't rate), liked, date, text, contains_spoilers, like_count, comment_count.
| Field | Filled in, of 12 checked | Values in the sample |
|---|---|---|
| username | 12 | |
| display_name | 12 | |
| liked | 11 | true in 11 of 11 |
| date | 12 | 2019-07-21 to 2020-02-10 |
| text | 2 | median 417 characters |
| contains_spoilers | 6 | true in 6 of 6 |
| like_count | 12 | 11,199 to 44,671, median 16,605 |
| comment_count | 12 | 7 to 248, median 29 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug (path) | string | Yes | Letterboxd film slug | parasite-2019 | |
| limit | integer | No | Max reviews, default 10, max 50 | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/letterboxd/film/parasite-2019/reviews?limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"slug": "parasite-2019",
"reviews": [
{
"username": "philbertdy",
"display_name": "Philbert Dy",
"rating": 4.5,
"liked": true,
"date": "2019-08-14",
"text": "Update: Now in video form. There is a house on a hill, and there are people in it...",
"contains_spoilers": true,
"like_count": 42605,
"comment_count": 246
}
],
"source_url": "https://letterboxd.com/film/parasite-2019/reviews/by/activity/"
}
}Request schema
No body schema
Response schema
#/definitions/letterboxd.reviewsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | letterboxd.ReviewsResponse | No | ||||
| data.reviews | array | No | ||||
| data.reviews[].comment_count | integer | No | ||||
| data.reviews[].contains_spoilers | boolean | No | ||||
| data.reviews[].date | string | No | 2019-08-14 | |||
| data.reviews[].display_name | string | No | ||||
| data.reviews[].like_count | integer | No | ||||
| data.reviews[].liked | boolean | No | ||||
| data.reviews[].rating | number | No | 4.5 | |||
| data.reviews[].text | string | No | ||||
| data.reviews[].username | string | No | ||||
| data.slug | string | No | ||||
| data.source_url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/letterboxd/film/parasite-2019/reviews?limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"