Back to ERDB
Dedicated API Docs

ERDB renderer, proxy, helper endpoints, and the real query surface.

This page documents the routes that actually exist in the codebase. The big correction versus the old inline docs is simple: tmdbKey is always required for the renderer, while mdblistKey is optional there but required by proxy config validation.

Public Endpoints

Main public surface exposed by the app.

MethodPathPurposeNotes
GET/{type}/{id}.jpgStateless poster/backdrop/logo/thumbnail rendering.Main image API. Logos still use a .jpg path but return PNG.
GET/api/versionReturns currentVersion, githubPackageVersion, and repoUrl.Useful for self-hosted version checks.
GET/api/proxy-manifest?url=...Inspects a source manifest and returns normalized catalog descriptors.Used by the configurator.
GET/proxy/manifest.json?url=...&tmdbKey=...&mdblistKey=...Query-config proxy manifest.Fast test path with CORS enabled.
GET/proxy/{config}/manifest.jsonPath-config proxy manifest.Preferred stable production form.
GET/proxy/{config}/{resource...}Forwards addon traffic and rewrites artwork to ERDB URLs.Catalog/meta JSON are rewritten; other resources pass through.
Image Renderer

Canonical route: GET /{type}/{id}.jpg

FieldValuesDefaultNotes
tmdbKeyTMDB v3 API keyrequiredHard requirement. Alias: tmdb_key.
mdblistKeyMDBList API keyoptionalNeeded for MDBList ratings unless the server already has MDBLIST_API_KEY(S). Alias: mdblist_key.
simklClientIdSIMKL client_idoptionalOnly for direct SIMKL ratings. Alias: simkl_client_id.
ratingstmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsuall providersGlobal provider fallback. Empty string disables ratings.
typeposter, backdrop, logo, thumbnail-thumbnail is episode-only.
langTMDB language codeenExamples: en, it, es-ES, pt-BR.
ratingStyleglass, square, plainglass, except logo -> plainAlias: style.
imageTextoriginal, clean, alternativeoriginal, except backdrop -> cleanAlias: posterText.
posterRatingsLayouttop, bottom, left, right, top-bottom, left-righttop-bottomVertical poster layouts can use posterRatingsMaxPerSide and posterVerticalBadgeContent.
backdropRatingsLayoutcenter, right-verticalcenterBackdrop-only layout.
thumbnailRatingsLayoutcenter, center-top, center-bottom, center-vertical, center-top-vertical, center-bottom-vertical, left, left-top, left-bottom, left-vertical, left-top-vertical, left-bottom-vertical, right, right-top, right-bottom, right-vertical, right-top-vertical, right-bottom-verticalcenterThumbnail-only layout.
thumbnailSizesmall, medium, largemediumThumbnails only support tmdb and imdb ratings.
ID formatKindBehavior
tt0133093IMDb titleMovie or series lookup.
tt0944947:1:1IMDb episodeSeries IMDb ID plus season and episode.
tmdb:603TMDB inferredWorks, but tmdb:movie:603 or tmdb:tv:1399 is preferred.
tmdb:tv:1399:1:1TMDB episodeExplicit TV episode lookup.
tvdb:121361:1:1TVDB aired-order episodeUseful for bridged episode numbering.
realimdb:tt0944947:1:1IMDb TV bridgeUse this when the addon really sources series or episode metadata from IMDb IDs and you want ERDB to keep that IMDb-oriented TV resolution.
kitsu:1Kitsu animeAnime-native mapping flow.
anilist:16498 / mal:5114 / anidb:69Anime-native IDsEnable anime-only provider paths.

thumbnailRatings falls back to thumbnailRatings -> backdropRatings -> ratings.

posterStreamBadges and backdropStreamBadges fall back to streamBadges.

posterQualityBadgesStyle and backdropQualityBadgesStyle fall back to qualityBadgesStyle.

verticalBadgeContent is accepted as a generic fallback for the type-specific vertical badge params.

Poster/backdrop/thumbnail negotiate WebP vs JPEG via Accept; logos always return image/png.

GET /poster/tmdb:movie:603.jpg?tmdbKey=YOUR_TMDB_KEY&ratings=tmdb,imdb&posterRatingsLayout=top-bottom&ratingStyle=glass
GET /thumbnail/tt0944947:1:1.jpg?tmdbKey=YOUR_TMDB_KEY&thumbnailRatings=tmdb,imdb&thumbnailRatingsLayout=center-bottom&thumbnailSize=large
Addon Proxy

Proxy config can live in query parameters for testing or inside a base64url JSON path segment for production.

FieldRequiredNotes
urlyesAbsolute source manifest URL.
tmdbKeyyesRequired by proxy config validation.
mdblistKeyyesRequired by proxy config validation even if renderer-only requests can omit it.
posterEnabled / backdropEnabled / logoEnabled / thumbnailEnablednoFalse keeps original artwork for that type.
translateMetanoLocalizes metadata through TMDB when lang is available.
ratings, per-type ratings, styles, layouts, badge settingsnoSame semantics as the image renderer.
seriesMetadataProvider / aiometadataProvidernoControls TV ID normalization for tricky addon flows, especially addons that actually expose IMDb-based series metadata and should therefore use realimdb-style resolution.
catalogNames / hiddenCatalogs / searchDisabledCatalogs / discoverOnlyCatalogsnoCatalog customization maps and arrays.
erdbBasenoOverrides the absolute ERDB base used in generated artwork URLs.
GET /proxy/manifest.json?url=https://addon.example.com/manifest.json&tmdbKey=YOUR_TMDB_KEY&mdblistKey=YOUR_MDBLIST_KEY
GET /proxy/{base64url(jsonConfig)}/manifest.json
GET /proxy/{base64url(jsonConfig)}/catalog/movie/top.json
Helpers And Headers

Useful integration details that are easy to miss when wiring ERDB behind another proxy or CDN.

TopicBehavior
/api/versionReturns currentVersion, githubPackageVersion, and repoUrl.
/api/proxy-manifestReturns normalized catalog descriptors including key, extraKeys, supportsSearch, searchRequired, and discoverOnly.
Vary: AcceptImportant for caching poster/backdrop/thumbnail responses.
X-ERDB-CacheImage responses expose hit, miss, or shared.
Server-TimingImage responses expose auth, tmdb, mdb, stream, render, and total timing phases.
Proxy CORSProxy routes and /proxy/manifest.json send Access-Control-Allow-Origin: * and support OPTIONS.