Movie and TV metadata API

The movie API with every rating, TMDB and OMDb compatible

Change one URL, keep your TMDB or OMDb code, and get IMDb, Rotten Tomatoes, Metacritic and Kinopoisk ratings in the same response.

GEThttps://api.amodb.dev/3/movie/550?language=en-US

200 OKapplication/json1.7 kBLive response

{  "id": 550,  "imdb_id": "tt0137523",  "title": "Fight Club",  "tagline": "Mischief. Mayhem. Soap.",  "release_date": "1999-10-15",  "runtime": 139,  "status": "Released",  "genres": [{ "id": 18, "name": "Drama" }, { "id": 53, "name": "Thriller" }],  "origin_country": ["US", "DE"],  "original_language": "en",  "budget": 63000000,  "revenue": 101209702,  "vote_average": 8.4,  "vote_count": 33045,  "popularity": 37.2853,  "poster_path": "/jSziioSwPVrOy9Yow3XhWIBDjq1.jpg",  "backdrop_path": "/b9HyPoxwxjxkWEUL5ErZdhApQe2.jpg"}

amodb is a paid movie and TV API that keeps the TMDB v3 and OMDb paths and JSON, so your code works after a base URL change. One key adds IMDb, Rotten Tomatoes, Metacritic and Kinopoisk ratings, mood meters and soundtracks, and commercial use costs nothing extra on any prepaid plan.

Why pay for a movie API when TMDB is free?

TMDB is free until your app earns its first dollar. After that TMDB asks for its commercial plan, $149 a month for companies under $1M in revenue. TMDB has no IMDb, Rotten Tomatoes or Metacritic scores either, and OMDb, the usual second API, is licensed for non-commercial use. amodb is both formats in one key from $3.11 a month, with no extra charge for commercial use.

FeatureTMDBOMDbamodb
Price once your app earns money$149 a month under $1M revenueNon-commercial termsFrom $3.11 a month
TMDB v3 paths and JSONYesNoYes
OMDb parameters and fieldsNoYesYes
IMDb, Rotten Tomatoes and Metacritic ratingsNo, TMDB score onlyYesYes, plus Kinopoisk and TMDB
Mood meters, soundtracks and showtimesNoNoYes
No TMDB logo or notice on your screensNo, logo and notice requiredNot statedYes
One key for both formatsNoNoYes

Sources: the TMDB API terms, TMDB staff answers on commercial pricing and on when an app counts as commercial, and the OMDb legal page, read in October 2026.

Pro+: a whole series in one request

GET /3/all/tv/{series_id} returns the series complete: every season and episode with its cast, crew and stills, every image, video and translation, five ratings, mood meters and soundtracks. On TMDB the same blocks take one call for the show and one per season, and the scores need OMDb on top.

TMDB and OMDb

10 + 1 requests

The show and every season, plus OMDb for the scores

amodb Pro+

1 request

GET/3/all/tv/1399Game of Thrones

3.1 MB of JSON, 60 top-level fields

  • 8 seasons
  • 73 episodes
  • 2,880 episode cast and crew credits
  • 1,158 images
  • 155 videos
  • 50 translations
  • 6 rating sources

Blocks in the answer

  • seasons
  • episodes
  • credits
  • images
  • videos
  • translations
  • ratings
  • moods
  • soundtracks
  • wikidata
  • watch/providers
  • keywords
  • reviews
  • recommendations
  • content_ratings
  • external_ids

Change the base URL, keep your code

amodb answers on the same paths as TMDB v3. A request for movie 550 returns the same JSON fields your client already parses: id, title, genres, release_date, poster_path and the rest.

Send your key as api_key in the query or as an Authorization: Bearer header. Both work on every endpoint.

  1. Get a key

    Pick a plan and copy the key from your account.

    Authorization: Bearer $AMODB_KEY
  2. Change the base URL

    Point your TMDB or OMDb client at api.amodb.dev.

    api.themoviedb.orgapi.amodb.dev
  3. Ship it

    The same JSON comes back, so your parser keeps working.

    200 OKapplication/json
bashjspy
curl "https://api.amodb.dev/3/movie/550?language=en-US" \
  -H "Authorization: Bearer $AMODB_KEY"
const res = await fetch("https://api.amodb.dev/3/movie/550?language=en-US", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
const movie = await res.json();
console.log(movie.title, movie.release_date);
import os
import requests

res = requests.get(
    "https://api.amodb.dev/3/movie/550",
    params={"language": "en-US"},
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
movie = res.json()
print(movie["title"], movie["release_date"])
JSON
{
  "id": 550,
  "imdb_id": "tt0137523",
  "title": "Fight Club",
  "release_date": "1999-10-15",
  "runtime": 139,
  "genres": [{ "id": 18, "name": "Drama" }],
  "vote_average": 8.4,
  "poster_path": "/pB8BM7pdSp6B6Ih7QZ4DrQ3PmJK.jpg"
}

One key for OMDb style lookups

The OMDb compatible endpoint lives at https://api.amodb.dev/omdb/. It takes i, t, s, type, y, plot and page, and returns Title, Year, imdbRating, Ratings and the other OMDb fields.

The Poster field points to img.amodb.dev, so posters load from the same service. Errors keep the OMDb shape: {"Response":"False","Error":"..."}.

bashjspy
curl "https://api.amodb.dev/omdb/?i=tt0137523&plot=short&apikey=$AMODB_KEY"
const url = new URL("https://api.amodb.dev/omdb/");
url.searchParams.set("t", "Fight Club");
url.searchParams.set("y", "1999");
url.searchParams.set("apikey", process.env.AMODB_KEY);

const film = await (await fetch(url)).json();
console.log(film.Title, film.imdbRating);
import os
import requests

film = requests.get(
    "https://api.amodb.dev/omdb/",
    params={"i": "tt0137523", "apikey": os.environ["AMODB_KEY"]},
    timeout=10,
).json()
print(film["Title"], film["imdbRating"])
JSON
{
  "Title": "Fight Club",
  "Year": "1999",
  "Runtime": "139 min",
  "Director": "David Fincher",
  "imdbRating": "8.8",
  "imdbID": "tt0137523",
  "Poster": "https://img.amodb.dev/t/p/w300/pB8BM7pdSp6B6Ih7QZ4DrQ3PmJK.jpg",
  "Response": "True"
}

Data that TMDB v3 does not return

Every key can call the amodb extensions on the same base URL. Add them with append_to_response or call them on their own.

  • Mood meters

    Fear, humor, sadness, violence and more, each on a 0 to 10 scale, with one extra call.

    GET /3/tv/1396/moods
  • Ratings in one call

    IMDb, TMDB and three more scores with vote counts, from one endpoint.

    GET /3/movie/550/ratings
  • Rate limit you can see

    Every response tells you how many requests are left this minute.

    X-RateLimit-Limit: 40
  • Every TMDB image size

    From w92 thumbnails to original files on img.amodb.dev. No key needed.

    img.amodb.dev/t/p/w500/…
  • Find by any external id

    Send an IMDb id or another external id and get the TMDB record back.

    GET /3/find/tt0137523
  • Cinema showtimes

    Showtimes by country for titles in cinemas, when they are known.

    GET /3/movie/550/showtimes?country=US
  • Soundtracks

    The songs used in a movie or a show, on the same base URL.

    GET /3/movie/157336/soundtracks

Titles and overviews in 14 languages

Pass a TMDB style tag such as ru-RU or pt-BR in language. amodb serves 14 base languages and falls back to English for any other tag, so a request never fails because of a language.

Language

Spirited Away

Унесённые призраками

Віднесені привидами

Скрадзеныя прывідамі

千与千寻

A Viagem de Chihiro

Отнесени от духове

המסע המופלא

Cesta do fantazie

Călătoria lui Chihiro

Le Voyage de Chihiro

Spirited Away: W krainie Bogów

La città incantata

El viaje de Chihiro

  • en English Spirited Away
  • ru Русский Унесённые призраками
  • uk Українська Віднесені привидами
  • be Беларуская Скрадзеныя прывідамі
  • zh 中文 千与千寻
  • pt Português A Viagem de Chihiro
  • bg Български Отнесени от духове
  • he עברית המסע המופלא
  • cs Čeština Cesta do fantazie
  • ro Română Călătoria lui Chihiro
  • fr Français Le Voyage de Chihiro
  • pl Polski Spirited Away: W krainie Bogów
  • it Italiano La città incantata
  • es Español El viaje de Chihiro

One API for personal and paid projects

A weekend project and a paid product call the same API, get the same data and are covered by the same terms. This is what teams build with it.

  • Streaming and watchlist apps Posters, trailers, seasons and episodes, plus five ratings to sort and filter by.
  • Telegram and Discord bots An OMDb style lookup by title or IMDb id returns a ready answer in one call.
  • Media servers and plugins Metadata scrapers that already speak TMDB v3 keep their client and gain IMDb and Rotten Tomatoes scores.
  • Movie sites and blogs Titles and overviews in 14 languages, so every market gets its own page.
  • Recommendation engines Mood meters rate fear, humor, violence and more from 0 to 10, signals that genres alone miss.
  • AI agents and chatbots Answer "what should I watch tonight" with real ratings, moods, cast and showtimes.

Plans differ in requests per minute

Every plan gets the same data: the TMDB and OMDb endpoints, all 14 languages, images and the extensions. Pro+ also gets /3/all: everything about a movie, series or person in one request. You pay once for 1, 3, 6, 12, or 24 months, and a longer period costs less per month. There is no free tier, and card payments do not renew automatically.

  • Lite

    20 requests per minute

    from $3.11 per month

    Get Lite
  • Pro+

    120 requests per minute

    /3/all a whole movie, series or person in one request

    from $4.31 per month

    Get Pro+
Pricing

Built for production traffic

  • Shared edge cache

    Popular lists stay cached for 30 minutes, details for 6 hours and configuration for 24 hours.

  • Clear rate limits

    Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. A 429 adds Retry-After.

  • TMDB style errors

    Errors return success, status_code and status_message, so existing error handling keeps working.

  • Images without a key

    Posters and backdrops load from img.amodb.dev/t/p/{size}/{file} in every TMDB size, cached for 30 days.

Questions and answers

Is the TMDB API free for commercial use?

No. A TMDB key is free while your project earns nothing. TMDB staff say any revenue from ads, in-app purchases, donations or subscriptions makes an app commercial, and the commercial plan costs $149 a month for companies under $1M in revenue. amodb charges nothing extra for commercial use, and its terms do not prohibit it.

How much does the TMDB API cost?

It is free for non-commercial use. For a commercial app TMDB staff quote $149 a month when yearly revenue is under $1M, and a custom price above that. amodb plans cost a few dollars a month and differ mainly in requests per minute.

Why pay for amodb when the TMDB API is free?

Because a paid app is not free on TMDB. amodb costs a fraction of TMDB's $149 commercial plan, needs no TMDB logo on your screens, and returns IMDb, Rotten Tomatoes, Metacritic and Kinopoisk ratings in the same response. One key serves both the TMDB v3 and the OMDb formats, so you run one API instead of two.

Is OMDb free for commercial use?

OMDb's legal page describes the service for personal, non-commercial use and licenses its content under CC BY-NC 4.0. amodb answers the same OMDb parameters with the same field names, with no extra charge for commercial use.

Do I need to change my TMDB client code?

No. Point the base URL to https://api.amodb.dev/3 and use your amodb key as api_key or as a Bearer token. Paths, query parameters and JSON fields stay the same as TMDB v3.

Does the same key work for OMDb style calls?

Yes. Send it as apikey to https://api.amodb.dev/omdb/. The parameters i, t, s, type, y, plot and page work as in OMDb, and the response uses the OMDb field names.

Is there a free tier or a trial?

No, there is no free tier and no trial. Pay by card, Apple Pay or Google Pay for 1 to 24 months at once, and the key works until the period ends; card payments do not renew. Patreon is monthly and renews on Patreon until you cancel it there.

What is the difference between plans?

The request rate: 20, 40 or 120 requests per minute. Every plan gets the same data, all 14 languages, images, ratings and the other amodb extensions. Pro+ also gets /3/all: everything about a movie, series or person in one request.

Which languages are served?

English, Russian, Ukrainian, Belarusian, Chinese, Portuguese, Bulgarian, Hebrew, Czech, Romanian, French, Polish, Italian and Spanish. Pass a TMDB style tag such as ru-RU; any other language falls back to English.

Start with one key

Every plan gets the same data, all 14 languages and images. Plans differ in requests per minute, and Pro+ also gets /3/all: everything about a title or person in one request.

$ curl https://api.amodb.dev/3/movie/550 -H "Authorization: Bearer $AMODB_KEY"