All platforms16 Letterboxd endpoints

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.

No credit card requiredRead the API docs
  • 16 routes
  • Films + members
  • 1 credit per request
  • Failed requests aren't charged
99.8% uptime#3 Product of the Day3,200+ developers

Teams running monitoring, research, and enrichment pipelines

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.

Never expires

What Letterboxd data can you get?

16 endpoints, one API key. Every response comes back as live JSON in the same envelope.

Use cases

What teams build with Letterboxd data

Monitoring, enrichment, research and content workflows on Letterboxd data, on the same API as every other platform.

What you can build

Track films

Follow ratings and popular reviews for the films you choose.

Research audiences

Read member diaries, reviews and lists.

How it works

Your first request in three steps.

Use TypeScript or your automation tool of choice.

Sources

+ 51 more platforms

One request

Social Fetch API

GET/v1/tiktok/profiles/charlidamelio

x-api-key: sk_live_••••••••

1 request · 1 credit

Same JSON shape

response.json200 OK
{
  "data": {
    "lookupStatus": "found",
    "profile": {
      "platform": "tiktok",
      "handle": "charlidamelio",
      "displayName": "charli d’amelio",
      "verified": true
    },
    "metrics": {
      "followers": 160263648
    }
  }
}
  1. Step 1

    Create your free account

    Get an API key with 100 requests included.

  2. Step 2

    Choose an endpoint

    Pass a username, URL, keyword, or post ID.

  3. 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.

Explore integrations

Pricing

Social data, priced simply.

Start with 100 free credits. Monthly plans give you predictable volume and lower per-request rates.

Starter

$29.00

18,000credits

  • Top up from $1.61 / 1k if you run out
  • Up to 25 monitors
Most popular

Growth

$79.00

50,000credits

  • Top up from $1.58 / 1k if you run out
  • 5 team seats
  • Up to 100 monitors

Scale

$225.00

150,000credits

  • 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.”

Daniel Reeve · Founder, Social Crow
  • “Transcripts at volume from one endpoint. No broken scrapers for our small team to maintain.”

    Marcus Lin · Founder, Voice Gecko
  • “Live profile data on every request. We never flag accounts from a stale cache.”

    Hannah Webb · Founder, Scam Finder
  • “Heavy concurrent load, no rate limits to negotiate. The rare API I haven't wrapped in retries.”

    Owen Pritchard · Founder, IP Flare

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. 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. 2. Pick the route and identifier

    Use GET /v1/letterboxd/films/parasite-2019 for a film, GET /v1/letterboxd/users/dave/diary for a diary, or GET /v1/letterboxd/users/dave/films/avatar-fire-and-ash/review for a review. Send x-api-key on every request.

  3. 3. Branch and bill

    Check data.lookupStatus before writing a row. List routes return one page per call, with no page or cursor to follow. Bill from meta.creditsCharged and log meta.requestId for 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 lookupStatus on 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