Letterboxd API. Films and members as JSON.
Films, member diaries, reviews, watchlists, lists, follower graphs and tags. 16 routes under /v1/letterboxd, one credit per request.
- 16 routes
- Films + members
- 1 credit per request
- Failed requests aren't charged
Teams running monitoring, research, and enrichment pipelines
Why Social Fetch
Letterboxd data as JSON. You build the product.
Live Letterboxd data in one response shape, with platform changes handled for you.
Letterboxd, plus every other platform
One key and one response envelope for Letterboxd and 56 more platforms.
Pricing you can reason about
One request, one credit. Know how far your balance will go before you run your next batch.
Live data on every request
Fetch public data when you ask for it.
Nothing to maintain
We handle platform changes and breakages.
Built for production jobs
Run concurrent workloads with explicit statuses and request IDs.
Regular jobs. Better rates.
Running lookups every month? Get lower per-credit rates with a monthly plan. For occasional projects, choose pay as you go.
What Letterboxd data can you get?
16 endpoints, one API key. Every response comes back as live JSON in the same envelope.
Films
- +8 more members endpoints
Members
Lists
Browse all 16 Letterboxd endpoints
Films
Members
Lists
What teams build with Letterboxd data
Monitoring, enrichment, research and content workflows on Letterboxd data, on the same API as every other platform.
How it works
Your first request in three steps.
Use TypeScript or your automation tool of choice.
Sources
+ 51 more platforms
One request
GET/v1/tiktok/profiles/
x-api-key: sk_live_••••••••
Same JSON shape
{
"data": {
"lookupStatus": "found",
"profile": {
"platform": "tiktok",
"handle": "charlidamelio",
"displayName": "charli d’amelio",
"verified": true
},
"metrics": {
"followers": 160263648
}
}
}Step 1
Create your free account
Get an API key with 100 requests included.
Step 2
Choose an endpoint
Pass a username, URL, keyword, or post ID.
Step 3
Get clean JSON
Use the response immediately or send it into your pipeline.
Works with your stack
Code, automate, or connect your AI.
TypeScript
n8n
- Make
- Apify
- MCP
- AI clients
Pricing
Social data, priced simply.
Start with 100 free credits. Monthly plans give you predictable volume and lower per-request rates.
Starter
18,000credits
$1.61 per 1k · $0.00161 per request
- Top up from $1.61 / 1k if you run out
- Up to 25 monitors
Growth
50,000credits
$1.58 per 1k · $0.00158 per request
- Top up from $1.58 / 1k if you run out
- 5 team seats
- Up to 100 monitors
Scale
150,000credits
$1.50 per 1k · $0.00150 per request
- Top up from $1.50 / 1k if you run out
- 25 team seats
- Up to 250 monitors
- Cancel anytime
- 30-day money-back guarantee
- Price locked while you stay
Need 1M+ credits, invoicing, or volume rates? Talk to us
Trust signals
DevHunt
Product Hunt
Uneed
Customers
Teams building on Social Fetch.
“Our TikTok and Instagram scrapers broke constantly. Social Fetch took us off that rotation — we ship product again.”
“Transcripts at volume from one endpoint. No broken scrapers for our small team to maintain.”
“Live profile data on every request. We never flag accounts from a stale cache.”
“Heavy concurrent load, no rate limits to negotiate. The rare API I haven't wrapped in retries.”
Letterboxd API: common questions
Is there a Letterboxd API for films and members?
Yes. Social Fetch has 16 Letterboxd routes under /v1/letterboxd: film, filmography, member, watched films, diary, reviews, one review, watchlist, lists, one list, followers, following, activity, tags, statistics and popular members. Authenticate with your Social Fetch API key in x-api-key.
How do I identify a film, person or member?
Films use the slug from the film URL, for example parasite-2019. People and studios use a role such as director, actor, producer, editor, writer, composer or studio plus the slug, for example /people/director/bong-joon-ho/films. A TMDB contributor keeps its colon, for example /people/director/contributor:61567/films. Members use the username from the profile URL.
What does a film response include?
On found, film carries id, slug, title, year, originalTitle, tagline, description, runtimeMinutes, tmdb, imdbId, directors, cast with character names, crew grouped by department, studios, countries, primaryLanguage, spokenLanguages, alternativeTitles, genres, themes, releases, poster, backdrop, trailer, rating, similar, popularReviews and collection. spokenLanguages mirrors primaryLanguage when only one language is listed. The top-level url is the film URL.
How do I get the full text of a review?
GET /v1/letterboxd/users/{username}/reviews returns review cards. When the review text is truncated, textTruncated is true. Call GET /v1/letterboxd/users/{username}/films/{slug}/review for the full text, tags, likes and watched date. Omit entry for the viewing without a number; rewatch tells you whether it is a rewatch. When the review URL carries a number, add entry and treat it as best effort: a refusal is an HTTP 503 and is not billed. A viewing with no review text is found with text null.
Why is the member response so small?
GET /v1/letterboxd/users/{username} returns the public header (username, displayName, avatar, badge) and totalFilms. The route does not return the bio, location, website, favourites, follower count or following count, so those fields are not invented.
How many items does a list route return?
One page per call. List routes take no page or cursor and the response has no next page. A call returns 72 watched films, 50 diary entries, 12 reviews, 28 watchlist films, 12 lists, 25 followers or following accounts, 100 list films, up to 120 tags or 30 popular members; a director or actor filmography returns every film and a studio returns its first 24.
Can I read a private watchlist?
No. The watchlist route returns lookupStatus restricted for a private watchlist, and films is empty. Public watchlists return found with the first 28 films. A member that does not exist returns not_found.
Does a review include its comments?
No. GET /v1/letterboxd/users/{username}/films/{slug}/review returns the review, author, film, rating, watchedDate, text, containsSpoilers, tags, likes and url. A viewing with no review text is found with text null. Comment threads under a review are not exposed.
How much does the Letterboxd API cost?
Every Letterboxd route charges 1 credit per completed request. New accounts start with 100 free credits. Check meta.creditsCharged on each response for the amount actually billed.
Does HTTP 200 mean the film or member exists?
No. HTTP 200 means the request finished. Check data.lookupStatus: found means the entity was returned, not_found means it does not exist, and restricted means the watchlist is private. Persist meta.requestId when you need to debug a miss.
The Letterboxd API in detailHow the Letterboxd routes work, what they cost, and how they differ from the official API.
Why teams use Social Fetch for Letterboxd
Social Fetch exposes 16 routes under /v1/letterboxd. Films are named by their slug (parasite-2019), people and studios by a role plus a slug (director/bong-joon-ho), and members by username (dave). Every response uses the { data, meta } envelope, and every lookup carries data.lookupStatus: found or not_found. The watchlist route adds restricted for a private list. HTTP 200 only means the request finished, so branch on lookupStatus before storing a row.
GET /v1/letterboxd/films/{slug} returns the film as one object: id, slug, title, year, originalTitle, tagline, description, runtimeMinutes, TMDB and IMDb ids, directors, cast with character, crew grouped by department, studios, countries, languages, genres, themes, releases with ISO dates, rating with average and count, similar films, popularReviews, and the collection. GET /v1/letterboxd/people/{role}/{slug}/films returns a person or studio filmography with name, heading, tmdbId, image, bio, bioTruncated, and films; the role can be any crew role on the film, such as producer, editor or cinematography.
Member routes cover watched films, diary entries, reviews, the public watchlist, lists, followers, following, recent activity, tags and all-time statistics; a popular-members index lists active accounts with their public counts. Each member list carries the member header. List routes return one page and take no page or cursor parameter: 72 watched films, 50 diary entries, 12 reviews, 28 watchlist films, 12 lists, 25 followers or following accounts, 100 list films, up to 120 tags, 30 popular members, every film for a director or actor (the first 24 for a studio). user.get returns the public header and totalFilms only, not the bio, location, website, favourites, or the member's own follower count.
How to call the Letterboxd API
1. Create an API key
Sign up at Social Fetch and copy a key (
sfk_…). New accounts get 100 free credits, enough to try each Letterboxd route against real films and members.2. Pick the route and identifier
Use
GET /v1/letterboxd/films/parasite-2019for a film,GET /v1/letterboxd/users/dave/diaryfor a diary, orGET /v1/letterboxd/users/dave/films/avatar-fire-and-ash/reviewfor a review. Sendx-api-keyon every request.3. Branch and bill
Check
data.lookupStatusbefore writing a row. List routes return one page per call, with no page or cursor to follow. Bill frommeta.creditsChargedand logmeta.requestIdfor support.
What each Letterboxd route returns
- Films with cast and character names, crew by department, studios, countries, languages, genres, themes, release dates, rating summary, similar films and popular reviews.
- Director, actor, producer, writer, composer and studio filmographies, plus the person's TMDB id, portrait and biography. A studio call returns its first 24 films.
- Member watched films with rating and like, diary entries with watched date and rewatch, and review cards with truncated text; the review route returns the full text.
- One review with the full text, rating, watched date, tags, likes and rewatch number.
- Public watchlists, member lists, lists with films, follower and following rows with the member's own counts, recent activity and tags.
- Typed
lookupStatuson every route, one page per call with the item counts stated on each route, and all 16 routes at one credit per request.
How much does the Letterboxd API cost?
Every Letterboxd route charges 1 credit per completed request. Credits never expire on pay-as-you-go packs. meta.creditsCharged on every response is the billing source of truth.
Social Fetch vs the official Letterboxd API
Letterboxd exposes films, member diaries, reviews and lists separately. Social Fetch returns them under one JSON envelope with shared film and member shapes, typed lookupStatus values and absolute links. Posters, avatars and other images are linked, never rehosted.
Pull your first Letterboxd data.
Run a live Letterboxd request in the playground. 100 free credits, no card, JSON back in seconds.
No credit cardSign up in 30 seconds withGoogleGitHub
