RPDB API

https://api.ratingposterdb.com
Edit PageSign In

RPDB API

The Rating Poster Database (RPDB) is an API that allows fetching movie and series posters with ratings based on IMDB / TMDB / TVDB IDs.

Additional features include: backdrops with ratings, logos with ratings, adding badges to posters (130+ badge options), adding custom text labels to posters, custom poster images and much more!

Examples of images that are made available through the RPDB API can be seen on the Examples Page.

https://api.ratingposterdb.com

API Keys

In order to use the RPDB API you must first subscribe to one of the Tiers on Patreon.

Upon subscribing the API Key will be received by e-mail.

API URL

The API should always be accessed over SSL.

https://api.ratingposterdb.com

Request Limits

Each Tier has a monthly request limit, upon passing the request limit the service will respond with an error.

Caching of images is allowed for personal use and recommended for larger projects.

TierRequest Limit
150,000
2100,000
3150,000
4750,000

Detecting API Key Tier

The tier of each API Key can be derived from the API Key itself from the first 2 characters.

TierAPI Key Starts With
1t1-...
2t2-...
3t3-...
4t4-...

Supported IDs

RPDB supports the following Metadata IDs:

Stremio Addons

Implementing RPDB with Stremio addons is easy, the image URL should be changed to the following:

Where the values are:

Note: We highly recommend using ?fallback=true for images in Stremio addons, this will make the posters fallback to a normal poster (without ratings) if an item is currently missing ratings.

There is nothing else required to implement RPDB in Stremio addons except changing the image URL as explained above. Users can then change all aspects of their RPDB images by visiting https://manager.ratingposterdb.com/ separately and all RPDB images will reflect their chosen settings.

Validating API Keys

If the API Key is valid it will return a 200 status code along with a JSON body.

If it is invalid, it will return a 403 status code along with a text response.

GET Example
/{apiKey}/isValid

Parameters

NameTypeDescription
apiKey required string The user's API Key

Responses

200 application/json
{
    "valid": true
}
403 text/plain
API Key is Invalid
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/isValid'
fetch("https://api.ratingposterdb.com/{apiKey}/isValid", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/isValid",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/isValid"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/isValid",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/isValid")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/isValid"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/isValid"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/isValid");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/isValid HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/isValid 📋
Parameters
The user's API Key
Headers
Response Type

Checking API Key Request Count

This action responds with the current request count and Tier request limit.

GET Example
/{apiKey}/requests

Parameters

NameTypeDescription
apiKey required string The user's API Key

Response

200 application/json
{
    "req": 1502,
    "limit": 20000
}
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/requests'
fetch("https://api.ratingposterdb.com/{apiKey}/requests", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/requests",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/requests"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/requests",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/requests"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/requests"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/requests");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/requests HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/requests 📋
Parameters
The user's API Key
Headers
Response Type

Posters with Ratings

Tier 0 only supports poster-default, all other tiers support all 4 poster types.

Poster types starting with textless- will prefer the textless versions of the posters (if available).

Examples:

Note: For anime, this endpoint will also reply with MAL rating, for details check the "Anime Ratings" category of this page.
Note 2: Adding ?fallback=true to the querystring will make the API return a normal poster in case ratings are missing, otherwise the API will reply with an error in such a case.
GET Example
/{apiKey}/{idType}/{posterType}/{mediaId}.jpg

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
posterType required string The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-default/tt2395427.jpg",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-default/tt2395427.jpg HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Headers
Response Type

Localized Posters with Ratings Tier 1+

You can use the ?lang= query parameter with any ISO 639-1 code to prefer posters in a particular language.

In addition to ISO 639-1 two letter language code, the following language codes are also supported to cover regional language variation:

GET Example
/{apiKey}/{idType}/{posterType}/{mediaId}.jpg?lang={lang}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
posterType required string The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
lang required string Poster language in ISO 639-1 (2 letter language code)

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?lang=en'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?lang=en", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-default/tt2395427.jpg?lang=en",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?lang=en"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?lang=en",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?lang=en")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?lang=en"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?lang=en"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?lang=en");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-default/tt2395427.jpg?lang=en HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?lang=en 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Poster language in ISO 639-1 (2 letter language code)
Headers
Response Type

Themes

You can set the theme of a poster by setting the ?theme= option.

Available themes:

Themes can be edited with ?ratingBarPos to change the rating bar position, ?fontScale to change the font size and any of the other styling options.

GET Example
/{apiKey}/{idType}/{posterType}/{mediaId}.jpg?theme={theme}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
posterType required string The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
theme required string Poster theme name

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?theme=default'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?theme=default", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-default/tt2395427.jpg?theme=default",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?theme=default"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?theme=default",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?theme=default")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?theme=default"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?theme=default"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?theme=default");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-default/tt2395427.jpg?theme=default HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?theme=default 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Poster theme name
Headers
Response Type

Labels Tier 2+

To add a label with custom text to a poster, you can add ?label= followed by the URL encoded label text.

See Poster Example

GET Example
/{apiKey}/{idType}/{posterType}/{mediaId}.jpg?label={label}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
posterType required string The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
label required string Custom text to set as poster label

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?label=custom text'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?label=custom text", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-default/tt2395427.jpg?label=custom text",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?label=custom text"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?label=custom text",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?label=custom text")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?label=custom text"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?label=custom text"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?label=custom text");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-default/tt2395427.jpg?label=custom text HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?label=custom text 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Custom text to set as poster label
Headers
Response Type

Badges Tier 2+

To add a badges to a poster, you can add ?badges= followed by a list of badge tags.

Badge tags should be separated by ,.

A poster can have a maximum of 4 badges at one time, if more badges are set only the first 4 will show.

In addition to the badge tags below, you can also use 2 letter country codes prefixed by country. to show country flags as badges. Example: ?badges=country.de (to show the flag of Germany)

Dynamic badges:

TagTypeTitleSubtitleColor
commonsenseage ratingknown age ratingCommon SenseSilver
commonsensegoldage ratingknown age ratingCommon SenseGold
age_ratingage ratingknown age ratingCommon SenseSilver
age_rating_goldage ratingknown age ratingCommon SenseGold
us_age_ratingage ratingUS age ratingCommon SenseSilver
us_age_rating_goldage ratingUS age ratingCommon SenseGold
auto_resolutionvideo qualityhighest known video resolutionVariedBronze/Silver/Gold
auto_dv_hdrcolor rangehighest known releaseVariedGold/Multicolor
auto_langflag by spoken languagecountry flagnonenone
auto_lang_no_enflag by spoken language (ignores EN)country flagnonenone
auto_countryflag by production countrycountry flagnonenone
auto_country_no_usflag by production country (ignores US)country flagnonenone

Supported badge tags:

TagTypeTitleSubtitleColor
4kvideo quality4KUltra HDGold
4kupscaledvideo quality4KUpscaledSilver
1080pvideo quality1080pFull HDGold
720pvideo quality720pHDSilver
720pgoldvideo quality720pHDGold
2kvideo quality2KQuad HDGold
5kvideo quality5KUltra HDGold
8kvideo quality8KUltra HDGold
576pvideo quality576pSDBronze
480pvideo quality480pSDBronze
360pvideo quality360pSDBronze
240pvideo quality240pSDBronze
hdvideo qualityHDMedium QualitySilver
sdvideo qualitySDLow QualityBronze
3dvideo type3DStereoscopicGold
hdrcolorcolor rangeHDRTrue ColorMulticolor
hdrcolor rangeHDRTrue ColorSilver
hdr10pluscolor rangeHDR10+True ColorSilver
hdr10plus_colorfulcolor rangeHDR10+MulticolorSilver
dolbyvisioncolor range(icon)Dolby VisionMulticolor
dolbyvisioncolorcolor range(icon)Dolby Vision [alt 1]Multicolor
dolbyvisioncoloraltcolor range(icon)Dolby Vision [alt 2]Multicolor
dv_hdr_goldcolor rangeDV/HDRTrue ColorGold
dv_hdr_colorfulcolor rangeDV/HDRTrue ColorMulticolor
hybrid_goldcolor rangeHYBRIDTrue ColorGold
hybrid_colorfulcolor rangeHYBRIDTrue ColorMulticolor
imaxgoldaspect ratioIMAXWidescreenGold
imaxaspect ratioIMAXWidescreenSilver
remuxgoldvideo sourceREMUXLosslessGold
remuxvideo sourceREMUXLosslessSilver
blurayvideo sourceBluRayFormatSilver
dvdvideo sourceDVDFormatSilver
webvideo sourceWEBFormatSilver
mkvvideo containerMKVMatroskaSilver
mp4video containerMP4MPEG-4Silver
avivideo containerAVIA/V InterleaveSilver
h264video encodingh264AVCSilver
h265video encodingh265HEVCSilver
h266video encodingh266VVCSilver
audio20audio2.0StereoSilver
audio51audio5.1SurroundSilver
audio71audio7.1SurroundSilver
dd20audioDD2.0StereoSilver
dd51audioDD5.1SurroundSilver
ddp20audioDDP2.0StereoSilver
ddp51audioDDP5.1SurroundSilver
ddp71audioDDP7.1SurroundSilver
truehd51losslessaudioTrueHD5.1LosslessSilver
truehd51surroundaudioTrueHD5.1SurroundSilver
truehd71losslessaudioTrueHD7.1LosslessSilver
truehd71surroundaudioTrueHD7.1SurroundSilver
pcm51losslessaudioPCM5.1LosslessSilver
pcm51surroundaudioPCM5.1SurroundSilver
pcm71losslessaudioPCM7.1LosslessSilver
pcm71surroundaudioPCM7.1SurroundSilver
atmos3dsoundaudioAtmos3D SoundSilver
atmossurroundaudioAtmosSurroundSilver
5starspersonal rating5 ✯PerfectGold
4starspersonal rating4 ✯GreatSilver
3starspersonal rating3 ✯GoodSilver
2starspersonal rating2 ✯BadBronze
1starspersonal rating1 ✯HorribleBronze
cannesnomineeawardsNOMINEECANNESSilver
canneswinnerawardsWINNERCANNESGold
criterionawards(icon)CRITERIONGold
emmynomineeawardsNOMINEEEMMYSSilver
emmywinnerawardsWINNEREMMYSGold
goldenglobesnomineeawardsNOMINEEGOLDEN GLOBESSilver
goldenglobeswinnerawardsWINNERGOLDEN GLOBESGold
mastersofthecinemaawards(icon)CLASSICSGold
oscarsnomineeawardsNOMINEEOSCARSSilver
oscarswinnerawardsWINNEROSCARSGold
sundancenomineeawardsNOMINEESUNDANCESilver
sundancewinnerawardsWINNERSUNDANCEGold
sundancewinnerawardsWINNERSUNDANCEGold
directorscutspecial editionDIRECTOR'S CUTSPECIAL EDITIONGold
extendedcutspecial editionEXTENDED CUTSPECIAL EDITIONGold
gage ratingGCERTIFICATIONSilver
g_goldage ratingGCERTIFICATIONGold
nc_17age ratingNC-17CERTIFICATIONSilver
nc_17_goldage ratingNC-17CERTIFICATIONGold
nrage ratingNRCERTIFICATIONSilver
nr_goldage ratingNRCERTIFICATIONGold
pg_13age ratingPG-13CERTIFICATIONSilver
pg_13_goldage ratingPG-13CERTIFICATIONGold
pgage ratingPGCERTIFICATIONSilver
pg_goldage ratingPGCERTIFICATIONGold
rage ratingRCERTIFICATIONSilver
r_goldage ratingRCERTIFICATIONGold
tv_14age ratingTV-14CERTIFICATIONSilver
tv_14_goldage ratingTV-14CERTIFICATIONGold
tv_gage ratingTV-GCERTIFICATIONSilver
tv_g_goldage ratingTV-GCERTIFICATIONGold
tv_maage ratingTV-MACERTIFICATIONSilver
tv_ma_goldage ratingTV-MACERTIFICATIONGold
tv_pgage ratingTV-PGCERTIFICATIONSilver
tv_pg_goldage ratingTV-PGCERTIFICATIONGold
tv_yage ratingTV-YCERTIFICATIONSilver
tv_y_goldage ratingTV-YCERTIFICATIONGold
tv_y7age ratingTV-Y7CERTIFICATIONSilver
tv_y7_goldage ratingTV-Y7CERTIFICATIONGold
age(2..18)age ratingage (2..18)+COMMON SENSESilver
age(2..18)goldage ratingage (2..18)+COMMON SENSEGold

See Poster Example

GET Example
/{apiKey}/{idType}/{posterType}/{mediaId}.jpg?badges={badges}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
posterType required string The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
mediaId required string The ID for the movie / series, depending on the chosen id-type
badges required string Badge tags separated by , (comma)

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
The ID for the movie / series, depending on the chosen id-type
Badge tags separated by , (comma)
Headers
Response Type

Maximum Number of Badges Tier 3+

The maximum number of badges to show at once on an image, the default value for this differs based on rating bar position and image type.

The value is expected to be a number, example: 1, 2, 3, 4, etc

GET Example
/{apiKey}/{idType}/{posterType}/{mediaId}.jpg?badges={badges}&maxBadges={maxBadges}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
posterType required string The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
badges required string Badge tags separated by , (comma)
maxBadges required string Maximum badges, can be: 1, 2, 3, 4, etc

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&maxBadges=2'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&maxBadges=2", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&maxBadges=2",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&maxBadges=2"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&maxBadges=2",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&maxBadges=2")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&maxBadges=2"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&maxBadges=2"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&maxBadges=2");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&maxBadges=2 HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&maxBadges=2 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Badge tags separated by , (comma)
Maximum badges, can be: 1, 2, 3, 4, etc
Headers
Response Type

Badge Position Tier 3+

The badge position can be set with the ?badgePos= query parameter and works for both posters and backdrops.

Supported badge positions: left (default), center, right, bottom|left, bottom|center, bottom|right

Example for Left Badges

Example for Center Badges

Example for Right Badges

GET Example
/{apiKey}/{idType}/{posterType}/{mediaId}.jpg?badges={badges}&badgePos={badgePos}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
posterType required string The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
badges required string Badge tags separated by , (comma)
badgePos required string Badge position, can be: left (default), center, right

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&badgePos=center'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&badgePos=center", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&badgePos=center",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&badgePos=center"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&badgePos=center",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&badgePos=center")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&badgePos=center"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&badgePos=center"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&badgePos=center");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&badgePos=center HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tt2395427.jpg?badges=4k&badgePos=center 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Badge tags separated by , (comma)
Badge position, can be: left (default), center, right
Headers
Response Type

TMDB Poster Choices Tier 2+

GET Example
/{apiKey}/{idType}/{posterType}/tmdb-poster/{mediaId}/{tmdbPosterFilename}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
posterType required string The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
tmdbPosterFilename required string The image filename from the TMDB Poster Image Response

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tmdb-poster/tt2395427/kqjL17yufvn9OVLyXYpvtyrFfak.jpg'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tmdb-poster/tt2395427/kqjL17yufvn9OVLyXYpvtyrFfak.jpg", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-default/tmdb-poster/tt2395427/kqjL17yufvn9OVLyXYpvtyrFfak.jpg",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tmdb-poster/tt2395427/kqjL17yufvn9OVLyXYpvtyrFfak.jpg"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tmdb-poster/tt2395427/kqjL17yufvn9OVLyXYpvtyrFfak.jpg",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tmdb-poster/tt2395427/kqjL17yufvn9OVLyXYpvtyrFfak.jpg")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tmdb-poster/tt2395427/kqjL17yufvn9OVLyXYpvtyrFfak.jpg"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tmdb-poster/tt2395427/kqjL17yufvn9OVLyXYpvtyrFfak.jpg"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tmdb-poster/tt2395427/kqjL17yufvn9OVLyXYpvtyrFfak.jpg");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-default/tmdb-poster/tt2395427/kqjL17yufvn9OVLyXYpvtyrFfak.jpg HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/tmdb-poster/tt2395427/kqjL17yufvn9OVLyXYpvtyrFfak.jpg 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
The image filename from the TMDB Poster Image Response
Headers
Response Type

Custom Poster Images Tier 3+

The ?img= query parameter needs to be set to an image URI (URL encoded).

GET Example
/{apiKey}/{idType}/{posterType}/custom-poster/{mediaId}.jpg?img={img}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
posterType required string The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
img required string Any image URI to use as poster

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/custom-poster/tt2395427.jpg?img=https://image.tmdb.org/t/p/w780/RYMX2wcKCBAr24UyPD7xwmjaTn.jpg'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/custom-poster/tt2395427.jpg?img=https://image.tmdb.org/t/p/w780/RYMX2wcKCBAr24UyPD7xwmjaTn.jpg", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-default/custom-poster/tt2395427.jpg?img=https://image.tmdb.org/t/p/w780/RYMX2wcKCBAr24UyPD7xwmjaTn.jpg",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/custom-poster/tt2395427.jpg?img=https://image.tmdb.org/t/p/w780/RYMX2wcKCBAr24UyPD7xwmjaTn.jpg"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/custom-poster/tt2395427.jpg?img=https://image.tmdb.org/t/p/w780/RYMX2wcKCBAr24UyPD7xwmjaTn.jpg",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/custom-poster/tt2395427.jpg?img=https://image.tmdb.org/t/p/w780/RYMX2wcKCBAr24UyPD7xwmjaTn.jpg")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/custom-poster/tt2395427.jpg?img=https://image.tmdb.org/t/p/w780/RYMX2wcKCBAr24UyPD7xwmjaTn.jpg"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/custom-poster/tt2395427.jpg?img=https://image.tmdb.org/t/p/w780/RYMX2wcKCBAr24UyPD7xwmjaTn.jpg"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/custom-poster/tt2395427.jpg?img=https://image.tmdb.org/t/p/w780/RYMX2wcKCBAr24UyPD7xwmjaTn.jpg");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-default/custom-poster/tt2395427.jpg?img=https://image.tmdb.org/t/p/w780/RYMX2wcKCBAr24UyPD7xwmjaTn.jpg HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-default/custom-poster/tt2395427.jpg?img=https://image.tmdb.org/t/p/w780/RYMX2wcKCBAr24UyPD7xwmjaTn.jpg 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Any image URI to use as poster
Headers
Response Type

Backdrops with Ratings Tier 2+

Example of Backdrop

Note: as with posters, backdrops also support custom ratings choice, rating order, as well as all Tier 3 customisation such as choosing where the ratings are shown and the color of the rating background and text color.
GET Example
/{apiKey}/{idType}/{backdropType}/{mediaId}.jpg

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
backdropType required string The backdrop type, currently only backdrop-default is supported
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/backdrop-default/tt2395427.jpg",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/backdrop-default/tt2395427.jpg HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The backdrop type, currently only backdrop-default is supported
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Headers
Response Type

Logos with Ratings Tier 2+

Note: compared to posters and backdrops which are JPG, it is important to note that logos are PNG images as they require transparency.
Note 2: due to limited space in the logo image, logos do not support badges
Note 3: as with posters, logos also support custom ratings choice, rating order, as well as all Tier 3 customisation such as choosing where the ratings are shown and the color of the rating background and text color.

Example of Logo

GET Example
/{apiKey}/{idType}/{logoType}/{mediaId}.png

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
logoType required string The logo type, currently only logo-default is supported
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)

Response

200 image/png
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/logo-default/tt2395427.png'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/logo-default/tt2395427.png", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/logo-default/tt2395427.png",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/logo-default/tt2395427.png"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/logo-default/tt2395427.png",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/logo-default/tt2395427.png")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/logo-default/tt2395427.png"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/logo-default/tt2395427.png"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/logo-default/tt2395427.png");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/logo-default/tt2395427.png HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/logo-default/tt2395427.png 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The logo type, currently only logo-default is supported
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Headers
Response Type

Anime Ratings

All known anime movies and series include MAL rating by default (except for the free tier), so the API is the same as in the "Posters with Ratings" category of this page.

In the case of anime, instead of receiving IMDB + RT + MC ratings, you will receive MAL + IMDB + RT (+ MC if any other rating is missing) with the following poster types: poster-default, poster-certs, poster-rt, poster-mc, backdrop-default, textless-default, textless-certs, textless-rt, textless-mc.

This applies for all Tiers.

GET Example
/{apikey}/{idType}/{posterType}/{mediaId}.jpg

Parameters

NameTypeDescription
apikey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
posterType required string The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apikey}/imdb/poster-default/tt2395427.jpg'
fetch("https://api.ratingposterdb.com/{apikey}/imdb/poster-default/tt2395427.jpg", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apikey}/imdb/poster-default/tt2395427.jpg",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apikey}/imdb/poster-default/tt2395427.jpg"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apikey}/imdb/poster-default/tt2395427.jpg",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apikey}/imdb/poster-default/tt2395427.jpg")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apikey}/imdb/poster-default/tt2395427.jpg"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apikey}/imdb/poster-default/tt2395427.jpg"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apikey}/imdb/poster-default/tt2395427.jpg");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apikey}/imdb/poster-default/tt2395427.jpg HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apikey}/imdb/poster-default/tt2395427.jpg 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The poster rating type, can be: poster-default, poster-certs, poster-mc, poster-rt, textless-default, textless-certs, textless-mc, textless-rt
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Headers
Response Type

More Ratings Tier 1+

The ?order= query parameter needs to be set to a text that includes one or more rating tags, split by comma. This querystring parameter works with rating-order image type for posters, backdrop-default image type for backdrops and logo-default image type for logos.

Example order query parameter values:

Currently available rating tags:

GET Example
/{apiKey}/{idType}/{imageType}/{mediaId}.jpg?order={order}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
imageType required string For posters use rating-order, for backdrops use backdrop-default
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
order required string Text including one or more rating tags

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/rating-order/tt2395427.jpg?order=myanimelist'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/rating-order/tt2395427.jpg?order=myanimelist", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/rating-order/tt2395427.jpg?order=myanimelist",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/rating-order/tt2395427.jpg?order=myanimelist"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/rating-order/tt2395427.jpg?order=myanimelist",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/rating-order/tt2395427.jpg?order=myanimelist")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/rating-order/tt2395427.jpg?order=myanimelist"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/rating-order/tt2395427.jpg?order=myanimelist"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/rating-order/tt2395427.jpg?order=myanimelist");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/rating-order/tt2395427.jpg?order=myanimelist HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/rating-order/tt2395427.jpg?order=myanimelist 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
For posters use rating-order, for backdrops use backdrop-default
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Text including one or more rating tags
Headers
Response Type

Image Size Tier 2+

Poster image sizes:

Backdrop image sizes:

Logo image sizes:

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?imageSize={imageSize}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
imageSize required string Text including preferred image size

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?imageSize=large'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?imageSize=large", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?imageSize=large",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?imageSize=large"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?imageSize=large",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?imageSize=large")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?imageSize=large"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?imageSize=large"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?imageSize=large");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?imageSize=large HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?imageSize=large 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Text including preferred image size
Headers
Response Type

Font Size Tier 2+

Supported values:

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?fontScale={fontScale}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
fontScale required string Font size

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontScale=1'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontScale=1", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontScale=1",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontScale=1"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontScale=1",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontScale=1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontScale=1"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontScale=1"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontScale=1");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?fontScale=1 HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontScale=1 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Font size
Headers
Response Type

Font Weight Tier 2+

Supported values:

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?fontWeight={fontWeight}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
fontWeight required string Font weight

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontWeight=1'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontWeight=1", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontWeight=1",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontWeight=1"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontWeight=1",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontWeight=1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontWeight=1"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontWeight=1"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontWeight=1");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?fontWeight=1 HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontWeight=1 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Font weight
Headers
Response Type

Font Style Tier 2+

Supported values:

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?textStyle={textStyle}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
textStyle required string Font Style, can be: 0, 1, 2

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?textStyle=1'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?textStyle=1", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?textStyle=1",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?textStyle=1"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?textStyle=1",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?textStyle=1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?textStyle=1"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?textStyle=1"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?textStyle=1");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?textStyle=1 HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?textStyle=1 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Font Style, can be: 0, 1, 2
Headers
Response Type

Rating Bar Position Tier 3+

Poster image rating bar positions:

Backdrop image rating bar positions:

Logo image rating bar positions:

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?ratingBarPos={ratingBarPos}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
ratingBarPos required string Text including preferred rating bar position

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPos=top'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPos=top", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPos=top",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPos=top"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPos=top",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPos=top")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPos=top"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPos=top"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPos=top");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPos=top HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPos=top 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Text including preferred rating bar position
Headers
Response Type

Rating Bar Opacity Tier 3+

Rating bar opacity is set with a float value (ex: 0.5, 0.2).

While 0.0 or 0 are not supported, using 0.01 will make the rating bar completely transparent.

While 1.0 or 1 are not supported, using 0.99 will make the rating bar remove transparency.

Both posters and backdrops support ?ratingBarOpacity=

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?ratingBarOpacity={ratingBarOpacity}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
ratingBarOpacity required string Text including preferred rating bar opacity

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarOpacity=0.5'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarOpacity=0.5", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarOpacity=0.5",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarOpacity=0.5"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarOpacity=0.5",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarOpacity=0.5")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarOpacity=0.5"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarOpacity=0.5"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarOpacity=0.5");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarOpacity=0.5 HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarOpacity=0.5 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Text including preferred rating bar opacity
Headers
Response Type

Rating Bar Background Color Tier 3+

The rating bar background color is set with a text value for the HTML color name (ex: red, blue) or the hex value of the color (ex: #FFE4C4).

Both posters and backdrops support ?ratingBarColor=

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?ratingBarColor={ratingBarColor}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
ratingBarColor required string Text including preferred rating bar color

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarColor=blue'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarColor=blue", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarColor=blue",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarColor=blue"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarColor=blue",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarColor=blue")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarColor=blue"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarColor=blue"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarColor=blue");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarColor=blue HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarColor=blue 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Text including preferred rating bar color
Headers
Response Type

Rating Bar Type Tier 3+

The rating bar type can be either "bar" (default) or "blocks". The "blocks" type supports exclusive settings such as "ratingBarRoundness" and "ratingBarPadding".

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?ratingBarType={ratingBarType}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
ratingBarType required string Rating bar type (either bar or blocks)

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarType=blocks'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarType=blocks", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarType=blocks",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarType=blocks"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarType=blocks",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarType=blocks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarType=blocks"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarType=blocks"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarType=blocks");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarType=blocks HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarType=blocks 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Rating bar type (either bar or blocks)
Headers
Response Type

Rating Bar Roundness Tier 3+

The rating bar roundness applies only for "blocks" ratingBarType or supported themes (that include "blocks" or "stripes" in the name), it can be set to "default" (minimal rounded corners), "full" (completely rounded corners) or any number (pixels) including "0" (sharp corners).

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?ratingBarRoundness={ratingBarRoundness}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
ratingBarRoundness required string Rating block corner roundness for supported themes

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarRoundness=full'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarRoundness=full", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarRoundness=full",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarRoundness=full"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarRoundness=full",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarRoundness=full")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarRoundness=full"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarRoundness=full"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarRoundness=full");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarRoundness=full HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarRoundness=full 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Rating block corner roundness for supported themes
Headers
Response Type

Rating Bar Padding Tier 3+

The rating block padding applies only for "blocks" ratingBarType or supported themes (that include "blocks" or "stripes" in the name), it can be set to any number (pixels) including "0".

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?ratingBarPadding={ratingBarPadding}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
ratingBarPadding required string Rating block padding for supported themes

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPadding=15'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPadding=15", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPadding=15",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPadding=15"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPadding=15",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPadding=15")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPadding=15"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPadding=15"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPadding=15");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPadding=15 HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarPadding=15 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Rating block padding for supported themes
Headers
Response Type

Rating Bar Margin Tier 3+

The rating block margin applies only for "blocks" ratingBarType or supported themes (that include "blocks" or "stripes" in the name), it can be set to any number (pixels) including "0".

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?ratingBarMargin={ratingBarMargin}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
ratingBarMargin required string Rating block padding for supported themes

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarMargin=15'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarMargin=15", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarMargin=15",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarMargin=15"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarMargin=15",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarMargin=15")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarMargin=15"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarMargin=15"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarMargin=15");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarMargin=15 HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarMargin=15 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Rating block padding for supported themes
Headers
Response Type

Rating Bar Stroke Width Tier 3+

The rating bar stroke width applies only for "blocks" ratingBarType or supported themes (that include "blocks" or "stripes" in the name), it can be set to "default" (minimal stroke width) or any number (pixels) including "0" (no width).

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?ratingBarStrokeWidth={ratingBarStrokeWidth}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
ratingBarStrokeWidth required string Rating block corner roundness for supported themes

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeWidth=full'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeWidth=full", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeWidth=full",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeWidth=full"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeWidth=full",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeWidth=full")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeWidth=full"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeWidth=full"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeWidth=full");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeWidth=full HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeWidth=full 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Rating block corner roundness for supported themes
Headers
Response Type

Rating Bar Stroke Color Tier 3+

The rating bar stroke side applies only for "blocks" ratingBarType or supported themes (that include "blocks" or "stripes" in the name), it can be set to "default" (all sides) or one of the following: "right", "left", "top", "bottom"

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?ratingBarStrokeColor={ratingBarStrokeColor}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
ratingBarStrokeColor required string Stroke color

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeColor=red'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeColor=red", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeColor=red",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeColor=red"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeColor=red",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeColor=red")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeColor=red"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeColor=red"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeColor=red");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeColor=red HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarStrokeColor=red 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Stroke color
Headers
Response Type

Rating Bar Stroke Side Tier 3+

The rating bar stroke side applies only for "blocks" ratingBarType or supported themes (that include "blocks" or "stripes" in the name), it can be set to "default" (all sides) or one of the following: "right", "left", "top", "bottom"

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?strokeSide={strokeSide}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
strokeSide required string Stroke side

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?strokeSide=right'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?strokeSide=right", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?strokeSide=right",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?strokeSide=right"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?strokeSide=right",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?strokeSide=right")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?strokeSide=right"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?strokeSide=right"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?strokeSide=right");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?strokeSide=right HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?strokeSide=right 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Stroke side
Headers
Response Type

Rating Bar Skew Direction Tier 3+

The rating block skew direction, applies only for "blocks" ratingBarType or supported themes (that include "blocks"), it can be set to: "left" or "right".

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?ratingBarSkewDirection={ratingBarSkewDirection}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
ratingBarSkewDirection required string Color of the rating block border

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarSkewDirection=left'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarSkewDirection=left", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarSkewDirection=left",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarSkewDirection=left"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarSkewDirection=left",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarSkewDirection=left")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarSkewDirection=left"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarSkewDirection=left"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarSkewDirection=left");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarSkewDirection=left HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?ratingBarSkewDirection=left 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Color of the rating block border
Headers
Response Type

Rating Bar Font Color Tier 3+

The rating bar font color is set with a text value for the HTML color name (ex: red, blue) or the hex value of the color (ex: #FFE4C4).

Both posters and backdrops support ?fontColor=

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?fontColor={fontColor}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
fontColor required string Text including preferred rating bar font color

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontColor=blue'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontColor=blue", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontColor=blue",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontColor=blue"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontColor=blue",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontColor=blue")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontColor=blue"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontColor=blue"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontColor=blue");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?fontColor=blue HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?fontColor=blue 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Text including preferred rating bar font color
Headers
Response Type

Logo Styles Tier 3+

Setting this value to "1" will make the rating logos round, setting this value to "2" will disable the logos.

GET Example
/{apiKey}/{idType}/poster-certs/{mediaId}.jpg?logoStyle={logoStyle}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
logoStyle required string If rating logo should be a round image or disabled

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?logoStyle=1'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?logoStyle=1", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/poster-certs/tt2395427.jpg?logoStyle=1",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?logoStyle=1"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?logoStyle=1",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?logoStyle=1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?logoStyle=1"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?logoStyle=1"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?logoStyle=1");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/poster-certs/tt2395427.jpg?logoStyle=1 HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/poster-certs/tt2395427.jpg?logoStyle=1 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
If rating logo should be a round image or disabled
Headers
Response Type

Backdrop Certificates Position Tier 3+

The certificates (such as "certified fresh" or "must watch") from the backdrops can be moved with the certsPos query parameter.

Only backdrops support ?certsPos=.

Available positions for backdrop certificates:

GET Example
/{apiKey}/{idType}/backdrop-default/{mediaId}.jpg?certsPos={certsPos}

Parameters

NameTypeDescription
apiKey required string The user's API Key
idType required string The requesting id type, can be: imdb, tmdb, tvdb
mediaId required string The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
certsPos required string Text including preferred backdrop certificate position

Response

200 image/jpeg
curl --request GET \
  --url 'https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg?certsPos=right'
fetch("https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg?certsPos=right", {
  method: "GET"
})
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(err => console.error(err));
const https = require('https');

const options = {
  hostname: "api.ratingposterdb.com",
  port: 443,
  path: "/{apiKey}/imdb/backdrop-default/tt2395427.jpg?certsPos=right",
  method: "GET",
  headers: {}
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});

req.on('error', (err) => { console.error(err); });
req.end();
import requests

url = "https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg?certsPos=right"

response = requests.get(url)
print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg?certsPos=right",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require 'uri'
require 'net/http'

url = URI("https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg?certsPos=right")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg?certsPos=right"
	req, _ := http.NewRequest("GET", url, nil)

	res, err := http.DefaultClient.Do(req)
	if err != nil { fmt.Println(err); return }
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.*;

public class ApiCall {
  public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest.Builder builder = HttpRequest.newBuilder()
      .uri(URI.create("https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg?certsPos=right"))
      .method("GET", HttpRequest.BodyPublishers.noBody());
    HttpResponse<String> response = client.send(builder.build(), HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET" => "https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg?certsPos=right");

my $res = $ua->request($req);
print $res->decoded_content;
GET /{apiKey}/imdb/backdrop-default/tt2395427.jpg?certsPos=right HTTP/1.1
Host: api.ratingposterdb.com
https://api.ratingposterdb.com/{apiKey}/imdb/backdrop-default/tt2395427.jpg?certsPos=right 📋
Parameters
The user's API Key
The requesting id type, can be: imdb, tmdb, tvdb
The ID for the movie / series, depending on the chosen idType, when using the tmdb or tvdb id types you should also include the media type in the ID (TMDB/TVDB ID examples: movie-155 or series-155)
Text including preferred backdrop certificate position
Headers
Response Type