Letterboxd
API en ligne • letterboxd.com
Letterboxd

API RESTful non-officielle exposant les donnees de Letterboxd via Puppeteer stealth — sans blocage Cloudflare.

Base URL https://lbxd-api.xyz

12

Endpoints

50/h

Free

7j

Session

Fonctionnalites

Cle API

Header x-api-key: lbx_... sur chaque requete /api/*.

Rate limiting

Fenetre glissante d'1h. Free: 50 req/h, listes ≤ 100. Pro: 500 req/h illimite.

Actions cookie

Like, rate, diary — header x-lbx-cookie avec votre cookie Letterboxd.

Plans

Free

0

Par defaut

  • 50 req / heure
  • 5 cles API
  • Tous endpoints
  • Max 100 resultats

Demarrage rapide

1

Creer un compte

Inscription rapide.

2

Generer une cle API

Token lbx_... dans

3

Appeler l'API

Header x-api-key sur chaque requete.

example.sh
# Film par TMDB ID
curl https://lbxd-api.xyz/api/resolve/tmdb/550 \
-H \"x-api-key: lbx_xxxx\"
# Films vus par un user
curl https://lbxd-api.xyz/api/watched/nostra \
-H \"x-api-key: lbx_xxxx\"

Reference des Endpoints

Tous les endpoints /api/* exigent x-api-key: lbx_... (ou ?apiKey=).

Film

GET /api/resolve/:idType/:id — Resolution d'identifiants

Convertit un identifiant film entre TMDB, l'ID interne Letterboxd et le slug URL.

Path Params

:idTypeenumtmdb | leter | slug
:idstringValeur de l'identifiant

Reponse 200

{ "success":true, "tmdbId":550, "leterId":"3w2", "slug":"fight-club", "name":"Fight Club" }

Exemple

GET /api/resolve/tmdb/550 x-api-key: lbx_xxxx
GET /api/film/:idType/:id — Details complets d'un film

Titre, annee, note moyenne, genres, realisateurs, casting, description, posters.

Path Params

:idTypeenumtmdb | leter | slug
:idstringIdentifiant du film

Reponse 200

{ "success" :true, "name" :"Fight Club", "year" :1999, "slug" :"fight-club", "leterId" :"3w2", "tmdbId" :550, "rating" :4.2, "ratingCount" :1200000, "synopsis" :"An insomniac office worker...", "genres" :["Drama","Thriller"], "director" :["David Fincher"], "cast" :["Brad Pitt","Edward Norton"], "imdbId" :"tt0137523", "posterUrl" :"https://...", "trailerUrl" :"https://youtube.com/...", "languages" :["English"], "countries" :["USA"], "studios" :["Fox 2000"], "runtime" :139 }

Profil Utilisateur

GET /api/watched/:username — Films vus

Liste tous les films marques comme vus par un utilisateur public.

Path Params

:usernamestringNom d'utilisateur Letterboxd

Query Params

tmdb0|1Inclure les TMDB IDs (defaut: 0)
limitnumberNombre max de resultats

Reponse 200

{ "success":true, "count":142, "films":[{ "slug":"fight-club", "name":"Fight Club", "year":1999, "tmdbId":550 }] }
GET /api/watchlist/:username — Watchlist

Films dans la watchlist. Pour une watchlist privee, envoyer le header x-lbx-cookie.

Path Params

:usernamestringNom d'utilisateur Letterboxd

Query Params

tmdb0|1Inclure les TMDB IDs
limitnumberNombre max de resultats
GET /api/likes/:username — Films likes

Films marques d'un heart par l'utilisateur.

Path Params

:usernamestringNom d'utilisateur Letterboxd

Query Params

tmdb0|1Inclure les TMDB IDs
limitnumberNombre max de resultats
GET /api/lists/:username — Listes publiques

Liste toutes les listes publiques de l'utilisateur.

Path Params

:usernamestringNom d'utilisateur Letterboxd

Query Params

limitnumberNombre max de resultats

Reponse 200

{ "success":true, "lists":[{ "title":"Mes preferes", "slug":"mes-preferes", "count":25 }] }
GET /api/list/:username/:slug — Contenu d'une liste

Films contenus dans une liste specifique. Le slug vient de /api/lists.

Path Params

:usernamestringProprietaire de la liste
:slugstringSlug de la liste

Query Params

tmdb0|1Inclure les TMDB IDs
limitnumberNombre max de resultats
GET /api/diary/:username — Journal de bord

Entrees du journal : date du visionnage, note, rewatch.

Path Params

:usernamestringNom d'utilisateur Letterboxd

Query Params

limitnumberNombre max de resultats
yearnumberFiltre par annee (ex: 2024)
monthnumberFiltre par mois (necessite year)

Reponse 200

{ "success":true, "count":52, "entries":[ { "date":"2024-12-25", "filmSlug":"fight-club", "name":"Fight Club", "year":1999, "rating":5, "liked":true, "rewatch":false, "reviewUrl":null } ] }
GET /api/review/:username/:idType/:id — Review d'un film

Texte de la review ecrite par l'utilisateur pour un film.

Path Params

:usernamestringNom d'utilisateur Letterboxd
:idTypeenumtmdb | leter | slug
:idstringIdentifiant du film

Reponse 200

{ "success":true, "username":"nostra", "filmSlug":"fight-club", "rating":5, "liked":true, "text":"Un chef-d'oeuvre...", "date":"2024-01-15", "spoiler":false }

Session Cookie (Actions)

GET /api/me Cookie — Profil Letterboxd connecte

Retourne le username Letterboxd associe au cookie fourni.

Headers

x-api-keystringCle API lbx_...
x-lbx-cookiestringCookie de session Letterboxd complet

Reponse 200

{ "success":true, "username":"skyreks" }
GET /api/status/:idType/:id Cookie — Statut d'un film

Statut du film pour le compte connecte : vu, like, en watchlist, note donnee.

Headers

x-api-keystringCle API
x-lbx-cookiestringCookie de session Letterboxd

Path Params

:idTypeenumtmdb | leter | slug
:idstringIdentifiant du film

Reponse 200

{ "success":true, "filmSlug":"fight-club", "username":"skyreks", "watched":true, "liked":false, "rating":4, "inWatchlist":false, "viewings":[] }
POST /api/proxy/:idType/:id/:action Cookie — Effectuer une action

Effectue une action Letterboxd pour le compte connecte.

Headers

x-api-keystringCle API
x-lbx-cookiestringCookie de session Letterboxd

Path Params

:idTypeenumtmdb | leter | slug
:idstringIdentifiant du film
:actionenumVoir ci-dessous
Actions : watchunwatchlikeunlikerateunratewatchlistunwatchlistdiary

Corps JSON (pour rate et diary)

ratingnumberNote de 1 a 10 (2=½★, 10=5★) — pour rate
datestringDate YYYY-MM-DD — pour diary

Reponse 200

{ "success":true, "action":"watch" }

Exemple

POST /api/proxy/tmdb/550/rate x-api-key: lbx_xxxx x-lbx-cookie: letterboxd.signed... Content-Type: application/json { "rating": 8 } # 8 = 4 etoiles. Plage : 2 (1/2★) → 10 (5★)

Mes cles API

Gerez vos cles d'acces. Utilisez x-api-key: lbx_... dans vos requetes.