Stunning Ratings.
Stateless API.
Built by IbbyLabs, based on ERDB by RealBestia. Generate dynamic posters, backdrops, and logos with a cleaner config to output workflow.
Checking the latest release on GitHub now.
Need help with ERDB, ratings, or the addon proxy?
Join the ERDB communities for help with rendering issues, badges, language settings, or addon setup. The AIOStreams channel is great for shared troubleshooting, and the official ERDB server is the direct project home.
If an invite does not open or has expired, message @ibbys89 on Discord.Workspace
Configurator & Proxy
Tune layout, ratings, badges, and language once, then export a shareable config string or generate a proxy manifest from the same state. Saved workspace values stay in this browser until you copy or export them.
Simple View
Simple keeps the high signal controls in front of you. Presets, keys, media targeting, and the most visible artwork switches stay easy to reach.
The guide recommends a preset based on deployment, density, and how much manual tuning you expect to do afterwards.
Apply a preset to get a curated starting point, then keep tuning from there.
Save the shared ERDB settings plus proxy manifest setup to this browser, or export them as a JSON file.
Saved workspace values only affect this page. Share the config string or the generated proxy manifest if you want the same settings somewhere else.
Optional. Only needed when the ERDB host enables request protection. When present, the configurator carries it into previews, config strings, proxy manifests, and exported URL patterns.
Soft is recommended for compatibility. Switch to Strict if you sometimes see incorrect logo or backdrop artwork from TMDB ID collisions.
Optional. Recommended. Your key is used first. If left blank, ERDB falls back to the service key when one exists. This helps if the shared service key is rate limited or blocked later.
Curated renders show how the current genre badge choices land across media types.
Showcase keeps the live render visible while the side tiles explain badge choices and the current output mode.
Curated movie, show, animation, and anime renders that keep the badge decision fixed while you compare mode, style, and placement.
Use this when another tool expects one ERDB config field. The settings travel inside this string, not inside your saved workspace by itself.
Add TMDB key and MDBList key to generate a valid config string.
These presets match the live AIOMetadata defaults: background and logo use type aware TMDB IDs, episode thumbs use IMDb with season and episode placeholders, and poster uses the selected ID source mode.
Determines which database ID to include in poster URLs. Most users should leave this on auto for best poster rewrite coverage.
Poster: tmdb:{type}:{tmdb_id}
Background: tmdb:{type}:{tmdb_id}
Logo: tmdb:{type}:{tmdb_id}
Episode thumb: {imdb_id}, {season}, {episode}
Use the configurator for keys, language, ratings, layout, badges, and text.
A plain addon manifest URL will not pick up saved workspace values by itself. Use the generated ERDB proxy manifest below if you want those settings applied to addon artwork.
Export
Generated Manifest
Use this URL in Stremio. It ends with manifest.json and has no query params.
Add manifest URL, TMDB key and MDBList key to generate a valid link.
Developers
Reference surfaces with clearer grouping
The docs area now follows the same section rhythm as the rest of the page, with feature summaries first and the heavier tables and prompt content grouped underneath.
Dynamic Rendering
Stateless by default. Pass parameters in the query string and let ERDB handle metadata and rendering. Protected hosts can also require erdbKey.
Addon Friendly
Perfect for Stremio, Kodi or any media center addon. Use simple URL patterns for easy integration in your code.
API Reference
| Parameter | Values | Default |
|---|---|---|
| type (path) | poster, backdrop, logo | none |
| id (path) | IMDb, TMDB, Kitsu, etc. | none |
| ratings | tmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsu (global fallback) | all |
| posterRatings | tmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsu (poster only) | all |
| backdropRatings | tmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsu (backdrop only) | all |
| logoRatings | tmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsu (logo only) | all |
| lang | Any TMDB ISO 639-1 code (en, it, fr, es, de, ja, ko, etc.) | en |
| genreBadge | off, text, icon, both (global fallback) | off |
| genreBadgeStyle | glass, square, plain (global fallback) | glass |
| genreBadgePosition | topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight (global fallback) | topLeft |
| streamBadges | auto, on, off (global fallback) | auto |
| posterStreamBadges | auto, on, off (poster only) | auto |
| backdropStreamBadges | auto, on, off (backdrop only) | auto |
| qualityBadgesSide | left, right (poster top bottom layout only) | left |
| posterQualityBadgesPosition | auto, left, right (poster top or bottom only) | auto |
| posterQualityBadges | certification, netflix, hbo, primevideo, disneyplus, appletvplus, hulu, paramountplus, peacock, 4k, bluray, hdr, dolbyvision, dolbyatmos, remux (poster only, empty string disables all) | all |
| backdropQualityBadges | certification, netflix, hbo, primevideo, disneyplus, appletvplus, hulu, paramountplus, peacock, 4k, bluray, hdr, dolbyvision, dolbyatmos, remux (backdrop only, empty string disables all) | all |
| qualityBadgesStyle | glass, square, plain, media, silver (global fallback) | glass |
| posterQualityBadgesStyle | glass, square, plain, media, silver (poster only) | glass |
| backdropQualityBadgesStyle | glass, square, plain, media, silver (backdrop only) | glass |
| posterQualityBadgesMax | 1+ | auto |
| backdropQualityBadgesMax | 1+ | auto |
| providerAppearance | base64url or JSON provider overrides for iconUrl, accentColor, iconScalePercent, stacked width, stacked body opacity, stacked accent mode, stacked line controls, and stacked X/Y offsets for line, logo, and rating | none |
| ratingPresentation | standard, minimal, average, dual, dual minimal, editorial, blockbuster | standard |
| aggregateRatingSource | overall, critics, audience | overall |
| ratingValueMode | native, normalized, normalized100 | native |
| ratingStyle | glass, square, plain, stacked | glass (poster/backdrop), plain (logo) |
| genreBadgeScale | 70 to 200 (% scale, global fallback) | 100 |
| posterRatingBadgeScale | 70 to 150 (% scale) | 100 |
| backdropRatingBadgeScale | 70 to 150 (% scale) | 100 |
| logoRatingBadgeScale | 70 to 150 (% scale) | 100 |
| posterQualityBadgeScale | 70 to 150 (% scale) | 100 |
| backdropQualityBadgeScale | 70 to 150 (% scale) | 100 |
| imageText | original, clean, alternative, random | original (poster), clean (backdrop) |
| posterImageSize | normal (580x859), large (1280x1896), 4k (2000x2926) | normal |
| posterArtworkSource | tmdb, fanart, cinemeta, random (poster artwork source) | tmdb |
| backdropArtworkSource | tmdb, fanart, cinemeta, random (backdrop artwork source) | tmdb |
| posterRatingsLayout | top, bottom, left, right, top bottom, left right | top bottom |
| posterRatingsMax | 1+ | auto |
| posterRatingsMaxPerSide | 1+ | auto |
| backdropRatingsLayout | center, right, right vertical | center |
| backdropRatingsMax | 1+ | auto |
| posterEdgeOffset | 0 to 80 (poster edge badges only) | 0 |
| posterSideRatingsPosition | top, middle, bottom, custom | top |
| posterSideRatingsOffset | 0 to 100 (custom only) | 50 |
| backdropSideRatingsPosition | top, middle, bottom, custom | top |
| backdropSideRatingsOffset | 0 to 100 (custom only) | 50 |
| logoRatingsMax | 1+ | auto |
| logoBackground | transparent, dark | transparent |
| logoArtworkSource | tmdb, fanart, cinemeta, random | tmdb |
| erdbKey | ERDB request key when the host enables route protection | none |
| tmdbKey (req) | TMDB v3 API Key | none |
| mdblistKey (req) | MDBList.com API Key | none |
| fanartKey | Fanart API Key for fanart poster, backdrop, and logo sources | service fallback when available |
| simklClientId | SIMKL client_id for direct SIMKL ratings | none |
| tmdbIdScope | TMDB ID collision handling mode | soft |
Genre badges use a small curated family set. Strong buckets such as horror, comedy, drama, sci fi, fantasy, crime, documentary, animation, and anime resolve. Thriller and mystery now map into the crime family for consistent icon output.
Transparent provider icons stay transparent across glass, square, plain, and stacked. In glass, icons with transparency such as Kitsu render on a neutral inner chip with an accent ring so the accent color does not bleed through the icon cutouts.
Media quality badges use local asset based artwork for 4K, Bluray, HDR10, Dolby Vision, and Dolby Atmos. Certification badges include a small AGE label above the rating.
erdbKey is optional. Add it only when the ERDB host protects render or proxy routes with ERDB_REQUEST_API_KEY or ERDB_REQUEST_API_KEYS.
fanartKey is optional. If present, ERDB uses your key first for fanart requests. If it is blank, ERDB falls back to ERDB_FANART_API_KEY or FANART_API_KEY when the server has one.
tmdbIdScope=soft is the default for compatibility. Set tmdbIdScope=strict to require typed TMDB IDs for backdrop and logo requests when you need to prevent movie and TV ID collisions.
Poster posterArtworkSource=fanart uses fanart.tv poster art for original, clean, alternative, and random. Original and clean use the top ranked fanart image. Alternative uses the next ranked fanart image when one exists. Random uses a seeded pick. posterArtworkSource=cinemeta uses the official MetaHub Cinemeta poster when ERDB can resolve an IMDb ID, then falls back to TMDB. posterArtworkSource=random picks a seeded random source across TMDB, fanart, and Cinemeta when available.
Backdrop backdropArtworkSource=fanart uses fanart.tv backdrop art for original, clean, alternative, and random. Original and clean use the top ranked fanart image. Alternative uses the next ranked fanart image when one exists. Random uses a seeded pick. backdropArtworkSource=cinemeta uses the official MetaHub Cinemeta backdrop when ERDB can resolve an IMDb ID, then falls back to TMDB. backdropArtworkSource=random picks a seeded random source across TMDB, fanart, and Cinemeta. logoArtworkSource=fanart uses fanart.tv HD or clear logo assets for logo output. logoArtworkSource=cinemeta uses the official MetaHub Cinemeta logo when ERDB can resolve an IMDb ID, then falls back to TMDB. logoArtworkSource=random does a seeded pick across TMDB, fanart, and Cinemeta logos.
Future work: season aware fanart support is a good next step for TV because fanart.tv exposes seasonposter and seasonthumb assets.
Type Configs
| Type | Config | Layouts / Values |
|---|---|---|
| poster | imageText posterImageSize posterArtworkSource posterRatingPresentation posterAggregateRatingSource posterGenreBadge posterGenreBadgeStyle posterGenreBadgePosition posterGenreBadgeScale posterRatingsLayout posterRatingsMax posterEdgeOffset posterSideRatingsPosition posterSideRatingsOffset posterQualityBadges posterQualityBadgesPosition posterRatingsMaxPerSide posterQualityBadgesMax posterRatingBadgeScale posterQualityBadgeScale | original, clean, alternative, random normal (580x859), large (1280x1896), 4k (2000x2926) tmdb, fanart, cinemeta, random standard, minimal, average, dual, dual minimal, editorial, blockbuster overall, critics, audience off, text, icon, both glass, square, plain topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight 70 to 200 (% scale) top, bottom, left, right, top bottom, left right 1+ (auto if omitted) 0 to 80 (edge aligned poster badges) top, middle, bottom, custom (side layouts only) 0 to 100 (custom only) certification, netflix, hbo, primevideo, disneyplus, appletvplus, hulu, paramountplus, peacock, 4k, bluray, hdr, dolbyvision, dolbyatmos, remux (empty string hides all) auto, left, right (top or bottom layouts only) 1+ (auto if omitted) 1+ (auto if omitted) 70 to 200 (% scale) 70 to 200 (% scale) |
| backdrop | imageText backdropArtworkSource backdropRatingPresentation backdropAggregateRatingSource backdropGenreBadge backdropGenreBadgeStyle backdropGenreBadgePosition backdropGenreBadgeScale backdropRatingsLayout backdropRatingsMax backdropSideRatingsPosition backdropSideRatingsOffset backdropQualityBadges backdropQualityBadgesMax backdropRatingBadgeScale backdropQualityBadgeScale | original, clean, alternative, random tmdb, fanart, cinemeta, random standard, minimal, average, dual, dual minimal, editorial, blockbuster overall, critics, audience off, text, icon, both glass, square, plain topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight 70 to 200 (% scale) center, right, right vertical 1+ (auto if omitted) top, middle, bottom, custom (right vertical only) 0 to 100 (custom only) certification, netflix, hbo, primevideo, disneyplus, appletvplus, hulu, paramountplus, peacock, 4k, bluray, hdr, dolbyvision, dolbyatmos, remux (empty string hides all) 1+ (auto if omitted) 70 to 200 (% scale) 70 to 150 (% scale) |
| logo | logoRatingsMax logoBackground logoArtworkSource logoRatingPresentation logoAggregateRatingSource logoGenreBadge logoGenreBadgeStyle logoGenreBadgePosition logoGenreBadgeScale logoRatingBadgeScale | 1+ (auto if omitted) transparent, dark tmdb, fanart, cinemeta, random standard, minimal, average, dual, dual minimal, editorial, blockbuster overall, critics, audience off, text, icon, both glass, square, plain topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight 70 to 150 (% scale) 70 to 150 (% scale) |
ID Formats
| Source | Format | Example |
|---|---|---|
| IMDb | tt + numbers | tt0133093 |
| TMDB | tmdb:id or tmdb:movie:id or tmdb:tv:id (typed recommended) | tmdb:movie:603, tmdb:tv:1399 |
| Kitsu | kitsu:id | kitsu:1 |
| Anime | provider:id | anilist:123, mal:456, tvdb:12345, anidb:6789 |
Base Structure
http://localhost:3000/{type}/{id}.jpg?
ratings={ratings}
&lang={lang}
&ratingStyle={style}
&imageText={text}
&posterImageSize={posterImageSize}
&posterRatingsLayout={layout}
&posterRatingsMaxPerSide={max}
&posterEdgeOffset={posterEdgeOffset}
&backdropRatingsLayout={bLayout}
&posterSideRatingsPosition={posterSidePos}
&posterSideRatingsOffset={posterSideOffset}
&backdropSideRatingsPosition={backdropSidePos}
&backdropSideRatingsOffset={backdropSideOffset}
&tmdbIdScope={tmdbIdScope}
&erdbKey={erdbKey}
&tmdbKey={tmdbKey}
&mdblistKey={mdbKey}
&fanartKey={fanartKey}AI Developer Prompt
Copy this prompt to help an AI agent implement this API in your addon.
Live Examples
Movie Poster (IMDb)http://localhost:3000/poster/tt0133093.jpg?ratings=imdb,tmdb&ratingStyle=plainBackdrop (TMDB)http://localhost:3000/backdrop/tmdb:movie:603.jpg?ratings=mdblist&backdropRatingsLayout=right%20vertical&backdropSideRatingsPosition=middle